@@ -5,6 +5,8 @@ import {createTippy, showTemporaryTooltip} from '../modules/tippy.js';
5
5
import { copyToClipboard } from './clipboard.js' ;
6
6
7
7
const { i18n} = window . config ;
8
+ export const singleRe = / ^ # ( L | n ) ( [ 1 - 9 ] [ 0 - 9 ] * ) $ / ;
9
+ export const rangeRe = / ^ # ( L [ 1 - 9 ] [ 0 - 9 ] * ) - ( L [ 1 - 9 ] [ 0 - 9 ] * ) $ / ;
8
10
9
11
function changeHash ( hash ) {
10
12
if ( window . history . pushState ) {
@@ -149,7 +151,7 @@ export function initRepoCodeView() {
149
151
} ) ;
150
152
151
153
$ ( window ) . on ( 'hashchange' , ( ) => {
152
- let m = window . location . hash . match ( / ^ # ( L \d + ) - ( L \d + ) $ / ) ;
154
+ let m = window . location . hash . match ( rangeRe ) ;
153
155
let $list ;
154
156
if ( $ ( 'div.blame' ) . length ) {
155
157
$list = $ ( '.code-view td.lines-code.blame-code' ) ;
@@ -159,27 +161,31 @@ export function initRepoCodeView() {
159
161
let $first ;
160
162
if ( m ) {
161
163
$first = $list . filter ( `[rel=${ m [ 1 ] } ]` ) ;
162
- selectRange ( $list , $first , $list . filter ( `[rel=${ m [ 2 ] } ]` ) ) ;
164
+ if ( $first . length ) {
165
+ selectRange ( $list , $first , $list . filter ( `[rel=${ m [ 2 ] } ]` ) ) ;
163
166
164
- // show code view menu marker (don't show in blame page)
165
- if ( $ ( 'div.blame' ) . length === 0 ) {
166
- showLineButton ( ) ;
167
- }
167
+ // show code view menu marker (don't show in blame page)
168
+ if ( $ ( 'div.blame' ) . length === 0 ) {
169
+ showLineButton ( ) ;
170
+ }
168
171
169
- $ ( 'html, body' ) . scrollTop ( $first . offset ( ) . top - 200 ) ;
170
- return ;
172
+ $ ( 'html, body' ) . scrollTop ( $first . offset ( ) . top - 200 ) ;
173
+ return ;
174
+ }
171
175
}
172
- m = window . location . hash . match ( / ^ # ( L | n ) ( \d + ) $ / ) ;
176
+ m = window . location . hash . match ( singleRe ) ;
173
177
if ( m ) {
174
178
$first = $list . filter ( `[rel=L${ m [ 2 ] } ]` ) ;
175
- selectRange ( $list , $first ) ;
179
+ if ( $first . length ) {
180
+ selectRange ( $list , $first ) ;
176
181
177
- // show code view menu marker (don't show in blame page)
178
- if ( $ ( 'div.blame' ) . length === 0 ) {
179
- showLineButton ( ) ;
180
- }
182
+ // show code view menu marker (don't show in blame page)
183
+ if ( $ ( 'div.blame' ) . length === 0 ) {
184
+ showLineButton ( ) ;
185
+ }
181
186
182
- $ ( 'html, body' ) . scrollTop ( $first . offset ( ) . top - 200 ) ;
187
+ $ ( 'html, body' ) . scrollTop ( $first . offset ( ) . top - 200 ) ;
188
+ }
183
189
}
184
190
} ) . trigger ( 'hashchange' ) ;
185
191
}
0 commit comments