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,417 @@
1
+ {
2
+ "fileTypes": [
3
+
4
+ ],
5
+ "foldingStartMarker": "^\\s*(function|if|switch|while|for|try)\\b(?!.*\\b(end|endfunction|endif|endswitch|endwhile|endfor|endtry)\\b).*$",
6
+ "foldingStopMarker": "^\\s*(end|return|endfunction|endif|endswitch|endwhile|endfor|endtry)\\b.*$",
7
+ "keyEquivalent": "^~O",
8
+ "name": "Octave",
9
+ "patterns": [
10
+ {
11
+ "begin": "(?x)\n(?=function\\b) # borrowed from ruby bundle\n(?<=^|\\s)(function)\\s+ # the function keyword\n(?>\\[(.*)\\])?\\t# match various different combination of output arguments\n((?>[a-zA-Z_]\\w*))?\n(?>\\s*=\\s*)?\n((?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? )) # the function name\n(?=[ \\t]*[^\\s%|#]) # make sure arguments and not a comment follow\n\\s*(\\() # the opening parenthesis for arguments",
12
+ "beginCaptures": {
13
+ "1": {
14
+ "name": "storage.type.octave"
15
+ },
16
+ "2": {
17
+ "name": "variable.parameter.output.function.octave"
18
+ },
19
+ "3": {
20
+ "name": "variable.parameter.output.function.octave"
21
+ },
22
+ "4": {
23
+ "name": "entity.name.function.octave"
24
+ }
25
+ },
26
+ "contentName": "variable.parameter.input.function.octave",
27
+ "end": "\\)",
28
+ "endCaptures": {
29
+ "0": {
30
+ "name": "punctuation.definition.parameters.octave"
31
+ }
32
+ },
33
+ "name": "meta.function.with-arguments.octave"
34
+ },
35
+ {
36
+ "captures": {
37
+ "1": {
38
+ "name": "storage.type.octave"
39
+ },
40
+ "2": {
41
+ "name": "variable.parameter.output.function.octave"
42
+ },
43
+ "3": {
44
+ "name": "variable.parameter.output.function.octave"
45
+ },
46
+ "4": {
47
+ "name": "entity.name.function.octave"
48
+ }
49
+ },
50
+ "match": "(?x)\n(?=function\\b) # borrowed from ruby bundle\n(?<=^|\\s)(function)\\s+ # the function keyword\n(?>\\[(.*)\\])? # match various different combination of output arguments\n((?>[a-zA-Z_]\\w*))?\n(?>\\s*=\\s*)?\n((?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? )) # the function name",
51
+ "name": "meta.function.without-arguments.octave"
52
+ },
53
+ {
54
+ "include": "#constants_override"
55
+ },
56
+ {
57
+ "include": "#brackets"
58
+ },
59
+ {
60
+ "include": "#curlybrackets"
61
+ },
62
+ {
63
+ "include": "#parens"
64
+ },
65
+ {
66
+ "include": "#string"
67
+ },
68
+ {
69
+ "include": "#string_double"
70
+ },
71
+ {
72
+ "include": "#transpose"
73
+ },
74
+ {
75
+ "include": "#double_quote"
76
+ },
77
+ {
78
+ "include": "#operators"
79
+ },
80
+ {
81
+ "include": "#all_octave_keywords"
82
+ },
83
+ {
84
+ "include": "#all_octave_comments"
85
+ },
86
+ {
87
+ "include": "#number"
88
+ },
89
+ {
90
+ "include": "#variable"
91
+ },
92
+ {
93
+ "include": "#variable_invalid"
94
+ },
95
+ {
96
+ "include": "#not_equal_invalid"
97
+ },
98
+ {
99
+ "include": "#variable_assignment"
100
+ }
101
+ ],
102
+ "repository": {
103
+ "all_octave_comments": {
104
+ "patterns": [
105
+ {
106
+ "captures": {
107
+ "1": {
108
+ "name": "punctuation.definition.comment.octave"
109
+ }
110
+ },
111
+ "match": "(%%).*$\\n?",
112
+ "name": "comment.double.percentage.octave"
113
+ },
114
+ {
115
+ "begin": "%\\{",
116
+ "captures": {
117
+ "1": {
118
+ "name": "punctuation.definition.comment.octave"
119
+ }
120
+ },
121
+ "end": "%\\}",
122
+ "name": "comment.block.percentage.octave"
123
+ },
124
+ {
125
+ "captures": {
126
+ "1": {
127
+ "name": "punctuation.definition.comment.octave"
128
+ }
129
+ },
130
+ "match": "(%).*$\\n?",
131
+ "name": "comment.line.percentage.octave"
132
+ },
133
+ {
134
+ "captures": {
135
+ "1": {
136
+ "name": "punctuation.definition.comment.octave"
137
+ }
138
+ },
139
+ "match": "(#).*$\\n?",
140
+ "name": "comment.line.number-sign.octave"
141
+ }
142
+ ]
143
+ },
144
+ "all_octave_keywords": {
145
+ "patterns": [
146
+ {
147
+ "include": "#octave_keyword_control"
148
+ },
149
+ {
150
+ "include": "#octave_constant_language"
151
+ },
152
+ {
153
+ "include": "#octave_storage_control"
154
+ },
155
+ {
156
+ "include": "#octave_support_function"
157
+ },
158
+ {
159
+ "include": "#octave_support_external"
160
+ }
161
+ ]
162
+ },
163
+ "allofem": {
164
+ "patterns": [
165
+ {
166
+ "include": "#parens"
167
+ },
168
+ {
169
+ "include": "#curlybrackets"
170
+ },
171
+ {
172
+ "include": "#end_in_parens"
173
+ },
174
+ {
175
+ "include": "#brackets"
176
+ },
177
+ {
178
+ "include": "#string"
179
+ },
180
+ {
181
+ "include": "#string_double"
182
+ },
183
+ {
184
+ "include": "#transpose"
185
+ },
186
+ {
187
+ "include": "#all_octave_keywords"
188
+ },
189
+ {
190
+ "include": "#all_octave_comments"
191
+ },
192
+ {
193
+ "include": "#variable"
194
+ },
195
+ {
196
+ "include": "#variable_invalid"
197
+ },
198
+ {
199
+ "include": "#number"
200
+ },
201
+ {
202
+ "include": "#operators"
203
+ }
204
+ ]
205
+ },
206
+ "brackets": {
207
+ "begin": "\\[",
208
+ "beginCaptures": {
209
+ "0": {
210
+ "name": "meta.brackets.octave"
211
+ }
212
+ },
213
+ "contentName": "meta.brackets.octave",
214
+ "end": "\\]",
215
+ "endCaptures": {
216
+ "0": {
217
+ "name": "meta.brackets.octave"
218
+ }
219
+ },
220
+ "patterns": [
221
+ {
222
+ "include": "#allofem"
223
+ }
224
+ ]
225
+ },
226
+ "constants_override": {
227
+ "comment": "The user is trying to override MATLAB constants and functions.",
228
+ "match": "(^|\\;)\\s*(i|j|inf|Inf|nan|NaN|eps|end)\\s*=[^=]",
229
+ "name": "meta.inappropriate.octave"
230
+ },
231
+ "curlybrackets": {
232
+ "begin": "\\{",
233
+ "beginCaptures": {
234
+ "0": {
235
+ "name": "meta.brackets.curly.octave"
236
+ }
237
+ },
238
+ "contentName": "meta.brackets.curly.octave",
239
+ "end": "\\}",
240
+ "endCaptures": {
241
+ "0": {
242
+ "name": "meta.brackets.curly.octave"
243
+ }
244
+ },
245
+ "patterns": [
246
+ {
247
+ "include": "#allofem"
248
+ },
249
+ {
250
+ "include": "#end_in_parens"
251
+ }
252
+ ]
253
+ },
254
+ "end_in_parens": {
255
+ "comment": "end as operator symbol",
256
+ "match": "\\bend\\b",
257
+ "name": "keyword.operator.symbols.octave"
258
+ },
259
+ "escaped_quote": {
260
+ "patterns": [
261
+ {
262
+ "match": "''",
263
+ "name": "constant.character.escape.octave"
264
+ }
265
+ ]
266
+ },
267
+ "not_equal_invalid": {
268
+ "comment": "Not equal is written ~= not !=.",
269
+ "match": "\\s*!=\\s*",
270
+ "name": "invalid.illegal.invalid-inequality.octave"
271
+ },
272
+ "number": {
273
+ "comment": "Valid numbers: 1, .1, 1.1, .1e1, 1.1e1, 1e1, 1i, 1j, 1e2j",
274
+ "match": "(?<=[\\s\\-\\+\\*\\/\\\\=:\\[\\(\\{,]|^)\\d*\\.?\\d+([eE][+-]?\\d)?([0-9&&[^\\.]])*(i|j)?\\b",
275
+ "name": "constant.numeric.octave"
276
+ },
277
+ "octave_constant_language": {
278
+ "comment": "MATLAB constants",
279
+ "match": "\\b(argv|e|eps|false|F_DUPFD|F_GETFD|F_GETFL|filesep|F_SETFD|F_SETFL|i|I|inf|Inf|j|J|NA|nan|NaN|O_APPEND|O_ASYNC|O_CREAT|OCTAVE_HOME|OCTAVE_VERSION|O_EXCL|O_NONBLOCK|O_RDONLY|O_RDWR|O_SYNC|O_TRUNC|O_WRONLY|pi|program_invocation_name|program_name|P_tmpdir|realmax|realmin|SEEK_CUR|SEEK_END|SEEK_SET|SIG|stderr|stdin|stdout|true|ans|automatic_replot|beep_on_error|completion_append_char|crash_dumps_octave_core|current_script_file_name|debug_on_error|debug_on_interrupt|debug_on_warning|debug_symtab_lookups|DEFAULT_EXEC_PATH|DEFAULT_LOADPATH|default_save_format|echo_executing_commands|EDITOR|EXEC_PATH|FFTW_WISDOM_PROGRAM|fixed_point_format|gnuplot_binary|gnuplot_command_axes|gnuplot_command_end|gnuplot_command_plot|gnuplot_command_replot|gnuplot_command_splot|gnuplot_command_title|gnuplot_command_using|gnuplot_command_with|gnuplot_has_frames|history_file|history_size|ignore_function_time_stamp|IMAGEPATH|INFO_FILE|INFO_PROGRAM|__kluge_procbuf_delay__|LOADPATH|MAKEINFO_PROGRAM|max_recursion_depth|octave_core_file_format|octave_core_file_limit|octave_core_file_name|output_max_field_width|output_precision|page_output_immediately|PAGER|page_screen_output|print_answer_id_name|print_empty_dimensions|print_rhs_assign_val|PS1|PS2|PS4|save_header_format_string|save_precision|saving_history|sighup_dumps_octave_core|sigterm_dumps_octave_core|silent_functions|split_long_rows|string_fill_char|struct_levels_to_print|suppress_verbose_help_message|variables_can_hide_functions|warn_assign_as_truth_value|warn_divide_by_zero|warn_empty_list_elements|warn_fortran_indexing|warn_function_name_clash|warn_future_time_stamp|warn_imag_to_real|warn_matlab_incompatible|warn_missing_semicolon|warn_neg_dim_as_zero|warn_num_to_str|warn_precedence_change|warn_reload_forces_clear|warn_resize_on_range_error|warn_separator_insert|warn_single_quote_string|warn_str_to_num|warn_undefined_return_values|warn_variable_switch_label|whos_line_format)\\b",
280
+ "name": "constant.language.octave"
281
+ },
282
+ "octave_keyword_control": {
283
+ "comment": "Control keywords",
284
+ "match": "(?<!\\.)\\b(all_va_args|break|case|catch|continue|else|end|for|elseif|end_unwind_protect|global|gplot|gsplot|if|otherwise|persistent|replot|return|static|start|startat|stop|switch|try|until|unwind_protect|unwind_protect_cleanup|varargin|varargout|wait|while)\\b",
285
+ "name": "keyword.control.octave"
286
+ },
287
+ "octave_storage_control": {
288
+ "comment": "File I/O",
289
+ "match": "\\b(casesen|cd|chdir|clear|dbclear|dbstatus|dbstop|dbtype|dbwhere|diary|echo|edit_history|__end__|format|gset|gshow|help|history|hold|iskeyword|isvarname|load|ls|mark_as_command|mislocked|mlock|more|munlock|run_history|save|set|show|type|unmark_command|which|who|whos)\\b",
290
+ "name": "storage.control.octave"
291
+ },
292
+ "octave_support_external": {
293
+ "comment": "External Interfaces",
294
+ "match": "\\b(airy_Ai|airy_Ai_deriv|airy_Ai_deriv_scaled|airy_Ai_scaled|airy_Bi|airy_Bi_deriv|airy_Bi_deriv_scaled|airy_Bi_scaled|airy_zero_Ai|airy_zero_Ai_deriv|airy_zero_Bi|airy_zero_Bi_deriv|atanint|bchdeco|bchenco|bessel_il_scaled|bessel_In|bessel_In_scaled|bessel_Inu|bessel_Inu_scaled|bessel_jl|bessel_Jn|bessel_Jnu|bessel_kl_scaled|bessel_Kn|bessel_Kn_scaled|bessel_Knu|bessel_Knu_scaled|bessel_lnKnu|bessel_yl|bessel_Yn|bessel_Ynu|bessel_zero_J0|bessel_zero_J1|beta_gsl|bfgsmin|bisectionstep|builtin|bwfill|bwlabel|cell2csv|celleval|Chi|chol|Ci|clausen|conicalP_0|conicalP_1|conicalP_half|conicalP_mhalf|conv2|cordflt2|coupling_3j|coupling_6j|coupling_9j|csv2cell|csvconcat|csvexplode|cyclgen|cyclpoly|dawson|debye_1|debye_2|debye_3|debye_4|deref|dispatch|dispatch_help|display_fixed_operations|dlmread|ellint_Ecomp|ellint_Kcomp|ellipj|erfc_gsl|erf_gsl|erf_Q|erf_Z|_errcore|eta|eta_int|expint_3|expint_E1|expint_E2|expint_Ei|expm1|exp_mult|exprel|exprel_2|exprel_n|fabs|fangle|farg|fatan2|fceil|fconj|fcos|fcosh|fcumprod|fcumsum|fdiag|fermi_dirac_3half|fermi_dirac_half|fermi_dirac_inc_0|fermi_dirac_int|fermi_dirac_mhalf|fexp|ffloor|fimag|finitedifference|fixed|flog|flog10|fprod|freal|freshape|fround|fsin|fsinh|fsqrt|fsum|fsumsq|ftan|ftanh|full|gamma_gsl|gamma_inc|gamma_inc_P|gamma_inc_Q|gammainv_gsl|gammastar|gdet|gdiag|gexp|gf|gfilter|_gfweight|ginv|ginverse|glog|glu|gpick|gprod|grab|grank|graycomatrix|__grcla__|__grclf__|__grcmd__|greshape|__grexit__|__grfigure__|__grgetstat__|__grhold__|__grinit__|__grishold__|__grnewset__|__grsetgraph__|gsl_sf|gsqrt|gsum|gsumsq|gtext|gzoom|hazard|houghtf|hyperg_0F1|hzeta|is_complex_sparse|isfixed|isgalois|isprimitive|is_real_sparse|is_sparse|jpgread|jpgwrite|lambert_W0|lambert_Wm1|legendre_Pl|legendre_Plm|legendre_Ql|legendre_sphPlm|legendre_sphPlm_array|leval|listen|lnbeta|lncosh|lngamma_gsl|lnpoch|lnsinh|log_1plusx|log_1plusx_mx|log_erfc|lp|make_sparse|mark_for_deletion|medfilt1|newtonstep|nnz|numgradient|numhessian|pchip_deriv|pngread|pngwrite|poch|pochrel|pretty|primpoly|psi|psi_1_int|psi_1piy|psi_n|rand|rande|randn|randp|regexp|remez|reset_fixed_operations|rotate_scale|rsdec|rsenc|samin|SBBacksub|SBEig|SBFactor|SBProd|SBSolve|Shi|Si|sinc_gsl|spabs|sparse|spfind|spimag|spinv|splu|spreal|SymBand|synchrotron_1|synchrotron_2|syndtable|taylorcoeff|transport_2|transport_3|transport_4|transport_5|trisolve|waitbar|xmlread|zeta|zeta_int|aar|aarmam|ac2poly|ac2rc|acorf|acovf|addpath|ademodce|adim|adsmax|amodce|anderson_darling_cdf|anderson_darling_test|anovan|apkconst|append_save|applylut|ar2poly|ar2rc|arburg|arcext|arfit2|ar_spa|aryule|assert|au|aucapture|auload|auplot|aurecord|ausave|autumn|average_moments|awgn|azimuth|BandToFull|BandToSparse|base64encode|battery|bchpoly|bestblk|best_dir|best_dir_cov|betaln|bfgs|bfgsmin_example|bi2de|biacovf|bilinear|bisdemo|bispec|biterr|blkdiag|blkproc|bmpwrite|bone|bound_convex|boxcar|boxplot|brighten|bs_gradient|butter|buttord|bwborder|bweuler|bwlabel|bwmorph|bwselect|calendar|cceps|cdiff|cellstr|char|cheb|cheb1ord|cheb2ord|chebwin|cheby1|cheby2|chirp|clf|clip|cmpermute|cmunique|cohere|col2im|colfilt|colorgradient|comms|compand|complex|concat|conndef|content|contents|Contents|contourf|convhull|convmtx|cool|copper|corr2|cosets|count|covm|cplxpair|cquadnd|create_lookup_table|crule|crule2d|crule2dgen|csape|csapi|csd|csvread|csvwrite|ctranspose|cumtrapz|czt|d2_min|datenum|datestr|datevec|dct|dct2|dctmtx|de2bi|deal|decimate|decode|deg2rad|del2|delaunay|delaunay3|delta_method|demo|demodmap|deriv|detrend|dfdp|dftmtx|dhbar|dilate|dispatch|distance|dlmread|dlmwrite|dos|double|drawnow|durlev|dxfwrite|edge|edit|ellip|ellipdemo|ellipj|ellipke|ellipord|__ellip_ws|__ellip_ws_min|encode|eomday|erode|example|ExampleEigenValues|ExampleGenEigenValues|expdemo|expfit|eyediagram|factor|factorial|fail|fcnchk|feedback|fem_test|ff2n|fftconv2|fieldnames|fill|fill3|filter2|filtfilt|filtic|findsym|fir1|fir2|fixedpoint|flag|flag_implicit_samplerate|flattopwin|flix|float|fmin|fminbnd|fmins|fminunc|fnder|fnplt|fnval|fplot|freqs|freqs_plot|fsort|fullfact|FullToBand|funm|fzero|gammaln|gapTest|gaussian|gausswin|gconv|gconvmtx|gdeconv|gdftmtx|gen2par|geomean|getfield|getfields|gfft|gftable|gfweight|gget|gifft|ginput|gmm_estimate|gmm_example|gmm_obj|gmm_results|gmm_variance|gmm_variance_inefficient|gquad|gquad2d|gquad2d6|gquad2dgen|gquad6|gquadnd|grace_octave_path|gradient|grayslice|grep|grid|griddata|groots|grpdelay|grule|grule2d|grule2dgen|hadamard|hammgen|hankel|hann|harmmean|hilbert|histeq|histfit|histo|histo2|histo3|histo4|hot|hsv|hup|idct|idct2|idplot|idsim|ifftshift|im2bw|im2col|imadjust|imginfo|imhist|imnoise|impad|impz|imread|imrotate|imshear|imtranslate|imwrite|innerfun|inputname|interp|interp1|interp2|interpft|intersect|invest0|invest1|invfdemo|invfreq|invfreqs|invfreqz|inz|irsa_act|irsa_actcore|irsa_check|irsa_dft|irsa_dftfp|irsa_genreal|irsa_idft|irsa_isregular|irsa_jitsp|irsa_mdsp|irsa_normalize|irsa_plotdft|irsa_resample|irsa_rgenreal|isa|isbw|isdir|isequal|isfield|isgray|isind|ismember|isprime|isrgb|issparse|isunix|jet|kaiser|kaiserord|lambertw|lattice|lauchli|leasqr|leasqrdemo|legend|legendre|levinson|lin2mu|line_min|lloyds|lookup|lookup_table|lpc|lp_test|mad|magic|makelut|MakeShears|map|mat2gray|mat2str|mdsmax|mean2|medfilt2|meshc|minimize|minpol|mkpp|mktheta|mle_estimate|mle_example|mle_obj|mle_results|mle_variance|modmap|mu2lin|mvaar|mvar|mvfilter|mvfreqz|myfeval|nanmax|nanmean|nanmedian|nanmin|nanstd|nansum|ncauer|nchoosek|ncrule|ndims|nelder_mead_min|newmark|nlfilter|nlnewmark|__nlnewmark_fcn__|nmsmax|nonzeros|normplot|now|nrm|nthroot|nze|OCTAVE_FORGE_VERSION|ode23|ode45|ode78|optimset|ordfilt2|orient|pacf|padarray|parameterize|parcor|pareto|pascal|patch|pburg|pcg|pchip|pcolor|pcr|peaks|penddot|pendulum|perms|pie|pink|plot3|__plt3__|poly2ac|poly2ar|poly_2_ex|poly2mask|poly2rc|poly2sym|poly2th|polyarea|polyconf|polyder|polyderiv|polygcd|polystab|__power|ppval|prctile|prettyprint|prettyprint_c|primes|princomp|print|prism|proplan|pulstran|pwelch|pyulear|qaskdeco|qaskenco|qtdecomp|qtgetblk|qtsetblk|quad2dc|quad2dcgen|quad2dg|quad2dggen|quadc|quadg|quadl|quadndg|quantiz|quiver|rad2deg|rainbow|randerr|randint|randsrc|rat|rats|rc2ac|rc2ar|rc2poly|rceps|read_options|read_pdb|rectpuls|resample|rgb2gray|rk2fixed|rk4fixed|rk8fixed|rmfield|rmle|rmpath|roicolor|rosser|rotparams|rotv|rref|rsdecof|rsencof|rsgenpoly|samin_example|save_vrml|sbispec|scale_data|scatter|scatterplot|select_3D_points|selmo|setdiff|setfield|setfields|setxor|sftrans|sgolay|sgolayfilt|sinvest1|slurp_file|sortrows|sound|soundsc|spdiags|specgram|speed|speye|spfun|sphcat|spline|splot|spones|sprand|sprandn|spring|spstats|spsum|sp_test|sptest|spvcat|spy|std2|stem|str2double|strcmpi|stretchlim|strfind|strmatch|strncmp|strncmpi|strsort|strtok|strtoz|struct|strvcat|summer|sumskipnan|surf|surfc|sym2poly|symerr|symfsolve|tabulate|tar|temp_name|test|test_d2_min_1|test_d2_min_2|test_d2_min_3|test_ellipj|test_fminunc_1|testimio|test_inline_1|test_min_1|test_min_2|test_min_3|test_min_4|test_minimize_1|test_nelder_mead_min_1|test_nelder_mead_min_2|test_sncndn|test_struct|test_vmesh|test_vrml_faces|test_wpolyfit|text|textread|tf2zp|tfe|thfm|tics|toeplitz|toggle_grace_use|transpose|trapz|triang|tril|trimmean|tripuls|trisolve|triu|tsademo|tsearchdemo|ucp|uintlut|unique|unix|unmkpp|unscale_parameters|vec2mat|view|vmesh|voronoi|voronoin|vrml_arrow|vrml_Background|vrml_browse|vrml_cyl|vrml_demo_tutorial_1|vrml_demo_tutorial_2|vrml_demo_tutorial_3|vrml_demo_tutorial_4|vrml_ellipsoid|vrml_faces|vrml_flatten|vrml_frame|vrml_group|vrml_kill|vrml_lines|vrml_material|vrml_parallelogram|vrml_PointLight|vrml_points|vrml_select_points|vrml_surf|vrml_text|vrml_thick_surf|vrml_transfo|wavread|wavwrite|weekday|wgn|white|wilkinson|winter|wpolyfit|wpolyfitdemo|write_pdb|wsolve|xcorr|xcorr2|xcov|xlsread|xmlwrite|y2res|zero_count|zoom|zp2tf|zplane|zscore)\\b",
295
+ "name": "support.external.octave"
296
+ },
297
+ "octave_support_function": {
298
+ "comment": "Creating Graphical User Interfaces",
299
+ "match": "\\b(abs|acos|acosh|all|angle|any|append|arg|argnames|asin|asinh|assignin|atan|atan2|atanh|atexit|bitand|bitmax|bitor|bitshift|bitxor|casesen|cat|cd|ceil|cell|cell2struct|cellstr|char|chdir|class|clc|clear|clearplot|clg|closeplot|completion_matches|conj|conv|convmtx|cos|cosh|cumprod|cumsum|dbclear|dbstatus|dbstop|dbtype|dbwhere|deconv|det|dftmtx|diag|diary|disp|document|do_string_escapes|double|dup2|echo|edit_history|__end__|erf|erfc|ERRNO|error|__error_text__|error_text|eval|evalin|exec|exist|exit|exp|eye|fclose|fcntl|fdisp|feof|ferror|feval|fflush|fft|fgetl|fgets|fieldnames|file_in_loadpath|file_in_path|filter|find|find_first_of_in_loadpath|finite|fix|floor|fmod|fnmatch|fopen|fork|format|formula|fprintf|fputs|fread|freport|frewind|fscanf|fseek|ftell|func2str|functions|fwrite|gamma|gammaln|getegid|getenv|geteuid|getgid|getpgrp|getpid|getppid|getuid|glob|graw|gset|gshow|help|history|hold|home|horzcat|ifft|imag|inline|input|input_event_hook|int16|int32|int64|int8|intmax|intmin|inv|inverse|ipermute|isalnum|isalpha|isascii|isbool|iscell|iscellstr|ischar|iscntrl|iscomplex|isdigit|isempty|isfield|isfinite|isglobal|isgraph|ishold|isieee|isinf|iskeyword|islist|islogical|islower|ismatrix|isna|isnan|is_nan_or_na|isnumeric|isprint|ispunct|isreal|isspace|isstream|isstreamoff|isstruct|isupper|isvarname|isxdigit|kbhit|keyboard|kill|lasterr|lastwarn|length|lgamma|link|linspace|list|load|log|log10|ls|lstat|lu|mark_as_command|mislocked|mkdir|mkfifo|mkstemp|mlock|more|munlock|nargin|nargout|native_float_format|ndims|nth|numel|octave_config_info|octave_tmp_file_name|ones|pause|pclose|permute|pipe|popen|printf|__print_symbol_info__|__print_symtab_info__|prod|purge_tmp_files|putenv|puts|pwd|quit|rank|readdir|readlink|read_readline_init_file|real|rehash|rename|reshape|reverse|rmdir|rmfield|roots|round|run_history|save|scanf|set|shell_cmd|show|sign|sin|sinh|size|sizeof|sleep|sort|source|splice|sprintf|sqrt|squeeze|sscanf|stat|str2func|streamoff|struct|struct2cell|sum|sumsq|symlink|system|tan|tanh|tilde_expand|tmpfile|tmpnam|toascii|__token_count__|tolower|toupper|type|typeinfo|uint16|uint32|uint64|uint8|umask|undo_string_escapes|unlink|unmark_command|usage|usleep|va_arg|va_start|vectorize|vertcat|vr_val|waitpid|warning|warranty|which|who|whos|zeros|airy|balance|besselh|besseli|besselj|besselk|bessely|betainc|chol|colloc|daspk|daspk_options|dasrt|dasrt_options|dassl|dassl_options|det|eig|endgrent|endpwent|expm|fft|fft2|fftn|fftw_wisdom|filter|find|fsolve|fsolve_options|gammainc|gcd|getgrent|getgrgid|getgrnam|getpwent|getpwnam|getpwuid|getrusage|givens|gmtime|hess|ifft|ifft2|ifftn|inv|inverse|kron|localtime|lpsolve|lpsolve_options|lsode|lsode_options|lu|max|min|minmax|mktime|odessa|odessa_options|pinv|qr|quad|quad_options|qz|rand|randn|schur|setgrent|setpwent|sort|sqrtm|strftime|strptime|svd|syl|time|abcddim|__abcddims__|acot|acoth|acsc|acsch|analdemo|anova|arch_fit|arch_rnd|arch_test|are|arma_rnd|asctime|asec|asech|autocor|autocov|autoreg_matrix|axis|axis2dlim|__axis_label__|bar|bartlett|bartlett_test|base2dec|bddemo|beep|bessel|beta|beta_cdf|betai|beta_inv|beta_pdf|beta_rnd|bin2dec|bincoeff|binomial_cdf|binomial_inv|binomial_pdf|binomial_rnd|bitcmp|bitget|bitset|blackman|blanks|bode|bode_bounds|__bodquist__|bottom_title|bug_report|buildssic|c2d|cart2pol|cart2sph|cauchy_cdf|cauchy_inv|cauchy_pdf|cauchy_rnd|cellidx|center|chisquare_cdf|chisquare_inv|chisquare_pdf|chisquare_rnd|chisquare_test_homogeneity|chisquare_test_independence|circshift|clock|cloglog|close|colormap|columns|com2str|comma|common_size|commutation_matrix|compan|complement|computer|cond|contour|controldemo|conv|cor|corrcoef|cor_test|cot|coth|cov|cputime|create_set|cross|csc|csch|ctime|ctrb|cut|d2c|damp|dare|date|dcgain|deal|deblank|dec2base|dec2bin|dec2hex|deconv|delete|DEMOcontrol|demoquat|detrend|dezero|dgkfdemo|dgram|dhinfdemo|diff|diffpara|dir|discrete_cdf|discrete_inv|discrete_pdf|discrete_rnd|dkalman|dlqe|dlqg|dlqr|dlyap|dmr2d|dmult|dot|dre|dump_prefs|duplication_matrix|durbinlevinson|empirical_cdf|empirical_inv|empirical_pdf|empirical_rnd|erfinv|__errcomm__|errorbar|__errplot__|etime|exponential_cdf|exponential_inv|exponential_pdf|exponential_rnd|f_cdf|fftconv|fftfilt|fftshift|figure|fileparts|findstr|f_inv|fir2sys|flipdim|fliplr|flipud|flops|f_pdf|fractdiff|frdemo|freqchkw|__freqresp__|freqz|freqz_plot|f_rnd|f_test_regression|fullfile|fv|fvl|gamma_cdf|gammai|gamma_inv|gamma_pdf|gamma_rnd|geometric_cdf|geometric_inv|geometric_pdf|geometric_rnd|gls|gram|gray|gray2ind|grid|h2norm|h2syn|hamming|hankel|hanning|hex2dec|hilb|hinf_ctr|hinfdemo|hinfnorm|hinfsyn|hinfsyn_chk|hinfsyn_ric|hist|hotelling_test|hotelling_test_2|housh|hsv2rgb|hurst|hypergeometric_cdf|hypergeometric_inv|hypergeometric_pdf|hypergeometric_rnd|image|imagesc|impulse|imshow|ind2gray|ind2rgb|ind2sub|index|int2str|intersection|invhilb|iqr|irr|isa|is_abcd|is_bool|is_complex|is_controllable|isdefinite|is_detectable|is_dgkf|is_digital|is_duplicate_entry|is_global|is_leap_year|isletter|is_list|is_matrix|is_observable|ispc|is_sample|is_scalar|isscalar|is_signal_list|is_siso|is_square|issquare|is_stabilizable|is_stable|isstr|is_stream|is_struct|is_symmetric|issymmetric|isunix|is_vector|isvector|jet707|kendall|kolmogorov_smirnov_cdf|kolmogorov_smirnov_test|kolmogorov_smirnov_test_2|kruskal_wallis_test|krylov|krylovb|kurtosis|laplace_cdf|laplace_inv|laplace_pdf|laplace_rnd|lcm|lin2mu|listidx|list_primes|loadaudio|loadimage|log2|logical|logistic_cdf|logistic_inv|logistic_pdf|logistic_regression|logistic_regression_derivatives|logistic_regression_likelihood|logistic_rnd|logit|loglog|loglogerr|logm|lognormal_cdf|lognormal_inv|lognormal_pdf|lognormal_rnd|logspace|lower|lqe|lqg|lqr|lsim|ltifr|lyap|mahalanobis|manova|mcnemar_test|mean|meansq|median|menu|mesh|meshdom|meshgrid|minfo|mod|moddemo|moment|mplot|mu2lin|multiplot|nargchk|nextpow2|nichols|norm|normal_cdf|normal_inv|normal_pdf|normal_rnd|not|nper|npv|ntsc2rgb|null|num2str|nyquist|obsv|ocean|ols|oneplot|ord2|orth|__outlist__|pack|packedform|packsys|parallel|paren|pascal_cdf|pascal_inv|pascal_pdf|pascal_rnd|path|periodogram|perror|place|playaudio|plot|plot_border|__plr__|__plr1__|__plr2__|__plt__|__plt1__|__plt2__|__plt2mm__|__plt2mv__|__plt2ss__|__plt2vm__|__plt2vv__|__pltopt__|__pltopt1__|pmt|poisson_cdf|poisson_inv|poisson_pdf|poisson_rnd|pol2cart|polar|poly|polyder|polyderiv|polyfit|polyinteg|polyout|polyreduce|polyval|polyvalm|popen2|postpad|pow2|ppplot|prepad|probit|prompt|prop_test_2|pv|pvl|pzmap|qconj|qcoordinate_plot|qderiv|qderivmat|qinv|qmult|qqplot|qtrans|qtransv|qtransvmat|quaternion|qzhess|qzval|randperm|range|rank|ranks|rate|record|rectangle_lw|rectangle_sw|rem|repmat|residue|rgb2hsv|rgb2ind|rgb2ntsc|rindex|rldemo|rlocus|roots|rot90|rotdim|rotg|rows|run_cmd|run_count|run_test|saveaudio|saveimage|sec|sech|semicolon|semilogx|semilogxerr|semilogy|semilogyerr|series|setaudio|setstr|shg|shift|shiftdim|sign_test|sinc|sinetone|sinewave|skewness|sombrero|sortcom|spearman|spectral_adf|spectral_xdf|spencer|sph2cart|split|ss|ss2sys|ss2tf|ss2zp|stairs|starp|statistics|std|stdnormal_cdf|stdnormal_inv|stdnormal_pdf|stdnormal_rnd|step|__stepimp__|stft|str2mat|str2num|strappend|strcat|strcmp|strerror|strjust|strrep|struct_contains|struct_elements|studentize|sub2ind|subplot|substr|subwindow|swap|swapcols|swaprows|sylvester_matrix|synthesis|sys2fir|sys2ss|sys2tf|sys2zp|sysadd|sysappend|syschnames|__syschnamesl__|syschtsam|__sysconcat__|sysconnect|syscont|__syscont_disc__|__sysdefioname__|__sysdefstname__|sysdimensions|sysdisc|sysdup|sysgetsignals|sysgettsam|sysgettype|sysgroup|__sysgroupn__|sysidx|sysmin|sysmult|sysout|sysprune|sysreorder|sysrepdemo|sysscale|syssetsignals|syssub|sysupdate|table|t_cdf|tempdir|tempname|texas_lotto|tf|tf2ss|tf2sys|__tf2sysl__|tf2zp|__tfl__|tfout|tic|t_inv|title|toc|toeplitz|top_title|t_pdf|trace|triangle_lw|triangle_sw|tril|triu|t_rnd|t_test|t_test_2|t_test_regression|tzero|tzero2|ugain|uniform_cdf|uniform_inv|uniform_pdf|uniform_rnd|union|unix|unpacksys|unwrap|upper|u_test|values|vander|var|var_test|vec|vech|version|vol|weibull_cdf|weibull_inv|weibull_pdf|weibull_rnd|welch_test|wgt1o|wiener_rnd|wilcoxon_test|xlabel|xor|ylabel|yulewalker|zgfmul|zgfslv|zginit|__zgpbal__|zgreduce|zgrownorm|zgscal|zgsgiv|zgshsr|zlabel|zp|zp2ss|__zp2ssg2__|zp2sys|zp2tf|zpout|z_test|z_test_2)\\b",
300
+ "name": "support.function.octave"
301
+ },
302
+ "operators": {
303
+ "comment": "Operator symbols",
304
+ "match": "\\s*(\\+\\+|--|\\+=|-=|\\*=|\\/=|\\^=|\\.\\*=|\\.\\/=|\\.\\^=|==|~=|>|>=|<|<=|&|&&|:|\\||\\|\\||\\+|-|\\*|\\.\\*|/|\\./|\\\\|\\.\\\\|\\^|\\.\\^|!)\\s*",
305
+ "name": "keyword.operator.symbols.octave"
306
+ },
307
+ "parens": {
308
+ "begin": "\\(",
309
+ "beginCaptures": {
310
+ "0": {
311
+ "name": "meta.parens.octave"
312
+ }
313
+ },
314
+ "contentName": "meta.parens.octave",
315
+ "end": "\\)",
316
+ "endCaptures": {
317
+ "0": {
318
+ "name": "meta.parens.octave"
319
+ }
320
+ },
321
+ "patterns": [
322
+ {
323
+ "include": "#allofem"
324
+ },
325
+ {
326
+ "include": "#end_in_parens"
327
+ }
328
+ ]
329
+ },
330
+ "special_characters": {
331
+ "comment": "Operator symbols",
332
+ "match": "((\\%([\\+\\-0]?\\d{0,3}(\\.\\d{1,3})?)(c|d|e|E|f|g|G|s|((b|t)?(o|u|x|X))))|\\%\\%|\\\\(b|f|n|r|t|\\\\))",
333
+ "name": "constant.character.escape.octave"
334
+ },
335
+ "string": {
336
+ "begin": "((?<=(\\[|\\(|\\{|=|\\s|,|;))|^)'",
337
+ "beginCaptures": {
338
+ "0": {
339
+ "name": "punctuation.definition.string.begin.octave"
340
+ }
341
+ },
342
+ "end": "'(?=(\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|\\.|\\^|\\||\\s|;|,))",
343
+ "endCaptures": {
344
+ "0": {
345
+ "name": "punctuation.definition.string.end.octave"
346
+ }
347
+ },
348
+ "name": "string.quoted.single.octave",
349
+ "patterns": [
350
+ {
351
+ "include": "#escaped_quote"
352
+ },
353
+ {
354
+ "include": "#unescaped_quote"
355
+ },
356
+ {
357
+ "include": "#special_characters"
358
+ }
359
+ ]
360
+ },
361
+ "string_double": {
362
+ "begin": "((?<=(\\[|\\(|\\{|=|\\s|;|:|,))|^)\"",
363
+ "beginCaptures": {
364
+ "0": {
365
+ "name": "punctuation.definition.string.begin.octave"
366
+ }
367
+ },
368
+ "end": "\"(?=(\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|\\.|\\^|\\||\\s|;|:|,))",
369
+ "endCaptures": {
370
+ "0": {
371
+ "name": "punctuation.definition.string.end.octave"
372
+ }
373
+ },
374
+ "name": "string.quoted.double.octave",
375
+ "patterns": [
376
+ {
377
+ "include": "#escaped_quote"
378
+ },
379
+ {
380
+ "include": "#unescaped_quote"
381
+ },
382
+ {
383
+ "include": "#special_characters"
384
+ }
385
+ ]
386
+ },
387
+ "transpose": {
388
+ "match": "((\\w+)|(?<=\\])|(?<=\\)))\\.?'",
389
+ "name": "keyword.operator.transpose.octave"
390
+ },
391
+ "unescaped_quote": {
392
+ "patterns": [
393
+ {
394
+ "match": "'(?=.)",
395
+ "name": "invalid.illegal.unescaped-quote.octave"
396
+ }
397
+ ]
398
+ },
399
+ "variable": {
400
+ "comment": "Valid variable.",
401
+ "match": "\\b[a-zA-Z]\\w*\\b",
402
+ "name": "variable.other.valid.octave"
403
+ },
404
+ "variable_assignment": {
405
+ "comment": "Incomplete variable assignment.",
406
+ "match": "=\\s*\\.{0,2}\\s*;?\\s*$\\n?",
407
+ "name": "invalid.illegal.incomplete-variable-assignment.octave"
408
+ },
409
+ "variable_invalid": {
410
+ "comment": "No variables or function names can start with a number or an underscore.",
411
+ "match": "\\b(_\\w|\\d+[_a-df-zA-DF-Z])\\w*\\b",
412
+ "name": "invalid.illegal.invalid-variable-name.octave"
413
+ }
414
+ },
415
+ "scopeName": "source.octave",
416
+ "uuid": "236A240E-F4DA-45BA-905C-4046055E6247"
417
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "comment": "TODO:\n\u2022 Try to improve parameters list syntax \u2013 scope numbers, \u2018=\u2019, \u2018,\u2019 and possibly be intelligent about entity ordering\n\u2022 Is meta.function-call the correct scope? I've added it to my theme but by default it's not highlighted",
3
3
  "firstLineMatch": "^#!.*(?<!-)php[0-9]{0,1}\\b",
4
- "foldingStartMarker": "(\/\\*|\\{\\s*$|<<<HTML)",
5
- "foldingStopMarker": "(\\*\/|^\\s*\\}|^HTML;)",
4
+ "foldingStartMarker": "(/\\*|\\{\\s*$|<<<HTML)",
5
+ "foldingStopMarker": "(\\*/|^\\s*\\}|^HTML;)",
6
6
  "name": "PHP",
7
7
  "patterns": [
8
8
  {
@@ -120,7 +120,7 @@
120
120
  },
121
121
  {
122
122
  "comment": "In PHP, any identifier which is not a variable is taken to be a constant.\n\t\t\t\tHowever, if there is no constant defined with the given name then a notice\n\t\t\t\tis generated and the constant is assumed to have the value of its name.",
123
- "match": "[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*",
123
+ "match": "[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*",
124
124
  "name": "constant.other.php"
125
125
  }
126
126
  ]
@@ -144,10 +144,10 @@
144
144
  "name": "support.class.php"
145
145
  }
146
146
  },
147
- "match": "(?i)\\b(new)\\s+(?:(\\$[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)|(\\w+))|(\\w+)(?=::)"
147
+ "match": "(?i)\\b(new)\\s+(?:(\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)|(\\w+))|(\\w+)(?=::)"
148
148
  },
149
149
  "interpolation": {
150
- "comment": "http:\/\/www.php.net\/manual\/en\/language.types.string.php#language.types.string.parsing",
150
+ "comment": "http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing",
151
151
  "patterns": [
152
152
  {
153
153
  "match": "\\\\[0-7]{1,3}",
@@ -174,7 +174,7 @@
174
174
  }
175
175
  },
176
176
  "comment": "Simple syntax with braces: \"foo${bar}baz\"",
177
- "match": "(?x)\n\t\t\t\t\t\t((\\$\\{)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))\n\t\t\t\t\t\t"
177
+ "match": "(?x)\n\t\t\t\t\t\t((\\$\\{)(?<name>[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)(\\}))\n\t\t\t\t\t\t"
178
178
  },
179
179
  {
180
180
  "captures": {
@@ -216,10 +216,10 @@
216
216
  }
217
217
  },
218
218
  "comment": "Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar",
219
- "match": "(?x)\n\t\t\t\t\t\t((\\$)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t(->)\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t(\\g<name>)\n\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t(\\$\\g<name>)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t(\\[)\n\t\t\t\t\t\t\t\t(?:(\\d+)|((\\$)\\g<name>)|(\\w+)|(.*?))\n\t\t\t\t\t\t\t(\\])\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t"
219
+ "match": "(?x)\n\t\t\t\t\t\t((\\$)(?<name>[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*))\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t(->)\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t(\\g<name>)\n\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t(\\$\\g<name>)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t(\\[)\n\t\t\t\t\t\t\t\t(?:(\\d+)|((\\$)\\g<name>)|(\\w+)|(.*?))\n\t\t\t\t\t\t\t(\\])\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t"
220
220
  },
221
221
  {
222
- "begin": "(?=(?<regex>(?#simple syntax)\\$(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?:\\[(?<index>[a-zA-Z0-9_\\x{7f}-\\x{ff}]+|\\$\\g<name>)\\]|->\\g<name>(\\(.*?\\))?)?|(?#simple syntax with braces)\\$\\{(?:\\g<name>(?<indices>\\[(?:\\g<index>|'(?:\\\\.|[^'\\\\])*'|\"(?:\\g<regex>|\\\\.|[^\"\\\\])*\")\\])?|\\g<complex>|\\$\\{\\g<complex>\\})\\}|(?#complex syntax)\\{(?<complex>\\$(?<segment>\\g<name>(\\g<indices>*|\\(.*?\\))?)(?:->\\g<segment>)*|\\$\\g<complex>|\\$\\{\\g<complex>\\})\\}))\\{",
222
+ "begin": "(?=(?<regex>(?#simple syntax)\\$(?<name>[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)(?:\\[(?<index>[a-zA-Z0-9_\\x7f-\\xff]+|\\$\\g<name>)\\]|->\\g<name>(\\(.*?\\))?)?|(?#simple syntax with braces)\\$\\{(?:\\g<name>(?<indices>\\[(?:\\g<index>|'(?:\\\\.|[^'\\\\])*'|\"(?:\\g<regex>|\\\\.|[^\"\\\\])*\")\\])?|\\g<complex>|\\$\\{\\g<complex>\\})\\}|(?#complex syntax)\\{(?<complex>\\$(?<segment>\\g<name>(\\g<indices>*|\\(.*?\\))?)(?:->\\g<segment>)*|\\$\\g<complex>|\\$\\{\\g<complex>\\})\\}))\\{",
223
223
  "beginCaptures": {
224
224
  "0": {
225
225
  "name": "punctuation.definition.variable.php"
@@ -447,14 +447,14 @@
447
447
  ]
448
448
  },
449
449
  {
450
- "begin": "\/\\*\\*(?:#@\\+)?\\s*$",
450
+ "begin": "/\\*\\*(?:#@\\+)?\\s*$",
451
451
  "captures": {
452
452
  "0": {
453
453
  "name": "punctuation.definition.comment.php"
454
454
  }
455
455
  },
456
- "comment": "This now only highlights a docblock if the first line contains only \/**\n\t\t\t\t\t\t\t\t- this is to stop highlighting everything as invalid when people do comment banners with \/******** ...\n\t\t\t\t\t\t\t\t- Now matches \/**#@+ too - used for docblock templates: http:\/\/manual.phpdoc.org\/HTMLframesConverter\/default\/phpDocumentor\/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate",
457
- "end": "\\*\/",
456
+ "comment": "This now only highlights a docblock if the first line contains only /**\n\t\t\t\t\t\t\t\t- this is to stop highlighting everything as invalid when people do comment banners with /******** ...\n\t\t\t\t\t\t\t\t- Now matches /**#@+ too - used for docblock templates: http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate",
457
+ "end": "\\*/",
458
458
  "name": "comment.block.documentation.phpdoc.php",
459
459
  "patterns": [
460
460
  {
@@ -463,13 +463,13 @@
463
463
  ]
464
464
  },
465
465
  {
466
- "begin": "\/\\*",
466
+ "begin": "/\\*",
467
467
  "captures": {
468
468
  "0": {
469
469
  "name": "punctuation.definition.comment.php"
470
470
  }
471
471
  },
472
- "end": "\\*\/",
472
+ "end": "\\*/",
473
473
  "name": "comment.block.php"
474
474
  },
475
475
  {
@@ -478,7 +478,7 @@
478
478
  "name": "punctuation.definition.comment.php"
479
479
  }
480
480
  },
481
- "match": "(\/\/).*?($\\n?|(?=\\?>))",
481
+ "match": "(//).*?($\\n?|(?=\\?>))",
482
482
  "name": "comment.line.double-slash.php"
483
483
  },
484
484
  {
@@ -597,7 +597,7 @@
597
597
  "name": "punctuation.definition.variable.php"
598
598
  }
599
599
  },
600
- "match": "\\b(catch)\\b\\s*\\(\\s*([A-Za-z_][A-Za-z_0-9]*)\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*\\)",
600
+ "match": "\\b(catch)\\b\\s*\\(\\s*([A-Za-z_][A-Za-z_0-9]*)\\s*((\\$+)[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)\\s*\\)",
601
601
  "name": "meta.catch.php"
602
602
  },
603
603
  {
@@ -636,7 +636,7 @@
636
636
  "name": "meta.function.php",
637
637
  "patterns": [
638
638
  {
639
- "begin": "(?x)\n\t\t\t\t\t\t\t\t\t\\s*(array) # Typehint\n\t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\t\t\\s*(array)\\s*(\\()\n\t\t\t\t\t\t\t\t\t",
639
+ "begin": "(?x)\n\t\t\t\t\t\t\t\t\t\\s*(array) # Typehint\n\t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*) # The variable name\n\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\t\t\\s*(array)\\s*(\\()\n\t\t\t\t\t\t\t\t\t",
640
640
  "beginCaptures": {
641
641
  "1": {
642
642
  "name": "storage.type.php"
@@ -701,7 +701,7 @@
701
701
  "name": "invalid.illegal.non-null-typehinted.php"
702
702
  }
703
703
  },
704
- "match": "(?x)\n\t\t\t\t\t\t\t\t\t\\s*(array) # Typehint\n\t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\t\t\t\\s*(?i:\n\t\t\t\t\t\t\t\t\t\t\t(NULL)\n\t\t\t\t\t\t\t\t\t\t\t|\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)?\n\t\t\t\t\t\t\t\t\t\\s*(?=,|\\)) # A closing parentheses (end of argument list) or a comma\n\t\t\t\t\t\t\t\t\t",
704
+ "match": "(?x)\n\t\t\t\t\t\t\t\t\t\\s*(array) # Typehint\n\t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*) # The variable name\n\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\t\t\t\\s*(?i:\n\t\t\t\t\t\t\t\t\t\t\t(NULL)\n\t\t\t\t\t\t\t\t\t\t\t|\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)?\n\t\t\t\t\t\t\t\t\t\\s*(?=,|\\)) # A closing parentheses (end of argument list) or a comma\n\t\t\t\t\t\t\t\t\t",
705
705
  "name": "meta.function.argument.array.php"
706
706
  },
707
707
  {
@@ -728,7 +728,7 @@
728
728
  "name": "invalid.illegal.non-null-typehinted.php"
729
729
  }
730
730
  },
731
- "match": "(?x)\n\t\t\t\t\t\t\t\t\t\\s*([A-Za-z_][A-Za-z_0-9]*) # Typehinted class name\n\t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\t\t\t\\s*(?i:\n\t\t\t\t\t\t\t\t\t\t\t(NULL)\n\t\t\t\t\t\t\t\t\t\t\t|\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)?\n\t\t\t\t\t\t\t\t\t\\s*(?=,|\\)) # A closing parentheses (end of argument list) or a comma\n\t\t\t\t\t\t\t\t\t",
731
+ "match": "(?x)\n\t\t\t\t\t\t\t\t\t\\s*([A-Za-z_][A-Za-z_0-9]*) # Typehinted class name\n\t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*) # The variable name\n\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\t\t\t\\s*(?i:\n\t\t\t\t\t\t\t\t\t\t\t(NULL)\n\t\t\t\t\t\t\t\t\t\t\t|\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)?\n\t\t\t\t\t\t\t\t\t\\s*(?=,|\\)) # A closing parentheses (end of argument list) or a comma\n\t\t\t\t\t\t\t\t\t",
732
732
  "name": "meta.function.argument.typehinted.php"
733
733
  },
734
734
  {
@@ -743,11 +743,11 @@
743
743
  "name": "punctuation.definition.variable.php"
744
744
  }
745
745
  },
746
- "match": "(\\s*&)?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))",
746
+ "match": "(\\s*&)?\\s*((\\$+)[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)\\s*(?=,|\\))",
747
747
  "name": "meta.function.argument.no-default.php"
748
748
  },
749
749
  {
750
- "begin": "(\\s*&)?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?:\\s*(=)\\s*)\\s*",
750
+ "begin": "(\\s*&)?\\s*((\\$+)[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)(?:\\s*(=)\\s*)\\s*",
751
751
  "captures": {
752
752
  "1": {
753
753
  "name": "storage.modifier.php"
@@ -771,13 +771,13 @@
771
771
  ]
772
772
  },
773
773
  {
774
- "begin": "\/\\*",
774
+ "begin": "/\\*",
775
775
  "captures": {
776
776
  "0": {
777
777
  "name": "punctuation.definition.comment.php"
778
778
  }
779
779
  },
780
- "end": "\\*\/",
780
+ "end": "\\*/",
781
781
  "name": "comment.block.php"
782
782
  }
783
783
  ]
@@ -811,7 +811,7 @@
811
811
  "name": "constant.other.class.php"
812
812
  }
813
813
  },
814
- "match": "(?x)(::)\n (?:\n \t\t\t\t ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t |\n \t\t\t\t ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t)?"
814
+ "match": "(?x)(::)\n (?:\n \t\t\t\t ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)\n \t\t\t\t |\n \t\t\t\t ([a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)\n \t\t\t\t)?"
815
815
  },
816
816
  {
817
817
  "include": "#support"
@@ -863,7 +863,7 @@
863
863
  "name": "keyword.operator.increment-decrement.php"
864
864
  },
865
865
  {
866
- "match": "(\\-|\\+|\\*|\/|%)",
866
+ "match": "(\\-|\\+|\\*|/|%)",
867
867
  "name": "keyword.operator.arithmetic.php"
868
868
  },
869
869
  {
@@ -921,7 +921,7 @@
921
921
  "name": "variable.other.property.php"
922
922
  }
923
923
  },
924
- "match": "(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])(->)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*?)\\b"
924
+ "match": "(?<=[a-zA-Z0-9_\\x7f-\\xff])(->)([a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*?)\\b"
925
925
  },
926
926
  {
927
927
  "include": "#instantiation"
@@ -950,7 +950,7 @@
950
950
  "name": "punctuation.definition.variable.php"
951
951
  }
952
952
  },
953
- "match": "(?x)(->)\n \t\t\t\t(?:\n \t\t\t\t ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t)?"
953
+ "match": "(?x)(->)\n \t\t\t\t(?:\n \t\t\t\t ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)?[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)\n \t\t\t\t)?"
954
954
  },
955
955
  "parameter-default-types": {
956
956
  "patterns": [
@@ -1031,7 +1031,7 @@
1031
1031
  "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"
1032
1032
  },
1033
1033
  {
1034
- "match": "((https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt):\/\/|mailto:)[-:@a-zA-Z0-9_.~%+\/?=&#]+(?<![.?:])",
1034
+ "match": "((https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt)://|mailto:)[-:@a-zA-Z0-9_.~%+/?=&#]+(?<![.?:])",
1035
1035
  "name": "markup.underline.link.php"
1036
1036
  },
1037
1037
  {
@@ -1061,13 +1061,13 @@
1061
1061
  ]
1062
1062
  },
1063
1063
  "regex-double-quoted": {
1064
- "begin": "(?x)\"\/ (?= (\\\\.|[^\"\/])++\/[imsxeADSUXu]*\" )",
1064
+ "begin": "(?x)\"/ (?= (\\\\.|[^\"/])++/[imsxeADSUXu]*\" )",
1065
1065
  "beginCaptures": {
1066
1066
  "0": {
1067
1067
  "name": "punctuation.definition.string.begin.php"
1068
1068
  }
1069
1069
  },
1070
- "end": "(\/)([imsxeADSUXu]*)(\")",
1070
+ "end": "(/)([imsxeADSUXu]*)(\")",
1071
1071
  "endCaptures": {
1072
1072
  "0": {
1073
1073
  "name": "punctuation.definition.string.end.php"
@@ -1117,13 +1117,13 @@
1117
1117
  ]
1118
1118
  },
1119
1119
  "regex-single-quoted": {
1120
- "begin": "(?x)'\/ (?= (\\\\.|[^'\/])++\/[imsxeADSUXu]*' )",
1120
+ "begin": "(?x)'/ (?= (\\\\.|[^'/])++/[imsxeADSUXu]*' )",
1121
1121
  "beginCaptures": {
1122
1122
  "0": {
1123
1123
  "name": "punctuation.definition.string.begin.php"
1124
1124
  }
1125
1125
  },
1126
- "end": "(\/)([imsxeADSUXu]*)(')",
1126
+ "end": "(/)([imsxeADSUXu]*)(')",
1127
1127
  "endCaptures": {
1128
1128
  "0": {
1129
1129
  "name": "punctuation.definition.string.end.php"
@@ -2144,7 +2144,7 @@
2144
2144
  "name": "punctuation.definition.variable.php"
2145
2145
  }
2146
2146
  },
2147
- "match": "(?x)\n\t\t\t (\\$+)[a-zA-Z_\\x{7f}-\\x{ff}]\n\t\t\t [a-zA-Z0-9_\\x{7f}-\\x{ff}]*?\\b",
2147
+ "match": "(?x)\n\t\t\t (\\$+)[a-zA-Z_\\x7f-\\xff]\n\t\t\t [a-zA-Z0-9_\\x7f-\\xff]*?\\b",
2148
2148
  "name": "variable.other.php"
2149
2149
  },
2150
2150
  "var_global": {