ver 2009.10.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. data/CHANGELOG +1404 -0
  2. data/MANIFEST +187 -0
  3. data/Rakefile +30 -0
  4. data/TODO +169 -0
  5. data/bin/ver +19 -0
  6. data/config/detect.rb +109 -0
  7. data/config/keymap/vim.rb +239 -0
  8. data/config/rc.rb +0 -0
  9. data/config/scratch +3 -0
  10. data/config/syntax/ANTLR.json +275 -0
  11. data/config/syntax/ASP VB.net.json +228 -0
  12. data/config/syntax/ASP.json +135 -0
  13. data/config/syntax/ActionScript.json +168 -0
  14. data/config/syntax/Ada.json +108 -0
  15. data/config/syntax/Apache.json +342 -0
  16. data/config/syntax/AppleScript.json +721 -0
  17. data/config/syntax/Bibtex.json +253 -0
  18. data/config/syntax/Blog (HTML).json +47 -0
  19. data/config/syntax/Blog (Markdown).json +50 -0
  20. data/config/syntax/Blog (Text).json +45 -0
  21. data/config/syntax/Blog (Textile).json +45 -0
  22. data/config/syntax/Bulletin Board.json +428 -0
  23. data/config/syntax/C++.json +323 -0
  24. data/config/syntax/C.json +694 -0
  25. data/config/syntax/CSS.json +346 -0
  26. data/config/syntax/DOT.json +79 -0
  27. data/config/syntax/Diff.json +136 -0
  28. data/config/syntax/Dylan.json +104 -0
  29. data/config/syntax/Eiffel.json +128 -0
  30. data/config/syntax/Erlang.json +1636 -0
  31. data/config/syntax/F-Script.json +137 -0
  32. data/config/syntax/FXScript.json +260 -0
  33. data/config/syntax/Gri.json +141 -0
  34. data/config/syntax/HTML (Mason).json +207 -0
  35. data/config/syntax/HTML (Rails).json +52 -0
  36. data/config/syntax/HTML (Tcl).json +42 -0
  37. data/config/syntax/HTML for ASP.net.json +736 -0
  38. data/config/syntax/HTML-ASP.json +45 -0
  39. data/config/syntax/HTML.json +614 -0
  40. data/config/syntax/Haskell.json +407 -0
  41. data/config/syntax/Inform.json +80 -0
  42. data/config/syntax/Ini.json +91 -0
  43. data/config/syntax/Io.json +142 -0
  44. data/config/syntax/Java.json +745 -0
  45. data/config/syntax/JavaProperties.json +42 -0
  46. data/config/syntax/JavaScript.json +446 -0
  47. data/config/syntax/LaTeX Beamer.json +65 -0
  48. data/config/syntax/LaTeX Log.json +88 -0
  49. data/config/syntax/LaTeX.json +962 -0
  50. data/config/syntax/Lighttpd.json +93 -0
  51. data/config/syntax/Lisp.json +101 -0
  52. data/config/syntax/Literate Haskell.json +55 -0
  53. data/config/syntax/Logtalk.json +289 -0
  54. data/config/syntax/Lua.json +146 -0
  55. data/config/syntax/M.json +744 -0
  56. data/config/syntax/MEL.json +161 -0
  57. data/config/syntax/MIPS.json +114 -0
  58. data/config/syntax/Mail.json +224 -0
  59. data/config/syntax/Makefile.json +66 -0
  60. data/config/syntax/Markdown.json +644 -0
  61. data/config/syntax/Modula-3.json +80 -0
  62. data/config/syntax/Movable Type.json +348 -0
  63. data/config/syntax/OCaml.json +1391 -0
  64. data/config/syntax/Objective-C++.json +21 -0
  65. data/config/syntax/OpenGL.json +24 -0
  66. data/config/syntax/PHP.json +2184 -0
  67. data/config/syntax/Pascal.json +128 -0
  68. data/config/syntax/Perl.json +2091 -0
  69. data/config/syntax/Plain text.json +49 -0
  70. data/config/syntax/Processing.json +188 -0
  71. data/config/syntax/Quake3 Config.json +54 -0
  72. data/config/syntax/R.json +157 -0
  73. data/config/syntax/Rez.json +137 -0
  74. data/config/syntax/Ruby on Rails.json +170 -0
  75. data/config/syntax/Ruby.json +1753 -0
  76. data/config/syntax/SQL (Rails).json +31 -0
  77. data/config/syntax/SQL.json +435 -0
  78. data/config/syntax/SWIG.json +96 -0
  79. data/config/syntax/Scheme.json +359 -0
  80. data/config/syntax/Shell-Unix-Generic.json +1198 -0
  81. data/config/syntax/Slate.json +265 -0
  82. data/config/syntax/Smarty.json +110 -0
  83. data/config/syntax/Standard ML.json +322 -0
  84. data/config/syntax/Subversion commit message.json +62 -0
  85. data/config/syntax/Tcl.json +278 -0
  86. data/config/syntax/TeX Math.json +83 -0
  87. data/config/syntax/TeX.json +157 -0
  88. data/config/syntax/Textile.json +273 -0
  89. data/config/syntax/Twiki.json +436 -0
  90. data/config/syntax/Vectorscript.json +97 -0
  91. data/config/syntax/XML strict.json +148 -0
  92. data/config/syntax/XML.json +301 -0
  93. data/config/syntax/XSL.json +96 -0
  94. data/config/syntax/YAML.json +293 -0
  95. data/config/syntax/iCalendar.json +51 -0
  96. data/config/syntax/reStructuredText.json +403 -0
  97. data/config/theme/Active4D.json +260 -0
  98. data/config/theme/All Hallow's Eve.json +171 -0
  99. data/config/theme/Amy.json +359 -0
  100. data/config/theme/BBEdit.json +269 -0
  101. data/config/theme/Bespin.json +322 -0
  102. data/config/theme/Blackboard.json +215 -0
  103. data/config/theme/BoysAndGirls01.json +156 -0
  104. data/config/theme/Brilliance Black.json +1695 -0
  105. data/config/theme/Brilliance Dull.json +1451 -0
  106. data/config/theme/Classic Modified.json +288 -0
  107. data/config/theme/Cobalt.json +345 -0
  108. data/config/theme/Cool Glow.json +215 -0
  109. data/config/theme/Dawn.json +258 -0
  110. data/config/theme/Eiffel.json +270 -0
  111. data/config/theme/Espresso Libre.json +247 -0
  112. data/config/theme/Fluidvision.json +272 -0
  113. data/config/theme/IDLE.json +159 -0
  114. data/config/theme/LAZY.json +178 -0
  115. data/config/theme/Mac Classic.json +277 -0
  116. data/config/theme/MagicWB (Amiga).json +231 -0
  117. data/config/theme/Merbivore Soft.json +181 -0
  118. data/config/theme/Merbivore.json +181 -0
  119. data/config/theme/Monokai.json +177 -0
  120. data/config/theme/Notepad2.json +166 -0
  121. data/config/theme/Pastels on Dark.json +437 -0
  122. data/config/theme/RubyBlue.json +226 -0
  123. data/config/theme/Sin City 2.json +361 -0
  124. data/config/theme/Slate.json +270 -0
  125. data/config/theme/Slush & Poppies.json +232 -0
  126. data/config/theme/SpaceCadet.json +143 -0
  127. data/config/theme/Sunburst.json +415 -0
  128. data/config/theme/Twilight BG FG.json +633 -0
  129. data/config/theme/Twilight.json +321 -0
  130. data/config/theme/Whys Poignant.json +119 -0
  131. data/config/theme/Zenburnesque.json +237 -0
  132. data/config/theme/barf.json +155 -0
  133. data/config/theme/fake.json +418 -0
  134. data/config/theme/happydeluxe.json +114 -0
  135. data/config/theme/iLife 05.json +393 -0
  136. data/config/theme/iPlastic.json +177 -0
  137. data/config/theme/mintBlue Dark.json +414 -0
  138. data/config/theme/mintBlue.json +415 -0
  139. data/config/theme/monoindustrial.json +276 -0
  140. data/config/theme/starlight.json +67 -0
  141. data/config/tutorial +74 -0
  142. data/config/welcome +115 -0
  143. data/help/index.verh +14 -0
  144. data/lib/ver.rb +156 -0
  145. data/lib/ver/entry.rb +97 -0
  146. data/lib/ver/keymap.rb +96 -0
  147. data/lib/ver/layout.rb +107 -0
  148. data/lib/ver/methods.rb +19 -0
  149. data/lib/ver/methods/completion.rb +116 -0
  150. data/lib/ver/methods/control.rb +340 -0
  151. data/lib/ver/methods/insert.rb +6 -0
  152. data/lib/ver/methods/move.rb +65 -0
  153. data/lib/ver/methods/search.rb +33 -0
  154. data/lib/ver/methods/select.rb +145 -0
  155. data/lib/ver/methods/views.rb +21 -0
  156. data/lib/ver/mode.rb +160 -0
  157. data/lib/ver/options.rb +207 -0
  158. data/lib/ver/plist.rb +106 -0
  159. data/lib/ver/status.rb +67 -0
  160. data/lib/ver/syntax.rb +68 -0
  161. data/lib/ver/syntax/detector.rb +53 -0
  162. data/lib/ver/syntax/processor.rb +48 -0
  163. data/lib/ver/text.rb +374 -0
  164. data/lib/ver/textpow.rb +357 -0
  165. data/lib/ver/theme.rb +162 -0
  166. data/lib/ver/vendor/fuzzy_file_finder.rb +340 -0
  167. data/lib/ver/view.rb +163 -0
  168. data/lib/ver/view/entry.rb +28 -0
  169. data/lib/ver/view/list.rb +137 -0
  170. data/lib/ver/view/list/buffer.rb +27 -0
  171. data/lib/ver/view/list/fuzzy_file_finder.rb +44 -0
  172. data/lib/ver/view/list/syntax.rb +13 -0
  173. data/lib/ver/view/list/theme.rb +13 -0
  174. data/spec/keymap.rb +224 -0
  175. data/tasks/bacon.rake +49 -0
  176. data/tasks/changelog.rake +18 -0
  177. data/tasks/gem.rake +22 -0
  178. data/tasks/gem_installer.rake +76 -0
  179. data/tasks/grancher.rake +12 -0
  180. data/tasks/install_dependencies.rake +6 -0
  181. data/tasks/manifest.rake +4 -0
  182. data/tasks/plist2json.rake +35 -0
  183. data/tasks/rcov.rake +18 -0
  184. data/tasks/release.rake +12 -0
  185. data/tasks/reversion.rake +8 -0
  186. data/tasks/syntax_list.rake +31 -0
  187. data/ver.gemspec +29 -0
  188. metadata +241 -0
@@ -0,0 +1,91 @@
1
+ {
2
+ "fileTypes": [
3
+ "ini",
4
+ "conf"
5
+ ],
6
+ "foldingStartMarker": "\\[",
7
+ "foldingStopMarker": "\\[",
8
+ "keyEquivalent": "^~I",
9
+ "name": "Ini",
10
+ "patterns": [
11
+ {
12
+ "captures": {
13
+ "1": {
14
+ "name": "punctuation.definition.comment.ini"
15
+ }
16
+ },
17
+ "match": "(#).*$\\n?",
18
+ "name": "comment.line.number-sign.ini"
19
+ },
20
+ {
21
+ "captures": {
22
+ "1": {
23
+ "name": "punctuation.definition.comment.ini"
24
+ }
25
+ },
26
+ "match": "(;).*$\\n?",
27
+ "name": "comment.line.semicolon.ini"
28
+ },
29
+ {
30
+ "captures": {
31
+ "1": {
32
+ "name": "keyword.other.definition.ini"
33
+ },
34
+ "2": {
35
+ "name": "punctuation.separator.key-value.ini"
36
+ }
37
+ },
38
+ "match": "\\b([a-zA-Z0-9_.-]+)\\b\\s*(=)"
39
+ },
40
+ {
41
+ "captures": {
42
+ "1": {
43
+ "name": "punctuation.definition.entity.ini"
44
+ },
45
+ "3": {
46
+ "name": "punctuation.definition.entity.ini"
47
+ }
48
+ },
49
+ "match": "^(\\[)(.*?)(\\])",
50
+ "name": "entity.name.section.group-title.ini"
51
+ },
52
+ {
53
+ "begin": "'",
54
+ "beginCaptures": {
55
+ "0": {
56
+ "name": "punctuation.definition.string.begin.ini"
57
+ }
58
+ },
59
+ "end": "'",
60
+ "endCaptures": {
61
+ "0": {
62
+ "name": "punctuation.definition.string.end.ini"
63
+ }
64
+ },
65
+ "name": "string.quoted.single.ini",
66
+ "patterns": [
67
+ {
68
+ "match": "\\\\.",
69
+ "name": "constant.character.escape.ini"
70
+ }
71
+ ]
72
+ },
73
+ {
74
+ "begin": "\"",
75
+ "beginCaptures": {
76
+ "0": {
77
+ "name": "punctuation.definition.string.begin.ini"
78
+ }
79
+ },
80
+ "end": "\"",
81
+ "endCaptures": {
82
+ "0": {
83
+ "name": "punctuation.definition.string.end.ini"
84
+ }
85
+ },
86
+ "name": "string.quoted.double.ini"
87
+ }
88
+ ],
89
+ "scopeName": "source.ini",
90
+ "uuid": "77DC23B6-8A90-11D9-BAA4-000A9584EC8C"
91
+ }
@@ -0,0 +1,142 @@
1
+ {
2
+ "fileTypes": [
3
+ "io"
4
+ ],
5
+ "foldingStartMarker": "(\/\\*\\*|\\([^\\)]*$|if\\()",
6
+ "foldingStopMarker": "(\\*\\*\/|^\\s*\\))",
7
+ "keyEquivalent": "^~I",
8
+ "name": "Io",
9
+ "patterns": [
10
+ {
11
+ "captures": {
12
+ "1": {
13
+ "name": "meta.empty-parenthesis.io"
14
+ }
15
+ },
16
+ "comment": "we match this to overload return inside () --Allan; scoping rules for what gets the scope have changed, so we now group the ) instead of the ( -- Rob",
17
+ "match": "\\((\\))"
18
+ },
19
+ {
20
+ "captures": {
21
+ "1": {
22
+ "name": "meta.comma-parenthesis.io"
23
+ }
24
+ },
25
+ "comment": "We want to do the same for ,) -- Seckar; same as above -- Rob",
26
+ "match": "\\,(\\))"
27
+ },
28
+ {
29
+ "match": "\\b(if|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|continue|break|while|do|return)\\b",
30
+ "name": "keyword.control.io"
31
+ },
32
+ {
33
+ "begin": "\/\\*",
34
+ "captures": {
35
+ "0": {
36
+ "name": "punctuation.definition.comment.io"
37
+ }
38
+ },
39
+ "end": "\\*\/",
40
+ "name": "comment.block.io"
41
+ },
42
+ {
43
+ "captures": {
44
+ "1": {
45
+ "name": "punctuation.definition.comment.io"
46
+ }
47
+ },
48
+ "match": "(\/\/).*$\\n?",
49
+ "name": "comment.line.double-slash.io"
50
+ },
51
+ {
52
+ "captures": {
53
+ "1": {
54
+ "name": "punctuation.definition.comment.io"
55
+ }
56
+ },
57
+ "match": "(#).*$\\n?",
58
+ "name": "comment.line.number-sign.io"
59
+ },
60
+ {
61
+ "comment": "I wonder if some of this isn't variable.other.language? --Allan; scoping this as variable.language to match Objective-C's handling of 'self', which is inconsistent with C++'s handling of 'this' but perhaps intentionally so -- Rob",
62
+ "match": "\\b(self|sender|target|proto|protos|parent)\\b",
63
+ "name": "variable.language.io"
64
+ },
65
+ {
66
+ "match": "<=|>=|=|:=|\\*|\\||\\|\\||\\+|-|\/|&|&&|>|<|\\?|@|@@|\\b(and|or)\\b",
67
+ "name": "keyword.operator.io"
68
+ },
69
+ {
70
+ "match": "\\bGL[\\w_]+\\b",
71
+ "name": "constant.other.io"
72
+ },
73
+ {
74
+ "match": "\\b([A-Z](\\w+)?)\\b",
75
+ "name": "support.class.io"
76
+ },
77
+ {
78
+ "match": "\\b(clone|call|init|method|list|vector|block|(\\w+(?=\\s*\\()))\\b",
79
+ "name": "support.function.io"
80
+ },
81
+ {
82
+ "match": "\\b(gl(u|ut)?[A-Z]\\w+)\\b",
83
+ "name": "support.function.open-gl.io"
84
+ },
85
+ {
86
+ "begin": "\"\"\"",
87
+ "beginCaptures": {
88
+ "0": {
89
+ "name": "punctuation.definition.string.begin.io"
90
+ }
91
+ },
92
+ "end": "\"\"\"",
93
+ "endCaptures": {
94
+ "0": {
95
+ "name": "punctuation.definition.string.end.io"
96
+ }
97
+ },
98
+ "name": "string.quoted.triple.io",
99
+ "patterns": [
100
+ {
101
+ "match": "\\\\.",
102
+ "name": "constant.character.escape.io"
103
+ }
104
+ ]
105
+ },
106
+ {
107
+ "begin": "\"",
108
+ "beginCaptures": {
109
+ "0": {
110
+ "name": "punctuation.definition.string.begin.io"
111
+ }
112
+ },
113
+ "end": "\"",
114
+ "endCaptures": {
115
+ "0": {
116
+ "name": "punctuation.definition.string.end.io"
117
+ }
118
+ },
119
+ "name": "string.quoted.double.io",
120
+ "patterns": [
121
+ {
122
+ "match": "\\\\.",
123
+ "name": "constant.character.escape.io"
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b",
129
+ "name": "constant.numeric.io"
130
+ },
131
+ {
132
+ "match": "(Lobby)\\b",
133
+ "name": "variable.other.global.io"
134
+ },
135
+ {
136
+ "match": "\\b(TRUE|true|FALSE|false|NULL|null|Null|Nil|nil|YES|NO)\\b",
137
+ "name": "constant.language.io"
138
+ }
139
+ ],
140
+ "scopeName": "source.io",
141
+ "uuid": "BD798537-3548-47F3-A6AB-7FB95C45DB83"
142
+ }
@@ -0,0 +1,745 @@
1
+ {
2
+ "fileTypes": [
3
+ "java",
4
+ "bsh"
5
+ ],
6
+ "foldingStartMarker": "(\\{\\s*(\/\/.*)?$|^\\s*\/\/ \\{\\{\\{)",
7
+ "foldingStopMarker": "^\\s*(\\}|\/\/ \\}\\}\\}$)",
8
+ "keyEquivalent": "^~J",
9
+ "name": "Java",
10
+ "patterns": [
11
+ {
12
+ "captures": {
13
+ "1": {
14
+ "name": "keyword.other.package.java"
15
+ },
16
+ "2": {
17
+ "name": "storage.modifier.package.java"
18
+ },
19
+ "3": {
20
+ "name": "punctuation.terminator.java"
21
+ }
22
+ },
23
+ "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
24
+ "name": "meta.package.java"
25
+ },
26
+ {
27
+ "captures": {
28
+ "1": {
29
+ "name": "keyword.other.import.java"
30
+ },
31
+ "2": {
32
+ "name": "storage.modifier.import.java"
33
+ },
34
+ "3": {
35
+ "name": "punctuation.terminator.java"
36
+ }
37
+ },
38
+ "match": "^\\s*(import)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
39
+ "name": "meta.import.java"
40
+ },
41
+ {
42
+ "include": "#code"
43
+ }
44
+ ],
45
+ "repository": {
46
+ "all-types": {
47
+ "patterns": [
48
+ {
49
+ "include": "#primitive-arrays"
50
+ },
51
+ {
52
+ "include": "#primitive-types"
53
+ },
54
+ {
55
+ "include": "#object-types"
56
+ }
57
+ ]
58
+ },
59
+ "annotations": {
60
+ "patterns": [
61
+ {
62
+ "begin": "(@[^ (]+)(\\()",
63
+ "beginCaptures": {
64
+ "1": {
65
+ "name": "storage.type.annotation.java"
66
+ },
67
+ "2": {
68
+ "name": "punctuation.definition.annotation-arguments.begin.java"
69
+ }
70
+ },
71
+ "end": "(\\))",
72
+ "endCaptures": {
73
+ "1": {
74
+ "name": "punctuation.definition.annotation-arguments.end.java"
75
+ }
76
+ },
77
+ "name": "meta.declaration.annotation.java",
78
+ "patterns": [
79
+ {
80
+ "captures": {
81
+ "1": {
82
+ "name": "constant.other.key.java"
83
+ },
84
+ "2": {
85
+ "name": "keyword.operator.assignment.java"
86
+ }
87
+ },
88
+ "match": "(\\w*)\\s*(=)"
89
+ },
90
+ {
91
+ "include": "#code"
92
+ },
93
+ {
94
+ "match": ",",
95
+ "name": "punctuation.seperator.property.java"
96
+ }
97
+ ]
98
+ },
99
+ {
100
+ "match": "@\\w*",
101
+ "name": "storage.type.annotation.java"
102
+ }
103
+ ]
104
+ },
105
+ "anonymous-classes-and-new": {
106
+ "begin": "\\bnew\\b",
107
+ "beginCaptures": {
108
+ "0": {
109
+ "name": "keyword.control.new.java"
110
+ }
111
+ },
112
+ "end": "(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=;)",
113
+ "patterns": [
114
+ {
115
+ "begin": "(\\w+)\\s*(?=\\[)",
116
+ "beginCaptures": {
117
+ "1": {
118
+ "name": "storage.type.java"
119
+ }
120
+ },
121
+ "end": "}|(?=;|\\))",
122
+ "patterns": [
123
+ {
124
+ "begin": "\\[",
125
+ "end": "\\]",
126
+ "patterns": [
127
+ {
128
+ "include": "#code"
129
+ }
130
+ ]
131
+ },
132
+ {
133
+ "begin": "{",
134
+ "end": "(?=})",
135
+ "patterns": [
136
+ {
137
+ "include": "#code"
138
+ }
139
+ ]
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ "begin": "(?=\\w.*\\()",
145
+ "end": "(?<=\\))",
146
+ "patterns": [
147
+ {
148
+ "include": "#object-types"
149
+ },
150
+ {
151
+ "begin": "\\(",
152
+ "beginCaptures": {
153
+ "1": {
154
+ "name": "storage.type.java"
155
+ }
156
+ },
157
+ "end": "\\)",
158
+ "patterns": [
159
+ {
160
+ "include": "#code"
161
+ }
162
+ ]
163
+ }
164
+ ]
165
+ },
166
+ {
167
+ "begin": "{",
168
+ "end": "}",
169
+ "name": "meta.inner-class.java",
170
+ "patterns": [
171
+ {
172
+ "include": "#class-body"
173
+ }
174
+ ]
175
+ }
176
+ ]
177
+ },
178
+ "assertions": {
179
+ "patterns": [
180
+ {
181
+ "begin": "\\b(assert)\\s",
182
+ "beginCaptures": {
183
+ "1": {
184
+ "name": "keyword.control.assert.java"
185
+ }
186
+ },
187
+ "end": "$",
188
+ "name": "meta.declaration.assertion.java",
189
+ "patterns": [
190
+ {
191
+ "match": ":",
192
+ "name": "keyword.operator.assert.expression-seperator.java"
193
+ },
194
+ {
195
+ "include": "#code"
196
+ }
197
+ ]
198
+ }
199
+ ]
200
+ },
201
+ "class": {
202
+ "begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)",
203
+ "end": "}",
204
+ "endCaptures": {
205
+ "0": {
206
+ "name": "punctuation.section.class.end.java"
207
+ }
208
+ },
209
+ "name": "meta.class.java",
210
+ "patterns": [
211
+ {
212
+ "include": "#storage-modifiers"
213
+ },
214
+ {
215
+ "include": "#comments"
216
+ },
217
+ {
218
+ "captures": {
219
+ "1": {
220
+ "name": "storage.modifier.java"
221
+ },
222
+ "2": {
223
+ "name": "entity.name.type.class.java"
224
+ }
225
+ },
226
+ "match": "(class|(?:@)?interface|enum)\\s+(\\w+)",
227
+ "name": "meta.class.identifier.java"
228
+ },
229
+ {
230
+ "begin": "extends",
231
+ "beginCaptures": {
232
+ "0": {
233
+ "name": "storage.modifier.extends.java"
234
+ }
235
+ },
236
+ "end": "(?={|implements)",
237
+ "name": "meta.definition.class.inherited.classes.java",
238
+ "patterns": [
239
+ {
240
+ "include": "#object-types-inherited"
241
+ },
242
+ {
243
+ "include": "#comments"
244
+ }
245
+ ]
246
+ },
247
+ {
248
+ "begin": "(implements)\\s",
249
+ "beginCaptures": {
250
+ "1": {
251
+ "name": "storage.modifier.implements.java"
252
+ }
253
+ },
254
+ "end": "(?=\\s*extends|\\{)",
255
+ "name": "meta.definition.class.implemented.interfaces.java",
256
+ "patterns": [
257
+ {
258
+ "include": "#object-types-inherited"
259
+ },
260
+ {
261
+ "include": "#comments"
262
+ }
263
+ ]
264
+ },
265
+ {
266
+ "begin": "{",
267
+ "end": "(?=})",
268
+ "name": "meta.class.body.java",
269
+ "patterns": [
270
+ {
271
+ "include": "#class-body"
272
+ }
273
+ ]
274
+ }
275
+ ]
276
+ },
277
+ "class-body": {
278
+ "patterns": [
279
+ {
280
+ "include": "#comments"
281
+ },
282
+ {
283
+ "include": "#class"
284
+ },
285
+ {
286
+ "include": "#enums"
287
+ },
288
+ {
289
+ "include": "#methods"
290
+ },
291
+ {
292
+ "include": "#annotations"
293
+ },
294
+ {
295
+ "include": "#storage-modifiers"
296
+ },
297
+ {
298
+ "include": "#code"
299
+ }
300
+ ]
301
+ },
302
+ "code": {
303
+ "patterns": [
304
+ {
305
+ "include": "#comments"
306
+ },
307
+ {
308
+ "include": "#class"
309
+ },
310
+ {
311
+ "begin": "{",
312
+ "end": "}",
313
+ "patterns": [
314
+ {
315
+ "include": "#code"
316
+ }
317
+ ]
318
+ },
319
+ {
320
+ "include": "#assertions"
321
+ },
322
+ {
323
+ "include": "#parens"
324
+ },
325
+ {
326
+ "include": "#constants-and-special-vars"
327
+ },
328
+ {
329
+ "include": "#anonymous-classes-and-new"
330
+ },
331
+ {
332
+ "include": "#keywords"
333
+ },
334
+ {
335
+ "include": "#storage-modifiers"
336
+ },
337
+ {
338
+ "include": "#strings"
339
+ },
340
+ {
341
+ "include": "#all-types"
342
+ }
343
+ ]
344
+ },
345
+ "comments": {
346
+ "patterns": [
347
+ {
348
+ "captures": {
349
+ "0": {
350
+ "name": "punctuation.definition.comment.java"
351
+ }
352
+ },
353
+ "match": "\/\\*\\*\/",
354
+ "name": "comment.block.empty.java"
355
+ },
356
+ {
357
+ "include": "text.html.javadoc"
358
+ },
359
+ {
360
+ "include": "#comments-inline"
361
+ }
362
+ ]
363
+ },
364
+ "comments-inline": {
365
+ "patterns": [
366
+ {
367
+ "begin": "\/\\*",
368
+ "captures": {
369
+ "0": {
370
+ "name": "punctuation.definition.comment.java"
371
+ }
372
+ },
373
+ "end": "\\*\/",
374
+ "name": "comment.block.java"
375
+ },
376
+ {
377
+ "captures": {
378
+ "1": {
379
+ "name": "comment.line.double-slash.java"
380
+ },
381
+ "2": {
382
+ "name": "punctuation.definition.comment.java"
383
+ }
384
+ },
385
+ "match": "\\s*((\/\/).*$\\n?)"
386
+ }
387
+ ]
388
+ },
389
+ "constants-and-special-vars": {
390
+ "patterns": [
391
+ {
392
+ "match": "\\b(true|false|null)\\b",
393
+ "name": "constant.language.java"
394
+ },
395
+ {
396
+ "match": "\\b(this|super)\\b",
397
+ "name": "variable.language.java"
398
+ },
399
+ {
400
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b",
401
+ "name": "constant.numeric.java"
402
+ },
403
+ {
404
+ "captures": {
405
+ "1": {
406
+ "name": "keyword.operator.dereference.java"
407
+ }
408
+ },
409
+ "match": "(\\.)?\\b([A-Z][A-Z0-9_]+)(?!<|\\.class|\\s*\\w+\\s*=)\\b",
410
+ "name": "constant.other.java"
411
+ }
412
+ ]
413
+ },
414
+ "enums": {
415
+ "begin": "^(?=\\s*[A-Z0-9_]+\\s*({|\\(|,))",
416
+ "end": "(?=;|})",
417
+ "patterns": [
418
+ {
419
+ "begin": "\\w+",
420
+ "beginCaptures": {
421
+ "0": {
422
+ "name": "constant.other.enum.java"
423
+ }
424
+ },
425
+ "end": "(?=,|;|})",
426
+ "name": "meta.enum.java",
427
+ "patterns": [
428
+ {
429
+ "include": "#parens"
430
+ },
431
+ {
432
+ "begin": "{",
433
+ "end": "}",
434
+ "patterns": [
435
+ {
436
+ "include": "#class-body"
437
+ }
438
+ ]
439
+ }
440
+ ]
441
+ }
442
+ ]
443
+ },
444
+ "keywords": {
445
+ "patterns": [
446
+ {
447
+ "match": "\\b(try|catch|finally|throw)\\b",
448
+ "name": "keyword.control.catch-exception.java"
449
+ },
450
+ {
451
+ "match": "\\?|:",
452
+ "name": "keyword.control.java"
453
+ },
454
+ {
455
+ "match": "\\b(return|break|case|continue|default|do|while|for|switch|if|else)\\b",
456
+ "name": "keyword.control.java"
457
+ },
458
+ {
459
+ "match": "\\b(instanceof)\\b",
460
+ "name": "keyword.operator.java"
461
+ },
462
+ {
463
+ "match": "(==|!=|<=|>=|<>|<|>)",
464
+ "name": "keyword.operator.comparison.java"
465
+ },
466
+ {
467
+ "match": "(=)",
468
+ "name": "keyword.operator.assignment.java"
469
+ },
470
+ {
471
+ "match": "(\\-\\-|\\+\\+)",
472
+ "name": "keyword.operator.increment-decrement.java"
473
+ },
474
+ {
475
+ "match": "(\\-|\\+|\\*|\\\/|%)",
476
+ "name": "keyword.operator.arithmetic.java"
477
+ },
478
+ {
479
+ "match": "(!|&&|\\|\\|)",
480
+ "name": "keyword.operator.logical.java"
481
+ },
482
+ {
483
+ "match": "(?<=\\S)\\.(?=\\S)",
484
+ "name": "keyword.operator.dereference.java"
485
+ },
486
+ {
487
+ "match": ";",
488
+ "name": "punctuation.terminator.java"
489
+ }
490
+ ]
491
+ },
492
+ "methods": {
493
+ "begin": "(?!new)(?=\\w.*\\s+)(?=[^=]+\\()",
494
+ "end": "}|(?=;)",
495
+ "name": "meta.method.java",
496
+ "patterns": [
497
+ {
498
+ "include": "#storage-modifiers"
499
+ },
500
+ {
501
+ "begin": "(\\w+)\\s*\\(",
502
+ "beginCaptures": {
503
+ "1": {
504
+ "name": "entity.name.function.java"
505
+ }
506
+ },
507
+ "end": "\\)",
508
+ "name": "meta.method.identifier.java",
509
+ "patterns": [
510
+ {
511
+ "include": "#parameters"
512
+ }
513
+ ]
514
+ },
515
+ {
516
+ "begin": "(?=\\w.*\\s+\\w+\\s*\\()",
517
+ "end": "(?=\\w+\\s*\\()",
518
+ "name": "meta.method.return-type.java",
519
+ "patterns": [
520
+ {
521
+ "include": "#all-types"
522
+ }
523
+ ]
524
+ },
525
+ {
526
+ "include": "#throws"
527
+ },
528
+ {
529
+ "begin": "{",
530
+ "end": "(?=})",
531
+ "name": "meta.method.body.java",
532
+ "patterns": [
533
+ {
534
+ "include": "#code"
535
+ }
536
+ ]
537
+ }
538
+ ]
539
+ },
540
+ "object-types": {
541
+ "patterns": [
542
+ {
543
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)<",
544
+ "end": ">|[^\\w\\s,\\?<\\[\\]]",
545
+ "name": "storage.type.generic.java",
546
+ "patterns": [
547
+ {
548
+ "include": "#object-types"
549
+ },
550
+ {
551
+ "begin": "<",
552
+ "comment": "This is just to support <>'s with no actual type prefix",
553
+ "end": ">|[^\\w\\s,\\[\\]<]",
554
+ "name": "storage.type.generic.java"
555
+ }
556
+ ]
557
+ },
558
+ {
559
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)",
560
+ "end": "(?=[^\\]\\s])",
561
+ "name": "storage.type.object.array.java",
562
+ "patterns": [
563
+ {
564
+ "begin": "\\[",
565
+ "end": "\\]",
566
+ "patterns": [
567
+ {
568
+ "include": "#code"
569
+ }
570
+ ]
571
+ }
572
+ ]
573
+ },
574
+ {
575
+ "captures": {
576
+ "1": {
577
+ "name": "keyword.operator.dereference.java"
578
+ }
579
+ },
580
+ "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*\\b",
581
+ "name": "storage.type.java"
582
+ }
583
+ ]
584
+ },
585
+ "object-types-inherited": {
586
+ "patterns": [
587
+ {
588
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)<",
589
+ "end": ">|[^\\w\\s,<]",
590
+ "name": "entity.other.inherited-class.java",
591
+ "patterns": [
592
+ {
593
+ "include": "#object-types"
594
+ },
595
+ {
596
+ "begin": "<",
597
+ "comment": "This is just to support <>'s with no actual type prefix",
598
+ "end": ">|[^\\w\\s,<]",
599
+ "name": "storage.type.generic.java"
600
+ }
601
+ ]
602
+ },
603
+ {
604
+ "captures": {
605
+ "1": {
606
+ "name": "keyword.operator.dereference.java"
607
+ }
608
+ },
609
+ "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*",
610
+ "name": "entity.other.inherited-class.java"
611
+ }
612
+ ]
613
+ },
614
+ "parameters": {
615
+ "patterns": [
616
+ {
617
+ "match": "final",
618
+ "name": "storage.modifier.java"
619
+ },
620
+ {
621
+ "include": "#primitive-arrays"
622
+ },
623
+ {
624
+ "include": "#primitive-types"
625
+ },
626
+ {
627
+ "include": "#object-types"
628
+ },
629
+ {
630
+ "match": "\\w+",
631
+ "name": "variable.parameter.java"
632
+ }
633
+ ]
634
+ },
635
+ "parens": {
636
+ "begin": "\\(",
637
+ "end": "\\)",
638
+ "patterns": [
639
+ {
640
+ "include": "#code"
641
+ }
642
+ ]
643
+ },
644
+ "primitive-arrays": {
645
+ "patterns": [
646
+ {
647
+ "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b",
648
+ "name": "storage.type.primitive.array.java"
649
+ }
650
+ ]
651
+ },
652
+ "primitive-types": {
653
+ "patterns": [
654
+ {
655
+ "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b",
656
+ "name": "storage.type.primitive.java"
657
+ }
658
+ ]
659
+ },
660
+ "storage-modifiers": {
661
+ "captures": {
662
+ "1": {
663
+ "name": "storage.modifier.java"
664
+ }
665
+ },
666
+ "match": "\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient)\\b"
667
+ },
668
+ "strings": {
669
+ "patterns": [
670
+ {
671
+ "begin": "\"",
672
+ "beginCaptures": {
673
+ "0": {
674
+ "name": "punctuation.definition.string.begin.java"
675
+ }
676
+ },
677
+ "end": "\"",
678
+ "endCaptures": {
679
+ "0": {
680
+ "name": "punctuation.definition.string.end.java"
681
+ }
682
+ },
683
+ "name": "string.quoted.double.java",
684
+ "patterns": [
685
+ {
686
+ "match": "\\\\.",
687
+ "name": "constant.character.escape.java"
688
+ }
689
+ ]
690
+ },
691
+ {
692
+ "begin": "'",
693
+ "beginCaptures": {
694
+ "0": {
695
+ "name": "punctuation.definition.string.begin.java"
696
+ }
697
+ },
698
+ "end": "'",
699
+ "endCaptures": {
700
+ "0": {
701
+ "name": "punctuation.definition.string.end.java"
702
+ }
703
+ },
704
+ "name": "string.quoted.single.java",
705
+ "patterns": [
706
+ {
707
+ "match": "\\\\.",
708
+ "name": "constant.character.escape.java"
709
+ }
710
+ ]
711
+ }
712
+ ]
713
+ },
714
+ "throws": {
715
+ "begin": "throws",
716
+ "beginCaptures": {
717
+ "0": {
718
+ "name": "storage.modifier.java"
719
+ }
720
+ },
721
+ "end": "(?={|;)",
722
+ "name": "meta.throwables.java",
723
+ "patterns": [
724
+ {
725
+ "include": "#object-types"
726
+ }
727
+ ]
728
+ },
729
+ "values": {
730
+ "patterns": [
731
+ {
732
+ "include": "#strings"
733
+ },
734
+ {
735
+ "include": "#object-types"
736
+ },
737
+ {
738
+ "include": "#constants-and-special-vars"
739
+ }
740
+ ]
741
+ }
742
+ },
743
+ "scopeName": "source.java",
744
+ "uuid": "2B449DF6-6B1D-11D9-94EC-000D93589AF6"
745
+ }