ver 2009.10.14 → 2009.11.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (318) hide show
  1. data/CHANGELOG +1094 -0
  2. data/MANIFEST +227 -25
  3. data/README.textile +185 -0
  4. data/bin/ver +96 -12
  5. data/config/detect.rb +73 -21
  6. data/config/keymap/emacs.rb +66 -0
  7. data/config/keymap/vim.rb +250 -140
  8. data/config/preferences/ANTLR.json +10 -0
  9. data/config/preferences/ASP vb.NET.json +3 -0
  10. data/config/preferences/ASP.json +15 -0
  11. data/config/preferences/ActionScript.json +755 -0
  12. data/config/preferences/Active4D.json +89 -0
  13. data/config/preferences/Ada.json +23 -0
  14. data/config/preferences/Ant.json +356 -0
  15. data/config/preferences/Apache.json +644 -0
  16. data/config/preferences/AppleScript.json +92 -0
  17. data/config/preferences/Bison.json +3 -0
  18. data/config/preferences/Blogging.json +3 -0
  19. data/config/preferences/C.json +127 -0
  20. data/config/preferences/CMake.json +41 -0
  21. data/config/preferences/CSS.json +461 -0
  22. data/config/preferences/CTags.json +3 -0
  23. data/config/preferences/CVS.json +3 -0
  24. data/config/preferences/ColdFusion.json +32 -0
  25. data/config/preferences/D.json +58 -0
  26. data/config/preferences/Darcs.json +3 -0
  27. data/config/preferences/Diff.json +67 -0
  28. data/config/preferences/DokuWiki.json +19 -0
  29. data/config/preferences/Doxygen.json +3 -0
  30. data/config/preferences/Dylan.json +3 -0
  31. data/config/preferences/Eiffel.json +59 -0
  32. data/config/preferences/Erlang.json +72 -0
  33. data/config/preferences/Experimental.json +1356 -0
  34. data/config/preferences/F-Script.json +87 -0
  35. data/config/preferences/FXScript.json +78 -0
  36. data/config/preferences/FileMerge.json +3 -0
  37. data/config/preferences/Fortran.json +158 -0
  38. data/config/preferences/GTD2.json +11 -0
  39. data/config/preferences/GTDAlt.json +20 -0
  40. data/config/preferences/GetBundle.json +3 -0
  41. data/config/preferences/Gettext.json +24 -0
  42. data/config/preferences/Graphviz.json +42 -0
  43. data/config/preferences/Greasemonkey.json +3 -0
  44. data/config/preferences/Gri.json +34 -0
  45. data/config/preferences/HTML.json +492 -0
  46. data/config/preferences/Haskell.json +72 -0
  47. data/config/preferences/Hotkey.json +3 -0
  48. data/config/preferences/ImageBrowser.json +3 -0
  49. data/config/preferences/Inform.json +3 -0
  50. data/config/preferences/Ini.json +60 -0
  51. data/config/preferences/Installer.json +3 -0
  52. data/config/preferences/Io.json +64 -0
  53. data/config/preferences/JSON.json +3 -0
  54. data/config/preferences/Java.json +86 -0
  55. data/config/preferences/JavaDoc.json +3 -0
  56. data/config/preferences/JavaScript.json +76 -0
  57. data/config/preferences/LaTeX.json +267 -0
  58. data/config/preferences/Lex/Flex.json +3 -0
  59. data/config/preferences/Lighttpd.json +3 -0
  60. data/config/preferences/LilyPond.json +77 -0
  61. data/config/preferences/Lisp.json +63 -0
  62. data/config/preferences/Logo.json +58 -0
  63. data/config/preferences/Logtalk.json +236 -0
  64. data/config/preferences/Lua.json +24 -0
  65. data/config/preferences/MEL.json +19 -0
  66. data/config/preferences/MIPS Assembler.json +26 -0
  67. data/config/preferences/MacPorts.json +3 -0
  68. data/config/preferences/Mail.json +3 -0
  69. data/config/preferences/Make.json +16 -0
  70. data/config/preferences/Markdown.json +102 -0
  71. data/config/preferences/Math.json +3 -0
  72. data/config/preferences/Matlab.json +128 -0
  73. data/config/preferences/Maven.json +308 -0
  74. data/config/preferences/Mediawiki.json +73 -0
  75. data/config/preferences/Mercurial.json +3 -0
  76. data/config/preferences/Modula.json +37 -0
  77. data/config/preferences/MoinMoin.json +52 -0
  78. data/config/preferences/Navigation.json +3 -0
  79. data/config/preferences/Nemerle.json +3 -0
  80. data/config/preferences/OCaml Code Completion.json +3 -0
  81. data/config/preferences/OCaml.json +163 -0
  82. data/config/preferences/ODCompletion.json +3 -0
  83. data/config/preferences/Objective-C.json +84 -0
  84. data/config/preferences/OpenGL.json +3331 -0
  85. data/config/preferences/Outlines.json +3 -0
  86. data/config/preferences/Pascal.json +60 -0
  87. data/config/preferences/Perforce.json +3 -0
  88. data/config/preferences/Perl.json +15 -0
  89. data/config/preferences/PmWiki.json +27 -0
  90. data/config/preferences/Postscript.json +15 -0
  91. data/config/preferences/Processing.json +32 -0
  92. data/config/preferences/Prolog.json +3 -0
  93. data/config/preferences/Propel.json +3 -0
  94. data/config/preferences/Python.json +38 -0
  95. data/config/preferences/Quake.json +15 -0
  96. data/config/preferences/R.json +33 -0
  97. data/config/preferences/Ragel.json +15 -0
  98. data/config/preferences/Regular Expressions.json +3 -0
  99. data/config/preferences/Remind.json +15 -0
  100. data/config/preferences/Rez.json +46 -0
  101. data/config/preferences/Ruby.json +98 -0
  102. data/config/preferences/S5 Slide Show.json +20 -0
  103. data/config/preferences/SCons.json +3 -0
  104. data/config/preferences/SQL.json +32 -0
  105. data/config/preferences/SSH Config.json +15 -0
  106. data/config/preferences/SVK.json +3 -0
  107. data/config/preferences/SWIG.json +3 -0
  108. data/config/preferences/SWeave.json +32 -0
  109. data/config/preferences/Scheme.json +35 -0
  110. data/config/preferences/Scilab.json +15 -0
  111. data/config/preferences/Setext.json +3 -0
  112. data/config/preferences/Shell Script.json +25 -0
  113. data/config/preferences/Slate.json +113 -0
  114. data/config/preferences/Source.json +132 -0
  115. data/config/preferences/Subversion.json +10 -0
  116. data/config/preferences/TODO.json +3 -0
  117. data/config/preferences/Tabular.json +3 -0
  118. data/config/preferences/Tcl.json +82 -0
  119. data/config/preferences/TerminalMate.json +112 -0
  120. data/config/preferences/Text.json +89 -0
  121. data/config/preferences/TextMate.json +38 -0
  122. data/config/preferences/Textile.json +76 -0
  123. data/config/preferences/Thrift.json +56 -0
  124. data/config/preferences/Transmit.json +3 -0
  125. data/config/preferences/Twiki.json +51 -0
  126. data/config/preferences/Txt2tags.json +81 -0
  127. data/config/preferences/Vectorscript.json +1280 -0
  128. data/config/preferences/XML.json +60 -0
  129. data/config/preferences/Xcode.json +3 -0
  130. data/config/preferences/YAML.json +24 -0
  131. data/config/preferences/iCalendar.json +10 -0
  132. data/config/preferences/iTerm.json +36 -0
  133. data/config/preferences/reStructuredText.json +48 -0
  134. data/config/rc.rb +49 -0
  135. data/config/syntax/ANTLR.json +5 -5
  136. data/config/syntax/{ASP VB.net.json → ASP vb.NET.json } +3 -3
  137. data/config/syntax/ASP.json +1 -1
  138. data/config/syntax/ActionScript.json +6 -6
  139. data/config/syntax/Active4D Config.json +86 -0
  140. data/config/syntax/Active4D Library.json +20 -0
  141. data/config/syntax/Active4D.json +418 -0
  142. data/config/syntax/Ada.json +3 -3
  143. data/config/syntax/Ant.json +196 -0
  144. data/config/syntax/Apache.json +7 -7
  145. data/config/syntax/AppleScript.json +3 -3
  146. data/config/syntax/{Bibtex.json → BibTeX.json} +1 -1
  147. data/config/syntax/Bison.json +59 -0
  148. data/config/syntax/{Blog (HTML).json → Blog - HTML.json } +2 -2
  149. data/config/syntax/{Blog (Markdown).json → Blog - Markdown.json } +2 -2
  150. data/config/syntax/Blog (Text).json b/data/config/syntax/Blog - → Text.json +0 -0
  151. data/config/syntax/Blog (Textile).json b/data/config/syntax/Blog - → Textile.json +0 -0
  152. data/config/syntax/C++.json +3 -3
  153. data/config/syntax/C.json +13 -13
  154. data/config/syntax/CMake Listfile.json +171 -0
  155. data/config/syntax/CSS.json +6 -6
  156. data/config/syntax/CSV.json +108 -0
  157. data/config/syntax/ColdFusion.json +204 -0
  158. data/config/syntax/D.json +560 -0
  159. data/config/syntax/Diff.json +1 -1
  160. data/config/syntax/DokuWiki.json +412 -0
  161. data/config/syntax/Doxygen.json +80 -0
  162. data/config/syntax/Dylan.json +4 -4
  163. data/config/syntax/Erlang.json +5 -5
  164. data/config/syntax/F-Script.json +1 -1
  165. data/config/syntax/FXScript.json +5 -5
  166. data/config/syntax/Fortran - Modern.json +221 -0
  167. data/config/syntax/Fortran - Punchcard.json +468 -0
  168. data/config/syntax/GTD.json +39 -0
  169. data/config/syntax/GTDalt.json +233 -0
  170. data/config/syntax/Gettext.json +118 -0
  171. data/config/syntax/Go.json +555 -0
  172. data/config/syntax/{DOT.json → Graphviz (DOT).json } +3 -3
  173. data/config/syntax/Greasemonkey.json +56 -0
  174. data/config/syntax/Gri.json +4 -4
  175. data/config/syntax/{HTML-ASP.json → HTML (ASP).json } +1 -1
  176. data/config/syntax/{HTML for ASP.net.json → HTML (ASP.net).json } +19 -19
  177. data/config/syntax/HTML (Active4D).json +540 -0
  178. data/config/syntax/HTML (Erlang).json +31 -0
  179. data/config/syntax/HTML (Tcl).json +1 -1
  180. data/config/syntax/HTML.json +20 -20
  181. data/config/syntax/Haskell.json +3 -3
  182. data/config/syntax/Installer Distribution Script.json +135 -0
  183. data/config/syntax/Io.json +6 -6
  184. data/config/syntax/JSON.json +151 -0
  185. data/config/syntax/{JavaProperties.json → Java Properties.json } +2 -2
  186. data/config/syntax/Java Server Page (JSP).json +163 -0
  187. data/config/syntax/Java.json +7 -7
  188. data/config/syntax/JavaDoc.json +435 -0
  189. data/config/syntax/JavaScript.json +8 -8
  190. data/config/syntax/LaTeX Log.json +3 -3
  191. data/config/syntax/LaTeX Memoir.json +101 -0
  192. data/config/syntax/LaTeX.json +2 -2
  193. data/config/syntax/Lex-Flex.json +396 -0
  194. data/config/syntax/LilyPond.json +608 -0
  195. data/config/syntax/Logo.json +48 -0
  196. data/config/syntax/Logtalk.json +6 -6
  197. data/config/syntax/Lua.json +1 -1
  198. data/config/syntax/{M.json → MATLAB.json} +3 -3
  199. data/config/syntax/MEL.json +7 -7
  200. data/config/syntax/MIPS.json b/data/config/syntax/MIPS → Assembler.json +0 -0
  201. data/config/syntax/MacPorts Portfile.json +298 -0
  202. data/config/syntax/Mail.json +1 -1
  203. data/config/syntax/Markdown.json +6 -6
  204. data/config/syntax/Maven POM.json +774 -0
  205. data/config/syntax/Mediawiki.json +736 -0
  206. data/config/syntax/MoinMoin.json +335 -0
  207. data/config/syntax/MultiMarkdown.json +41 -0
  208. data/config/syntax/Nemerle.json +128 -0
  209. data/config/syntax/OCaml.json +4 -4
  210. data/config/syntax/OCamllex.json +307 -0
  211. data/config/syntax/OCamlyacc.json +346 -0
  212. data/config/syntax/Objective-C++.json +2 -2
  213. data/config/syntax/Objective-C.json +979 -0
  214. data/config/syntax/Octave.json +417 -0
  215. data/config/syntax/PHP.json +32 -32
  216. data/config/syntax/Pascal.json +1 -1
  217. data/config/syntax/Perl.json +8 -8
  218. data/config/syntax/{Plain text.json → Plain Text.json } +1 -1
  219. data/config/syntax/PmWiki.json +241 -0
  220. data/config/syntax/Postscript.json +206 -0
  221. data/config/syntax/Processing.json +8 -8
  222. data/config/syntax/Prolog.json +70 -0
  223. data/config/syntax/Python.json +1934 -0
  224. data/config/syntax/{Quake3 Config.json → Quake Style .cfg.json } +1 -1
  225. data/config/syntax/R.json +2 -2
  226. data/config/syntax/Ragel.json +362 -0
  227. data/config/syntax/Rd (R Documentation).json +119 -0
  228. data/config/syntax/Regular Expressions (Oniguruma).json +186 -0
  229. data/config/syntax/Regular Expressions (Python).json +188 -0
  230. data/config/syntax/Release Notes.json +78 -0
  231. data/config/syntax/Remind.json +461 -0
  232. data/config/syntax/Rez.json +5 -5
  233. data/config/syntax/Ruby Sass.json +497 -0
  234. data/config/syntax/Ruby.json +13 -13
  235. data/config/syntax/S5 Slide Show.json +85 -0
  236. data/config/syntax/SQL.json +11 -11
  237. data/config/syntax/SSH Config.json +55 -0
  238. data/config/syntax/SWIG.json +2 -2
  239. data/config/syntax/SWeave.json +139 -0
  240. data/config/syntax/Scheme.json +8 -8
  241. data/config/syntax/Scilab.json +69 -0
  242. data/config/syntax/Setext.json +247 -0
  243. data/config/syntax/{Shell-Unix-Generic.json → Shell Script (Bash).json } +4 -4
  244. data/config/syntax/Slate.json +5 -5
  245. data/config/syntax/Strings File.json +53 -0
  246. data/config/syntax/TSV.json +83 -0
  247. data/config/syntax/Tcl.json +1 -1
  248. data/config/syntax/TeX Math.json +2 -2
  249. data/config/syntax/TeX.json +2 -2
  250. data/config/syntax/Textile.json +9 -9
  251. data/config/syntax/Thrift.json +641 -0
  252. data/config/syntax/Twiki.json +1 -1
  253. data/config/syntax/Txt2tags.json +154 -0
  254. data/config/syntax/XML strict.json +4 -4
  255. data/config/syntax/XML.json +6 -6
  256. data/config/syntax/XSL.json +2 -2
  257. data/config/syntax/camlp4.json +63 -0
  258. data/config/syntax/mod_perl.json +72 -0
  259. data/config/syntax/reStructuredText.json +1 -1
  260. data/config/syntax/{Subversion commit message.json → svn-commit.tmp.json} +0 -0
  261. data/config/tutorial +23 -19
  262. data/config/welcome +3 -3
  263. data/lib/ver.rb +273 -62
  264. data/lib/ver/entry.rb +142 -26
  265. data/lib/ver/font.rb +51 -0
  266. data/lib/ver/help.rb +16 -0
  267. data/lib/ver/help/describe_key.rb +82 -0
  268. data/lib/ver/help/help_for_help.rb +39 -0
  269. data/lib/ver/hover_completion.rb +129 -0
  270. data/lib/ver/keymap.rb +95 -24
  271. data/lib/ver/layout.rb +107 -43
  272. data/lib/ver/methods.rb +24 -8
  273. data/lib/ver/methods/clipboard.rb +91 -0
  274. data/lib/ver/methods/completion.rb +146 -71
  275. data/lib/ver/methods/control.rb +203 -222
  276. data/lib/ver/methods/ctags.rb +55 -0
  277. data/lib/ver/methods/delete.rb +30 -0
  278. data/lib/ver/methods/help.rb +7 -0
  279. data/lib/ver/methods/insert.rb +233 -1
  280. data/lib/ver/methods/move.rb +181 -32
  281. data/lib/ver/methods/open.rb +208 -0
  282. data/lib/ver/methods/preview.rb +14 -0
  283. data/lib/ver/methods/save.rb +111 -0
  284. data/lib/ver/methods/search.rb +57 -7
  285. data/lib/ver/methods/select.rb +97 -17
  286. data/lib/ver/methods/shortcuts.rb +21 -0
  287. data/lib/ver/methods/views.rb +56 -1
  288. data/lib/ver/mode.rb +60 -14
  289. data/lib/ver/status.rb +97 -19
  290. data/lib/ver/syntax.rb +14 -6
  291. data/lib/ver/syntax/detector.rb +16 -5
  292. data/lib/ver/syntax/processor.rb +9 -3
  293. data/lib/ver/text.rb +258 -199
  294. data/lib/ver/text/index.rb +103 -0
  295. data/lib/ver/theme.rb +27 -16
  296. data/lib/ver/tooltip.rb +59 -0
  297. data/lib/ver/vendor/binary_search.rb +61 -0
  298. data/lib/ver/vendor/levenshtein.rb +57 -0
  299. data/lib/ver/{textpow.rb → vendor/textpow.rb} +31 -29
  300. data/lib/ver/view.rb +65 -41
  301. data/lib/ver/view/console.rb +171 -0
  302. data/lib/ver/view/entry.rb +9 -5
  303. data/lib/ver/view/list.rb +44 -29
  304. data/lib/ver/view/list/ex.rb +71 -0
  305. data/lib/ver/view/list/grep.rb +42 -0
  306. data/lib/ver/view/list/methods.rb +159 -0
  307. data/lib/ver/view/term.rb +249 -0
  308. data/tasks/syntax_list.rake +3 -2
  309. data/ver.gemspec +4 -4
  310. metadata +230 -28
  311. data/config/syntax/Bulletin Board.json +0 -428
  312. data/config/syntax/HTML (Mason).json +0 -207
  313. data/config/syntax/HTML (Rails).json +0 -52
  314. data/config/syntax/Movable Type.json +0 -348
  315. data/config/syntax/Ruby on Rails.json +0 -170
  316. data/config/syntax/SQL (Rails).json +0 -31
  317. data/config/syntax/Smarty.json +0 -110
  318. data/config/syntax/Standard ML.json +0 -322
@@ -0,0 +1,53 @@
1
+ {
2
+ "fileTypes": [
3
+ "strings"
4
+ ],
5
+ "name": "Strings File",
6
+ "patterns": [
7
+ {
8
+ "begin": "/\\*",
9
+ "captures": {
10
+ "0": {
11
+ "name": "punctuation.definition.comment.strings"
12
+ }
13
+ },
14
+ "end": "\\*/",
15
+ "name": "comment.block.strings"
16
+ },
17
+ {
18
+ "begin": "\"",
19
+ "beginCaptures": {
20
+ "0": {
21
+ "name": "punctuation.definition.string.begin.strings"
22
+ }
23
+ },
24
+ "end": "\"",
25
+ "endCaptures": {
26
+ "0": {
27
+ "name": "punctuation.definition.string.end.strings"
28
+ }
29
+ },
30
+ "name": "string.quoted.double.strings",
31
+ "patterns": [
32
+ {
33
+ "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",
34
+ "name": "constant.character.escape.strings"
35
+ },
36
+ {
37
+ "match": "\\\\.",
38
+ "name": "invalid.illegal.unknown-escape.strings"
39
+ },
40
+ {
41
+ "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t[,;:_]? # separator character (AltiVec)\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n\t\t\t\t\t\t[@diouxXDOUeEfFgGaACcSspn%] # conversion type\n\t\t\t\t\t",
42
+ "name": "constant.other.placeholder.strings"
43
+ },
44
+ {
45
+ "match": "%",
46
+ "name": "invalid.illegal.placeholder.c"
47
+ }
48
+ ]
49
+ }
50
+ ],
51
+ "scopeName": "source.strings",
52
+ "uuid": "429E2DB7-EB4F-4B34-A4DF-DBFD3336C581"
53
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "fileTypes": [
3
+ "tsv"
4
+ ],
5
+ "keyEquivalent": "^~T",
6
+ "name": "TSV",
7
+ "patterns": [
8
+ {
9
+ "include": "#table"
10
+ }
11
+ ],
12
+ "repository": {
13
+ "field": {
14
+ "patterns": [
15
+ {
16
+ "begin": "(:^|(?<=\\t))(?!$|\\t)",
17
+ "contentName": "meta.tabular.field.tsv",
18
+ "end": "$|(\\t)",
19
+ "endCaptures": {
20
+ "1": {
21
+ "name": "punctuation.separator.tabular.field.tsv"
22
+ }
23
+ }
24
+ },
25
+ {
26
+ "match": "\\t",
27
+ "name": "punctuation.separator.tabular.field.tsv"
28
+ }
29
+ ]
30
+ },
31
+ "header": {
32
+ "begin": "^(?!$)",
33
+ "end": "$",
34
+ "name": "meta.tabular.row.header.tsv",
35
+ "patterns": [
36
+ {
37
+ "include": "#field"
38
+ }
39
+ ]
40
+ },
41
+ "row": {
42
+ "begin": "^(?!$)",
43
+ "end": "$",
44
+ "name": "meta.tabular.row.tsv",
45
+ "patterns": [
46
+ {
47
+ "include": "#field"
48
+ }
49
+ ]
50
+ },
51
+ "table": {
52
+ "begin": "^",
53
+ "end": "^$not possible$^",
54
+ "name": "meta.tabular.table.tsv",
55
+ "patterns": [
56
+ {
57
+ "include": "#header"
58
+ },
59
+ {
60
+ "begin": "(\\n)",
61
+ "beginCaptures": {
62
+ "1": {
63
+ "name": "punctuation.separator.table.row.tsv"
64
+ }
65
+ },
66
+ "comment": "\n\t\t\t\t\t\teverything after the first row is not a header\n\t\t\t\t\t",
67
+ "end": "^$not possible$^",
68
+ "patterns": [
69
+ {
70
+ "include": "#row"
71
+ },
72
+ {
73
+ "match": "\\n",
74
+ "name": "punctuation.separator.table.row.tsv"
75
+ }
76
+ ]
77
+ }
78
+ ]
79
+ }
80
+ },
81
+ "scopeName": "text.tabular.tsv",
82
+ "uuid": "7D87F38B-A972-4F61-B9C0-7D6D15EEED38"
83
+ }
@@ -67,7 +67,7 @@
67
67
  "name": "keyword.other.tcl"
68
68
  }
69
69
  },
70
- "comment": "special-case regexp\/regsub keyword in order to handle the expression",
70
+ "comment": "special-case regexp/regsub keyword in order to handle the expression",
71
71
  "end": "[\\n;]|(?=\\])",
72
72
  "patterns": [
73
73
  {
@@ -2,8 +2,8 @@
2
2
  "fileTypes": [
3
3
 
4
4
  ],
5
- "foldingStartMarker": "\/\\*\\*|\\{\\s*$",
6
- "foldingStopMarker": "\\*\\*\/|^\\s*\\}",
5
+ "foldingStartMarker": "/\\*\\*|\\{\\s*$",
6
+ "foldingStopMarker": "\\*\\*/|^\\s*\\}",
7
7
  "name": "TeX Math",
8
8
  "patterns": [
9
9
  {
@@ -3,8 +3,8 @@
3
3
  "sty",
4
4
  "cls"
5
5
  ],
6
- "foldingStartMarker": "\/\\*\\*|\\{\\s*$",
7
- "foldingStopMarker": "\\*\\*\/|^\\s*\\}",
6
+ "foldingStartMarker": "/\\*\\*|\\{\\s*$",
7
+ "foldingStopMarker": "\\*\\*/|^\\s*\\}",
8
8
  "name": "TeX",
9
9
  "patterns": [
10
10
  {
@@ -173,7 +173,7 @@
173
173
  "name": "constant.other.reference.link.textile"
174
174
  }
175
175
  },
176
- "match": "(?x)\n\t\t\t\t\t\t\t\t\"\t\t\t\t\t\t\t\t# Start name, etc\n\t\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t# Attributes\n\t\t\t\t\t\t\t\t\t\t# I swear, this is how the language is defined,\n\t\t\t\t\t\t\t\t\t\t# couldnt make it up if I tried.\n\t\t\t\t\t\t\t\t\t\t(?:\\([^)]+\\))?(?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?\n\t\t\t\t\t\t\t\t\t\t\t# Class, Style, Lang\n\t\t\t\t\t\t\t\t\t | (?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t\t# Style, Lang, Class\n\t\t\t\t\t\t\t\t\t | (?:\\[[^\\]]+\\])?(?:\\{[^}]+\\})?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t\t# Lang, Style, Class\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t([^\"]+?)\t\t\t\t\t# Link name\n\t\t\t\t\t\t\t\t\t\\s?\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t\t\t\t\t(?:\\(([^)]+?)\\))?\n\t\t\t\t\t\t\t\t\":\t\t\t\t\t\t\t\t# End name\n\t\t\t\t\t\t\t\t(\\w[-\\w_]*)\t\t\t\t\t\t# Linkref\n\t\t\t\t\t\t\t\t(?=[^\\w\\\/;]*?(<|\\s|$))\t\t\t# Catch closing punctuation\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# and end of meta.link\n\t\t\t\t\t",
176
+ "match": "(?x)\n\t\t\t\t\t\t\t\t\"\t\t\t\t\t\t\t\t# Start name, etc\n\t\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t# Attributes\n\t\t\t\t\t\t\t\t\t\t# I swear, this is how the language is defined,\n\t\t\t\t\t\t\t\t\t\t# couldnt make it up if I tried.\n\t\t\t\t\t\t\t\t\t\t(?:\\([^)]+\\))?(?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?\n\t\t\t\t\t\t\t\t\t\t\t# Class, Style, Lang\n\t\t\t\t\t\t\t\t\t | (?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t\t# Style, Lang, Class\n\t\t\t\t\t\t\t\t\t | (?:\\[[^\\]]+\\])?(?:\\{[^}]+\\})?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t\t# Lang, Style, Class\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t([^\"]+?)\t\t\t\t\t# Link name\n\t\t\t\t\t\t\t\t\t\\s?\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t\t\t\t\t(?:\\(([^)]+?)\\))?\n\t\t\t\t\t\t\t\t\":\t\t\t\t\t\t\t\t# End name\n\t\t\t\t\t\t\t\t(\\w[-\\w_]*)\t\t\t\t\t\t# Linkref\n\t\t\t\t\t\t\t\t(?=[^\\w\\/;]*?(<|\\s|$))\t\t\t# Catch closing punctuation\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# and end of meta.link\n\t\t\t\t\t",
177
177
  "name": "meta.link.reference.textile"
178
178
  },
179
179
  {
@@ -188,7 +188,7 @@
188
188
  "name": "markup.underline.link.textile"
189
189
  }
190
190
  },
191
- "match": "(?x)\n\t\t\t\t\t\t\t\t\"\t\t\t\t\t\t\t\t# Start name, etc\n\t\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t# Attributes\n\t\t\t\t\t\t\t\t\t\t# I swear, this is how the language is defined,\n\t\t\t\t\t\t\t\t\t\t# couldnt make it up if I tried.\n\t\t\t\t\t\t\t\t\t\t(?:\\([^)]+\\))?(?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?\n\t\t\t\t\t\t\t\t\t\t\t# Class, Style, Lang\n\t\t\t\t\t\t\t\t\t | (?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t\t# Style, Lang, Class\n\t\t\t\t\t\t\t\t\t | (?:\\[[^\\]]+\\])?(?:\\{[^}]+\\})?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t\t# Lang, Style, Class\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t([^\"]+?)\t\t\t\t\t# Link name\n\t\t\t\t\t\t\t\t\t\\s?\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t\t\t\t\t(?:\\(([^)]+?)\\))?\n\t\t\t\t\t\t\t\t\":\t\t\t\t\t\t\t\t# End Name\n\t\t\t\t\t\t\t\t(\\S*?(?:\\w|\\\/|;))\t\t\t\t# URL\n\t\t\t\t\t\t\t\t(?=[^\\w\\\/;]*?(<|\\s|$))\t\t\t# Catch closing punctuation\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# and end of meta.link\n\t\t\t\t\t",
191
+ "match": "(?x)\n\t\t\t\t\t\t\t\t\"\t\t\t\t\t\t\t\t# Start name, etc\n\t\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t# Attributes\n\t\t\t\t\t\t\t\t\t\t# I swear, this is how the language is defined,\n\t\t\t\t\t\t\t\t\t\t# couldnt make it up if I tried.\n\t\t\t\t\t\t\t\t\t\t(?:\\([^)]+\\))?(?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?\n\t\t\t\t\t\t\t\t\t\t\t# Class, Style, Lang\n\t\t\t\t\t\t\t\t\t | (?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t\t# Style, Lang, Class\n\t\t\t\t\t\t\t\t\t | (?:\\[[^\\]]+\\])?(?:\\{[^}]+\\})?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t\t# Lang, Style, Class\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t([^\"]+?)\t\t\t\t\t# Link name\n\t\t\t\t\t\t\t\t\t\\s?\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t\t\t\t\t(?:\\(([^)]+?)\\))?\n\t\t\t\t\t\t\t\t\":\t\t\t\t\t\t\t\t# End Name\n\t\t\t\t\t\t\t\t(\\S*?(?:\\w|\\/|;))\t\t\t\t# URL\n\t\t\t\t\t\t\t\t(?=[^\\w\\/;]*?(<|\\s|$))\t\t\t# Catch closing punctuation\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# and end of meta.link\n\t\t\t\t\t",
192
192
  "name": "meta.link.inline.textile"
193
193
  },
194
194
  {
@@ -203,7 +203,7 @@
203
203
  "name": "markup.underline.link.textile"
204
204
  }
205
205
  },
206
- "match": "(?x)\n\t\t\t\t\t\t\t\t\\!\t\t\t\t\t\t\t\t\t\t# Open image\n\t\t\t\t\t\t\t\t(\\<|\\=|\\>)?\t\t\t\t\t\t\t\t# Optional alignment\n\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t\t\t# Attributes\n\t\t\t\t\t\t\t\t\t# I swear, this is how the language is defined,\n\t\t\t\t\t\t\t\t\t# couldnt make it up if I tried.\n\t\t\t\t\t\t\t\t\t(?:\\([^)]+\\))?(?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?\n\t\t\t\t\t\t\t\t\t\t# Class, Style, Lang\n\t\t\t\t\t\t\t\t | (?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t# Style, Lang, Class\n\t\t\t\t\t\t\t\t | (?:\\[[^\\]]+\\])?(?:\\{[^}]+\\})?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t# Lang, Style, Class\n\t\t\t\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([^\\s(!]+?) \t\t\t\t\t# Image URL\n\t\t\t\t\t\t\t\t\\s? \t\t\t\t\t\t# Optional space\n\t\t\t\t\t\t\t\t(?:\\(((?:[^\\(\\)]|\\([^\\)]+\\))+?)\\))? \t# Optional title\n\t\t\t\t\t\t\t\t\\!\t\t\t\t\t\t\t\t\t\t# Close image\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t(\\S*?(?:\\w|\\\/|;))\t\t\t\t\t# URL\n\t\t\t\t\t\t\t\t\t(?=[^\\w\\\/;]*?(<|\\s|$))\t\t\t\t# Catch closing punctuation\n\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t",
206
+ "match": "(?x)\n\t\t\t\t\t\t\t\t\\!\t\t\t\t\t\t\t\t\t\t# Open image\n\t\t\t\t\t\t\t\t(\\<|\\=|\\>)?\t\t\t\t\t\t\t\t# Optional alignment\n\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t\t\t# Attributes\n\t\t\t\t\t\t\t\t\t# I swear, this is how the language is defined,\n\t\t\t\t\t\t\t\t\t# couldnt make it up if I tried.\n\t\t\t\t\t\t\t\t\t(?:\\([^)]+\\))?(?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?\n\t\t\t\t\t\t\t\t\t\t# Class, Style, Lang\n\t\t\t\t\t\t\t\t | (?:\\{[^}]+\\})?(?:\\[[^\\]]+\\])?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t# Style, Lang, Class\n\t\t\t\t\t\t\t\t | (?:\\[[^\\]]+\\])?(?:\\{[^}]+\\})?(?:\\([^)]+\\))?\n\t\t\t\t\t\t\t\t\t\t# Lang, Style, Class\n\t\t\t\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([^\\s(!]+?) \t\t\t\t\t# Image URL\n\t\t\t\t\t\t\t\t\\s? \t\t\t\t\t\t# Optional space\n\t\t\t\t\t\t\t\t(?:\\(((?:[^\\(\\)]|\\([^\\)]+\\))+?)\\))? \t# Optional title\n\t\t\t\t\t\t\t\t\\!\t\t\t\t\t\t\t\t\t\t# Close image\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t(\\S*?(?:\\w|\\/|;))\t\t\t\t\t# URL\n\t\t\t\t\t\t\t\t\t(?=[^\\w\\/;]*?(<|\\s|$))\t\t\t\t# Catch closing punctuation\n\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t",
207
207
  "name": "meta.image.inline.textile"
208
208
  },
209
209
  {
@@ -221,7 +221,7 @@
221
221
  "name": "entity.name.type.textile"
222
222
  }
223
223
  },
224
- "match": "\\B(\\*\\*?)((\\([^)]*\\)|{[^}]*}|\\[[^]]+\\]){0,3})(\\S.*?\\S|\\S)\\1\\B",
224
+ "match": "\\B(\\*\\*?)((\\([^)]*\\)|{[^}]*}|\\[[^\\]]+\\]){0,3})(\\S.*?\\S|\\S)\\1\\B",
225
225
  "name": "markup.bold.textile"
226
226
  },
227
227
  {
@@ -230,7 +230,7 @@
230
230
  "name": "entity.name.type.textile"
231
231
  }
232
232
  },
233
- "match": "\\B-((\\([^)]*\\)|{[^}]*}|\\[[^]]+\\]){0,3})(\\S.*?\\S|\\S)-\\B",
233
+ "match": "\\B-((\\([^)]*\\)|{[^}]*}|\\[[^\\]]+\\]){0,3})(\\S.*?\\S|\\S)-\\B",
234
234
  "name": "markup.deleted.textile"
235
235
  },
236
236
  {
@@ -239,7 +239,7 @@
239
239
  "name": "entity.name.type.textile"
240
240
  }
241
241
  },
242
- "match": "\\B\\+((\\([^)]*\\)|{[^}]*}|\\[[^]]+\\]){0,3})(\\S.*?\\S|\\S)\\+\\B",
242
+ "match": "\\B\\+((\\([^)]*\\)|{[^}]*}|\\[[^\\]]+\\]){0,3})(\\S.*?\\S|\\S)\\+\\B",
243
243
  "name": "markup.inserted.textile"
244
244
  },
245
245
  {
@@ -248,7 +248,7 @@
248
248
  "name": "entity.name.type.textile"
249
249
  }
250
250
  },
251
- "match": "(?:\\b|\\s)_((\\([^)]*\\)|{[^}]*}|\\[[^]]+\\]){0,3})(\\S.*?\\S|\\S)_(?:\\b|\\s)",
251
+ "match": "(?:\\b|\\s)_((\\([^)]*\\)|{[^}]*}|\\[[^\\]]+\\]){0,3})(\\S.*?\\S|\\S)_(?:\\b|\\s)",
252
252
  "name": "markup.italic.textile"
253
253
  },
254
254
  {
@@ -257,7 +257,7 @@
257
257
  "name": "entity.name.type.textile"
258
258
  }
259
259
  },
260
- "match": "\\B([@\\^~%]|\\?\\?)((\\([^)]*\\)|{[^}]*}|\\[[^]]+\\]){0,3})(\\S.*?\\S|\\S)\\1",
260
+ "match": "\\B([@\\^~%]|\\?\\?)((\\([^)]*\\)|{[^}]*}|\\[[^\\]]+\\]){0,3})(\\S.*?\\S|\\S)\\1",
261
261
  "name": "markup.italic.phrasemodifiers.textile"
262
262
  },
263
263
  {
@@ -270,4 +270,4 @@
270
270
  },
271
271
  "scopeName": "text.html.textile",
272
272
  "uuid": "68F0B1A5-3274-4E85-8B3A-A481C5F5B194"
273
- }
273
+ }
@@ -0,0 +1,641 @@
1
+ {
2
+ "fileTypes": [
3
+ "thrift"
4
+ ],
5
+ "foldingStartMarker": "\\{\\s*$",
6
+ "foldingStopMarker": "^\\s*\\}",
7
+ "keyEquivalent": "^~T",
8
+ "name": "Thrift",
9
+ "patterns": [
10
+ {
11
+ "include": "#comments"
12
+ },
13
+ {
14
+ "captures": {
15
+ "1": {
16
+ "name": "keyword.other.include.thrift"
17
+ },
18
+ "2": {
19
+ "name": "string.quoted.thrift"
20
+ },
21
+ "3": {
22
+ "name": "punctuation.definition.string.begin.thrift"
23
+ },
24
+ "4": {
25
+ "name": "punctuation.definition.string.end.thrift"
26
+ }
27
+ },
28
+ "match": "(?<!\\S)(include)(?!\\S)(?:\\s+((['\"])(?>.*?(\\3))))?",
29
+ "name": "meta.include.thrift"
30
+ },
31
+ {
32
+ "captures": {
33
+ "1": {
34
+ "name": "keyword.other.cpp-include.thrift"
35
+ },
36
+ "2": {
37
+ "name": "string.quoted.thrift"
38
+ },
39
+ "3": {
40
+ "name": "punctuation.definition.string.begin.thrift"
41
+ },
42
+ "4": {
43
+ "name": "punctuation.definition.string.end.thrift"
44
+ }
45
+ },
46
+ "match": "(?<!\\S)(cpp_include)(?!\\S)(?:\\s+((['\"])(?>.*?(\\3))))?",
47
+ "name": "meta.cpp-include.thrift"
48
+ },
49
+ {
50
+ "captures": {
51
+ "1": {
52
+ "name": "keyword.other.namespace.thrift"
53
+ },
54
+ "2": {
55
+ "name": "support.other.namespace-language.thrift"
56
+ },
57
+ "3": {
58
+ "name": "variable.other.namespace.thrift"
59
+ }
60
+ },
61
+ "match": "(?<!\\S)(namespace)(?!\\S)(?:\\s+([a-zA-Z_][\\w.]*)(?:\\s+([a-zA-Z_][\\w.]*))?)?",
62
+ "name": "meta.namespace.thrift"
63
+ },
64
+ {
65
+ "captures": {
66
+ "1": {
67
+ "name": "keyword.other.namespace.thrift"
68
+ },
69
+ "2": {
70
+ "name": "variable.other.namespace.thrift"
71
+ }
72
+ },
73
+ "match": "(?<!\\S)((?:php|xsd)_namespace)(?!\\S)(?:\\s+([a-zA-Z_][\\w.]*))?",
74
+ "name": "meta.namespace.thrift"
75
+ },
76
+ {
77
+ "captures": {
78
+ "1": {
79
+ "name": "invalid.deprecated.namespace.thrift"
80
+ },
81
+ "2": {
82
+ "name": "variable.other.namespace.thrift"
83
+ }
84
+ },
85
+ "match": "(?<!\\S)((?:cpp|ruby|csharp)_namespace|py_module|(?:java|perl)_package|smalltalk_(?:category|prefix)|cocoa_prefix)(?!\\S)(?:\\s+([a-zA-Z_][\\w.]*))?"
86
+ },
87
+ {
88
+ "begin": "(?=(struct|s?enum|service|const|typedef|exception)\\b)",
89
+ "comment": "begin the definition list",
90
+ "end": "(?x)$.^ # this regex should never end",
91
+ "patterns": [
92
+ {
93
+ "include": "#comments"
94
+ },
95
+ {
96
+ "begin": "(?<!\\S)(const)(?!\\S)(?:\\s+(?<ft>map\\s*<\\s*\\g<ft>\\s*,\\s*\\g<ft>\\s*>|set\\s*<\\s*\\g<ft>\\s*>|list\\s*<\\s*\\g<ft>\\s*>\\s*cpp_type|[a-zA-Z_][\\w.]*)(?:\\s+([a-zA-Z_][\\w.]*)(?:\\s*=)?)?)?",
97
+ "beginCaptures": {
98
+ "1": {
99
+ "name": "keyword.other.const.thrift"
100
+ },
101
+ "2": {
102
+ "name": "storage.type.const.thrift"
103
+ },
104
+ "3": {
105
+ "name": "variable.other.const.thrift"
106
+ }
107
+ },
108
+ "end": "$|^",
109
+ "name": "meta.const.thrift",
110
+ "patterns": [
111
+ {
112
+ "include": "#comments"
113
+ },
114
+ {
115
+ "include": "#value"
116
+ }
117
+ ]
118
+ },
119
+ {
120
+ "begin": "(?<!\\S)(typedef)(?!\\S)(?:\\s+(?<ft>map\\s*<\\s*\\g<ft>\\s*,\\s*\\g<ft>\\s*>|set\\s*<\\s*\\g<ft>\\s*>|list\\s*<\\s*\\g<ft>\\s*>\\s*cpp_type|[a-zA-Z_][\\w.]*)(?:\\s+([a-zA-Z_][\\w.]*))?)?",
121
+ "beginCaptures": {
122
+ "1": {
123
+ "name": "keyword.other.typedef.thrift"
124
+ },
125
+ "2": {
126
+ "name": "storage.type.typedef.thrift"
127
+ },
128
+ "3": {
129
+ "name": "variable.other.typedef.thrift"
130
+ }
131
+ },
132
+ "end": "$|^",
133
+ "name": "meta.typedef.thrift",
134
+ "patterns": [
135
+ {
136
+ "include": "#comments"
137
+ }
138
+ ]
139
+ },
140
+ {
141
+ "begin": "(?<!\\S)(enum)(?!\\S)(?:\\s+([a-zA-Z_][\\w.]*)\\s*(?![^\\s{]))?",
142
+ "beginCaptures": {
143
+ "1": {
144
+ "name": "keyword.other.enum.thrift"
145
+ },
146
+ "2": {
147
+ "name": "entity.name.type.enum.thrift"
148
+ }
149
+ },
150
+ "end": "(?<=\\})|$",
151
+ "name": "meta.enum.thrift",
152
+ "patterns": [
153
+ {
154
+ "begin": "\\{",
155
+ "beginCaptures": {
156
+ "0": {
157
+ "name": "punctuation.section.enum.begin.thrift"
158
+ }
159
+ },
160
+ "end": "\\}",
161
+ "endCaptures": {
162
+ "0": {
163
+ "name": "punctuation.section.enum.end.thrift"
164
+ }
165
+ },
166
+ "patterns": [
167
+ {
168
+ "captures": {
169
+ "1": {
170
+ "name": "variable.other.enum.thrift"
171
+ },
172
+ "2": {
173
+ "name": "constant.numeric.integer.thrift"
174
+ }
175
+ },
176
+ "match": "(?<!\\S)([a-zA-Z_][\\w.]*)(?:\\s*=\\s*(\\d*)(?:\\s*[,;])?)?"
177
+ },
178
+ {
179
+ "include": "#comments"
180
+ },
181
+ {
182
+ "match": "\\S",
183
+ "name": "invalid.illegal.thrift"
184
+ }
185
+ ]
186
+ }
187
+ ]
188
+ },
189
+ {
190
+ "begin": "(?<!\\S)(senum)(?!\\S)(?:\\s+([a-zA-Z_][\\w.]*)\\s*(?![^\\s{]))?",
191
+ "beginCaptures": {
192
+ "1": {
193
+ "name": "keyword.other.senum.thrift"
194
+ },
195
+ "2": {
196
+ "name": "entity.name.type.senum.thrift"
197
+ }
198
+ },
199
+ "end": "(?<=\\})|$",
200
+ "name": "meta.senum.thrift",
201
+ "patterns": [
202
+ {
203
+ "begin": "\\{",
204
+ "beginCaptures": {
205
+ "0": {
206
+ "name": "punctuation.section.senum.begin.thrift"
207
+ }
208
+ },
209
+ "end": "\\}",
210
+ "endCaptures": {
211
+ "0": {
212
+ "name": "punctuation.section.senum.end.thrift"
213
+ }
214
+ },
215
+ "patterns": [
216
+ {
217
+ "captures": {
218
+ "1": {
219
+ "name": "variable.other.senum.thrift"
220
+ }
221
+ },
222
+ "match": "(?<!\\S)([a-zA-Z_][\\w.]*)(?:\\s*[,;])?"
223
+ },
224
+ {
225
+ "include": "#comments"
226
+ },
227
+ {
228
+ "match": "\\S",
229
+ "name": "invalid.illegal.thrift"
230
+ }
231
+ ]
232
+ }
233
+ ]
234
+ },
235
+ {
236
+ "begin": "(?<!\\S)(struct)(?!\\S)(?:\\s+([a-zA-Z_][\\w.]*)\\s*(?![^\\s{]))?",
237
+ "beginCaptures": {
238
+ "1": {
239
+ "name": "keyword.other.struct.thrift"
240
+ },
241
+ "2": {
242
+ "name": "entity.name.type.struct.thrift"
243
+ }
244
+ },
245
+ "end": "(?<=\\})|$",
246
+ "name": "meta.struct.thrift",
247
+ "patterns": [
248
+ {
249
+ "match": "(?<!\\S)xsd_all(?!\\S)",
250
+ "name": "keyword.other.xsd-all.thrift"
251
+ },
252
+ {
253
+ "begin": "\\{",
254
+ "beginCaptures": {
255
+ "0": {
256
+ "name": "punctuation.section.struct.begin.thrift"
257
+ }
258
+ },
259
+ "end": "\\}",
260
+ "endCaptures": {
261
+ "0": {
262
+ "name": "punctuation.section.struct.end.thrift"
263
+ }
264
+ },
265
+ "patterns": [
266
+ {
267
+ "include": "#comments"
268
+ },
269
+ {
270
+ "include": "#field"
271
+ }
272
+ ]
273
+ }
274
+ ]
275
+ },
276
+ {
277
+ "begin": "(?<!\\S)(exception)(?!\\S)(?:\\s+([a-zA-Z_][\\w.]*)\\s*(?![^\\s{]))?",
278
+ "beginCaptures": {
279
+ "1": {
280
+ "name": "keyword.other.exception.thrift"
281
+ },
282
+ "2": {
283
+ "name": "entity.name.type.exception.thrift"
284
+ }
285
+ },
286
+ "end": "(?<=\\})|$",
287
+ "name": "meta.exception.thrift",
288
+ "patterns": [
289
+ {
290
+ "begin": "\\{",
291
+ "beginCaptures": {
292
+ "0": {
293
+ "name": "punctuation.section.exception.begin.thrift"
294
+ }
295
+ },
296
+ "end": "\\}",
297
+ "endCaptures": {
298
+ "0": {
299
+ "name": "punctuation.section.exception.end.thrift"
300
+ }
301
+ },
302
+ "patterns": [
303
+ {
304
+ "include": "#comments"
305
+ },
306
+ {
307
+ "include": "#field"
308
+ }
309
+ ]
310
+ }
311
+ ]
312
+ },
313
+ {
314
+ "begin": "(?<!\\S)(service)(?!\\S)(?:\\s+([a-zA-z_][\\w.]*)(?:\\s+(extends)(?:\\s+([a-zA-Z_][\\w.]*))?)?\\s*(?![^\\s{]))?",
315
+ "beginCaptures": {
316
+ "1": {
317
+ "name": "keyword.other.service.thrift"
318
+ },
319
+ "2": {
320
+ "name": "entity.name.type.service.thrift"
321
+ },
322
+ "3": {
323
+ "name": "keyword.other.service.extends.thrift"
324
+ },
325
+ "4": {
326
+ "name": "entity.other.inherited-class.thrift"
327
+ }
328
+ },
329
+ "end": "(?<=\\})|$",
330
+ "name": "meta.service.thrift",
331
+ "patterns": [
332
+ {
333
+ "begin": "\\{",
334
+ "beginCaptures": {
335
+ "0": {
336
+ "name": "punctuation.section.service.begin.thrift"
337
+ }
338
+ },
339
+ "end": "\\}",
340
+ "endCaptures": {
341
+ "0": {
342
+ "name": "punctuation.section.service.end.thrift"
343
+ }
344
+ },
345
+ "patterns": [
346
+ {
347
+ "include": "#comments"
348
+ },
349
+ {
350
+ "begin": "(?x)(?<!\\S)\n\t\t\t\t\t\t\t\t\t\t\t(async(?!\\S))?\\s*\n\t\t\t\t\t\t\t\t\t\t\t(?<ft>\n\t\t\t\t\t\t\t\t\t\t\t\tmap\\s*<\\s*\\g<ft>\\s*,\\s*\\g<ft>\\s*> |\n\t\t\t\t\t\t\t\t\t\t\t\tset\\s*<\\s*\\g<ft>\\s*> |\n\t\t\t\t\t\t\t\t\t\t\t\tlist\\s*<\\s*\\g<ft>\\s*>\\s*(cpp_type(?!\\S))? |\n\t\t\t\t\t\t\t\t\t\t\t\t(?!async\\b)[a-zA-Z_][\\w.]*\n\t\t\t\t\t\t\t\t\t\t\t)\\s*\n\t\t\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\t\t(?<!\\S)([a-zA-Z_][\\w.]*)\\s*(?![^\\s(])\n\t\t\t\t\t\t\t\t\t\t\t)?",
351
+ "beginCaptures": {
352
+ "1": {
353
+ "name": "keyword.other.async.thrift"
354
+ },
355
+ "2": {
356
+ "name": "storage.type.function.thrift"
357
+ },
358
+ "3": {
359
+ "name": "keyword.other.cpp_type.thrift"
360
+ },
361
+ "4": {
362
+ "name": "entity.name.function.thrift"
363
+ }
364
+ },
365
+ "end": "$|^",
366
+ "name": "meta.service.function.thrift",
367
+ "patterns": [
368
+ {
369
+ "begin": "\\(",
370
+ "beginCaptures": {
371
+ "0": {
372
+ "name": "punctuation.definition.arguments.begin.thrift"
373
+ }
374
+ },
375
+ "end": "\\)",
376
+ "endCaptures": {
377
+ "0": {
378
+ "name": "punctuation.definition.arguments.end.thrift"
379
+ }
380
+ },
381
+ "patterns": [
382
+ {
383
+ "include": "#comments"
384
+ },
385
+ {
386
+ "include": "#field"
387
+ }
388
+ ]
389
+ },
390
+ {
391
+ "begin": "(?<![^\\s)])(throws)(?![^\\s(])",
392
+ "beginCaptures": {
393
+ "1": {
394
+ "name": "keyword.other.service.function.throws.thrift"
395
+ }
396
+ },
397
+ "end": "$",
398
+ "patterns": [
399
+ {
400
+ "begin": "\\(",
401
+ "beginCaptures": {
402
+ "0": {
403
+ "name": "punctuation.definition.arguments.begin.thrift"
404
+ }
405
+ },
406
+ "end": "\\)",
407
+ "endCaptures": {
408
+ "0": {
409
+ "name": "punctuation.definition.arguments.end.thrift"
410
+ }
411
+ },
412
+ "patterns": [
413
+ {
414
+ "include": "#comments"
415
+ },
416
+ {
417
+ "include": "#field"
418
+ }
419
+ ]
420
+ }
421
+ ]
422
+ },
423
+ {
424
+ "include": "#comments"
425
+ }
426
+ ]
427
+ }
428
+ ]
429
+ }
430
+ ]
431
+ }
432
+ ]
433
+ }
434
+ ],
435
+ "repository": {
436
+ "comments": {
437
+ "patterns": [
438
+ {
439
+ "captures": {
440
+ "1": {
441
+ "name": "punctuation.definition.comment.thrift"
442
+ }
443
+ },
444
+ "match": "(#).*\\n?",
445
+ "name": "comment.line.number-sign.thrift"
446
+ },
447
+ {
448
+ "captures": {
449
+ "1": {
450
+ "name": "punctuation.definition.comment.thrift"
451
+ }
452
+ },
453
+ "match": "(//).*\\n?",
454
+ "name": "comment.line.double-slash.thrift"
455
+ },
456
+ {
457
+ "begin": "/\\*\\*",
458
+ "beginCaptures": {
459
+ "0": {
460
+ "name": "punctuation.definition.comment.begin.thrift"
461
+ }
462
+ },
463
+ "end": "\\*/",
464
+ "endCaptures": {
465
+ "0": {
466
+ "name": "punctuation.definition.comment.end.thrift"
467
+ }
468
+ },
469
+ "name": "comment.block.documentation.thrift"
470
+ },
471
+ {
472
+ "begin": "/\\*",
473
+ "beginCaptures": {
474
+ "0": {
475
+ "name": "punctuation.definition.comment.begin.thrift"
476
+ }
477
+ },
478
+ "end": "\\*/",
479
+ "endCaptures": {
480
+ "0": {
481
+ "name": "punctuation.definition.comment.end.thrift"
482
+ }
483
+ },
484
+ "name": "comment.block.thrift"
485
+ }
486
+ ]
487
+ },
488
+ "field": {
489
+ "begin": "(?x)\n\t\t\t\t\t\t(?<![^\\s{(])(?=\\S)\n\t\t\t\t\t\t(\\d+\\s*:)?[ \\t]*\n\t\t\t\t\t\t(?:\t(required|optional)(?!\\S)[ \\t]*\n\t\t\t\t\t\t|\t(?=\\S)(?!=required|optional|\\d)\n\t\t\t\t\t\t)",
490
+ "beginCaptures": {
491
+ "1": {
492
+ "name": "entity.other.field-id.thrift"
493
+ },
494
+ "2": {
495
+ "name": "keyword.other.requiredness.thrift"
496
+ }
497
+ },
498
+ "end": "[,;]|(?=[)#])|$",
499
+ "endCaptures": {
500
+ "0": {
501
+ "name": "punctuation.separator.fields.thrift"
502
+ }
503
+ },
504
+ "name": "meta.field.thrift",
505
+ "patterns": [
506
+ {
507
+ "begin": "(?x)\n\t\t\t\t\t\t\t(?<ft>\n\t\t\t\t\t\t\t\tmap\\s*<\\s*\\g<ft>\\s*,\\s*\\g<ft>\\s*> |\n\t\t\t\t\t\t\t\tset\\s*<\\s*\\g<ft>\\s*> |\n\t\t\t\t\t\t\t\tlist\\s*<\\s*\\g<ft>\\s*>\\s*(cpp_type(?!\\S))? |\n\t\t\t\t\t\t\t\t[a-zA-Z_][\\w.]*\n\t\t\t\t\t\t\t)[ \\t]*\n\t\t\t\t\t\t\t(?:([a-zA-Z_][\\w.]*)[ \\t]*)? # identifier\n\t\t\t\t\t\t\t",
508
+ "beginCaptures": {
509
+ "1": {
510
+ "name": "storage.type.field.thrift"
511
+ },
512
+ "2": {
513
+ "name": "keyword.other.cpp-type.thrift"
514
+ },
515
+ "3": {
516
+ "name": "variable.other.field-name.thrift"
517
+ }
518
+ },
519
+ "end": "(?=[,;]|[)#])|$",
520
+ "patterns": [
521
+ {
522
+ "begin": "=",
523
+ "end": "(?=[,;]|[)#])|$",
524
+ "patterns": [
525
+ {
526
+ "match": "(?<!\\S)(xsd_optional)\\b",
527
+ "name": "keyword.other.xsd_optional.thrift"
528
+ },
529
+ {
530
+ "match": "(?<!\\S)(xsd_nillable)\\b",
531
+ "name": "keyword.other.xsd_nillable.thrift"
532
+ },
533
+ {
534
+ "include": "#value"
535
+ }
536
+ ]
537
+ }
538
+ ]
539
+ }
540
+ ]
541
+ },
542
+ "value": {
543
+ "patterns": [
544
+ {
545
+ "match": "[+-]?\\d*\\.\\d+([eE][+-]?\\d+)?",
546
+ "name": "constant.numeric.float.thrift"
547
+ },
548
+ {
549
+ "match": "[+-]?\\d+",
550
+ "name": "constant.numeric.integer.thrift"
551
+ },
552
+ {
553
+ "match": "[a-zA-Z_][\\w.]*",
554
+ "name": "constant.other.const-data.thrift"
555
+ },
556
+ {
557
+ "begin": "'",
558
+ "beginCaptures": {
559
+ "0": {
560
+ "name": "punctuation.definition.string.begin.thrift"
561
+ }
562
+ },
563
+ "end": "'",
564
+ "endCaptures": {
565
+ "0": {
566
+ "name": "punctuation.definition.string.end.thrift"
567
+ }
568
+ },
569
+ "name": "string.quoted.single.thrift"
570
+ },
571
+ {
572
+ "begin": "\"",
573
+ "beginCaptures": {
574
+ "0": {
575
+ "name": "punctuation.definition.string.begin.thrift"
576
+ }
577
+ },
578
+ "end": "\"",
579
+ "endCaptures": {
580
+ "0": {
581
+ "name": "punctuation.definition.string.begin.thrift"
582
+ }
583
+ },
584
+ "name": "string.quoted.double.thrift"
585
+ },
586
+ {
587
+ "begin": "\\[",
588
+ "beginCaptures": {
589
+ "0": {
590
+ "name": "punctuation.definition.array.begin.thrift"
591
+ }
592
+ },
593
+ "end": "\\]",
594
+ "endCaptures": {
595
+ "0": {
596
+ "name": "punctuation.definition.array.end.thrift"
597
+ }
598
+ },
599
+ "name": "meta.array.thrift",
600
+ "patterns": [
601
+ {
602
+ "match": "[,;]"
603
+ },
604
+ {
605
+ "include": "#value"
606
+ }
607
+ ]
608
+ },
609
+ {
610
+ "begin": "\\{",
611
+ "beginCaptures": {
612
+ "0": {
613
+ "name": "punctuation.definition.map.begin.thrift"
614
+ }
615
+ },
616
+ "end": "\\}",
617
+ "endCaptures": {
618
+ "0": {
619
+ "name": "punctuation.definition.map.end.thrift"
620
+ }
621
+ },
622
+ "name": "meta.map.thrift",
623
+ "patterns": [
624
+ {
625
+ "match": "[:,;]"
626
+ },
627
+ {
628
+ "include": "#value"
629
+ }
630
+ ]
631
+ },
632
+ {
633
+ "match": "\\S",
634
+ "name": "invalid.illegal.thrift"
635
+ }
636
+ ]
637
+ }
638
+ },
639
+ "scopeName": "source.thrift",
640
+ "uuid": "9E5704AC-54ED-4D7C-946C-6DC3727BDC4C"
641
+ }