File tree 4 files changed +25
-18
lines changed
4 files changed +25
-18
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,9 @@ This project adheres to [Semantic Versioning](http://semver.org).
9
9
[ Unpublished]
10
10
------------------------------------------------------------------------
11
11
* __ Added:__ Comment highlighting for interpreter directives (hashbangs)
12
+ * __ Fixed:__ [ Various inaccuracies] [ 1 ] related to modeline matching
13
+
14
+ [ 1 ] : https://github.com/github/linguist/pull/5271
12
15
13
16
14
17
Original file line number Diff line number Diff line change @@ -21,16 +21,18 @@ firstLineMatch: """(?x)
21
21
(?:$|\\s)
22
22
|
23
23
# Modeline
24
- (?i :
24
+ (?:
25
25
# Emacs
26
- -\\*-(?:\\s *(?=[^:;\\s]+\\s *-\\*-)|(?:.*?[;\\s ]|(?<=-\\*-))mode\\s*:\\s *)
27
- emacs-lisp
28
- (?=[\\s ;]|(?<![-*])-\\*-).*?-\\*-
26
+ -\\*-(?i:[ \\t] *(?=[^:;\\s]+[ \\t] *-\\*-)|(?:.*?[ \\t; ]|(?<=-\\*-))[ \\t]* mode[ \\t]*:[ \\t] *)
27
+ (?i: emacs-lisp)
28
+ (?=[ \\t ;]|(?<![-*])-\\*-).*?-\\*-
29
29
|
30
30
# Vim
31
- (?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=
32
- (?:emacs-lisp|elisp)
33
- (?=\\s|:|$)
31
+ (?:(?:^|[ \\t])(?:vi|Vi(?=m))(?:m[<=>]?[0-9]+|m)?|[ \\t]ex)(?=:(?=[ \\t]*set?[ \\t][^\\r\\n:]+:)|:(?![ \\t]*set?[ \\t]))
32
+ (?:(?:[ \\t]*:[ \\t]*|[ \\t])\\w*(?:[ \\t]*=(?:[^\\\\\\s]|\\\\.)*)?)*[ \\t:]
33
+ (?:filetype|ft|syntax)[ \\t]*=
34
+ (?i:emacs-lisp|elisp)
35
+ (?=$|\\s|:)
34
36
)
35
37
"""
36
38
patterns: [{
Original file line number Diff line number Diff line change @@ -19,19 +19,21 @@ patterns: [{
19
19
end : " (?=A)B"
20
20
patterns : [include : " #main" ]
21
21
}]
22
- firstLineMatch : """ (?ix )
22
+ firstLineMatch : """ (?x )
23
23
24
24
# Emacs modeline
25
- -\\ *-(?: \\ s *(?=[^:;\\ s]+\\ s *-\\ *-)|(?:.*?[; \\ s ]|(?<=-\\ *-))mode\\ s*: \\ s *)
26
- muse
27
- (?=[\\ s ;]|(?<![-*])-\\ *-).*?-\\ *-
25
+ -\\ *-(?i:[ \\ t] *(?=[^:;\\ s]+[ \\ t] *-\\ *-)|(?:.*?[ \\ t; ]|(?<=-\\ *-))[ \\ t]* mode[ \\ t]*:[ \\ t] *)
26
+ (?i: muse)
27
+ (?=[ \\ t ;]|(?<![-*])-\\ *-).*?-\\ *-
28
28
29
29
|
30
30
31
31
# Vim modeline
32
- (?:(?:\\ s|^)vi(?:m[<=>]?\\ d+|m)?|\\ sex)(?=:(?=\\ s*set?\\ s[^\\ n:]+:)|:(?!\\ s* set?\\ s))(?:(?:\\ s|\\ s*:\\ s*)\\ w*(?:\\ s*=(?:[^\\ n\\\\\\ s]|\\\\ .)*)?)*[\\ s:](?:filetype|ft|syntax)\\ s*=
33
- muse
34
- (?=\\ s|:|$)
32
+ (?:(?:^|[ \\ t])(?:vi|Vi(?=m))(?:m[<=>]?[0-9]+|m)?|[ \\ t]ex)(?=:(?=[ \\ t]*set?[ \\ t][^\\ r\\ n:]+:)|:(?![ \\ t]*set?[ \\ t]))
33
+ (?:(?:[ \\ t]*:[ \\ t]*|[ \\ t])\\ w*(?:[ \\ t]*=(?:[^\\\\\\ s]|\\\\ .)*)?)*[ \\ t:]
34
+ (?:filetype|ft|syntax)[ \\ t]*=
35
+ (?i:muse)
36
+ (?=$|\\ s|:)
35
37
"""
36
38
37
39
repository :
Original file line number Diff line number Diff line change @@ -4,11 +4,11 @@ fileTypes: [
4
4
" yasnippet"
5
5
" yas"
6
6
]
7
- firstLineMatch : """ (?xi )
7
+ firstLineMatch : """ (?x )
8
8
# Emacs modeline
9
- -\\ *-(?: \\ s *(?=[^:;\\ s]+\\ s *-\\ *-)|(?:.*?[; \\ s ]|(?<=-\\ *-))mode\\ s*: \\ s *)
10
- (?:yasnippet|snippet)
11
- (?=[\\ s ;]|(?<![-*])-\\ *-).*?-\\ *-
9
+ -\\ *-(?i:[ \\ t] *(?=[^:;\\ s]+[ \\ t] *-\\ *-)|(?:.*?[ \\ t; ]|(?<=-\\ *-))[ \\ t]* mode[ \\ t]*:[ \\ t] *)
10
+ (?i :yasnippet|snippet)
11
+ (?=[ \\ t ;]|(?<![-*])-\\ *-).*?-\\ *-
12
12
"""
13
13
14
14
patterns : [{
You can’t perform that action at this time.
0 commit comments