ver 2009.10.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. data/CHANGELOG +1404 -0
  2. data/MANIFEST +187 -0
  3. data/Rakefile +30 -0
  4. data/TODO +169 -0
  5. data/bin/ver +19 -0
  6. data/config/detect.rb +109 -0
  7. data/config/keymap/vim.rb +239 -0
  8. data/config/rc.rb +0 -0
  9. data/config/scratch +3 -0
  10. data/config/syntax/ANTLR.json +275 -0
  11. data/config/syntax/ASP VB.net.json +228 -0
  12. data/config/syntax/ASP.json +135 -0
  13. data/config/syntax/ActionScript.json +168 -0
  14. data/config/syntax/Ada.json +108 -0
  15. data/config/syntax/Apache.json +342 -0
  16. data/config/syntax/AppleScript.json +721 -0
  17. data/config/syntax/Bibtex.json +253 -0
  18. data/config/syntax/Blog (HTML).json +47 -0
  19. data/config/syntax/Blog (Markdown).json +50 -0
  20. data/config/syntax/Blog (Text).json +45 -0
  21. data/config/syntax/Blog (Textile).json +45 -0
  22. data/config/syntax/Bulletin Board.json +428 -0
  23. data/config/syntax/C++.json +323 -0
  24. data/config/syntax/C.json +694 -0
  25. data/config/syntax/CSS.json +346 -0
  26. data/config/syntax/DOT.json +79 -0
  27. data/config/syntax/Diff.json +136 -0
  28. data/config/syntax/Dylan.json +104 -0
  29. data/config/syntax/Eiffel.json +128 -0
  30. data/config/syntax/Erlang.json +1636 -0
  31. data/config/syntax/F-Script.json +137 -0
  32. data/config/syntax/FXScript.json +260 -0
  33. data/config/syntax/Gri.json +141 -0
  34. data/config/syntax/HTML (Mason).json +207 -0
  35. data/config/syntax/HTML (Rails).json +52 -0
  36. data/config/syntax/HTML (Tcl).json +42 -0
  37. data/config/syntax/HTML for ASP.net.json +736 -0
  38. data/config/syntax/HTML-ASP.json +45 -0
  39. data/config/syntax/HTML.json +614 -0
  40. data/config/syntax/Haskell.json +407 -0
  41. data/config/syntax/Inform.json +80 -0
  42. data/config/syntax/Ini.json +91 -0
  43. data/config/syntax/Io.json +142 -0
  44. data/config/syntax/Java.json +745 -0
  45. data/config/syntax/JavaProperties.json +42 -0
  46. data/config/syntax/JavaScript.json +446 -0
  47. data/config/syntax/LaTeX Beamer.json +65 -0
  48. data/config/syntax/LaTeX Log.json +88 -0
  49. data/config/syntax/LaTeX.json +962 -0
  50. data/config/syntax/Lighttpd.json +93 -0
  51. data/config/syntax/Lisp.json +101 -0
  52. data/config/syntax/Literate Haskell.json +55 -0
  53. data/config/syntax/Logtalk.json +289 -0
  54. data/config/syntax/Lua.json +146 -0
  55. data/config/syntax/M.json +744 -0
  56. data/config/syntax/MEL.json +161 -0
  57. data/config/syntax/MIPS.json +114 -0
  58. data/config/syntax/Mail.json +224 -0
  59. data/config/syntax/Makefile.json +66 -0
  60. data/config/syntax/Markdown.json +644 -0
  61. data/config/syntax/Modula-3.json +80 -0
  62. data/config/syntax/Movable Type.json +348 -0
  63. data/config/syntax/OCaml.json +1391 -0
  64. data/config/syntax/Objective-C++.json +21 -0
  65. data/config/syntax/OpenGL.json +24 -0
  66. data/config/syntax/PHP.json +2184 -0
  67. data/config/syntax/Pascal.json +128 -0
  68. data/config/syntax/Perl.json +2091 -0
  69. data/config/syntax/Plain text.json +49 -0
  70. data/config/syntax/Processing.json +188 -0
  71. data/config/syntax/Quake3 Config.json +54 -0
  72. data/config/syntax/R.json +157 -0
  73. data/config/syntax/Rez.json +137 -0
  74. data/config/syntax/Ruby on Rails.json +170 -0
  75. data/config/syntax/Ruby.json +1753 -0
  76. data/config/syntax/SQL (Rails).json +31 -0
  77. data/config/syntax/SQL.json +435 -0
  78. data/config/syntax/SWIG.json +96 -0
  79. data/config/syntax/Scheme.json +359 -0
  80. data/config/syntax/Shell-Unix-Generic.json +1198 -0
  81. data/config/syntax/Slate.json +265 -0
  82. data/config/syntax/Smarty.json +110 -0
  83. data/config/syntax/Standard ML.json +322 -0
  84. data/config/syntax/Subversion commit message.json +62 -0
  85. data/config/syntax/Tcl.json +278 -0
  86. data/config/syntax/TeX Math.json +83 -0
  87. data/config/syntax/TeX.json +157 -0
  88. data/config/syntax/Textile.json +273 -0
  89. data/config/syntax/Twiki.json +436 -0
  90. data/config/syntax/Vectorscript.json +97 -0
  91. data/config/syntax/XML strict.json +148 -0
  92. data/config/syntax/XML.json +301 -0
  93. data/config/syntax/XSL.json +96 -0
  94. data/config/syntax/YAML.json +293 -0
  95. data/config/syntax/iCalendar.json +51 -0
  96. data/config/syntax/reStructuredText.json +403 -0
  97. data/config/theme/Active4D.json +260 -0
  98. data/config/theme/All Hallow's Eve.json +171 -0
  99. data/config/theme/Amy.json +359 -0
  100. data/config/theme/BBEdit.json +269 -0
  101. data/config/theme/Bespin.json +322 -0
  102. data/config/theme/Blackboard.json +215 -0
  103. data/config/theme/BoysAndGirls01.json +156 -0
  104. data/config/theme/Brilliance Black.json +1695 -0
  105. data/config/theme/Brilliance Dull.json +1451 -0
  106. data/config/theme/Classic Modified.json +288 -0
  107. data/config/theme/Cobalt.json +345 -0
  108. data/config/theme/Cool Glow.json +215 -0
  109. data/config/theme/Dawn.json +258 -0
  110. data/config/theme/Eiffel.json +270 -0
  111. data/config/theme/Espresso Libre.json +247 -0
  112. data/config/theme/Fluidvision.json +272 -0
  113. data/config/theme/IDLE.json +159 -0
  114. data/config/theme/LAZY.json +178 -0
  115. data/config/theme/Mac Classic.json +277 -0
  116. data/config/theme/MagicWB (Amiga).json +231 -0
  117. data/config/theme/Merbivore Soft.json +181 -0
  118. data/config/theme/Merbivore.json +181 -0
  119. data/config/theme/Monokai.json +177 -0
  120. data/config/theme/Notepad2.json +166 -0
  121. data/config/theme/Pastels on Dark.json +437 -0
  122. data/config/theme/RubyBlue.json +226 -0
  123. data/config/theme/Sin City 2.json +361 -0
  124. data/config/theme/Slate.json +270 -0
  125. data/config/theme/Slush & Poppies.json +232 -0
  126. data/config/theme/SpaceCadet.json +143 -0
  127. data/config/theme/Sunburst.json +415 -0
  128. data/config/theme/Twilight BG FG.json +633 -0
  129. data/config/theme/Twilight.json +321 -0
  130. data/config/theme/Whys Poignant.json +119 -0
  131. data/config/theme/Zenburnesque.json +237 -0
  132. data/config/theme/barf.json +155 -0
  133. data/config/theme/fake.json +418 -0
  134. data/config/theme/happydeluxe.json +114 -0
  135. data/config/theme/iLife 05.json +393 -0
  136. data/config/theme/iPlastic.json +177 -0
  137. data/config/theme/mintBlue Dark.json +414 -0
  138. data/config/theme/mintBlue.json +415 -0
  139. data/config/theme/monoindustrial.json +276 -0
  140. data/config/theme/starlight.json +67 -0
  141. data/config/tutorial +74 -0
  142. data/config/welcome +115 -0
  143. data/help/index.verh +14 -0
  144. data/lib/ver.rb +156 -0
  145. data/lib/ver/entry.rb +97 -0
  146. data/lib/ver/keymap.rb +96 -0
  147. data/lib/ver/layout.rb +107 -0
  148. data/lib/ver/methods.rb +19 -0
  149. data/lib/ver/methods/completion.rb +116 -0
  150. data/lib/ver/methods/control.rb +340 -0
  151. data/lib/ver/methods/insert.rb +6 -0
  152. data/lib/ver/methods/move.rb +65 -0
  153. data/lib/ver/methods/search.rb +33 -0
  154. data/lib/ver/methods/select.rb +145 -0
  155. data/lib/ver/methods/views.rb +21 -0
  156. data/lib/ver/mode.rb +160 -0
  157. data/lib/ver/options.rb +207 -0
  158. data/lib/ver/plist.rb +106 -0
  159. data/lib/ver/status.rb +67 -0
  160. data/lib/ver/syntax.rb +68 -0
  161. data/lib/ver/syntax/detector.rb +53 -0
  162. data/lib/ver/syntax/processor.rb +48 -0
  163. data/lib/ver/text.rb +374 -0
  164. data/lib/ver/textpow.rb +357 -0
  165. data/lib/ver/theme.rb +162 -0
  166. data/lib/ver/vendor/fuzzy_file_finder.rb +340 -0
  167. data/lib/ver/view.rb +163 -0
  168. data/lib/ver/view/entry.rb +28 -0
  169. data/lib/ver/view/list.rb +137 -0
  170. data/lib/ver/view/list/buffer.rb +27 -0
  171. data/lib/ver/view/list/fuzzy_file_finder.rb +44 -0
  172. data/lib/ver/view/list/syntax.rb +13 -0
  173. data/lib/ver/view/list/theme.rb +13 -0
  174. data/spec/keymap.rb +224 -0
  175. data/tasks/bacon.rake +49 -0
  176. data/tasks/changelog.rake +18 -0
  177. data/tasks/gem.rake +22 -0
  178. data/tasks/gem_installer.rake +76 -0
  179. data/tasks/grancher.rake +12 -0
  180. data/tasks/install_dependencies.rake +6 -0
  181. data/tasks/manifest.rake +4 -0
  182. data/tasks/plist2json.rake +35 -0
  183. data/tasks/rcov.rake +18 -0
  184. data/tasks/release.rake +12 -0
  185. data/tasks/reversion.rake +8 -0
  186. data/tasks/syntax_list.rake +31 -0
  187. data/ver.gemspec +29 -0
  188. metadata +241 -0
@@ -0,0 +1,65 @@
1
+ {
2
+ "fileTypes": [
3
+
4
+ ],
5
+ "firstLineMatch": "^\\\\documentclass(\\[.*\\])?\\{beamer\\}",
6
+ "foldingStartMarker": "\\\\begin\\{.*\\}|%.*\\(fold\\)\\s*$",
7
+ "foldingStopMarker": "\\\\end\\{.*\\}|%.*\\(end\\)\\s*$",
8
+ "keyEquivalent": "^~B",
9
+ "name": "LaTeX Beamer",
10
+ "patterns": [
11
+ {
12
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)(frame)(\\})",
13
+ "captures": {
14
+ "1": {
15
+ "name": "support.function.be.latex"
16
+ },
17
+ "2": {
18
+ "name": "punctuation.definition.function.latex"
19
+ },
20
+ "3": {
21
+ "name": "punctuation.definition.arguments.begin.latex"
22
+ },
23
+ "4": {
24
+ "name": "variable.parameter.function.latex"
25
+ },
26
+ "5": {
27
+ "name": "punctuation.definition.arguments.end.latex"
28
+ }
29
+ },
30
+ "end": "((\\\\)end)(\\{)(frame)(\\})",
31
+ "name": "meta.function.environment.frame.latex",
32
+ "patterns": [
33
+ {
34
+ "include": "$self"
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "captures": {
40
+ "1": {
41
+ "name": "support.function.frametitle.latex"
42
+ },
43
+ "2": {
44
+ "name": "punctuation.definition.function.latex"
45
+ },
46
+ "3": {
47
+ "name": "punctuation.definition.arguments.begin.latex"
48
+ },
49
+ "4": {
50
+ "name": "entity.name.function.frame.latex"
51
+ },
52
+ "5": {
53
+ "name": "punctuation.definition.arguments.end.latex"
54
+ }
55
+ },
56
+ "match": "((\\\\)frametitle)(\\{)(.*)(\\})",
57
+ "name": "meta.function.frametitle.latex"
58
+ },
59
+ {
60
+ "include": "text.tex.latex"
61
+ }
62
+ ],
63
+ "scopeName": "text.tex.latex.beamer",
64
+ "uuid": "2ACA20AA-B008-469B-A04A-6DE232973ED8"
65
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "firstLineMatch": "This is (pdf|pdfe)?TeXk?, Version ",
3
+ "foldingStartMarker": "\/\\*\\*|\\(\\s*$",
4
+ "foldingStopMarker": "\\*\\*\/|^\\s*\\)",
5
+ "name": "LaTeX Log",
6
+ "patterns": [
7
+ {
8
+ "match": ".*Warning:",
9
+ "name": "invalid.deprecated"
10
+ },
11
+ {
12
+ "match": "[^:]*:\\d*:.*",
13
+ "name": "invalid.deprecated"
14
+ },
15
+ {
16
+ "match": ".*Error|^!.*",
17
+ "name": "invalid.illegal"
18
+ },
19
+ {
20
+ "match": ".*\\.sty",
21
+ "name": "entity.name.function"
22
+ },
23
+ {
24
+ "match": ".*\\.cls",
25
+ "name": "entity.name.type.class"
26
+ },
27
+ {
28
+ "match": ".*\\.cfg",
29
+ "name": "entity.name.tag.configuration"
30
+ },
31
+ {
32
+ "match": ".*\\.def",
33
+ "name": "entity.name.tag.definition"
34
+ },
35
+ {
36
+ "match": ".*Info.*",
37
+ "name": "comment.block.documentation"
38
+ },
39
+ {
40
+ "match": ".*FiXme:",
41
+ "name": "meta.log.latex.fixme"
42
+ },
43
+ {
44
+ "begin": "(Overfull|Underfull)",
45
+ "captures": {
46
+ "1": {
47
+ "name": "keyword.control.hyphenation.latex"
48
+ }
49
+ },
50
+ "end": "(\\[\\]\\n)",
51
+ "name": "meta.log.latex.hyphenation",
52
+ "patterns": [
53
+ {
54
+ "match": "[0-9]+\\-\\-[0-9]+",
55
+ "name": "variable.parameter.hyphenation.latex2"
56
+ }
57
+ ]
58
+ },
59
+ {
60
+ "begin": "(<)",
61
+ "beginCaptures": {
62
+ "0": {
63
+ "name": "punctuation.definition.string.begin.log.latex"
64
+ }
65
+ },
66
+ "end": "(>)",
67
+ "endCaptures": {
68
+ "0": {
69
+ "name": "punctuation.definition.string.end.log.latex"
70
+ }
71
+ },
72
+ "name": "string.unquoted.other.filename.log.latex",
73
+ "patterns": [
74
+ {
75
+ "captures": {
76
+ "1": {
77
+ "name": "entity.name.function.filename.latex"
78
+ }
79
+ },
80
+ "match": "(.*\/.*\\.pdf)",
81
+ "name": "support.function.with-arg.latex"
82
+ }
83
+ ]
84
+ }
85
+ ],
86
+ "scopeName": "text.log.latex",
87
+ "uuid": "F68ACE95-7DB3-4DFB-AA8A-89988B116B5C"
88
+ }
@@ -0,0 +1,962 @@
1
+ {
2
+ "fileTypes": [
3
+ "tex"
4
+ ],
5
+ "firstLineMatch": "^\\\\documentclass(?!.*\\{beamer\\})",
6
+ "foldingStartMarker": "\\\\begin\\{.*\\}|%.*\\(fold\\)\\s*$",
7
+ "foldingStopMarker": "\\\\end\\{.*\\}|%.*\\(end\\)\\s*$",
8
+ "keyEquivalent": "^~L",
9
+ "name": "LaTeX",
10
+ "patterns": [
11
+ {
12
+ "match": "(?=\\s)(?<=\\\\[\\w@]|\\\\[\\w@]{2}|\\\\[\\w@]{3}|\\\\[\\w@]{4}|\\\\[\\w@]{5}|\\\\[\\w@]{6})\\s",
13
+ "name": "meta.space-after-command.latex"
14
+ },
15
+ {
16
+ "begin": "((\\\\)(?:usepackage|documentclass))(?:(\\[)([^\\]]*)(\\]))?(\\{)",
17
+ "beginCaptures": {
18
+ "1": {
19
+ "name": "keyword.control.preamble.latex"
20
+ },
21
+ "2": {
22
+ "name": "punctuation.definition.function.latex"
23
+ },
24
+ "3": {
25
+ "name": "punctuation.definition.arguments.begin.latex"
26
+ },
27
+ "4": {
28
+ "name": "variable.parameter.latex"
29
+ },
30
+ "5": {
31
+ "name": "punctuation.definition.arguments.end.latex"
32
+ },
33
+ "6": {
34
+ "name": "punctuation.definition.arguments.begin.latex"
35
+ }
36
+ },
37
+ "contentName": "support.class.latex",
38
+ "end": "\\}",
39
+ "endCaptures": {
40
+ "0": {
41
+ "name": "punctuation.definition.arguments.end.latex"
42
+ }
43
+ },
44
+ "name": "meta.preamble.latex",
45
+ "patterns": [
46
+ {
47
+ "include": "$self"
48
+ }
49
+ ]
50
+ },
51
+ {
52
+ "begin": "((\\\\)(?:include|input))(\\{)",
53
+ "beginCaptures": {
54
+ "1": {
55
+ "name": "keyword.control.include.latex"
56
+ },
57
+ "2": {
58
+ "name": "punctuation.definition.function.latex"
59
+ },
60
+ "3": {
61
+ "name": "punctuation.definition.arguments.begin.latex"
62
+ }
63
+ },
64
+ "contentName": "support.class.latex",
65
+ "end": "\\}",
66
+ "endCaptures": {
67
+ "0": {
68
+ "name": "punctuation.definition.arguments.end.latex"
69
+ }
70
+ },
71
+ "name": "meta.include.latex",
72
+ "patterns": [
73
+ {
74
+ "include": "$self"
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ "begin": "(?x)\n\t\t\t\t(\t\t\t\t\t\t\t\t\t\t\t\t\t# Capture 1\n\t\t\t\t\t(\\\\)\t\t\t\t\t\t\t\t\t\t\t# Marker\n\t\t\t\t\t(?:\n\t\t\t\t\t\t(?:sub){0,2}section\t\t\t\t\t\t\t# Functions\n\t\t\t\t\t | (?:sub)?paragraph\n\t\t\t\t\t | chapter|part|addpart\n\t\t\t\t\t | addchap|addsec|minisec\n\t\t\t\t\t)\n\t\t\t\t\t(?:\\*)?\t\t\t\t\t\t\t\t\t\t\t# Optional Unnumbered\n\t\t\t\t)\n\t\t\t\t(?:\n\t\t\t\t\t(\\[)([^\\[]*?)(\\])\t\t\t\t\t\t\t\t# Optional Title\n\t\t\t\t)??\n\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t\t\t# Opening Bracket\n\t\t\t\t",
80
+ "beginCaptures": {
81
+ "1": {
82
+ "name": "support.function.section.latex"
83
+ },
84
+ "2": {
85
+ "name": "punctuation.definition.function.latex"
86
+ },
87
+ "3": {
88
+ "name": "punctuation.definition.arguments.optional.begin.latex"
89
+ },
90
+ "4": {
91
+ "name": "entity.name.section.latex"
92
+ },
93
+ "5": {
94
+ "name": "punctuation.definition.arguments.optional.end.latex"
95
+ },
96
+ "6": {
97
+ "name": "punctuation.definition.arguments.begin.latex"
98
+ }
99
+ },
100
+ "comment": "this works OK with all kinds of crazy stuff as long as section is one line",
101
+ "contentName": "entity.name.section.latex",
102
+ "end": "\\}",
103
+ "endCaptures": {
104
+ "0": {
105
+ "name": "punctuation.definition.arguments.end.latex"
106
+ }
107
+ },
108
+ "name": "meta.function.section.latex",
109
+ "patterns": [
110
+ {
111
+ "include": "$self"
112
+ }
113
+ ]
114
+ },
115
+ {
116
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)(lstlisting)(\\})(?:(\\[).*(\\]))?(\\s*%\\s*(?i:Java)\\n?)",
117
+ "captures": {
118
+ "1": {
119
+ "name": "support.function.be.latex"
120
+ },
121
+ "2": {
122
+ "name": "punctuation.definition.function.latex"
123
+ },
124
+ "3": {
125
+ "name": "punctuation.definition.arguments.begin.latex"
126
+ },
127
+ "4": {
128
+ "name": "variable.parameter.function.latex"
129
+ },
130
+ "5": {
131
+ "name": "punctuation.definition.arguments.end.latex"
132
+ },
133
+ "6": {
134
+ "name": "punctuation.definition.arguments.optional.begin.latex"
135
+ },
136
+ "7": {
137
+ "name": "punctuation.definition.arguments.optional.end.latex"
138
+ },
139
+ "8": {
140
+ "name": "comment.line.percentage.latex"
141
+ }
142
+ },
143
+ "contentName": "source.java.embedded",
144
+ "end": "((\\\\)end)(\\{)(lstlisting)(\\})",
145
+ "name": "meta.function.embedded.java.latex",
146
+ "patterns": [
147
+ {
148
+ "include": "source.java"
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)(lstlisting)(\\})(?:(\\[).*(\\]))?(\\s*%\\s*(?i:Python)\\n?)",
154
+ "captures": {
155
+ "1": {
156
+ "name": "support.function.be.latex"
157
+ },
158
+ "2": {
159
+ "name": "punctuation.definition.function.latex"
160
+ },
161
+ "3": {
162
+ "name": "punctuation.definition.arguments.begin.latex"
163
+ },
164
+ "4": {
165
+ "name": "variable.parameter.function.latex"
166
+ },
167
+ "5": {
168
+ "name": "punctuation.definition.arguments.end.latex"
169
+ },
170
+ "6": {
171
+ "name": "punctuation.definition.arguments.optional.begin.latex"
172
+ },
173
+ "7": {
174
+ "name": "punctuation.definition.arguments.optional.end.latex"
175
+ },
176
+ "8": {
177
+ "name": "comment.line.percentage.latex"
178
+ }
179
+ },
180
+ "comment": "Put the lstlisting match before the more general environment listing. Someday it would be nice to make this rule general enough to figure out which language is inside the lstlisting environment rather than my own personal use for python. --Brad",
181
+ "contentName": "source.python.embedded",
182
+ "end": "((\\\\)end)(\\{)(lstlisting)(\\})",
183
+ "name": "meta.function.embedded.python.latex",
184
+ "patterns": [
185
+ {
186
+ "include": "source.python"
187
+ }
188
+ ]
189
+ },
190
+ {
191
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)(lstlisting)(\\})(?:(\\[).*(\\]))?(\\s*%.*\\n?)?",
192
+ "captures": {
193
+ "1": {
194
+ "name": "support.function.be.latex"
195
+ },
196
+ "2": {
197
+ "name": "punctuation.definition.function.latex"
198
+ },
199
+ "3": {
200
+ "name": "punctuation.definition.arguments.begin.latex"
201
+ },
202
+ "4": {
203
+ "name": "variable.parameter.function.latex"
204
+ },
205
+ "5": {
206
+ "name": "punctuation.definition.arguments.end.latex"
207
+ },
208
+ "6": {
209
+ "name": "punctuation.definition.arguments.optional.begin.latex"
210
+ },
211
+ "7": {
212
+ "name": "punctuation.definition.arguments.optional.end.latex"
213
+ },
214
+ "8": {
215
+ "name": "comment.line.percentage.latex"
216
+ }
217
+ },
218
+ "comment": "Put the lstlisting match before the more general environment listing. Someday it would be nice to make this rule general enough to figure out which language is inside the lstlisting environment rather than my own personal use for python. --Brad",
219
+ "contentName": "source.generic.embedded",
220
+ "end": "((\\\\)end)(\\{)(lstlisting)(\\})",
221
+ "name": "meta.function.embedded.generic.latex"
222
+ },
223
+ {
224
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:V|v)erbatim|alltt)(\\})",
225
+ "captures": {
226
+ "1": {
227
+ "name": "support.function.be.latex"
228
+ },
229
+ "2": {
230
+ "name": "punctuation.definition.function.latex"
231
+ },
232
+ "3": {
233
+ "name": "punctuation.definition.arguments.begin.latex"
234
+ },
235
+ "4": {
236
+ "name": "variable.parameter.function.latex"
237
+ },
238
+ "5": {
239
+ "name": "punctuation.definition.arguments.end.latex"
240
+ }
241
+ },
242
+ "contentName": "markup.raw.verbatim.latex",
243
+ "end": "((\\\\)end)(\\{)(\\4)(\\})",
244
+ "name": "meta.function.verbatim.latex"
245
+ },
246
+ {
247
+ "captures": {
248
+ "1": {
249
+ "name": "support.function.url.latex"
250
+ },
251
+ "2": {
252
+ "name": "punctuation.definition.function.latex"
253
+ },
254
+ "3": {
255
+ "name": "punctuation.definition.arguments.begin.latex"
256
+ },
257
+ "4": {
258
+ "name": "markup.underline.link.latex"
259
+ },
260
+ "5": {
261
+ "name": "punctuation.definition.arguments.end.latex"
262
+ }
263
+ },
264
+ "match": "(?:\\s*)((\\\\)(?:url|href))(\\{)([^}]*)(\\})",
265
+ "name": "meta.function.link.url.latex"
266
+ },
267
+ {
268
+ "captures": {
269
+ "1": {
270
+ "name": "support.function.be.latex"
271
+ },
272
+ "2": {
273
+ "name": "punctuation.definition.function.latex"
274
+ },
275
+ "3": {
276
+ "name": "punctuation.definition.arguments.begin.latex"
277
+ },
278
+ "4": {
279
+ "name": "variable.parameter.function.latex"
280
+ },
281
+ "5": {
282
+ "name": "punctuation.definition.arguments.end.latex"
283
+ }
284
+ },
285
+ "comment": "These two patterns match the \\begin{document} and \\end{document} commands, so that the environment matching pattern following them will ignore those commands.",
286
+ "match": "(?:\\s*)((\\\\)begin)(\\{)(document)(\\})",
287
+ "name": "meta.function.begin-document.latex"
288
+ },
289
+ {
290
+ "captures": {
291
+ "1": {
292
+ "name": "support.function.be.latex"
293
+ },
294
+ "2": {
295
+ "name": "punctuation.definition.function.latex"
296
+ },
297
+ "3": {
298
+ "name": "punctuation.definition.arguments.begin.latex"
299
+ },
300
+ "4": {
301
+ "name": "variable.parameter.function.latex"
302
+ },
303
+ "5": {
304
+ "name": "punctuation.definition.arguments.end.latex"
305
+ }
306
+ },
307
+ "match": "(?:\\s*)((\\\\)end)(\\{)(document)(\\})",
308
+ "name": "meta.function.end-document.latex"
309
+ },
310
+ {
311
+ "begin": "(?x)\n\t\t\t\t\t(?:\\s*)\t\t\t\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t((\\\\)begin)\t\t\t\t\t\t\t\t\t# Marker - Function\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t# Open Bracket\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\talign|equation|eqnarray\t\t\t# Argument\n\t\t\t\t\t\t\t | multline|aligned|alignat\n\t\t\t\t\t\t\t | split|gather|gathered\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t(?:\\*)?\t\t\t\t\t\t\t\t# Optional Unnumbered\n\t\t\t\t\t\t)\n\t\t\t\t\t(\\})\t\t\t\t\t\t\t\t\t\t# Close Bracket\n\t\t\t\t\t(\\s*\\n)?\t\t\t\t# Match to end of line absent of content\n\t\t\t\t",
312
+ "captures": {
313
+ "1": {
314
+ "name": "support.function.be.latex"
315
+ },
316
+ "2": {
317
+ "name": "punctuation.definition.function.latex"
318
+ },
319
+ "3": {
320
+ "name": "punctuation.definition.arguments.begin.latex"
321
+ },
322
+ "4": {
323
+ "name": "variable.parameter.function.latex"
324
+ },
325
+ "5": {
326
+ "name": "punctuation.definition.arguments.end.latex"
327
+ }
328
+ },
329
+ "contentName": "string.other.math.block.environment.latex",
330
+ "end": "(?x)\n\t\t\t\t\t(?:\\s*)\t\t\t\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t((\\\\)end)\t\t\t\t\t\t\t\t\t# Marker - Function\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t# Open Bracket\n\t\t\t\t\t\t(\\4)\t\t\t\t# Previous capture from begin\n\t\t\t\t\t(\\})\t\t\t\t\t\t\t\t\t\t# Close Bracket\n\t\t\t\t\t(?:\\s*\\n)?\t\t\t\t# Match to end of line absent of content\n\t\t\t\t",
331
+ "name": "meta.function.environment.math.latex",
332
+ "patterns": [
333
+ {
334
+ "include": "$base"
335
+ }
336
+ ]
337
+ },
338
+ {
339
+ "begin": "(?x)\n\t\t\t\t\t(?:\\s*)\t\t\t\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t((\\\\)begin)\t\t\t\t\t\t\t\t\t# Marker - Function\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t# Open Bracket\n\t\t\t\t\t\t(array|tabular[xy*]?)\n\t\t\t\t\t(\\})\t\t\t\t\t\t\t\t\t\t# Close Bracket\n\t\t\t\t\t(\\s*\\n)?\t\t\t\t# Match to end of line absent of content\n\t\t\t\t",
340
+ "captures": {
341
+ "1": {
342
+ "name": "support.function.be.latex"
343
+ },
344
+ "2": {
345
+ "name": "punctuation.definition.function.latex"
346
+ },
347
+ "3": {
348
+ "name": "punctuation.definition.arguments.begin.latex"
349
+ },
350
+ "4": {
351
+ "name": "variable.parameter.function.latex"
352
+ },
353
+ "5": {
354
+ "name": "punctuation.definition.arguments.end.latex"
355
+ }
356
+ },
357
+ "contentName": "meta.data.environment.tabular.latex",
358
+ "end": "(?x)\n\t\t\t\t\t(?:\\s*)\t\t\t\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t((\\\\)end)\t\t\t\t\t\t\t\t\t# Marker - Function\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t# Open Bracket\n\t\t\t\t\t\t(\\4)\t\t\t\t# Previous capture from begin\n\t\t\t\t\t(\\})\t\t\t\t\t\t\t\t\t\t# Close Bracket\n\t\t\t\t\t(?:\\s*\\n)?\t\t\t\t# Match to end of line absent of content\n\t\t\t\t",
359
+ "name": "meta.function.environment.tabular.latex",
360
+ "patterns": [
361
+ {
362
+ "match": "\\\\",
363
+ "name": "punctuation.definition.table.row.latex"
364
+ },
365
+ {
366
+ "begin": "(?:^|(?<=\\\\\\\\))(?!\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))",
367
+ "end": "(?=\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))",
368
+ "name": "meta.row.environment.tabular.latex",
369
+ "patterns": [
370
+ {
371
+ "match": "&",
372
+ "name": "punctuation.definition.table.cell.latex"
373
+ },
374
+ {
375
+ "begin": "(?:^|(?<=&))((?!&|\\\\\\\\|$))",
376
+ "end": "(?=&|\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))",
377
+ "name": "meta.cell.environment.tabular.latex",
378
+ "patterns": [
379
+ {
380
+ "include": "$base"
381
+ }
382
+ ]
383
+ },
384
+ {
385
+ "include": "$base"
386
+ }
387
+ ]
388
+ },
389
+ {
390
+ "include": "$base"
391
+ }
392
+ ]
393
+ },
394
+ {
395
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)(itemize|enumerate|description|list)(\\})",
396
+ "captures": {
397
+ "1": {
398
+ "name": "support.function.be.latex"
399
+ },
400
+ "2": {
401
+ "name": "punctuation.definition.function.latex"
402
+ },
403
+ "3": {
404
+ "name": "punctuation.definition.arguments.latex"
405
+ },
406
+ "4": {
407
+ "name": "variable.parameter.function.latex"
408
+ },
409
+ "5": {
410
+ "name": "punctuation.definition.arguments.latex"
411
+ }
412
+ },
413
+ "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?",
414
+ "name": "meta.function.environment.list.latex",
415
+ "patterns": [
416
+ {
417
+ "include": "$base"
418
+ }
419
+ ]
420
+ },
421
+ {
422
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)(tikzpicture)(\\})",
423
+ "captures": {
424
+ "1": {
425
+ "name": "support.function.be.latex"
426
+ },
427
+ "2": {
428
+ "name": "punctuation.definition.function.latex"
429
+ },
430
+ "3": {
431
+ "name": "punctuation.definition.arguments.latex"
432
+ },
433
+ "4": {
434
+ "name": "variable.parameter.function.latex"
435
+ },
436
+ "5": {
437
+ "name": "punctuation.definition.arguments.latex"
438
+ }
439
+ },
440
+ "end": "((\\\\)end)(\\{)(tikzpicture)(\\})(?:\\s*\\n)?",
441
+ "name": "meta.function.environment.latex.tikz",
442
+ "patterns": [
443
+ {
444
+ "include": "text.tex.latex.tikz"
445
+ },
446
+ {
447
+ "include": "text.tex.latex"
448
+ }
449
+ ]
450
+ },
451
+ {
452
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)(\\w+[*]?)(\\})",
453
+ "captures": {
454
+ "1": {
455
+ "name": "support.function.be.latex"
456
+ },
457
+ "2": {
458
+ "name": "punctuation.definition.function.latex"
459
+ },
460
+ "3": {
461
+ "name": "punctuation.definition.arguments.latex"
462
+ },
463
+ "4": {
464
+ "name": "variable.parameter.function.latex"
465
+ },
466
+ "5": {
467
+ "name": "punctuation.definition.arguments.latex"
468
+ }
469
+ },
470
+ "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?",
471
+ "name": "meta.function.environment.general.latex",
472
+ "patterns": [
473
+ {
474
+ "include": "$base"
475
+ }
476
+ ]
477
+ },
478
+ {
479
+ "captures": {
480
+ "1": {
481
+ "name": "punctuation.definition.function.latex"
482
+ }
483
+ },
484
+ "match": "(\\\\)(newcommand|renewcommand)\\b",
485
+ "name": "storage.type.function.latex"
486
+ },
487
+ {
488
+ "begin": "((\\\\)marginpar)(\\{)",
489
+ "beginCaptures": {
490
+ "1": {
491
+ "name": "support.function.marginpar.latex"
492
+ },
493
+ "2": {
494
+ "name": "punctuation.definition.function.latex"
495
+ },
496
+ "3": {
497
+ "name": "punctuation.definition.marginpar.begin.latex"
498
+ }
499
+ },
500
+ "contentName": "meta.paragraph.margin.latex",
501
+ "end": "\\}",
502
+ "endCaptures": {
503
+ "0": {
504
+ "name": "punctuation.definition.marginpar.end.latex"
505
+ }
506
+ },
507
+ "patterns": [
508
+ {
509
+ "include": "$base"
510
+ }
511
+ ]
512
+ },
513
+ {
514
+ "begin": "((\\\\)footnote)(\\{)",
515
+ "beginCaptures": {
516
+ "1": {
517
+ "name": "support.function.footnote.latex"
518
+ },
519
+ "2": {
520
+ "name": "punctuation.definition.function.latex"
521
+ },
522
+ "3": {
523
+ "name": "punctuation.definition.footnote.begin.latex"
524
+ }
525
+ },
526
+ "contentName": "meta.footnote.latex",
527
+ "end": "\\}",
528
+ "endCaptures": {
529
+ "0": {
530
+ "name": "punctuation.definition.footnote.end.latex"
531
+ }
532
+ },
533
+ "patterns": [
534
+ {
535
+ "include": "$base"
536
+ }
537
+ ]
538
+ },
539
+ {
540
+ "begin": "((\\\\)emph)(\\{)",
541
+ "beginCaptures": {
542
+ "1": {
543
+ "name": "support.function.emph.latex"
544
+ },
545
+ "2": {
546
+ "name": "punctuation.definition.function.latex"
547
+ },
548
+ "3": {
549
+ "name": "punctuation.definition.emph.begin.latex"
550
+ }
551
+ },
552
+ "contentName": "markup.italic.emph.latex",
553
+ "end": "\\}",
554
+ "endCaptures": {
555
+ "0": {
556
+ "name": "punctuation.definition.emph.end.latex"
557
+ }
558
+ },
559
+ "name": "meta.function.emph.latex",
560
+ "patterns": [
561
+ {
562
+ "include": "$base"
563
+ }
564
+ ]
565
+ },
566
+ {
567
+ "begin": "((\\\\)textit)(\\{)",
568
+ "captures": {
569
+ "1": {
570
+ "name": "support.function.textit.latex"
571
+ },
572
+ "2": {
573
+ "name": "punctuation.definition.function.latex"
574
+ },
575
+ "3": {
576
+ "name": "punctuation.definition.textit.begin.latex"
577
+ }
578
+ },
579
+ "comment": "We put the keyword in a capture and name this capture, so that disabling spell checking for \u201ckeyword\u201d won't be inherited by the argument to \\textit{...}.\n\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions",
580
+ "contentName": "markup.italic.textit.latex",
581
+ "end": "\\}",
582
+ "endCaptures": {
583
+ "0": {
584
+ "name": "punctuation.definition.textit.end.latex"
585
+ }
586
+ },
587
+ "name": "meta.function.textit.latex",
588
+ "patterns": [
589
+ {
590
+ "include": "$base"
591
+ }
592
+ ]
593
+ },
594
+ {
595
+ "begin": "((\\\\)textbf)(\\{)",
596
+ "captures": {
597
+ "1": {
598
+ "name": "support.function.textbf.latex"
599
+ },
600
+ "2": {
601
+ "name": "punctuation.definition.function.latex"
602
+ },
603
+ "3": {
604
+ "name": "punctuation.definition.textbf.begin.latex"
605
+ }
606
+ },
607
+ "contentName": "markup.bold.textbf.latex",
608
+ "end": "\\}",
609
+ "endCaptures": {
610
+ "0": {
611
+ "name": "punctuation.definition.textbf.end.latex"
612
+ }
613
+ },
614
+ "name": "meta.function.textbf.latex",
615
+ "patterns": [
616
+ {
617
+ "include": "$base"
618
+ }
619
+ ]
620
+ },
621
+ {
622
+ "begin": "((\\\\)texttt)(\\{)",
623
+ "captures": {
624
+ "1": {
625
+ "name": "support.function.texttt.latex"
626
+ },
627
+ "2": {
628
+ "name": "punctuation.definition.function.latex"
629
+ },
630
+ "3": {
631
+ "name": "punctuation.definition.texttt.begin.latex"
632
+ }
633
+ },
634
+ "contentName": "markup.raw.texttt.latex",
635
+ "end": "\\}",
636
+ "endCaptures": {
637
+ "0": {
638
+ "name": "punctuation.definition.texttt.end.latex"
639
+ }
640
+ },
641
+ "name": "meta.function.texttt.latex",
642
+ "patterns": [
643
+ {
644
+ "include": "$base"
645
+ }
646
+ ]
647
+ },
648
+ {
649
+ "captures": {
650
+ "0": {
651
+ "name": "keyword.other.item.latex"
652
+ },
653
+ "1": {
654
+ "name": "punctuation.definition.keyword.latex"
655
+ }
656
+ },
657
+ "match": "(\\\\)item\\b",
658
+ "name": "meta.scope.item.latex"
659
+ },
660
+ {
661
+ "begin": "(?x)\n\t\t\t\t\t(\n\t\t\t\t\t\t(\\\\)\t\t\t\t\t\t\t\t\t\t# Marker\n\t\t\t\t\t\t(?:foot)?(?:full)?(?:no)?(?:short)?\t\t# Function Name\n\t\t\t\t\t\t[cC]ite\n\t\t\t\t\t\t(?:al)?(?:t|p|author|year(?:par)?|title)?[ANP]*\n\t\t\t\t\t\t\\*?\t\t\t\t\t\t\t\t\t\t\t# Optional Unabreviated\n\t\t\t\t\t)\n\t\t\t\t\t(?:(\\[)[^\\]]*(\\]))?\t\t\t\t\t\t\t\t# Optional\n\t\t\t\t\t(?:(\\[)[^\\]]*(\\]))?\t\t\t\t\t\t\t\t# Arguments\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t\t# Opening Bracket\n\t\t\t\t",
662
+ "captures": {
663
+ "1": {
664
+ "name": "keyword.control.cite.latex"
665
+ },
666
+ "2": {
667
+ "name": "punctuation.definition.keyword.latex"
668
+ },
669
+ "3": {
670
+ "name": "punctuation.definition.arguments.optional.begin.latex"
671
+ },
672
+ "4": {
673
+ "name": "punctuation.definition.arguments.optional.end.latex"
674
+ },
675
+ "5": {
676
+ "name": "punctuation.definition.arguments.optional.begin.latex"
677
+ },
678
+ "6": {
679
+ "name": "punctuation.definition.arguments.optional.end.latex"
680
+ },
681
+ "7": {
682
+ "name": "punctuation.definition.arguments.latex"
683
+ }
684
+ },
685
+ "end": "\\}",
686
+ "endCaptures": {
687
+ "0": {
688
+ "name": "punctuation.definition.arguments.latex"
689
+ }
690
+ },
691
+ "name": "meta.citation.latex",
692
+ "patterns": [
693
+ {
694
+ "match": "[\\w:.]+",
695
+ "name": "constant.other.reference.citation.latex"
696
+ }
697
+ ]
698
+ },
699
+ {
700
+ "begin": "((\\\\)(?:\\w*[r|R]ef\\*?))(\\{)",
701
+ "beginCaptures": {
702
+ "1": {
703
+ "name": "keyword.control.ref.latex"
704
+ },
705
+ "2": {
706
+ "name": "punctuation.definition.keyword.latex"
707
+ },
708
+ "3": {
709
+ "name": "punctuation.definition.arguments.begin.latex"
710
+ }
711
+ },
712
+ "end": "\\}",
713
+ "endCaptures": {
714
+ "0": {
715
+ "name": "punctuation.definition.arguments.begin.latex"
716
+ }
717
+ },
718
+ "name": "meta.reference.label.latex",
719
+ "patterns": [
720
+ {
721
+ "match": "[a-zA-Z0-9\\.,:\/*!^_-]",
722
+ "name": "constant.other.reference.label.latex"
723
+ }
724
+ ]
725
+ },
726
+ {
727
+ "begin": "((\\\\)label)(\\{)",
728
+ "beginCaptures": {
729
+ "1": {
730
+ "name": "keyword.control.label.latex"
731
+ },
732
+ "2": {
733
+ "name": "punctuation.definition.keyword.latex"
734
+ },
735
+ "3": {
736
+ "name": "punctuation.definition.arguments.begin.latex"
737
+ }
738
+ },
739
+ "end": "\\}",
740
+ "endCaptures": {
741
+ "0": {
742
+ "name": "punctuation.definition.arguments.end.latex"
743
+ }
744
+ },
745
+ "name": "meta.definition.label.latex",
746
+ "patterns": [
747
+ {
748
+ "match": "[a-zA-Z0-9\\.,:\/*!^_-]",
749
+ "name": "variable.parameter.definition.label.latex"
750
+ }
751
+ ]
752
+ },
753
+ {
754
+ "begin": "((\\\\)verb[\\*]?)\\s*((\\\\)scantokens)(\\{)",
755
+ "beginCaptures": {
756
+ "1": {
757
+ "name": "support.function.verb.latex"
758
+ },
759
+ "2": {
760
+ "name": "punctuation.definition.function.latex"
761
+ },
762
+ "3": {
763
+ "name": "support.function.verb.latex"
764
+ },
765
+ "4": {
766
+ "name": "punctuation.definition.verb.latex"
767
+ },
768
+ "5": {
769
+ "name": "punctuation.definition.begin.latex"
770
+ }
771
+ },
772
+ "contentName": "markup.raw.verb.latex",
773
+ "end": "(\\})",
774
+ "endCaptures": {
775
+ "1": {
776
+ "name": "punctuation.definition.end.latex"
777
+ }
778
+ },
779
+ "name": "meta.function.verb.latex",
780
+ "patterns": [
781
+ {
782
+ "include": "$self"
783
+ }
784
+ ]
785
+ },
786
+ {
787
+ "captures": {
788
+ "1": {
789
+ "name": "support.function.verb.latex"
790
+ },
791
+ "2": {
792
+ "name": "punctuation.definition.function.latex"
793
+ },
794
+ "3": {
795
+ "name": "punctuation.definition.verb.latex"
796
+ },
797
+ "4": {
798
+ "name": "markup.raw.verb.latex"
799
+ },
800
+ "5": {
801
+ "name": "punctuation.definition.verb.latex"
802
+ }
803
+ },
804
+ "match": "((\\\\)verb[\\*]?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)",
805
+ "name": "meta.function.verb.latex"
806
+ },
807
+ {
808
+ "begin": "\"`",
809
+ "beginCaptures": {
810
+ "0": {
811
+ "name": "punctuation.definition.string.begin.latex"
812
+ }
813
+ },
814
+ "end": "\"'",
815
+ "endCaptures": {
816
+ "0": {
817
+ "name": "punctuation.definition.string.end.latex"
818
+ }
819
+ },
820
+ "name": "string.quoted.double.european.latex",
821
+ "patterns": [
822
+ {
823
+ "include": "$base"
824
+ }
825
+ ]
826
+ },
827
+ {
828
+ "begin": "``",
829
+ "beginCaptures": {
830
+ "0": {
831
+ "name": "punctuation.definition.string.begin.latex"
832
+ }
833
+ },
834
+ "end": "''|\"",
835
+ "endCaptures": {
836
+ "0": {
837
+ "name": "punctuation.definition.string.end.latex"
838
+ }
839
+ },
840
+ "name": "string.quoted.double.latex",
841
+ "patterns": [
842
+ {
843
+ "include": "$base"
844
+ }
845
+ ]
846
+ },
847
+ {
848
+ "begin": "\">",
849
+ "beginCaptures": {
850
+ "0": {
851
+ "name": "punctuation.definition.string.begin.latex"
852
+ }
853
+ },
854
+ "end": "\"<",
855
+ "endCaptures": {
856
+ "0": {
857
+ "name": "punctuation.definition.string.end.latex"
858
+ }
859
+ },
860
+ "name": "string.quoted.double.guillemot.latex",
861
+ "patterns": [
862
+ {
863
+ "include": "$base"
864
+ }
865
+ ]
866
+ },
867
+ {
868
+ "begin": "\"<",
869
+ "beginCaptures": {
870
+ "0": {
871
+ "name": "punctuation.definition.string.begin.latex"
872
+ }
873
+ },
874
+ "end": "\">",
875
+ "endCaptures": {
876
+ "0": {
877
+ "name": "punctuation.definition.string.end.latex"
878
+ }
879
+ },
880
+ "name": "string.quoted.double.guillemot.latex",
881
+ "patterns": [
882
+ {
883
+ "include": "$base"
884
+ }
885
+ ]
886
+ },
887
+ {
888
+ "begin": "\\\\\\(",
889
+ "beginCaptures": {
890
+ "0": {
891
+ "name": "punctuation.definition.string.begin.latex"
892
+ }
893
+ },
894
+ "end": "\\\\\\)",
895
+ "endCaptures": {
896
+ "0": {
897
+ "name": "punctuation.definition.string.end.latex"
898
+ }
899
+ },
900
+ "name": "string.other.math.latex",
901
+ "patterns": [
902
+ {
903
+ "include": "$base"
904
+ }
905
+ ]
906
+ },
907
+ {
908
+ "begin": "\\\\\\[",
909
+ "beginCaptures": {
910
+ "0": {
911
+ "name": "punctuation.definition.string.begin.latex"
912
+ }
913
+ },
914
+ "end": "\\\\\\]",
915
+ "endCaptures": {
916
+ "0": {
917
+ "name": "punctuation.definition.string.end.latex"
918
+ }
919
+ },
920
+ "name": "string.other.math.latex",
921
+ "patterns": [
922
+ {
923
+ "include": "$base"
924
+ }
925
+ ]
926
+ },
927
+ {
928
+ "match": "(?<!\\S)'.*?'",
929
+ "name": "invalid.illegal.string.quoted.single.latex"
930
+ },
931
+ {
932
+ "match": "(?<!\\S)\".*?\"",
933
+ "name": "invalid.illegal.string.quoted.double.latex"
934
+ },
935
+ {
936
+ "captures": {
937
+ "1": {
938
+ "name": "punctuation.definition.constant.latex"
939
+ }
940
+ },
941
+ "match": "(\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\b",
942
+ "name": "constant.character.latex"
943
+ },
944
+ {
945
+ "captures": {
946
+ "1": {
947
+ "name": "punctuation.definition.column-specials.begin.latex"
948
+ },
949
+ "2": {
950
+ "name": "punctuation.definition.column-specials.end.latex"
951
+ }
952
+ },
953
+ "match": "(?:<|>)(\\{)\\$(\\})",
954
+ "name": "meta.column-specials.latex"
955
+ },
956
+ {
957
+ "include": "text.tex"
958
+ }
959
+ ],
960
+ "scopeName": "text.tex.latex",
961
+ "uuid": "3BEEA00C-6B1D-11D9-B8AD-000D93589AF6"
962
+ }