├── Snippets ├── break.tmSnippet ├── java_io.tmSnippet ├── default.tmSnippet ├── final.tmSnippet ├── java_math.tmSnippet ├── java_net_.tmSnippet ├── java_util_.tmSnippet ├── import.tmSnippet ├── java_beans_.tmSnippet ├── public.tmSnippet ├── return.tmSnippet ├── static.tmSnippet ├── throw.tmSnippet ├── abstract.tmSnippet ├── print.tmSnippet ├── private.tmSnippet ├── while.tmSnippet ├── else.tmSnippet ├── if.tmSnippet ├── protected.tmSnippet ├── throw new.tmSnippet ├── try.tmSnippet ├── case.tmSnippet ├── println.tmSnippet ├── finally.tmSnippet ├── for (each).tmSnippet ├── for.tmSnippet ├── switch.tmSnippet ├── synchronized.tmSnippet ├── else if.tmSnippet ├── test.tmSnippet ├── variable.tmSnippet ├── catch.tmSnippet ├── constant.tmSnippet ├── method.tmSnippet ├── constant string.tmSnippet ├── method (main).tmSnippet ├── assert.tmSnippet ├── import junit_framework_TestCase;.tmSnippet ├── test case.tmSnippet ├── interface.tmSnippet └── class.tmSnippet ├── Preferences ├── Indentation Rules - Java Properties.tmPreferences ├── Symbol List: Classes.tmPreferences ├── Folding - JSP.tmPreferences ├── Folding - Java.tmPreferences ├── Folding - JUnit.tmPreferences ├── Symbol List: Inner Classes.tmPreferences ├── Symbol List: Method.plist ├── Symbol List: Inner Inner Classes.tmPreferences ├── Symbol List: Inner Class Methods.tmPreferences ├── Symbol List: Inner Inner Class Methods.tmPreferences ├── Indentation Rules.tmPreferences ├── Java Properties Comments.tmPreferences └── Comments.tmPreferences ├── Support └── bin │ ├── java_compile_and_run.sh │ └── javamate.rb ├── Tests ├── Numeric Literals.java ├── Enums.java ├── Test.java └── Test.jsp ├── Commands ├── Copy Fully Qualified Class Name.tmCommand ├── Compile & Run.tmCommand ├── Compile & Run (with args).tmCommand ├── Go To Stackframe Source.tmCommand ├── Create Package Declaration.tmCommand ├── Documentation For Word.plist └── Organize Imports.tmCommand ├── README.mdown ├── Syntaxes ├── JUnit Test Report.tmLanguage ├── JavaProperties.plist ├── Java.plist └── Java Server Pages (JSP).tmLanguage └── info.plist /Snippets/break.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | break; 7 | 8 | name 9 | break 10 | scope 11 | source.java 12 | tabTrigger 13 | br 14 | uuid 15 | E4DACBFB-F029-4EC3-BB0D-BEF0D5369DA7 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/java_io.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | java.io. 7 | name 8 | java.io. 9 | scope 10 | source.java 11 | tabTrigger 12 | j.i 13 | uuid 14 | 2887D1D3-A714-41B6-9211-4DEC12417889 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/default.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | default: 7 | $0 8 | name 9 | default 10 | scope 11 | source.java 12 | tabTrigger 13 | de 14 | uuid 15 | F050CAEB-56AB-40A7-846B-E5DB70FA0A90 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/final.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | final 7 | name 8 | final 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | fi 13 | uuid 14 | F53E8BF9-4911-4131-B31F-8B4DEE47E421 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/java_math.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | java.math. 7 | name 8 | java.math. 9 | scope 10 | source.java 11 | tabTrigger 12 | j.m 13 | uuid 14 | 592F2823-7A2B-4881-99A4-7A18D3623902 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/java_net_.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | java.net. 7 | name 8 | java.net. 9 | scope 10 | source.java 11 | tabTrigger 12 | j.n 13 | uuid 14 | 94C09B88-AC93-4045-86D1-206639D582D0 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/java_util_.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | java.util. 7 | name 8 | java.util. 9 | scope 10 | source.java 11 | tabTrigger 12 | j.u 13 | uuid 14 | 97DC6637-998E-493C-9765-C8CFB29AC18C 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/import.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | import 7 | name 8 | import 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | im 13 | uuid 14 | 097F4236-D7A4-412F-A078-11ABFCAFC7BA 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/java_beans_.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | java.beans. 7 | name 8 | java.beans. 9 | scope 10 | source.java 11 | tabTrigger 12 | j.b 13 | uuid 14 | 5EEDE297-9489-41C8-A7AF-BDB5EABEF41F 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/public.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | public 7 | name 8 | public 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | pu 13 | uuid 14 | BD7A6DBE-0180-4E1A-A428-14D44BD88F88 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/return.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | return 7 | name 8 | return 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | re 13 | uuid 14 | BF745BD9-E345-4CFB-82B1-2CC2195BEFA8 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/static.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | static 7 | name 8 | static 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | st 13 | uuid 14 | C0525A43-EEF4-4F59-AC09-84D263888433 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/throw.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | throw $0 7 | name 8 | throw 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | th 13 | uuid 14 | F0C15D98-790E-4755-A04E-B8903D50F5C6 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/abstract.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | abstract 7 | name 8 | abstract 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | ab 13 | uuid 14 | E54D7A3C-107A-426E-91E8-D066A978BC5E 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/print.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | System.out.print($1);$0 7 | name 8 | print 9 | scope 10 | source.java 11 | tabTrigger 12 | p 13 | uuid 14 | 5F390B93-6A28-4EED-B04A-D213640B9DAF 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/private.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | private 7 | name 8 | private 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | pr 13 | uuid 14 | 8E765795-CC9D-46D7-8602-7E2DBB7026B2 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/while.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | while ($1) { 7 | $0 8 | } 9 | name 10 | while 11 | scope 12 | source.java 13 | tabTrigger 14 | wh 15 | uuid 16 | 755B1EB0-934C-49C6-AD08-B461C2205C46 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/else.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | else { 7 | $0 8 | } 9 | name 10 | else 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | el 15 | uuid 16 | 5A7786EE-5F23-422E-A6EC-69778ED7C8FC 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/if.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | if ($1) { 7 | $0 8 | } 9 | name 10 | if 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | if 15 | uuid 16 | 476E26EB-5A53-45B3-A497-B22B12815C7F 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/protected.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | protected 7 | name 8 | protected 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | po 13 | uuid 14 | 56C938B4-22B8-45F4-8E09-5BB4DE4633B0 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/throw new.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | throw new $0 7 | name 8 | throw new 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | tn 13 | uuid 14 | E0D61777-04FC-416F-82A7-7B54C446A00B 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/try.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | try { 7 | $0 8 | } 9 | name 10 | try 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | tr 15 | uuid 16 | 7FB7C9A7-08BB-410F-B012-40D99ED8A60E 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/case.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | case $1: 7 | $2 8 | $0 9 | name 10 | case 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | cs 15 | uuid 16 | 7396532C-3567-4BDA-9C10-51454A2F2F6D 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/println.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | System.out.println($1);$0 7 | name 8 | println 9 | scope 10 | source.java 11 | tabTrigger 12 | pl 13 | uuid 14 | DFD7AE0D-D5CC-4FFF-B37D-EA7ACC8E34DF 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/finally.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | finally { 7 | $0 8 | } 9 | name 10 | finally 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | fy 15 | uuid 16 | 2556E4C9-353C-4D34-A48D-7718A3739F40 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/for (each).tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | for ($1 : $2) { 7 | $0 8 | } 9 | name 10 | for (each) 11 | scope 12 | source.java 13 | tabTrigger 14 | fore 15 | uuid 16 | 8B84EAD3-F93D-407A-8BB1-4FEF8B0C71D7 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/for.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | for ($1; $2; $3) { 7 | $0 8 | } 9 | name 10 | for 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | for 15 | uuid 16 | BC9380F7-43F1-4304-91CD-4C490B0A6037 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/switch.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | switch ($1) { 7 | $0 8 | } 9 | name 10 | switch 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | sw 15 | uuid 16 | 2D2F53B7-E41C-4AEE-8A5E-2A5BB7B42E65 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/synchronized.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | synchronized 7 | name 8 | synchronized 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | sy 13 | uuid 14 | 96251D07-2F30-4610-9F0F-65DE730CC0B5 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/else if.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | else if ($1) { 7 | $0 8 | } 9 | name 10 | else if 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | elif 15 | uuid 16 | 4C07C9CB-4306-417B-B152-653E93C987B5 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/test.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | public void test${1:Name}() throws Exception { 7 | $0 8 | } 9 | name 10 | test 11 | scope 12 | source.java 13 | tabTrigger 14 | t 15 | uuid 16 | 8B285F69-5A6A-46B4-BB31-B5F10DCB5719 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/variable.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1:String} ${2:var}${3: = ${0:null}}; 7 | name 8 | variable 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | v 13 | uuid 14 | 3621828B-39DB-4B56-8300-DD5C76333868 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/catch.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | catch (${1:Exception} ${2:e}) { 7 | $0 8 | } 9 | name 10 | catch 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | ca 15 | uuid 16 | CE3059F1-EBFE-426B-A98A-7D935580F915 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/constant.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | public static final ${1:String} ${2:var} = $3;$0 7 | name 8 | constant 9 | scope 10 | source.java 11 | tabTrigger 12 | co 13 | uuid 14 | 8CD02FE6-B5EE-4335-AFDF-7CC02C969563 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/method.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1:void} ${2:method}($3) ${4:throws $5 }{ 7 | $0 8 | } 9 | 10 | name 11 | method 12 | scope 13 | source.java 14 | tabTrigger 15 | m 16 | uuid 17 | 16D51B5E-56BC-4ED0-84FB-FCC68479BE8E 18 | 19 | 20 | -------------------------------------------------------------------------------- /Snippets/constant string.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | public static final String ${1:var} = "$2";$0 7 | name 8 | constant string 9 | scope 10 | source.java 11 | tabTrigger 12 | cos 13 | uuid 14 | 4876099F-502E-471F-9D0D-916C7EF2E353 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/method (main).tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | public static void main(String[] args) { 7 | $0 8 | } 9 | name 10 | method (main) 11 | scope 12 | source.java 13 | tabTrigger 14 | main 15 | uuid 16 | 90A0278A-56B2-465B-B629-A01DF6524FEA 17 | 18 | 19 | -------------------------------------------------------------------------------- /Preferences/Indentation Rules - Java Properties.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Indentation Rules - Properties File 7 | scope 8 | source.java-properties 9 | settings 10 | 11 | disableIndentCorrections 12 | 13 | 14 | uuid 15 | BB1257BA-0871-4B9F-B637-240F884E81E5 16 | 17 | 18 | -------------------------------------------------------------------------------- /Preferences/Symbol List: Classes.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Symbol List: Classes 7 | scope 8 | source.java meta.class meta.class.identifier 9 | settings 10 | 11 | showInSymbolList 12 | 1 13 | 14 | uuid 15 | 22E489AE-989E-4A76-9C18-89944CF5013D 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/assert.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | assert ${1:test}${2/(.+)/(?1: \: ")/}${2:Failure message}${2/(.+)/(?1:")/};$0 7 | name 8 | assert 9 | scope 10 | source.java, source.groovy 11 | tabTrigger 12 | as 13 | uuid 14 | A30E90E6-FFBF-4899-AB97-7CAA00D0B824 15 | 16 | 17 | -------------------------------------------------------------------------------- /Snippets/import junit_framework_TestCase;.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | import junit.framework.TestCase; 7 | $0 8 | name 9 | import junit.framework.TestCase; 10 | scope 11 | source.java 12 | tabTrigger 13 | imt 14 | uuid 15 | D8E7B79D-ADEC-437D-BFDE-F20D5362D892 16 | 17 | 18 | -------------------------------------------------------------------------------- /Snippets/test case.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | public class ${1:${TM_FILENAME/(.*?)(\..+)/$1/}} extends ${2:TestCase} { 7 | $0 8 | } 9 | name 10 | test case 11 | scope 12 | source.java 13 | tabTrigger 14 | tc 15 | uuid 16 | D3D659F5-5318-4D0A-85E2-9A03902A1668 17 | 18 | 19 | -------------------------------------------------------------------------------- /Snippets/interface.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | interface ${1:${TM_FILENAME/(.*?)(\..+)/$1/}} ${2:extends ${3:Parent} }{ 7 | $0 8 | } 9 | name 10 | interface 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | in 15 | uuid 16 | B8E49466-FCBE-4053-AEC3-4ABBE0FF2FEF 17 | 18 | 19 | -------------------------------------------------------------------------------- /Preferences/Folding - JSP.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Folding (JSP) 7 | scope 8 | text.html.jsp 9 | settings 10 | 11 | foldingStartMarker 12 | /\*\*|\{\s*$ 13 | foldingStopMarker 14 | \*\*/|^\s*\} 15 | 16 | uuid 17 | 2C5379EE-F0E8-410F-8E5F-362D5A85FDEE 18 | 19 | 20 | -------------------------------------------------------------------------------- /Snippets/class.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | class ${1:${TM_FILENAME/(.*?)(\..+)/$1/}} ${2:extends ${3:Parent} }${4:implements ${5:Interface} }{ 7 | $0 8 | } 9 | name 10 | class 11 | scope 12 | source.java, source.groovy 13 | tabTrigger 14 | cl 15 | uuid 16 | E9ED01EA-E83B-4322-BD9D-39C88FB8C237 17 | 18 | 19 | -------------------------------------------------------------------------------- /Preferences/Folding - Java.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Folding (Java) 7 | scope 8 | source.java 9 | settings 10 | 11 | foldingStartMarker 12 | (\{\s*(//.*)?$|^\s*// \{\{\{) 13 | foldingStopMarker 14 | ^\s*(\}|// \}\}\}$) 15 | 16 | uuid 17 | 6DF65B4B-D1A2-4B9C-9821-8B81EC3DA8FA 18 | 19 | 20 | -------------------------------------------------------------------------------- /Preferences/Folding - JUnit.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Folding (JUnit) 7 | scope 8 | text.junit-test-report 9 | settings 10 | 11 | foldingStartMarker 12 | (\{\s*(//.*)?$|^\s*// \{\{\{) 13 | foldingStopMarker 14 | ^\s*(\}|// \}\}\}$) 15 | 16 | uuid 17 | D542DC17-5A9E-4DDF-B825-EC5C04F847B4 18 | 19 | 20 | -------------------------------------------------------------------------------- /Preferences/Symbol List: Inner Classes.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Symbol List: Inner Classes 7 | scope 8 | source.java meta.class.body meta.class.identifier 9 | settings 10 | 11 | showInSymbolList 12 | 1 13 | symbolTransformation 14 | s/.*/ $0/g 15 | 16 | uuid 17 | 7A55A2BC-CD9D-4EBF-ABF4-3401AA64B7B3 18 | 19 | 20 | -------------------------------------------------------------------------------- /Preferences/Symbol List: Method.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Symbol List: Methods 7 | scope 8 | source.java meta.class.body meta.method.identifier 9 | settings 10 | 11 | showInSymbolList 12 | 1 13 | symbolTransformation 14 | 15 | s/\s{2,}/ /g; 16 | s/.*/ $0/g; 17 | 18 | 19 | uuid 20 | FA4CD3FA-A79B-43E3-A432-DA53DA4A060D 21 | 22 | 23 | -------------------------------------------------------------------------------- /Preferences/Symbol List: Inner Inner Classes.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Symbol List: Inner Inner Classes 7 | scope 8 | source.java meta.class.body meta.class.body meta.class.identifier 9 | settings 10 | 11 | showInSymbolList 12 | 1 13 | symbolTransformation 14 | s/.*/ $0/g 15 | 16 | uuid 17 | C80430E0-F37F-448F-ACAE-D590C96C4EAD 18 | 19 | 20 | -------------------------------------------------------------------------------- /Preferences/Symbol List: Inner Class Methods.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Symbol List: Inner Class Methods 7 | scope 8 | source.java meta.class.body meta.class.body meta.method.identifier 9 | settings 10 | 11 | showInSymbolList 12 | 1 13 | symbolTransformation 14 | 15 | s/\s{2,}/ /g; 16 | s/.*/ $0/g; 17 | 18 | 19 | uuid 20 | 11D7DA6F-1AE7-4BC7-BB5E-8DF05984FEEE 21 | 22 | 23 | -------------------------------------------------------------------------------- /Preferences/Symbol List: Inner Inner Class Methods.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Symbol List: Inner Inner Class Methods 7 | scope 8 | source.java meta.class.body meta.class.body meta.class.body meta.method.identifier 9 | settings 10 | 11 | showInSymbolList 12 | 1 13 | symbolTransformation 14 | 15 | s/\s{2,}/ /g; 16 | s/.*/ $0/g; 17 | 18 | 19 | uuid 20 | FD0CE2DC-6D44-4E22-B4E5-C47C57F5B677 21 | 22 | 23 | -------------------------------------------------------------------------------- /Preferences/Indentation Rules.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Indentation Rules 7 | scope 8 | source.java 9 | settings 10 | 11 | decreaseIndentPattern 12 | ^(.*\*/)?\s*\}|^\s*(public|private|protected):\s*$ 13 | increaseIndentPattern 14 | ^.*\{(\}|[^}"']*)$|^\s*(public|private|protected):\s*$ 15 | indentNextLinePattern 16 | ^(?!\s*@\w+(\(|\s*$)|(.*[};:])?\s*(//|/\*.*\*/\s*$)).*[^\s;:{}]\s*$ 17 | 18 | uuid 19 | 20E93106-18CF-4BA3-9DA3-8F0C955DB774 20 | 21 | 22 | -------------------------------------------------------------------------------- /Preferences/Java Properties Comments.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Comments: Properties File 7 | scope 8 | source.java-properties 9 | settings 10 | 11 | shellVariables 12 | 13 | 14 | name 15 | TM_COMMENT_START 16 | value 17 | # 18 | 19 | 20 | name 21 | TM_COMMENT_START_2 22 | value 23 | ! 24 | 25 | 26 | 27 | uuid 28 | CD9D5650-7188-498F-9305-1BA9D8D8D27F 29 | 30 | 31 | -------------------------------------------------------------------------------- /Preferences/Comments.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Comments 7 | scope 8 | source.java 9 | settings 10 | 11 | shellVariables 12 | 13 | 14 | name 15 | TM_COMMENT_START 16 | value 17 | // 18 | 19 | 20 | name 21 | TM_COMMENT_START_2 22 | value 23 | /* 24 | 25 | 26 | name 27 | TM_COMMENT_END_2 28 | value 29 | */ 30 | 31 | 32 | 33 | uuid 34 | FBA964F9-EA31-44D1-A5FD-AE8AB3FF8954 35 | 36 | 37 | -------------------------------------------------------------------------------- /Support/bin/java_compile_and_run.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | : ${TM_JAVA:=java} 4 | : ${TM_JAVAC:=javac} 5 | 6 | if [ "$1" = "--version" ] 7 | then 8 | "$TM_JAVA" -version 2>&1 | head -1 9 | exit 0 10 | fi 11 | 12 | SOURCE="$1" 13 | shift 14 | 15 | output="$TMPDIR/tm_javamate.${TM_PID:-$LOGNAME}"; 16 | mkdir -p "$output" 17 | 18 | PACKAGEDIR=${TM_JAVA_PACKAGE//./\/} # replace . with / in package 19 | SOURCEDIR=$(dirname "$SOURCE") 20 | 21 | cd "${SOURCEDIR%$PACKAGEDIR}" # Compile from root folder 22 | 23 | if [ -n "$TM_JAVA_FILEGLOB" ]; then 24 | "$TM_JAVAC" -d "$output" -encoding UTF8 $TM_JAVA_FILEGLOB; rc=$?; 25 | if (($rc >= 1)); then exit $rc; fi 26 | fi 27 | 28 | if [[ "$SOURCE" != $TM_JAVA_FILEGLOB ]]; then 29 | "$TM_JAVAC" -d "$output" -encoding UTF8 "$SOURCE"; rc=$?; 30 | if (($rc >= 1)); then exit $rc; fi 31 | fi 32 | 33 | CLASS=$(basename -s .java "$SOURCE") 34 | if [ "$TM_JAVA_PACKAGE" ] 35 | then 36 | CLASS="$TM_JAVA_PACKAGE.$CLASS" 37 | fi 38 | 39 | CLASSPATH="$output:$CLASSPATH" "$TM_JAVA" -Dfile.encoding=utf-8 "$CLASS" "$@"; 40 | exit $?; 41 | -------------------------------------------------------------------------------- /Tests/Numeric Literals.java: -------------------------------------------------------------------------------- 1 | // Integer 2 | 3 | foo = 0; 4 | foo = 123; 5 | foo = 123_456_789; 6 | foo = 123____456; 7 | foo = 0L; 8 | foo = 123L; 9 | 10 | 11 | // Floating-Point 12 | 13 | foo = 42.00; 14 | foo = 0.5; 15 | foo = .5; 16 | foo = 42f; 17 | foo = 3.59e0; 18 | foo = 3.59e-1701D; 19 | 20 | 21 | // Hexadecimal 22 | 23 | foo = 0x48454c5021; 24 | foo = 0x4927_4d; 25 | foo = 0x54_524150504544; 26 | foo = 0x494E; 27 | foo = 0x48455245L; 28 | 29 | 30 | // Octal 31 | 32 | foo = 3301_8; 33 | foo = 3301_8L; 34 | 35 | 36 | // Binary 37 | 38 | foo = 0b1; 39 | foo = 0b1; 40 | foo = 0b10; 41 | foo = 0b11; 42 | foo = 0b101; 43 | foo = 0b0001; 44 | foo = 0b1101; 45 | 46 | 47 | // Hexadecimal Floating-Point 48 | 49 | foo = 0x2.P1; 50 | foo = 0x1729p2; 51 | foo = 0x87539319P-3; 52 | foo = 0x6_963_472_309_248P+4; 53 | 54 | 55 | // Invalid 56 | 57 | foo = 08; // Zero can't start an integer 58 | 59 | foo = 42_.00F; // Underscore can't start or end number section 60 | foo = 42._00F; 61 | foo = _42; 62 | foo = 42_; 63 | foo = 042_; 64 | foo = 0x42_; 65 | 66 | foo = 123a; // Word boundary test 67 | foo = 3.59e-1701Da; 68 | foo = 0x1729p2a; 69 | foo = 0b1101a; 70 | -------------------------------------------------------------------------------- /Commands/Copy Fully Qualified Class Name.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 -w 9 | # Copies the fully qualified class name to the paste/clip board. 10 | # Used to add the class as an import. 11 | # 12 | 13 | package, class_name = nil, nil 14 | STDIN.each do |line| 15 | if line =~ /\s*package ([^;]+);/ 16 | package = $1 17 | elsif !(line =~ /^\s*\/\*/) && line =~ /\b(?:class|interface|enum)\b ([A-Z][^ ]+) / 18 | class_name = $1 19 | end 20 | 21 | break if package && class_name 22 | end 23 | 24 | if package && class_name 25 | name = "#{package}.#{class_name}" 26 | IO.popen("pbcopy", "w") { |pb| pb.print name} 27 | puts "Copied '#{name}'" 28 | else 29 | puts 'Package and class name not found. Aborting.' 30 | end 31 | 32 | input 33 | document 34 | keyEquivalent 35 | @C 36 | name 37 | Copy Fully Qualified Class Name 38 | output 39 | showAsTooltip 40 | scope 41 | source.java 42 | uuid 43 | BED53D9E-7A4D-42A7-8A3F-E633973A6D14 44 | 45 | 46 | -------------------------------------------------------------------------------- /Support/bin/javamate.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby18 2 | 3 | require ENV["TM_SUPPORT_PATH"] + "/lib/tm/executor" 4 | require ENV["TM_SUPPORT_PATH"] + "/lib/tm/save_current_document" 5 | require ENV["TM_SUPPORT_PATH"] + "/lib/ui" 6 | require "shellwords" 7 | require "pstore" 8 | require 'pathname' 9 | 10 | class JavaMatePrefs 11 | @@prefs = PStore.new(File.expand_path( "~/Library/Preferences/com.macromates.textmate.javamate")) 12 | def self.get(key) 13 | @@prefs.transaction { @@prefs[key] } 14 | end 15 | def self.set(key,value) 16 | @@prefs.transaction { @@prefs[key] = value } 17 | end 18 | end 19 | 20 | TextMate::Executor.make_project_master_current_document 21 | 22 | cmd = ["#{ENV['TM_BUNDLE_SUPPORT']}/bin/java_compile_and_run.sh"] 23 | cmd << ENV['TM_FILEPATH'] 24 | script_args = [] 25 | if ENV.include? 'TM_JAVAMATE_GET_ARGS' 26 | prev_args = JavaMatePrefs.get("prev_args") 27 | args = TextMate::UI.request_string(:title => "JavaMate", :prompt => "Enter any command line options:", :default => prev_args) 28 | JavaMatePrefs.set("prev_args", args) 29 | script_args = Shellwords.shellwords(args) 30 | end 31 | cwd = Pathname.new(Pathname.new(Dir.pwd).realpath) 32 | 33 | package = nil 34 | File.open(ENV['TM_FILEPATH'], "r") do |f| 35 | while (line = f.gets) 36 | if line =~ /^\s*package\s+([^\s;]+)/ 37 | package = $1 38 | break 39 | end 40 | end 41 | end 42 | 43 | #cmd << package if package 44 | ENV["TM_JAVA_PACKAGE"] = package 45 | 46 | TextMate::Executor.run(cmd, :version_args => ["--version"], :script_args => script_args) 47 | -------------------------------------------------------------------------------- /Commands/Compile & Run.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | saveActiveFile 7 | command 8 | #!/bin/sh 9 | "$TM_BUNDLE_SUPPORT/bin/javamate.rb" 10 | 11 | input 12 | document 13 | inputFormat 14 | text 15 | keyEquivalent 16 | @r 17 | name 18 | Compile & Run 19 | outputCaret 20 | afterOutput 21 | outputFormat 22 | html 23 | outputLocation 24 | newWindow 25 | requiredCommands 26 | 27 | 28 | command 29 | java 30 | locations 31 | 32 | /usr/bin/java 33 | 34 | variable 35 | TM_JAVA 36 | 37 | 38 | command 39 | javac 40 | locations 41 | 42 | /usr/bin/javac 43 | 44 | variable 45 | TM_JAVAC 46 | 47 | 48 | scope 49 | source.java 50 | semanticClass 51 | process.build-and-run.java 52 | uuid 53 | 752A2A98-EB02-4A4D-A3D4-522485DBF491 54 | version 55 | 2 56 | 57 | 58 | -------------------------------------------------------------------------------- /Commands/Compile & Run (with args).tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | saveActiveFile 7 | command 8 | #!/bin/sh 9 | TM_JAVAMATE_GET_ARGS=1 "$TM_BUNDLE_SUPPORT/bin/javamate.rb" 10 | 11 | input 12 | document 13 | inputFormat 14 | text 15 | keyEquivalent 16 | ~@r 17 | name 18 | Compile & Run (with args) 19 | outputCaret 20 | afterOutput 21 | outputFormat 22 | html 23 | outputLocation 24 | newWindow 25 | requiredCommands 26 | 27 | 28 | command 29 | java 30 | locations 31 | 32 | /usr/bin/java 33 | 34 | variable 35 | TM_JAVA 36 | 37 | 38 | command 39 | javac 40 | locations 41 | 42 | /usr/bin/javac 43 | 44 | variable 45 | TM_JAVAC 46 | 47 | 48 | scope 49 | source.java 50 | semanticClass 51 | process.build-and-run.java 52 | uuid 53 | 4BC99514-9BF7-4F4F-BD84-7AD07EB81AC3 54 | version 55 | 2 56 | 57 | 58 | -------------------------------------------------------------------------------- /Commands/Go To Stackframe Source.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 9 | 10 | require 'find' 11 | require ENV['TM_SUPPORT_PATH'] + '/lib/textmate' 12 | 13 | stackframe = gets 14 | if stackframe =~ /\((.+):(.+)\)$/ 15 | file = $1 16 | line = $2 17 | base = ENV['TM_PROJECT_DIRECTORY'] || ENV['TM_DIRECTORY'] 18 | filter = TextMate::ProjectFileFilter.new 19 | 20 | matches = [] 21 | Find.find(base) do |path| 22 | if File.directory? path 23 | Find.prune if filter.skip? path 24 | elsif File.basename(path) == file 25 | matches << path 26 | end 27 | end 28 | 29 | matches = matches.reject { |path| filter.skip? path } 30 | 31 | if matches.empty? 32 | puts "Could not find ‘#{file}’ in project" 33 | else 34 | if matches.size == 1 35 | TextMate.go_to(:file => matches.first, :line => line) 36 | else 37 | puts "Found more than one file named ‘#{file}’" 38 | end 39 | end 40 | else 41 | puts "Stackframe does not contain a reference to source" 42 | end 43 | fallbackInput 44 | line 45 | input 46 | selection 47 | keyEquivalent 48 | ^~@ 49 | name 50 | Go to Stackframe Source 51 | output 52 | showAsTooltip 53 | uuid 54 | 0642B880-F94F-4892-A761-AEF833C3B869 55 | 56 | 57 | -------------------------------------------------------------------------------- /Commands/Create Package Declaration.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env ruby18 -w 9 | # Generates a package statement based on conventions for the name of the source directory. 10 | # If the root source folder name isn't matched either log a bug to get it added to the 11 | # default list or define an environment variable named TM_JAVA_SOURCE_FOLDER_REGEX with 12 | # a value of the regex to use to match folder names. 13 | # 14 | 15 | require ENV['TM_SUPPORT_PATH'] + '/lib/textmate' 16 | 17 | package = [] 18 | package_regex = /^(src|tst)$/ # common source folder names 19 | package_regex = /^(#{ENV['TM_JAVA_SOURCE_FOLDER_REGEX']})$/ if ENV['TM_JAVA_SOURCE_FOLDER_REGEX'] 20 | dir = ENV['TM_DIRECTORY'] || Dir.getwd 21 | dir.split(File::SEPARATOR).reverse.each do |folder| 22 | if folder !~ package_regex 23 | package << folder 24 | else 25 | break 26 | end 27 | end 28 | 29 | if !package.empty? 30 | puts "package #{package.reverse.join('.')};" 31 | end 32 | input 33 | none 34 | inputFormat 35 | text 36 | name 37 | Create Package Declaration 38 | outputCaret 39 | afterOutput 40 | outputFormat 41 | text 42 | outputLocation 43 | atCaret 44 | scope 45 | source.java 46 | tabTrigger 47 | pa 48 | uuid 49 | CBFE854E-917E-4ED5-BDBC-950C6B25B816 50 | version 51 | 2 52 | 53 | 54 | -------------------------------------------------------------------------------- /README.mdown: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | You can install this bundle in TextMate by opening the preferences and going to the bundles tab. After installation it will be automatically updated for you. 4 | 5 | # Settings 6 | 7 | If you have Java installed and TextMate does not find your JDK and shows the error message `No Java runtime present, requesting install`, you have to tell TextMate where to find the `java` and `javac` executables. Go to the *Preferences*, open the *Variables* section and add two entries using the `+` button: `TM_JAVA`, which points to your `java` executable and `TM_JAVAC`, which points to your `javac` executable. Example: 8 | 9 | | | Variable Name | Value | 10 | | - | -------------- | ----- | 11 | | :white_check_mark: | TM_JAVA | /Users/*«yourname»*/jdk1.8.0/bin/java | 12 | | :white_check_mark: | TM_JAVAC | /Users/*«yourname»*/jdk1.8.0/bin/javac | 13 | 14 | # General 15 | 16 | * [Bundle Styleguide](http://kb.textmate.org/bundle_styleguide) — _before you make changes_ 17 | * [Commit Styleguide](http://kb.textmate.org/commit_styleguide) — _before you send a pull request_ 18 | * [Writing Bug Reports](http://kb.textmate.org/writing_bug_reports) — _before you report an issue_ 19 | 20 | # License 21 | 22 | If not otherwise specified (see below), files in this repository fall under the following license: 23 | 24 | Permission to copy, use, modify, sell and distribute this 25 | software is granted. This software is provided "as is" without 26 | express or implied warranty, and with no claim as to its 27 | suitability for any purpose. 28 | 29 | An exception is made for files in readable text which contain their own license information, or files where an accompanying file exists (in the same directory) with a “-license” suffix added to the base-name name of the original file, and an extension of txt, html, or similar. For example “tidy” is accompanied by “tidy-license.txt”. -------------------------------------------------------------------------------- /Tests/Enums.java: -------------------------------------------------------------------------------- 1 | // http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html 2 | 3 | import java.util.*; 4 | 5 | public class Card { 6 | public enum Rank { DEUCE, THREE, FOUR, FIVE, SIX, 7 | SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE } 8 | 9 | public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES } 10 | 11 | private final Rank rank; 12 | private final Suit suit; 13 | private Card(Rank rank, Suit suit) { 14 | this.rank = rank; 15 | this.suit = suit; 16 | } 17 | 18 | public Rank rank() { return rank; } 19 | public Suit suit() { return suit; } 20 | public String toString() { return rank + " of " + suit; } 21 | 22 | private static final List protoDeck = new ArrayList(); 23 | 24 | // Initialize prototype deck 25 | static { 26 | for (Suit suit : Suit.values()) 27 | for (Rank rank : Rank.values()) 28 | protoDeck.add(new Card(rank, suit)); 29 | } 30 | 31 | public static ArrayList newDeck() { 32 | return new ArrayList(protoDeck); // Return copy of prototype deck 33 | } 34 | } 35 | 36 | public enum Planet { 37 | MERCURY (3.303e+23, 2.4397e6), 38 | VENUS (4.869e+24, 6.0518e6), 39 | EARTH (5.976e+24, 6.37814e6), 40 | MARS (6.421e+23, 3.3972e6), 41 | JUPITER (1.9e+27, 7.1492e7), 42 | SATURN (5.688e+26, 6.0268e7), 43 | URANUS (8.686e+25, 2.5559e7), 44 | NEPTUNE (1.024e+26, 2.4746e7), 45 | PLUTO (1.27e+22, 1.137e6); 46 | 47 | private final double mass; // in kilograms 48 | private final double radius; // in meters 49 | Planet(double mass, double radius) { 50 | this.mass = mass; 51 | this.radius = radius; 52 | } 53 | public double mass() { return mass; } 54 | public double radius() { return radius; } 55 | 56 | // universal gravitational constant (m3 kg-1 s-2) 57 | public static final double G = 6.67300E-11; 58 | 59 | public double surfaceGravity() { 60 | return G * mass / (radius * radius); 61 | } 62 | public double surfaceWeight(double otherMass) { 63 | return otherMass * surfaceGravity(); 64 | } 65 | } 66 | 67 | public enum Operation { 68 | PLUS { double eval(double x, double y) { return x + y; } }, 69 | MINUS { double eval(double x, double y) { return x - y; } }, 70 | TIMES { double eval(double x, double y) { return x * y; } }, 71 | DIVIDE { double eval(double x, double y) { return x / y; } }; 72 | 73 | // Do arithmetic op represented by this constant 74 | abstract double eval(double x, double y); 75 | } -------------------------------------------------------------------------------- /Commands/Documentation For Word.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | #!/usr/bin/env bash 9 | [[ -f "${TM_SUPPORT_PATH}/lib/bash_init.sh" ]] && . "${TM_SUPPORT_PATH}/lib/bash_init.sh" 10 | 11 | echo "<!-- gotAPI.com search widget v2 begin --> 12 | <body onload=\"init();\"> 13 | <DIV> 14 | <STYLE> 15 | .gaMenu{border:1px solid #505050;background-color:#FAFAFA;padding:0px 5px 0px 5px;} 16 | .gaHeaderRow{font:bold 8pt Arial;color:#359155;border-top:1px solid #C0C0C0;width:250px;} 17 | .gaRegularRow,.gaFooterRow{font:8pt Arial;cursor:pointer;} 18 | .gaSelectedRow{font:8pt Arial;background-color:#c1e0e6;cursor:pointer;} 19 | </STYLE> 20 | <SCRIPT><!-- 21 | gaMod='module_java15noui.js';gaTitle='J2SE v1.5 less UI';updateWhenLoaded=false; 22 | var gaL=false;function gaInit(){if(gaL)return;gaL=true;var s=document.createElement('script'); 23 | s.type='text/javascript';s.src='http://www.gotapi.com/widgets/compiled/c1_module_java15noui.js.jsz';s.defer='defer';s.defered='yes'; 24 | document.getElementById('gaInfo').parentNode.appendChild(s)}function gaSearching(){ 25 | document.getElementById('gaWait').style.display='';updateWhenLoaded=true; 26 | document.getElementById('gaInfo').style.display='none'} 27 | //--> 28 | </SCRIPT> 29 | <DIV style='font:bold 10pt Arial'>Quick J2SE v1.5 less UI lookup</DIV> 30 | <INPUT id=gaSearch size=20 onfocus=\"gaInit()\" onkeydown=\"gaSearching()\"> 31 | <DIV id=gaInfo style='font:7pt Arial'>powered by <A href='http://www.gotapi.com' style='padding:0px'>gotAPI.com</A></DIV> 32 | <DIV id=gaWait style='font:7pt Arial;display:none'>Searching...</DIV> 33 | </DIV> 34 | </body> 35 | <!-- gotAPI.com search widget v2 end -->" 36 | 37 | if [ $TM_CURRENT_WORD ] 38 | then 39 | echo "<script>function init() { document.getElementById('gaSearch').value = '$TM_CURRENT_WORD'; document.getElementById('gaSearch').focus(); gaSearching(); }</script>" 40 | fi 41 | input 42 | none 43 | inputFormat 44 | text 45 | keyEquivalent 46 | ^h 47 | name 48 | Documentation For Word 49 | outputCaret 50 | afterOutput 51 | outputFormat 52 | html 53 | outputLocation 54 | newWindow 55 | scope 56 | source.java 57 | semanticClass 58 | lookup.define.java 59 | uuid 60 | CE007C8C-9A0B-43B8-AEAF-45613BCD3DF7 61 | version 62 | 2 63 | 64 | 65 | -------------------------------------------------------------------------------- /Tests/Test.java: -------------------------------------------------------------------------------- 1 | import com.foo.*; 2 | import com.bar.*; // comment 3 | import com.baz.*; 4 | 5 | /** class foo */ 6 | 7 | public class Foo 8 | { 9 | void bar(Object baz) 10 | { 11 | throw new RuntimeException(baz.toString() + "; void"); 12 | } 13 | } 14 | 15 | public class Hello 16 | { 17 | void method(Integer integer) {} 18 | void method(INTEGER integer) {} 19 | 20 | private static final int ID = 0; 21 | ID id = new ID(); 22 | Id id = new Id(); 23 | 24 | } 25 | 26 | class Foo // bar 27 | { 28 | } 29 | 30 | class Foo /* bar */ 31 | { 32 | } 33 | 34 | interface Foo // bar 35 | { 36 | } 37 | 38 | interface Foo /* bar */ 39 | { 40 | } 41 | 42 | class Foo 43 | { 44 | } 45 | 46 | class Foo extends Bar // bar 47 | { 48 | } 49 | 50 | class Foo extends Bar /* bar */ 51 | { 52 | } 53 | 54 | class Foo extends Bar implements Bat // bar 55 | { 56 | } 57 | 58 | class Foo extends Bar implements Bat /* bar */ 59 | { 60 | } 61 | 62 | class Foo implements Bar // bar 63 | { 64 | } 65 | 66 | class Foo implements Bar /* bar */ 67 | { 68 | } 69 | 70 | interface Foo extends Bar // bar 71 | { 72 | } 73 | 74 | interface Foo extends Bar /* bar */ 75 | { 76 | Value get(); 77 | } 78 | 79 | class Assertion 80 | { 81 | assert 1 = 1 : "Failure message"; 82 | assert 1 = 1; 83 | } 84 | 85 | class AnonymousClassExample { 86 | public Object m() { 87 | return new Object() { /* meta.anon-class.java */ }; 88 | } 89 | public class Inner { 90 | void method() throws { 91 | 92 | } 93 | 94 | } 95 | } 96 | 97 | public class Ticket3D1E429A 98 | { 99 | public static void main(String[] args) 100 | { 101 | System.out.println(" Java: " + profiler.profileJava(new ArrayList(), new Random(seed))); 102 | } 103 | } 104 | 105 | public class Foo 106 | { 107 | public void bar() { 108 | Int[] int1 = new Int[10] {1,2,3}; 109 | Int[] int2 = new Int[10]; 110 | } 111 | 112 | void method( ) 113 | { 114 | method(new Integer[334]); 115 | } 116 | 117 | void method2() { 118 | // make sure this is shown as method2 in the symbol list 119 | } 120 | 121 | } 122 | 123 | public class ImplementsOverMultipleLines 124 | implements Bar, 125 | Baz 126 | { 127 | } 128 | 129 | class Foo { 130 | private java.util.List bar; 131 | } 132 | 133 | class Foo 134 | { 135 | void bar() 136 | { 137 | System.out.println("class name"); 138 | } 139 | } 140 | 141 | class Ta { 142 | /** 143 | * 144 | */ 145 | private native void setInitValues(long modelPtr, double n1, 146 | double n2, 147 | double p2, 148 | double p26, 149 | double p3, 150 | double wf, 151 | double t44); 152 | } 153 | 154 | class NativeAndAbstractMethods { 155 | private abstract long InitModel(); 156 | private native void Step(long modelPtr, int iterationsPerStep); 157 | private native void Term(long modelPtr); 158 | private native void setValue(long modelPtr, String Key, double 159 | Value); 160 | private native double getValue(long modelPtr, String Key); 161 | private native void setInitValues(long modelPtr, double n1, double 162 | n2, double 163 | p2, double p26, double p3, double wf, double t44); 164 | } -------------------------------------------------------------------------------- /Syntaxes/JUnit Test Report.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | firstLineMatch 6 | ^Testsuite: 7 | keyEquivalent 8 | ^~J 9 | name 10 | JUnit Test Report 11 | patterns 12 | 13 | 14 | captures 15 | 16 | 1 17 | 18 | name 19 | meta.testsuite.label.junit-test-report 20 | 21 | 2 22 | 23 | name 24 | entity.name.testsuite.junit-test-report 25 | 26 | 27 | match 28 | (Testsuite:) (.+)$\n 29 | name 30 | meta.testsuite.name.junit-test-report 31 | 32 | 33 | captures 34 | 35 | 1 36 | 37 | name 38 | meta.testcase.label.junit-test-report 39 | 40 | 2 41 | 42 | name 43 | entity.name.testcase.junit-test-report 44 | 45 | 46 | match 47 | (Testcase:) (.+) took ([\d\.]+) sec$\n 48 | name 49 | meta.testcase.name.junit-test-report 50 | 51 | 52 | begin 53 | at\s+(?=.+?\(.+?\)$) 54 | end 55 | $\n 56 | name 57 | meta.stackframe.junit-test-report 58 | patterns 59 | 60 | 61 | match 62 | (?<=\.)[^\.]+?(?=\() 63 | name 64 | meta.stackframe.method.junit-test-report 65 | 66 | 67 | captures 68 | 69 | 1 70 | 71 | name 72 | meta.stackframe.source.junit-test-report 73 | 74 | 3 75 | 76 | name 77 | meta.stackframe.source.line.junit-test-report 78 | 79 | 80 | match 81 | \((.+)(:)(.+)\)$ 82 | 83 | 84 | 85 | 86 | begin 87 | ------------- Standard Output ---------------$\n 88 | end 89 | ------------- ---------------- ---------------$\n 90 | name 91 | meta.section.output.junit-test-report 92 | patterns 93 | 94 | 95 | begin 96 | --Output from (.+?)--$\n 97 | beginCaptures 98 | 99 | 1 100 | 101 | name 102 | entity.name.testcase.junit-test-report 103 | 104 | 105 | contentName 106 | meta.output.content.junit-test-report 107 | end 108 | (?=--Output from|------------- ---------------- ---------------) 109 | name 110 | meta.output.junit-test-report 111 | 112 | 113 | 114 | 115 | begin 116 | ------------- Standard Error -----------------$\n 117 | contentName 118 | meta.error.junit-test-report 119 | end 120 | ------------- ---------------- ---------------$\n 121 | name 122 | meta.section.error.junit-test-report 123 | patterns 124 | 125 | 126 | begin 127 | --Output from (.+?)--$\n 128 | beginCaptures 129 | 130 | 1 131 | 132 | name 133 | entity.name.testcase.junit-test-report 134 | 135 | 136 | contentName 137 | meta.error.content.junit-test-report 138 | end 139 | (?=--Output from|------------- ---------------- ---------------) 140 | name 141 | meta.error.junit-test-report 142 | 143 | 144 | 145 | 146 | scopeName 147 | text.junit-test-report 148 | uuid 149 | 6F20804D-4BF2-42A7-BC64-A8CD83B7DE0F 150 | 151 | 152 | -------------------------------------------------------------------------------- /Syntaxes/JavaProperties.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | properties 8 | 9 | foldingStartMarker 10 | ^[a-zA-Z0-9.-_]+=.*\ 11 | 12 | foldingStopMarker 13 | ^(.*(?<!\) 14 | ) 15 | keyEquivalent 16 | ^~J 17 | name 18 | Java Properties 19 | patterns 20 | 21 | 22 | comment 23 | Ignore blank lines 24 | match 25 | ^\s*$ 26 | 27 | 28 | include 29 | #comment-line 30 | 31 | 32 | include 33 | #property-name 34 | 35 | 36 | include 37 | #property-definition 38 | 39 | 40 | repository 41 | 42 | comment-line 43 | 44 | captures 45 | 46 | 1 47 | 48 | name 49 | punctuation.whitespace.comment.leading.java-properties 50 | 51 | 2 52 | 53 | name 54 | punctuation.definition.comment.java-properties 55 | 56 | 57 | match 58 | ^(\s*)([#!])(.+)?$\n? 59 | name 60 | comment.line.java-properties 61 | 62 | property-definition 63 | 64 | begin 65 | ^(\s*)((?:\\[ \t]|\\:|\\=|[^:=\s])+)(?:\s*([:=]))?\s* 66 | beginCaptures 67 | 68 | 1 69 | 70 | name 71 | punctuation.whitespace.leading.java-properties 72 | 73 | 2 74 | 75 | name 76 | support.constant.java-properties 77 | patterns 78 | 79 | 80 | match 81 | \\(?:[ \t:=\\ntfr\"']|u[0-9A-Fa-f]{4}) 82 | name 83 | constant.character.escape.java-properties 84 | 85 | 86 | 87 | 3 88 | 89 | name 90 | punctuation.separator.key-value.java-properties 91 | 92 | 93 | contentName 94 | string.unquoted.java-properties 95 | end 96 | (?<!\\{1})$\n 97 | name 98 | meta.key-value.java-properties 99 | patterns 100 | 101 | 102 | comment 103 | Leading space on a continued line is ignored 104 | match 105 | ^\s* 106 | name 107 | punctuation.whitespace.leading.java-properties 108 | 109 | 110 | match 111 | (\\{1})(?=$\n) 112 | name 113 | punctuation.separator.continuation.java-properties 114 | 115 | 116 | match 117 | \\(?:[\\ntfr\"']|u[0-9A-Fa-f]{4}) 118 | name 119 | constant.character.escape.java-properties 120 | 121 | 122 | 123 | property-name 124 | 125 | captures 126 | 127 | 1 128 | 129 | name 130 | punctuation.whitespace.comment.leading.java-properties 131 | 132 | 2 133 | 134 | name 135 | support.constant.java-properties 136 | patterns 137 | 138 | 139 | match 140 | \\(?:[ \t:=\\ntfr\"']|u[0-9A-Fa-f]{4}) 141 | name 142 | constant.character.escape.java-properties 143 | 144 | 145 | 146 | 147 | comment 148 | A property name with no value 149 | match 150 | ^(\s*)((?:\\[ \t]|\\:|\\=|[^:=\s])+)(?:\s*([:=]))?\s*$\n 151 | name 152 | meta.key-value.java-properties 153 | 154 | 155 | scopeName 156 | source.java-properties 157 | uuid 158 | D364E829-7643-4AFF-948D-3C0D6B4EA8A4 159 | 160 | 161 | -------------------------------------------------------------------------------- /Commands/Organize Imports.tmCommand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | saveActiveFile 7 | command 8 | #!/usr/bin/env ruby18 -w 9 | # 10 | # WARNING: This script modifies the source of your file!!! No one but 11 | # yourself is responsible for it losing code. 12 | # 13 | # Provides an Eclipse like Organize Imports except it can't 14 | # add imports. It cleans up the list by filtering out unused 15 | # imports and alphabetizing the used. 16 | # 17 | # * alphabetizes imports placing java.* and javax.* before others. 18 | # * removes unused imports. 19 | # * maintains any "package.*;" imports and static imports 20 | # * supports class names starting with lowercase characters (legacy code) 21 | # 22 | # TODO add proper support for /* */ comments. Since these can be part of the line we can't ignore these lines 23 | 24 | before, imports, after, all = [], [], [], [] 25 | 26 | class_defined = false 27 | 28 | STDIN.each do |line| 29 | all << line 30 | 31 | if line =~ / (class|(@)?interface) / && !(line =~ %r{^\s*(//|\*)}) 32 | class_defined = true 33 | 34 | after << line 35 | elsif line =~ /\s*^import / 36 | imports << line.strip 37 | elsif imports.empty? && !class_defined 38 | before << line 39 | elsif !imports.empty? && after.empty? 40 | # remove empty lines after the imports and before anything else 41 | after << line unless line.strip.empty? 42 | elsif 43 | after << line 44 | end 45 | end 46 | 47 | if imports.empty? 48 | # if there are no imports just output the original lines and exit 49 | all.each { |line| puts line } 50 | exit 0 51 | end 52 | 53 | classes = {} 54 | imports.each do |import| 55 | import.scan(/\s*import\s+([A-Za-z0-9.]+)\.([a-zA-Z0-9]+);/) do |package, name| 56 | classes[name] = { :package => package } 57 | end 58 | end 59 | 60 | after.each do |line| 61 | next if line =~ %r{^\s*(//|/\*|\*)} #comments 62 | 63 | # Attempt to find all classes in the file. This is loose in that it 64 | # accepts words with lowercase letters and identifies them as classes. This is OK 65 | # since it won't add imports, it's only used to determine if an existing import 66 | # is valid. 67 | line.scan(/\b([A-Za-z]\w*)(\b|\.)/) do |name, boundary| 68 | classes[name][:used] = 1 if classes[name] 69 | end 70 | end 71 | 72 | # Based upon the classes found in the file determine the used imports 73 | non_static_imports, static_imports = [], [] 74 | classes.each_pair do |name, class_info| 75 | if class_info[:used] 76 | non_static_imports << "import #{class_info[:package]}.#{name};" 77 | end 78 | end 79 | 80 | # Include any .* imports and static imports since they can't be validated 81 | imports.each do |import| 82 | if import =~ /^import static/ 83 | static_imports << import 84 | elsif import =~ /\.\*\s*;/ 85 | non_static_imports << import 86 | end 87 | end 88 | 89 | # create section comprised of the import lines attempting to remove duplicate empty lines 90 | last_line_was_empty, import_lines = before.last.strip.empty?, [] 91 | 92 | unless static_imports.empty? 93 | import_lines << '' unless last_line_was_empty 94 | import_lines.push(*static_imports.uniq) 95 | last_line_was_empty = false 96 | end 97 | 98 | # Sort according to the default eclipse sort. 99 | sort_order = [ 100 | [/^import /, 4], # everything else 101 | [/^import com\./, 3], 102 | [/^import org\./, 2], 103 | [/^import javax\./, 1], 104 | [/^import java\./, 0], 105 | ] 106 | 107 | sorted = non_static_imports.uniq.sort do |a, b| 108 | a_group, b_group = sort_order[0][1], sort_order[0][1] 109 | 110 | sort_order.each do |x| 111 | a_group = x[1] if (a.match(x[0])) 112 | b_group = x[1] if (b.match(x[0])) 113 | end 114 | 115 | if a_group != b_group 116 | # sort by group 117 | result = a_group <=> b_group 118 | else 119 | # in the same group, sort by text 120 | result = a <=> b 121 | end 122 | 123 | result 124 | end 125 | 126 | cur_regex = nil 127 | 128 | [[""], sorted, [""]].flatten.each do |line| 129 | next if last_line_was_empty && line.strip.empty? # prevent multiple empty lines 130 | 131 | old_regex = cur_regex 132 | sort_order.each do |x| 133 | cur_regex = x[0] if (line.match(x[0])) 134 | end 135 | import_lines << '' if old_regex && cur_regex && old_regex != cur_regex 136 | 137 | last_line_was_empty = line.strip.empty? 138 | import_lines << line 139 | end 140 | 141 | [before, import_lines, after].flatten.each do |line| 142 | puts line 143 | end 144 | 145 | input 146 | selection 147 | keyEquivalent 148 | ^# 149 | name 150 | Organize Imports 151 | output 152 | replaceSelectedText 153 | scope 154 | source.java 155 | uuid 156 | E330E2EF-0057-4920-9364-01604C67E664 157 | 158 | 159 | -------------------------------------------------------------------------------- /info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | contactEmailRot13 6 | yq@yqnyrl.pbz 7 | contactName 8 | Luke Daley 9 | description 10 | A bundle for the <a href="http://java.sun.com/">Java</a> programming language. 11 | mainMenu 12 | 13 | items 14 | 15 | 752A2A98-EB02-4A4D-A3D4-522485DBF491 16 | 4BC99514-9BF7-4F4F-BD84-7AD07EB81AC3 17 | ------------------------------------ 18 | BED53D9E-7A4D-42A7-8A3F-E633973A6D14 19 | E330E2EF-0057-4920-9364-01604C67E664 20 | 0642B880-F94F-4892-A761-AEF833C3B869 21 | ------------------------------------ 22 | CE007C8C-9A0B-43B8-AEAF-45613BCD3DF7 23 | ------------------------------------ 24 | 5F390B93-6A28-4EED-B04A-D213640B9DAF 25 | DFD7AE0D-D5CC-4FFF-B37D-EA7ACC8E34DF 26 | ------------------------------------ 27 | 9EDF163F-3AB5-4FB5-90CD-DBE38005D082 28 | 94F55660-EB8B-49FE-BF82-56ACC0A5DDD2 29 | FA8BC93C-87AC-4E8D-A1A8-30E22436C874 30 | DED2BA05-B4E1-4400-B3D5-974C7066F250 31 | D7ED7C3F-23D8-4891-A319-B85727972BC2 32 | 29291A56-4B10-4072-95B0-44FDB81B5669 33 | 34 | submenus 35 | 36 | 29291A56-4B10-4072-95B0-44FDB81B5669 37 | 38 | items 39 | 40 | D3D659F5-5318-4D0A-85E2-9A03902A1668 41 | 8B285F69-5A6A-46B4-BB31-B5F10DCB5719 42 | ------------------------------------ 43 | D8E7B79D-ADEC-437D-BFDE-F20D5362D892 44 | 45 | name 46 | Testing 47 | 48 | 94F55660-EB8B-49FE-BF82-56ACC0A5DDD2 49 | 50 | items 51 | 52 | CBFE854E-917E-4ED5-BDBC-950C6B25B816 53 | ------------------------------------ 54 | E9ED01EA-E83B-4322-BD9D-39C88FB8C237 55 | B8E49466-FCBE-4053-AEC3-4ABBE0FF2FEF 56 | 16D51B5E-56BC-4ED0-84FB-FCC68479BE8E 57 | 90A0278A-56B2-465B-B629-A01DF6524FEA 58 | ------------------------------------ 59 | 3621828B-39DB-4B56-8300-DD5C76333868 60 | 8CD02FE6-B5EE-4335-AFDF-7CC02C969563 61 | 4876099F-502E-471F-9D0D-916C7EF2E353 62 | 63 | name 64 | Constructs 65 | 66 | 9EDF163F-3AB5-4FB5-90CD-DBE38005D082 67 | 68 | items 69 | 70 | BD7A6DBE-0180-4E1A-A428-14D44BD88F88 71 | 56C938B4-22B8-45F4-8E09-5BB4DE4633B0 72 | 8E765795-CC9D-46D7-8602-7E2DBB7026B2 73 | ------------------------------------ 74 | C0525A43-EEF4-4F59-AC09-84D263888433 75 | F53E8BF9-4911-4131-B31F-8B4DEE47E421 76 | ------------------------------------ 77 | E54D7A3C-107A-426E-91E8-D066A978BC5E 78 | 79 | name 80 | Modifiers 81 | 82 | D7ED7C3F-23D8-4891-A319-B85727972BC2 83 | 84 | items 85 | 86 | 97DC6637-998E-493C-9765-C8CFB29AC18C 87 | 2887D1D3-A714-41B6-9211-4DEC12417889 88 | 5EEDE297-9489-41C8-A7AF-BDB5EABEF41F 89 | 94C09B88-AC93-4045-86D1-206639D582D0 90 | 592F2823-7A2B-4881-99A4-7A18D3623902 91 | 92 | name 93 | Common Packages 94 | 95 | DED2BA05-B4E1-4400-B3D5-974C7066F250 96 | 97 | items 98 | 99 | F2C18E05-A7E7-4898-8CB5-CC7E6020AAFE 100 | 097F4236-D7A4-412F-A078-11ABFCAFC7BA 101 | 96251D07-2F30-4610-9F0F-65DE730CC0B5 102 | A30E90E6-FFBF-4899-AB97-7CAA00D0B824 103 | 104 | name 105 | Directives 106 | 107 | FA8BC93C-87AC-4E8D-A1A8-30E22436C874 108 | 109 | items 110 | 111 | 476E26EB-5A53-45B3-A497-B22B12815C7F 112 | 5A7786EE-5F23-422E-A6EC-69778ED7C8FC 113 | 4C07C9CB-4306-417B-B152-653E93C987B5 114 | ------------------------------------ 115 | BF745BD9-E345-4CFB-82B1-2CC2195BEFA8 116 | ------------------------------------ 117 | 755B1EB0-934C-49C6-AD08-B461C2205C46 118 | BC9380F7-43F1-4304-91CD-4C490B0A6037 119 | 8B84EAD3-F93D-407A-8BB1-4FEF8B0C71D7 120 | ------------------------------------ 121 | 7FB7C9A7-08BB-410F-B012-40D99ED8A60E 122 | CE3059F1-EBFE-426B-A98A-7D935580F915 123 | 2556E4C9-353C-4D34-A48D-7718A3739F40 124 | F0C15D98-790E-4755-A04E-B8903D50F5C6 125 | E0D61777-04FC-416F-82A7-7B54C446A00B 126 | ------------------------------------ 127 | 2D2F53B7-E41C-4AEE-8A5E-2A5BB7B42E65 128 | 7396532C-3567-4BDA-9C10-51454A2F2F6D 129 | E4DACBFB-F029-4EC3-BB0D-BEF0D5369DA7 130 | F050CAEB-56AB-40A7-846B-E5DB70FA0A90 131 | 132 | name 133 | Control 134 | 135 | 136 | 137 | name 138 | Java 139 | uuid 140 | 4677FEB2-6227-11D9-BFB1-000D93589AF6 141 | 142 | 143 | -------------------------------------------------------------------------------- /Tests/Test.jsp: -------------------------------------------------------------------------------- 1 | <%= expression to be printet %> 2 | 3 | <%-- 4 | Block Comment 5 | --%> 6 | 7 | <% 8 | // some scriptlet code 9 | String name = request.getParameter("name"); 10 | if (name != null) { 11 | %> 12 |

<%= name %>

13 | <% 14 | } else { 15 | %> 16 |

Error!

17 | 18 | <% 19 | } 20 | %> 21 | 22 | 23 |

24 | 25 | <%! 26 | String test = "hej med dig"; 27 | int i = 10; 28 | %> 29 | 30 | <%! 31 | public class Test { 32 | private String testerString; 33 | 34 | public Test(String test){ 35 | testerString = test; 36 | } 37 | 38 | public void getTest() { 39 | return this.testerString; 40 | } 41 | 42 | } 43 | %> 44 | 45 | <%@ page import="java.util.*, java.lang.*" %> 46 | <%@ page buffer="5kb" autoFlush="false" %> 47 | <%@ page errorPage="error.jsp" %> 48 | <%@ include file="relativeURL" %> 49 | <%@ taglib uri="URIToTagLibrary" prefix="somePrefix" %> 50 | 51 | 52 | String test = "blah"; 53 | 54 | 55 | if (test.equals("blah")) { 56 | 57 | 58 | "expression to be printet: " + test 59 | 60 | 61 | } 62 | 63 | 64 | <%@ page language="java" %> 65 | <%@ page contentType="text/html;charset=ISO-8859-1" %> 66 | <%@ page import="java.util.*"%> 67 | <%@ page import="java.lang.*"%> 68 | 69 | <%@ taglib uri="/WEB-INF/escenic-util.tld" prefix="util" %> 70 | <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> 71 | <%@ taglib uri="/WEB-INF/jppol-mail.tld" prefix="mail" %> 72 | 73 | 74 | 75 | 76 | 77 | <%! 78 | String exampleString = "blah: "; 79 | %> 80 | 81 | <%-- This comment is ok --%> 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | <% 91 | String codeName = request.getAttribute("attribute_1"); 92 | if (codeName.equals("test_1"))) { 93 | // HERE: this is not source.java scope for some reason 94 | } 95 | if (request.getAttribute("configErrorString") != null) { 96 | configErrorString = (String) request.getAttribute("configErrorString"); 97 | } 98 | if (request.getAttribute("foundConfigError") != null) { 99 | Boolean blnObj = (Boolean) request.getAttribute("foundConfigError"); 100 | foundConfigError = blnObj.booleanValue(); 101 | } 102 | 103 | if (!foundConfigError && request.getParameter("mail_send") != null) { 104 | 105 | response.setContentType("text/javascript"); 106 | 107 | String senderName = request.getParameter("mail_sender_name"); 108 | String senderEmail = request.getParameter("mail_sender_email"); 109 | String senderText = request.getParameter("mail_sender_text"); 110 | 111 | JSONObject responseObj = new JSONObject(); 112 | String errorStr = ""; 113 | 114 | if (!configParametersMap.get("require_name").equals("false") && (senderName == null || senderName.equals("") || senderName.equals("Dit navn"))) errorStr += configParametersMap.get("error_name") + "\n"; 115 | if (!configParametersMap.get("require_email").equals("false") && (senderEmail == null || senderEmail.equals("") || senderEmail.equals("Din email"))) errorStr += configParametersMap.get("error_email") + "\n"; 116 | if (senderText == null || senderText.equals("") || senderText.equals("Din besked")) errorStr += configParametersMap.get("error_message"); 117 | 118 | if (errorStr.equals("")) { 119 | %> 120 | 121 | <%= configParametersMap.get("to") %> 122 | <%= configParametersMap.get("from") %> 123 | <%= configParametersMap.get("subject") %> 124 | <%= "Afsenders navn: " + senderName + "\n\nAfsender email: " + senderEmail + "\n\nIndhold:\n\n" + senderText %> 125 | 126 | <% 127 | responseObj.put("status", true); 128 | } else { 129 | responseObj.put("status", false); 130 | responseObj.put("error", errorStr); 131 | } 132 | 133 | out.print(responseObj); 134 | 135 | } else if (!foundConfigError) { %> 136 | 179 | <%-- comment not working --%> 180 |
"> 181 |
182 |
183 |
    184 |
  • <%= configParametersMap.get("title") %> HERE : The preceding does never enter the source.java scope. 185 | 186 |
  • 187 | 188 |
189 |
190 |
191 | 192 | 193 | Vi forbehoilder os ret til at redigere og
offentilggøre dit spørgsmål
194 | 195 | 196 |
197 |
198 |
199 |
200 | 201 | <% } else { %> 202 | 203 | WHAT:::<%=configErrorString %> 204 | 205 | <% } %> 206 | <% if (false) { %> 207 | 208 | <% String test = hello; // HERE: i can comment out end signs %> 209 | %> 210 | 211 | 212 | <%-- HERE: This should be captured as a comment --%> 213 | 214 | <%= configParametersMap.get("to") %> 215 | <%= configParametersMap.get("from") %> 216 | <%= configParametersMap.get("subject") %> 217 | Dette er en test 218 | 219 | <% } %> -------------------------------------------------------------------------------- /Syntaxes/Java.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | java 8 | bsh 9 | 10 | keyEquivalent 11 | ^~J 12 | name 13 | Java 14 | patterns 15 | 16 | 17 | captures 18 | 19 | 1 20 | 21 | name 22 | keyword.other.package.java 23 | 24 | 2 25 | 26 | name 27 | storage.modifier.package.java 28 | 29 | 3 30 | 31 | name 32 | punctuation.terminator.java 33 | 34 | 35 | match 36 | ^\s*(package)\b(?:\s*([^ ;$]+)\s*(;)?)? 37 | name 38 | meta.package.java 39 | 40 | 41 | begin 42 | (import static)\b\s* 43 | beginCaptures 44 | 45 | 1 46 | 47 | name 48 | keyword.other.import.static.java 49 | 50 | 51 | captures 52 | 53 | 1 54 | 55 | name 56 | keyword.other.import.java 57 | 58 | 2 59 | 60 | name 61 | storage.modifier.import.java 62 | 63 | 3 64 | 65 | name 66 | punctuation.terminator.java 67 | 68 | 69 | contentName 70 | storage.modifier.import.java 71 | end 72 | \s*(?:$|(;)) 73 | endCaptures 74 | 75 | 1 76 | 77 | name 78 | punctuation.terminator.java 79 | 80 | 81 | name 82 | meta.import.java 83 | patterns 84 | 85 | 86 | match 87 | \. 88 | name 89 | punctuation.separator.java 90 | 91 | 92 | match 93 | \s 94 | name 95 | invalid.illegal.character_not_allowed_here.java 96 | 97 | 98 | 99 | 100 | begin 101 | (import)\b\s* 102 | beginCaptures 103 | 104 | 1 105 | 106 | name 107 | keyword.other.import.java 108 | 109 | 110 | captures 111 | 112 | 1 113 | 114 | name 115 | keyword.other.import.java 116 | 117 | 2 118 | 119 | name 120 | storage.modifier.import.java 121 | 122 | 3 123 | 124 | name 125 | punctuation.terminator.java 126 | 127 | 128 | contentName 129 | storage.modifier.import.java 130 | end 131 | \s*(?:$|(;)) 132 | endCaptures 133 | 134 | 1 135 | 136 | name 137 | punctuation.terminator.java 138 | 139 | 140 | name 141 | meta.import.java 142 | patterns 143 | 144 | 145 | match 146 | \. 147 | name 148 | punctuation.separator.java 149 | 150 | 151 | match 152 | \s 153 | name 154 | invalid.illegal.character_not_allowed_here.java 155 | 156 | 157 | 158 | 159 | include 160 | #code 161 | 162 | 163 | repository 164 | 165 | all-types 166 | 167 | patterns 168 | 169 | 170 | include 171 | #primitive-arrays 172 | 173 | 174 | include 175 | #primitive-types 176 | 177 | 178 | include 179 | #object-types 180 | 181 | 182 | 183 | annotations 184 | 185 | patterns 186 | 187 | 188 | begin 189 | (@[^ (]+)(\() 190 | beginCaptures 191 | 192 | 1 193 | 194 | name 195 | storage.type.annotation.java 196 | 197 | 2 198 | 199 | name 200 | punctuation.definition.annotation-arguments.begin.java 201 | 202 | 203 | end 204 | (\)) 205 | endCaptures 206 | 207 | 1 208 | 209 | name 210 | punctuation.definition.annotation-arguments.end.java 211 | 212 | 213 | name 214 | meta.declaration.annotation.java 215 | patterns 216 | 217 | 218 | captures 219 | 220 | 1 221 | 222 | name 223 | constant.other.key.java 224 | 225 | 2 226 | 227 | name 228 | keyword.operator.assignment.java 229 | 230 | 231 | match 232 | (\w*)\s*(=) 233 | 234 | 235 | include 236 | #code 237 | 238 | 239 | match 240 | , 241 | name 242 | punctuation.separator.property.java 243 | 244 | 245 | 246 | 247 | match 248 | @\w* 249 | name 250 | storage.type.annotation.java 251 | 252 | 253 | 254 | anonymous-classes-and-new 255 | 256 | begin 257 | \bnew\b 258 | beginCaptures 259 | 260 | 0 261 | 262 | name 263 | keyword.control.new.java 264 | 265 | 266 | end 267 | (?<=\)|\])(?!\s*{)|(?<=})|(?=;) 268 | patterns 269 | 270 | 271 | begin 272 | (\w+)\s*(?=\[) 273 | beginCaptures 274 | 275 | 1 276 | 277 | name 278 | storage.type.java 279 | 280 | 281 | end 282 | (})|(?=\s*(?:,|;|\))) 283 | endCaptures 284 | 285 | 1 286 | 287 | name 288 | punctuation.section.block.end.java 289 | 290 | 291 | patterns 292 | 293 | 294 | begin 295 | \[ 296 | end 297 | \] 298 | patterns 299 | 300 | 301 | include 302 | #code 303 | 304 | 305 | 306 | 307 | begin 308 | { 309 | beginCaptures 310 | 311 | 0 312 | 313 | name 314 | punctuation.section.block.begin.java 315 | 316 | 317 | end 318 | (?=}) 319 | patterns 320 | 321 | 322 | include 323 | #code 324 | 325 | 326 | 327 | 328 | 329 | 330 | begin 331 | (?=\w.*\() 332 | end 333 | (?<=\)) 334 | patterns 335 | 336 | 337 | include 338 | #object-types 339 | 340 | 341 | begin 342 | \( 343 | beginCaptures 344 | 345 | 1 346 | 347 | name 348 | storage.type.java 349 | 350 | 351 | end 352 | \) 353 | patterns 354 | 355 | 356 | include 357 | #code 358 | 359 | 360 | 361 | 362 | 363 | 364 | begin 365 | { 366 | beginCaptures 367 | 368 | 0 369 | 370 | name 371 | punctuation.section.inner-class.begin.java 372 | 373 | 374 | end 375 | } 376 | endCaptures 377 | 378 | 0 379 | 380 | name 381 | punctuation.section.inner-class.end.java 382 | 383 | 384 | name 385 | meta.inner-class.java 386 | patterns 387 | 388 | 389 | include 390 | #class-body 391 | 392 | 393 | 394 | 395 | 396 | assertions 397 | 398 | patterns 399 | 400 | 401 | begin 402 | \b(assert)\s 403 | beginCaptures 404 | 405 | 1 406 | 407 | name 408 | keyword.control.assert.java 409 | 410 | 411 | end 412 | $ 413 | name 414 | meta.declaration.assertion.java 415 | patterns 416 | 417 | 418 | match 419 | : 420 | name 421 | keyword.operator.assert.expression-seperator.java 422 | 423 | 424 | include 425 | #code 426 | 427 | 428 | 429 | 430 | 431 | class 432 | 433 | begin 434 | (?=\w?[\w\s]*(?:class|(?:@)?interface|enum)\s+\w+) 435 | end 436 | } 437 | endCaptures 438 | 439 | 0 440 | 441 | name 442 | punctuation.section.class.end.java 443 | 444 | 445 | name 446 | meta.class.java 447 | patterns 448 | 449 | 450 | include 451 | #storage-modifiers 452 | 453 | 454 | include 455 | #comments 456 | 457 | 458 | captures 459 | 460 | 1 461 | 462 | name 463 | storage.modifier.java 464 | 465 | 2 466 | 467 | name 468 | entity.name.type.class.java 469 | 470 | 471 | match 472 | (class|(?:@)?interface|enum)\s+(\w+) 473 | name 474 | meta.class.identifier.java 475 | 476 | 477 | begin 478 | extends 479 | beginCaptures 480 | 481 | 0 482 | 483 | name 484 | storage.modifier.extends.java 485 | 486 | 487 | end 488 | (?={|implements) 489 | name 490 | meta.definition.class.inherited.classes.java 491 | patterns 492 | 493 | 494 | include 495 | #object-types-inherited 496 | 497 | 498 | include 499 | #comments 500 | 501 | 502 | 503 | 504 | begin 505 | (implements)\s 506 | beginCaptures 507 | 508 | 1 509 | 510 | name 511 | storage.modifier.implements.java 512 | 513 | 514 | end 515 | (?=\s*extends|\{) 516 | name 517 | meta.definition.class.implemented.interfaces.java 518 | patterns 519 | 520 | 521 | include 522 | #object-types-inherited 523 | 524 | 525 | include 526 | #comments 527 | 528 | 529 | 530 | 531 | begin 532 | { 533 | beginCaptures 534 | 535 | 0 536 | 537 | name 538 | punctuation.section.class.begin.java 539 | 540 | 541 | end 542 | (?=}) 543 | name 544 | meta.class.body.java 545 | patterns 546 | 547 | 548 | include 549 | #class-body 550 | 551 | 552 | 553 | 554 | 555 | class-body 556 | 557 | patterns 558 | 559 | 560 | include 561 | #comments 562 | 563 | 564 | include 565 | #class 566 | 567 | 568 | include 569 | #enums 570 | 571 | 572 | include 573 | #variables 574 | 575 | 576 | include 577 | #methods 578 | 579 | 580 | include 581 | #annotations 582 | 583 | 584 | include 585 | #storage-modifiers 586 | 587 | 588 | include 589 | #code 590 | 591 | 592 | 593 | code 594 | 595 | patterns 596 | 597 | 598 | include 599 | #comments 600 | 601 | 602 | include 603 | #class 604 | 605 | 606 | begin 607 | { 608 | beginCaptures 609 | 610 | 0 611 | 612 | name 613 | punctuation.section.block.begin.java 614 | 615 | 616 | end 617 | } 618 | endCaptures 619 | 620 | 0 621 | 622 | name 623 | punctuation.section.block.end.java 624 | 625 | 626 | patterns 627 | 628 | 629 | include 630 | #code 631 | 632 | 633 | 634 | 635 | include 636 | #assertions 637 | 638 | 639 | include 640 | #parens 641 | 642 | 643 | include 644 | #constants-and-special-vars 645 | 646 | 647 | include 648 | #anonymous-classes-and-new 649 | 650 | 651 | include 652 | #annotations 653 | 654 | 655 | include 656 | #keywords 657 | 658 | 659 | include 660 | #storage-modifiers 661 | 662 | 663 | include 664 | #method-call 665 | 666 | 667 | include 668 | #strings 669 | 670 | 671 | include 672 | #all-types 673 | 674 | 675 | 676 | comments 677 | 678 | patterns 679 | 680 | 681 | captures 682 | 683 | 0 684 | 685 | name 686 | punctuation.definition.comment.java 687 | 688 | 689 | match 690 | /\*\*/ 691 | name 692 | comment.block.empty.java 693 | 694 | 695 | include 696 | text.html.javadoc 697 | 698 | 699 | include 700 | #comments-inline 701 | 702 | 703 | 704 | comments-inline 705 | 706 | patterns 707 | 708 | 709 | begin 710 | /\* 711 | captures 712 | 713 | 0 714 | 715 | name 716 | punctuation.definition.comment.java 717 | 718 | 719 | end 720 | \*/ 721 | name 722 | comment.block.java 723 | 724 | 725 | begin 726 | (^[ \t]+)?(?=//) 727 | beginCaptures 728 | 729 | 1 730 | 731 | name 732 | punctuation.whitespace.comment.leading.java 733 | 734 | 735 | end 736 | (?!\G) 737 | patterns 738 | 739 | 740 | begin 741 | // 742 | beginCaptures 743 | 744 | 0 745 | 746 | name 747 | punctuation.definition.comment.java 748 | 749 | 750 | end 751 | \n 752 | name 753 | comment.line.double-slash.java 754 | 755 | 756 | 757 | 758 | 759 | constants-and-special-vars 760 | 761 | patterns 762 | 763 | 764 | match 765 | \b(true|false|null)\b 766 | name 767 | constant.language.java 768 | 769 | 770 | match 771 | \b(this|super)\b 772 | name 773 | variable.language.java 774 | 775 | 776 | match 777 | \b0[xX][0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?[lL]?(?!\w|\.) 778 | name 779 | constant.numeric.hex.java 780 | 781 | 782 | match 783 | \b0[0-7_]*[0-7][lL]?\b 784 | name 785 | constant.numeric.octal.java 786 | 787 | 788 | match 789 | \b0[bB][01]([01_]*[01])?[lL]?\b 790 | name 791 | constant.numeric.binary.java 792 | 793 | 794 | match 795 | \b(0|[1-9]([0-9_]*[0-9])?)[lL]?(?!\w|\.) 796 | name 797 | constant.numeric.integer.java 798 | 799 | 800 | match 801 | (?x) 802 | (?<!\w) # Ensure word boundry 803 | (?> 804 | 0[xX] # Start literal 805 | ([0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?)? # Optional Number 806 | ( 807 | (?<=[0-9A-Fa-f])\. # A number must exist on 808 | | \.(?=[0-9A-Fa-f]) # one side of the decimal 809 | | (?<=[0-9A-Fa-f]) # Decimal not required 810 | ) 811 | ([0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?)? # Optional Number 812 | [pP] # Exponent Indicator 813 | [+-]?(0|[1-9]([0-9_]*[0-9])?) # Signed Integer 814 | [fFdD]? # Float Type Suffix 815 | ) 816 | (?!\w) # Ensure word boundry 817 | 818 | name 819 | constant.numeric.hex-float.java 820 | 821 | 822 | match 823 | (?x) 824 | (?<!\w) # Ensure word boundry 825 | (?> 826 | ( 827 | (0|[1-9]([0-9_]*[0-9])?) # Leading digits 828 | (?=[eEfFdD.]) # Allow for numbers without . 829 | )? 830 | ( 831 | (?<=[0-9])(?=[eEfFdD]) # Allow for numbers without . 832 | | \. 833 | ) 834 | ( 835 | [0-9]([0-9_]*[0-9])? # Numbers after . 836 | )? 837 | ( 838 | [eE][+-]?(0|[1-9]([0-9_]*[0-9])?) # Exponent 839 | )? 840 | [fFdD]? # Float Type Suffix 841 | ) 842 | (?!\w) # Ensure word boundry 843 | 844 | name 845 | constant.numeric.float.java 846 | 847 | 848 | captures 849 | 850 | 1 851 | 852 | name 853 | keyword.operator.dereference.java 854 | 855 | 856 | match 857 | (\.)?\b([A-Z][A-Z0-9_]+)(?!<|\.class|\s*\w+\s*=)\b 858 | name 859 | constant.other.java 860 | 861 | 862 | 863 | enums 864 | 865 | begin 866 | ^(?=\s*[A-Z0-9_]+\s*({|\(|,)) 867 | end 868 | (?=;|}) 869 | patterns 870 | 871 | 872 | begin 873 | \w+ 874 | beginCaptures 875 | 876 | 0 877 | 878 | name 879 | constant.other.enum.java 880 | 881 | 882 | end 883 | (?=,|;|}) 884 | name 885 | meta.enum.java 886 | patterns 887 | 888 | 889 | include 890 | #parens 891 | 892 | 893 | begin 894 | { 895 | beginCaptures 896 | 897 | 0 898 | 899 | name 900 | punctuation.section.enum.begin.java 901 | 902 | 903 | end 904 | } 905 | endCaptures 906 | 907 | 0 908 | 909 | name 910 | punctuation.section.enum.end.java 911 | 912 | 913 | patterns 914 | 915 | 916 | include 917 | #class-body 918 | 919 | 920 | 921 | 922 | 923 | 924 | include 925 | #comments 926 | 927 | 928 | include 929 | #annotations 930 | 931 | 932 | 933 | keywords 934 | 935 | patterns 936 | 937 | 938 | match 939 | \b(try|catch|finally|throw)\b 940 | name 941 | keyword.control.catch-exception.java 942 | 943 | 944 | match 945 | \?|: 946 | name 947 | keyword.control.ternary.java 948 | 949 | 950 | match 951 | \b(return|break|case|continue|default|do|while|for|switch|if|else)\b 952 | name 953 | keyword.control.java 954 | 955 | 956 | match 957 | \b(instanceof)\b 958 | name 959 | keyword.operator.java 960 | 961 | 962 | match 963 | (<<|>>>?|~|\^) 964 | name 965 | keyword.operator.bitwise.java 966 | 967 | 968 | match 969 | ((&|\^|\||<<|>>>?)=) 970 | name 971 | keyword.operator.assignment.bitwise.java 972 | 973 | 974 | match 975 | (===?|!=|<=|>=|<>|<|>) 976 | name 977 | keyword.operator.comparison.java 978 | 979 | 980 | match 981 | ([+*/%-]=) 982 | name 983 | keyword.operator.assignment.arithmetic.java 984 | 985 | 986 | match 987 | (=) 988 | name 989 | keyword.operator.assignment.java 990 | 991 | 992 | match 993 | (\-\-|\+\+) 994 | name 995 | keyword.operator.increment-decrement.java 996 | 997 | 998 | match 999 | (\-|\+|\*|\/|%) 1000 | name 1001 | keyword.operator.arithmetic.java 1002 | 1003 | 1004 | match 1005 | (!|&&|\|\|) 1006 | name 1007 | keyword.operator.logical.java 1008 | 1009 | 1010 | match 1011 | (\||&) 1012 | name 1013 | keyword.operator.bitwise.java 1014 | 1015 | 1016 | match 1017 | (?<=\S)\.(?=\S) 1018 | name 1019 | keyword.operator.dereference.java 1020 | 1021 | 1022 | match 1023 | ; 1024 | name 1025 | punctuation.terminator.java 1026 | 1027 | 1028 | 1029 | method-call 1030 | 1031 | begin 1032 | ([\w$]+)(\() 1033 | beginCaptures 1034 | 1035 | 1 1036 | 1037 | name 1038 | meta.method.java 1039 | 1040 | 2 1041 | 1042 | name 1043 | punctuation.definition.method-parameters.begin.java 1044 | 1045 | 1046 | end 1047 | \) 1048 | endCaptures 1049 | 1050 | 0 1051 | 1052 | name 1053 | punctuation.definition.method-parameters.end.java 1054 | 1055 | 1056 | name 1057 | meta.method-call.java 1058 | patterns 1059 | 1060 | 1061 | match 1062 | , 1063 | name 1064 | punctuation.definition.seperator.parameter.java 1065 | 1066 | 1067 | include 1068 | #code 1069 | 1070 | 1071 | 1072 | methods 1073 | 1074 | begin 1075 | (?!new)(?=[\w<].*\s+)(?=([^=/]|/(?!/))+\() 1076 | end 1077 | (})|(?=;) 1078 | endCaptures 1079 | 1080 | 1 1081 | 1082 | name 1083 | punctuation.section.method.end.java 1084 | 1085 | 1086 | name 1087 | meta.method.java 1088 | patterns 1089 | 1090 | 1091 | include 1092 | #storage-modifiers 1093 | 1094 | 1095 | begin 1096 | (\w+)\s*\( 1097 | beginCaptures 1098 | 1099 | 1 1100 | 1101 | name 1102 | entity.name.function.java 1103 | 1104 | 1105 | end 1106 | \) 1107 | name 1108 | meta.method.identifier.java 1109 | patterns 1110 | 1111 | 1112 | include 1113 | #parameters 1114 | 1115 | 1116 | include 1117 | #comments 1118 | 1119 | 1120 | 1121 | 1122 | begin 1123 | < 1124 | end 1125 | > 1126 | name 1127 | storage.type.token.java 1128 | patterns 1129 | 1130 | 1131 | include 1132 | #object-types 1133 | 1134 | 1135 | begin 1136 | < 1137 | comment 1138 | This is just to support <>'s with no actual type prefix 1139 | end 1140 | >|[^\w\s,\[\]<] 1141 | name 1142 | storage.type.generic.java 1143 | 1144 | 1145 | 1146 | 1147 | begin 1148 | (?=\w.*\s+\w+\s*\() 1149 | end 1150 | (?=\w+\s*\() 1151 | name 1152 | meta.method.return-type.java 1153 | patterns 1154 | 1155 | 1156 | include 1157 | #all-types 1158 | 1159 | 1160 | include 1161 | #comments 1162 | 1163 | 1164 | 1165 | 1166 | include 1167 | #throws 1168 | 1169 | 1170 | begin 1171 | { 1172 | beginCaptures 1173 | 1174 | 0 1175 | 1176 | name 1177 | punctuation.section.method.begin.java 1178 | 1179 | 1180 | end 1181 | (?=}) 1182 | name 1183 | meta.method.body.java 1184 | patterns 1185 | 1186 | 1187 | include 1188 | #code 1189 | 1190 | 1191 | 1192 | 1193 | include 1194 | #comments 1195 | 1196 | 1197 | 1198 | object-types 1199 | 1200 | patterns 1201 | 1202 | 1203 | begin 1204 | \b((?:[a-z]\w*\.)*[A-Z]+\w*)< 1205 | end 1206 | >|[^\w\s,\?<\[\]] 1207 | name 1208 | storage.type.generic.java 1209 | patterns 1210 | 1211 | 1212 | include 1213 | #object-types 1214 | 1215 | 1216 | begin 1217 | < 1218 | comment 1219 | This is just to support <>'s with no actual type prefix 1220 | end 1221 | >|[^\w\s,\[\]<] 1222 | name 1223 | storage.type.generic.java 1224 | 1225 | 1226 | 1227 | 1228 | begin 1229 | \b((?:[a-z]\w*\.)*[A-Z]+\w*)(?=\[) 1230 | end 1231 | (?=[^\]\s]) 1232 | name 1233 | storage.type.object.array.java 1234 | patterns 1235 | 1236 | 1237 | begin 1238 | \[ 1239 | end 1240 | \] 1241 | patterns 1242 | 1243 | 1244 | include 1245 | #code 1246 | 1247 | 1248 | 1249 | 1250 | 1251 | 1252 | captures 1253 | 1254 | 1 1255 | 1256 | name 1257 | keyword.operator.dereference.java 1258 | 1259 | 1260 | match 1261 | \b(?:[a-z]\w*(\.))*[A-Z]+\w*\b 1262 | name 1263 | storage.type.java 1264 | 1265 | 1266 | 1267 | object-types-inherited 1268 | 1269 | patterns 1270 | 1271 | 1272 | begin 1273 | \b((?:[a-z]\w*\.)*[A-Z]+\w*)< 1274 | end 1275 | >|[^\w\s,<] 1276 | name 1277 | entity.other.inherited-class.java 1278 | patterns 1279 | 1280 | 1281 | include 1282 | #object-types 1283 | 1284 | 1285 | begin 1286 | < 1287 | comment 1288 | This is just to support <>'s with no actual type prefix 1289 | end 1290 | >|[^\w\s,<] 1291 | name 1292 | storage.type.generic.java 1293 | 1294 | 1295 | 1296 | 1297 | captures 1298 | 1299 | 1 1300 | 1301 | name 1302 | keyword.operator.dereference.java 1303 | 1304 | 1305 | match 1306 | \b(?:[a-z]\w*(\.))*[A-Z]+\w* 1307 | name 1308 | entity.other.inherited-class.java 1309 | 1310 | 1311 | 1312 | parameters 1313 | 1314 | patterns 1315 | 1316 | 1317 | match 1318 | final 1319 | name 1320 | storage.modifier.java 1321 | 1322 | 1323 | include 1324 | #annotations 1325 | 1326 | 1327 | include 1328 | #primitive-arrays 1329 | 1330 | 1331 | include 1332 | #primitive-types 1333 | 1334 | 1335 | include 1336 | #object-types 1337 | 1338 | 1339 | match 1340 | \w+ 1341 | name 1342 | variable.parameter.java 1343 | 1344 | 1345 | 1346 | parens 1347 | 1348 | begin 1349 | \( 1350 | end 1351 | \) 1352 | patterns 1353 | 1354 | 1355 | include 1356 | #code 1357 | 1358 | 1359 | 1360 | primitive-arrays 1361 | 1362 | patterns 1363 | 1364 | 1365 | match 1366 | \b(?:void|boolean|byte|char|short|int|float|long|double)(\[\])*\b 1367 | name 1368 | storage.type.primitive.array.java 1369 | 1370 | 1371 | 1372 | primitive-types 1373 | 1374 | patterns 1375 | 1376 | 1377 | match 1378 | \b(?:void|var|boolean|byte|char|short|int|float|long|double)\b 1379 | name 1380 | storage.type.primitive.java 1381 | 1382 | 1383 | 1384 | storage-modifiers 1385 | 1386 | captures 1387 | 1388 | 1 1389 | 1390 | name 1391 | storage.modifier.java 1392 | 1393 | 1394 | match 1395 | \b(public|private|protected|static|final|native|synchronized|volatile|abstract|threadsafe|transient)\b 1396 | 1397 | strings 1398 | 1399 | patterns 1400 | 1401 | 1402 | begin 1403 | " 1404 | beginCaptures 1405 | 1406 | 0 1407 | 1408 | name 1409 | punctuation.definition.string.begin.java 1410 | 1411 | 1412 | end 1413 | " 1414 | endCaptures 1415 | 1416 | 0 1417 | 1418 | name 1419 | punctuation.definition.string.end.java 1420 | 1421 | 1422 | name 1423 | string.quoted.double.java 1424 | patterns 1425 | 1426 | 1427 | match 1428 | \\. 1429 | name 1430 | constant.character.escape.java 1431 | 1432 | 1433 | 1434 | 1435 | begin 1436 | ' 1437 | beginCaptures 1438 | 1439 | 0 1440 | 1441 | name 1442 | punctuation.definition.string.begin.java 1443 | 1444 | 1445 | end 1446 | ' 1447 | endCaptures 1448 | 1449 | 0 1450 | 1451 | name 1452 | punctuation.definition.string.end.java 1453 | 1454 | 1455 | name 1456 | string.quoted.single.java 1457 | patterns 1458 | 1459 | 1460 | match 1461 | \\. 1462 | name 1463 | constant.character.escape.java 1464 | 1465 | 1466 | 1467 | 1468 | 1469 | throws 1470 | 1471 | begin 1472 | throws 1473 | beginCaptures 1474 | 1475 | 0 1476 | 1477 | name 1478 | storage.modifier.java 1479 | 1480 | 1481 | end 1482 | (?={|;) 1483 | name 1484 | meta.throwables.java 1485 | patterns 1486 | 1487 | 1488 | include 1489 | #object-types 1490 | 1491 | 1492 | 1493 | values 1494 | 1495 | patterns 1496 | 1497 | 1498 | include 1499 | #strings 1500 | 1501 | 1502 | include 1503 | #object-types 1504 | 1505 | 1506 | include 1507 | #constants-and-special-vars 1508 | 1509 | 1510 | 1511 | variables 1512 | 1513 | applyEndPatternLast 1514 | 1 1515 | patterns 1516 | 1517 | 1518 | begin 1519 | (?x:(?= 1520 | (?: 1521 | (?:private|protected|public|native|synchronized|volatile|abstract|threadsafe|transient|static|final) # visibility/modifier 1522 | | 1523 | (?:def) 1524 | | 1525 | (?:void|boolean|byte|char|short|int|float|long|double) 1526 | | 1527 | (?:(?:[a-z]\w*\.)*[A-Z]+\w*) # object type 1528 | ) 1529 | \s+ 1530 | (?!private|protected|public|native|synchronized|volatile|abstract|threadsafe|transient|static|final|def|void|boolean|byte|char|short|int|float|long|double) 1531 | [\w\d_<>\[\],\?][\w\d_<>\[\],\? \t]* 1532 | (?:=|$) 1533 | 1534 | )) 1535 | end 1536 | (?=;) 1537 | name 1538 | meta.definition.variable.java 1539 | patterns 1540 | 1541 | 1542 | match 1543 | \s 1544 | 1545 | 1546 | captures 1547 | 1548 | 1 1549 | 1550 | name 1551 | constant.other.variable.java 1552 | 1553 | 1554 | match 1555 | ([A-Z_0-9]+)\s+(?=\=) 1556 | 1557 | 1558 | captures 1559 | 1560 | 1 1561 | 1562 | name 1563 | meta.definition.variable.name.java 1564 | 1565 | 1566 | match 1567 | (\w[^\s,]*)\s+(?=\=) 1568 | 1569 | 1570 | begin 1571 | = 1572 | beginCaptures 1573 | 1574 | 0 1575 | 1576 | name 1577 | keyword.operator.assignment.java 1578 | 1579 | 1580 | end 1581 | (?=;) 1582 | patterns 1583 | 1584 | 1585 | include 1586 | #code 1587 | 1588 | 1589 | 1590 | 1591 | captures 1592 | 1593 | 1 1594 | 1595 | name 1596 | meta.definition.variable.name.java 1597 | 1598 | 1599 | match 1600 | (\w[^\s=]*)(?=\s*;) 1601 | 1602 | 1603 | include 1604 | #code 1605 | 1606 | 1607 | 1608 | 1609 | 1610 | 1611 | scopeName 1612 | source.java 1613 | uuid 1614 | 2B449DF6-6B1D-11D9-94EC-000D93589AF6 1615 | 1616 | 1617 | -------------------------------------------------------------------------------- /Syntaxes/Java Server Pages (JSP).tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | jsp 8 | jspf 9 | tag 10 | 11 | injections 12 | 13 | text.html.jsp - (meta.embedded.block.jsp | meta.embedded.line.jsp | meta.tag | comment), meta.tag string.quoted 14 | 15 | patterns 16 | 17 | 18 | include 19 | #comment 20 | 21 | 22 | include 23 | #declaration 24 | 25 | 26 | include 27 | #expression 28 | 29 | 30 | include 31 | #el_expression 32 | 33 | 34 | include 35 | #tags 36 | 37 | 38 | begin 39 | (^\s*)(?=<%(?=\s)) 40 | beginCaptures 41 | 42 | 0 43 | 44 | name 45 | punctuation.whitespace.embedded.leading.erb 46 | 47 | 48 | end 49 | (?!\G)(\s*$\n)? 50 | endCaptures 51 | 52 | 0 53 | 54 | name 55 | punctuation.whitespace.embedded.trailing.erb 56 | 57 | 58 | patterns 59 | 60 | 61 | include 62 | #scriptlet 63 | 64 | 65 | 66 | 67 | include 68 | #scriptlet 69 | 70 | 71 | 72 | 73 | keyEquivalent 74 | ^~J 75 | name 76 | JavaServer Pages 77 | patterns 78 | 79 | 80 | include 81 | #xml_tags 82 | 83 | 84 | include 85 | text.html.basic 86 | 87 | 88 | repository 89 | 90 | comment 91 | 92 | begin 93 | <%-- 94 | captures 95 | 96 | 0 97 | 98 | name 99 | punctuation.definition.comment.jsp 100 | 101 | 102 | end 103 | --%> 104 | name 105 | comment.block.jsp 106 | 107 | declaration 108 | 109 | begin 110 | <%! 111 | beginCaptures 112 | 113 | 0 114 | 115 | name 116 | punctuation.section.embedded.begin.jsp 117 | 118 | 119 | contentName 120 | source.java 121 | end 122 | (%)> 123 | endCaptures 124 | 125 | 0 126 | 127 | name 128 | punctuation.section.embedded.end.jsp 129 | 130 | 1 131 | 132 | name 133 | source.java 134 | 135 | 136 | name 137 | meta.embedded.line.declaration.jsp 138 | patterns 139 | 140 | 141 | include 142 | source.java 143 | 144 | 145 | 146 | el_expression 147 | 148 | begin 149 | \$\{ 150 | beginCaptures 151 | 152 | 0 153 | 154 | name 155 | punctuation.section.embedded.begin.jsp 156 | 157 | 158 | contentName 159 | source.java 160 | end 161 | (\}) 162 | endCaptures 163 | 164 | 0 165 | 166 | name 167 | punctuation.section.embedded.end.jsp 168 | 169 | 1 170 | 171 | name 172 | source.java 173 | 174 | 175 | name 176 | meta.embedded.line.el_expression.jsp 177 | patterns 178 | 179 | 180 | include 181 | source.java 182 | 183 | 184 | 185 | expression 186 | 187 | begin 188 | <%= 189 | beginCaptures 190 | 191 | 0 192 | 193 | name 194 | punctuation.section.embedded.begin.jsp 195 | 196 | 197 | contentName 198 | source.java 199 | end 200 | (%)> 201 | endCaptures 202 | 203 | 0 204 | 205 | name 206 | punctuation.section.embedded.end.jsp 207 | 208 | 1 209 | 210 | name 211 | source.java 212 | 213 | 214 | name 215 | meta.embedded.line.expression.jsp 216 | patterns 217 | 218 | 219 | include 220 | source.java 221 | 222 | 223 | 224 | scriptlet 225 | 226 | begin 227 | <% 228 | beginCaptures 229 | 230 | 0 231 | 232 | name 233 | punctuation.section.embedded.begin.jsp 234 | 235 | 236 | contentName 237 | source.java 238 | end 239 | (%)> 240 | endCaptures 241 | 242 | 0 243 | 244 | name 245 | punctuation.section.embedded.end.jsp 246 | 247 | 1 248 | 249 | name 250 | source.java 251 | 252 | 253 | name 254 | meta.embedded.block.scriptlet.jsp 255 | patterns 256 | 257 | 258 | match 259 | \{ 260 | name 261 | punctuation.section.scope.begin.java 262 | 263 | 264 | match 265 | \} 266 | name 267 | punctuation.section.scope.end.java 268 | 269 | 270 | include 271 | source.java 272 | 273 | 274 | 275 | tags 276 | 277 | begin 278 | (<%@)\s*(?=(attribute|include|page|tag|taglib|variable)\s) 279 | beginCaptures 280 | 281 | 1 282 | 283 | name 284 | punctuation.definition.tag.begin.jsp 285 | 286 | 287 | end 288 | %> 289 | endCaptures 290 | 291 | 0 292 | 293 | name 294 | punctuation.definition.tag.end.jsp 295 | 296 | 297 | name 298 | meta.tag.template.include.jsp 299 | patterns 300 | 301 | 302 | begin 303 | \G(attribute)(?=\s) 304 | captures 305 | 306 | 1 307 | 308 | name 309 | keyword.control.attribute.jsp 310 | 311 | 312 | end 313 | (?=%>) 314 | patterns 315 | 316 | 317 | captures 318 | 319 | 1 320 | 321 | name 322 | entity.other.attribute-name.jsp 323 | 324 | 2 325 | 326 | name 327 | punctuation.separator.key-value.jsp 328 | 329 | 3 330 | 331 | name 332 | string.quoted.double.jsp 333 | 334 | 4 335 | 336 | name 337 | punctuation.definition.string.begin.jsp 338 | 339 | 5 340 | 341 | name 342 | punctuation.definition.string.end.jsp 343 | 344 | 345 | match 346 | (name|required|fragment|rtexprvalue|type|description)(=)((")[^"]*(")) 347 | 348 | 349 | 350 | 351 | begin 352 | \G(include)(?=\s) 353 | captures 354 | 355 | 1 356 | 357 | name 358 | keyword.control.include.jsp 359 | 360 | 361 | end 362 | (?=%>) 363 | patterns 364 | 365 | 366 | captures 367 | 368 | 1 369 | 370 | name 371 | entity.other.attribute-name.jsp 372 | 373 | 2 374 | 375 | name 376 | punctuation.separator.key-value.jsp 377 | 378 | 3 379 | 380 | name 381 | string.quoted.double.jsp 382 | 383 | 4 384 | 385 | name 386 | punctuation.definition.string.begin.jsp 387 | 388 | 5 389 | 390 | name 391 | punctuation.definition.string.end.jsp 392 | 393 | 394 | match 395 | (file)(=)((")[^"]*(")) 396 | 397 | 398 | 399 | 400 | begin 401 | \G(page)(?=\s) 402 | captures 403 | 404 | 1 405 | 406 | name 407 | keyword.control.page.jsp 408 | 409 | 410 | end 411 | (?=%>) 412 | patterns 413 | 414 | 415 | captures 416 | 417 | 1 418 | 419 | name 420 | entity.other.attribute-name.jsp 421 | 422 | 2 423 | 424 | name 425 | punctuation.separator.key-value.jsp 426 | 427 | 3 428 | 429 | name 430 | string.quoted.double.jsp 431 | 432 | 4 433 | 434 | name 435 | punctuation.definition.string.begin.jsp 436 | 437 | 5 438 | 439 | name 440 | punctuation.definition.string.end.jsp 441 | 442 | 443 | match 444 | (language|extends|import|session|buffer|autoFlush|isThreadSafe|info|errorPage|isErrorPage|contentType|pageEncoding|isElIgnored)(=)((")[^"]*(")) 445 | 446 | 447 | 448 | 449 | begin 450 | \G(tag)(?=\s) 451 | captures 452 | 453 | 1 454 | 455 | name 456 | keyword.control.tag.jsp 457 | 458 | 459 | end 460 | (?=%>) 461 | patterns 462 | 463 | 464 | captures 465 | 466 | 1 467 | 468 | name 469 | entity.other.attribute-name.jsp 470 | 471 | 2 472 | 473 | name 474 | punctuation.separator.key-value.jsp 475 | 476 | 3 477 | 478 | name 479 | string.quoted.double.jsp 480 | 481 | 4 482 | 483 | name 484 | punctuation.definition.string.begin.jsp 485 | 486 | 5 487 | 488 | name 489 | punctuation.definition.string.end.jsp 490 | 491 | 492 | match 493 | (display-name|body-content|dynamic-attributes|small-icon|large-icon|description|example|language|import|pageEncoding|isELIgnored)(=)((")[^"]*(")) 494 | 495 | 496 | 497 | 498 | begin 499 | \G(taglib)(?=\s) 500 | captures 501 | 502 | 1 503 | 504 | name 505 | keyword.control.taglib.jsp 506 | 507 | 508 | end 509 | (?=%>) 510 | patterns 511 | 512 | 513 | captures 514 | 515 | 1 516 | 517 | name 518 | entity.other.attribute-name.jsp 519 | 520 | 2 521 | 522 | name 523 | punctuation.separator.key-value.jsp 524 | 525 | 3 526 | 527 | name 528 | string.quoted.double.jsp 529 | 530 | 4 531 | 532 | name 533 | punctuation.definition.string.begin.jsp 534 | 535 | 5 536 | 537 | name 538 | punctuation.definition.string.end.jsp 539 | 540 | 541 | match 542 | (uri|tagdir|prefix)(=)((")[^"]*(")) 543 | 544 | 545 | 546 | 547 | begin 548 | \G(variable)(?=\s) 549 | captures 550 | 551 | 1 552 | 553 | name 554 | keyword.control.variable.jsp 555 | 556 | 557 | end 558 | (?=%>) 559 | patterns 560 | 561 | 562 | captures 563 | 564 | 1 565 | 566 | name 567 | entity.other.attribute-name.jsp 568 | 569 | 2 570 | 571 | name 572 | punctuation.separator.key-value.jsp 573 | 574 | 3 575 | 576 | name 577 | string.quoted.double.jsp 578 | 579 | 4 580 | 581 | name 582 | punctuation.definition.string.begin.jsp 583 | 584 | 5 585 | 586 | name 587 | punctuation.definition.string.end.jsp 588 | 589 | 590 | match 591 | (name-given|alias|variable-class|declare|scope|description)(=)((")[^"]*(")) 592 | 593 | 594 | 595 | 596 | 597 | xml_tags 598 | 599 | patterns 600 | 601 | 602 | begin 603 | (^\s*)(?=<jsp:(declaration|expression|scriptlet)>) 604 | beginCaptures 605 | 606 | 0 607 | 608 | name 609 | punctuation.whitespace.embedded.leading.erb 610 | 611 | 612 | end 613 | (?!\G)(\s*$\n)? 614 | endCaptures 615 | 616 | 0 617 | 618 | name 619 | punctuation.whitespace.embedded.trailing.erb 620 | 621 | 622 | patterns 623 | 624 | 625 | include 626 | #embedded 627 | 628 | 629 | 630 | 631 | include 632 | #embedded 633 | 634 | 635 | include 636 | #directive 637 | 638 | 639 | include 640 | #actions 641 | 642 | 643 | repository 644 | 645 | actions 646 | 647 | patterns 648 | 649 | 650 | begin 651 | (</?)(jsp:attribute)\b 652 | beginCaptures 653 | 654 | 1 655 | 656 | name 657 | punctuation.definition.tag.begin.jsp 658 | 659 | 2 660 | 661 | name 662 | entity.name.tag.jsp 663 | 664 | 665 | end 666 | > 667 | endCaptures 668 | 669 | 0 670 | 671 | name 672 | punctuation.definition.tag.end.jsp 673 | 674 | 675 | name 676 | meta.tag.template.attribute.jsp 677 | patterns 678 | 679 | 680 | captures 681 | 682 | 1 683 | 684 | name 685 | entity.other.attribute-name.jsp 686 | 687 | 2 688 | 689 | name 690 | punctuation.separator.key-value.jsp 691 | 692 | 3 693 | 694 | name 695 | string.quoted.double.jsp 696 | 697 | 4 698 | 699 | name 700 | punctuation.definition.string.begin.jsp 701 | 702 | 5 703 | 704 | name 705 | punctuation.definition.string.end.jsp 706 | 707 | 708 | match 709 | (name|trim)(=)((")[^"]*(")) 710 | 711 | 712 | 713 | 714 | captures 715 | 716 | 1 717 | 718 | name 719 | punctuation.definition.tag.begin.jsp 720 | 721 | 2 722 | 723 | name 724 | entity.name.tag.jsp 725 | 726 | 3 727 | 728 | name 729 | punctuation.definition.tag.end.jsp 730 | 731 | 732 | match 733 | (</?)(jsp:body)(>) 734 | name 735 | meta.tag.template.body.jsp 736 | 737 | 738 | begin 739 | (</?)(jsp:element)\b 740 | beginCaptures 741 | 742 | 1 743 | 744 | name 745 | punctuation.definition.tag.begin.jsp 746 | 747 | 2 748 | 749 | name 750 | entity.name.tag.jsp 751 | 752 | 753 | end 754 | > 755 | endCaptures 756 | 757 | 0 758 | 759 | name 760 | punctuation.definition.tag.end.jsp 761 | 762 | 763 | name 764 | meta.tag.template.element.jsp 765 | patterns 766 | 767 | 768 | captures 769 | 770 | 1 771 | 772 | name 773 | entity.other.attribute-name.jsp 774 | 775 | 2 776 | 777 | name 778 | punctuation.separator.key-value.jsp 779 | 780 | 3 781 | 782 | name 783 | string.quoted.double.jsp 784 | 785 | 4 786 | 787 | name 788 | punctuation.definition.string.begin.jsp 789 | 790 | 5 791 | 792 | name 793 | punctuation.definition.string.end.jsp 794 | 795 | 796 | match 797 | (name)(=)((")[^"]*(")) 798 | 799 | 800 | 801 | 802 | begin 803 | (<)(jsp:doBody)\b 804 | beginCaptures 805 | 806 | 1 807 | 808 | name 809 | punctuation.definition.tag.begin.jsp 810 | 811 | 2 812 | 813 | name 814 | entity.name.tag.jsp 815 | 816 | 817 | end 818 | /> 819 | endCaptures 820 | 821 | 0 822 | 823 | name 824 | punctuation.definition.tag.end.jsp 825 | 826 | 827 | name 828 | meta.tag.template.dobody.jsp 829 | patterns 830 | 831 | 832 | captures 833 | 834 | 1 835 | 836 | name 837 | entity.other.attribute-name.jsp 838 | 839 | 2 840 | 841 | name 842 | punctuation.separator.key-value.jsp 843 | 844 | 3 845 | 846 | name 847 | string.quoted.double.jsp 848 | 849 | 4 850 | 851 | name 852 | punctuation.definition.string.begin.jsp 853 | 854 | 5 855 | 856 | name 857 | punctuation.definition.string.end.jsp 858 | 859 | 860 | match 861 | (var|varReader|scope)(=)((")[^"]*(")) 862 | 863 | 864 | 865 | 866 | begin 867 | (</?)(jsp:forward)\b 868 | beginCaptures 869 | 870 | 1 871 | 872 | name 873 | punctuation.definition.tag.begin.jsp 874 | 875 | 2 876 | 877 | name 878 | entity.name.tag.jsp 879 | 880 | 881 | end 882 | /?> 883 | endCaptures 884 | 885 | 0 886 | 887 | name 888 | punctuation.definition.tag.end.jsp 889 | 890 | 891 | name 892 | meta.tag.template.forward.jsp 893 | patterns 894 | 895 | 896 | captures 897 | 898 | 1 899 | 900 | name 901 | entity.other.attribute-name.jsp 902 | 903 | 2 904 | 905 | name 906 | punctuation.separator.key-value.jsp 907 | 908 | 3 909 | 910 | name 911 | string.quoted.double.jsp 912 | 913 | 4 914 | 915 | name 916 | punctuation.definition.string.begin.jsp 917 | 918 | 5 919 | 920 | name 921 | punctuation.definition.string.end.jsp 922 | 923 | 924 | match 925 | (page)(=)((")[^"]*(")) 926 | 927 | 928 | 929 | 930 | begin 931 | (<)(jsp:param)\b 932 | beginCaptures 933 | 934 | 1 935 | 936 | name 937 | punctuation.definition.tag.begin.jsp 938 | 939 | 2 940 | 941 | name 942 | entity.name.tag.jsp 943 | 944 | 945 | end 946 | /> 947 | endCaptures 948 | 949 | 0 950 | 951 | name 952 | punctuation.definition.tag.end.jsp 953 | 954 | 955 | name 956 | meta.tag.template.param.jsp 957 | patterns 958 | 959 | 960 | captures 961 | 962 | 1 963 | 964 | name 965 | entity.other.attribute-name.jsp 966 | 967 | 2 968 | 969 | name 970 | punctuation.separator.key-value.jsp 971 | 972 | 3 973 | 974 | name 975 | string.quoted.double.jsp 976 | 977 | 4 978 | 979 | name 980 | punctuation.definition.string.begin.jsp 981 | 982 | 5 983 | 984 | name 985 | punctuation.definition.string.end.jsp 986 | 987 | 988 | match 989 | (name|value)(=)((")[^"]*(")) 990 | 991 | 992 | 993 | 994 | begin 995 | (<)(jsp:getProperty)\b 996 | beginCaptures 997 | 998 | 1 999 | 1000 | name 1001 | punctuation.definition.tag.begin.jsp 1002 | 1003 | 2 1004 | 1005 | name 1006 | entity.name.tag.jsp 1007 | 1008 | 1009 | end 1010 | /> 1011 | endCaptures 1012 | 1013 | 0 1014 | 1015 | name 1016 | punctuation.definition.tag.end.jsp 1017 | 1018 | 1019 | name 1020 | meta.tag.template.getproperty.jsp 1021 | patterns 1022 | 1023 | 1024 | captures 1025 | 1026 | 1 1027 | 1028 | name 1029 | entity.other.attribute-name.jsp 1030 | 1031 | 2 1032 | 1033 | name 1034 | punctuation.separator.key-value.jsp 1035 | 1036 | 3 1037 | 1038 | name 1039 | string.quoted.double.jsp 1040 | 1041 | 4 1042 | 1043 | name 1044 | punctuation.definition.string.begin.jsp 1045 | 1046 | 5 1047 | 1048 | name 1049 | punctuation.definition.string.end.jsp 1050 | 1051 | 1052 | match 1053 | (name|property)(=)((")[^"]*(")) 1054 | 1055 | 1056 | 1057 | 1058 | begin 1059 | (</?)(jsp:include)\b 1060 | beginCaptures 1061 | 1062 | 1 1063 | 1064 | name 1065 | punctuation.definition.tag.begin.jsp 1066 | 1067 | 2 1068 | 1069 | name 1070 | entity.name.tag.jsp 1071 | 1072 | 1073 | end 1074 | /?> 1075 | endCaptures 1076 | 1077 | 0 1078 | 1079 | name 1080 | punctuation.definition.tag.end.jsp 1081 | 1082 | 1083 | name 1084 | meta.tag.template.include.jsp 1085 | patterns 1086 | 1087 | 1088 | captures 1089 | 1090 | 1 1091 | 1092 | name 1093 | entity.other.attribute-name.jsp 1094 | 1095 | 2 1096 | 1097 | name 1098 | punctuation.separator.key-value.jsp 1099 | 1100 | 3 1101 | 1102 | name 1103 | string.quoted.double.jsp 1104 | 1105 | 4 1106 | 1107 | name 1108 | punctuation.definition.string.begin.jsp 1109 | 1110 | 5 1111 | 1112 | name 1113 | punctuation.definition.string.end.jsp 1114 | 1115 | 1116 | match 1117 | (page|flush)(=)((")[^"]*(")) 1118 | 1119 | 1120 | 1121 | 1122 | begin 1123 | (<)(jsp:invoke)\b 1124 | beginCaptures 1125 | 1126 | 1 1127 | 1128 | name 1129 | punctuation.definition.tag.begin.jsp 1130 | 1131 | 2 1132 | 1133 | name 1134 | entity.name.tag.jsp 1135 | 1136 | 1137 | end 1138 | /> 1139 | endCaptures 1140 | 1141 | 0 1142 | 1143 | name 1144 | punctuation.definition.tag.end.jsp 1145 | 1146 | 1147 | name 1148 | meta.tag.template.invoke.jsp 1149 | patterns 1150 | 1151 | 1152 | captures 1153 | 1154 | 1 1155 | 1156 | name 1157 | entity.other.attribute-name.jsp 1158 | 1159 | 2 1160 | 1161 | name 1162 | punctuation.separator.key-value.jsp 1163 | 1164 | 3 1165 | 1166 | name 1167 | string.quoted.double.jsp 1168 | 1169 | 4 1170 | 1171 | name 1172 | punctuation.definition.string.begin.jsp 1173 | 1174 | 5 1175 | 1176 | name 1177 | punctuation.definition.string.end.jsp 1178 | 1179 | 1180 | match 1181 | (fragment|var|varReader|scope)(=)((")[^"]*(")) 1182 | 1183 | 1184 | 1185 | 1186 | begin 1187 | (<)(jsp:output)\b 1188 | beginCaptures 1189 | 1190 | 1 1191 | 1192 | name 1193 | punctuation.definition.tag.begin.jsp 1194 | 1195 | 2 1196 | 1197 | name 1198 | entity.name.tag.jsp 1199 | 1200 | 1201 | end 1202 | /> 1203 | endCaptures 1204 | 1205 | 0 1206 | 1207 | name 1208 | punctuation.definition.tag.end.jsp 1209 | 1210 | 1211 | name 1212 | meta.tag.template.output.jsp 1213 | patterns 1214 | 1215 | 1216 | captures 1217 | 1218 | 1 1219 | 1220 | name 1221 | entity.other.attribute-name.jsp 1222 | 1223 | 2 1224 | 1225 | name 1226 | punctuation.separator.key-value.jsp 1227 | 1228 | 3 1229 | 1230 | name 1231 | string.quoted.double.jsp 1232 | 1233 | 4 1234 | 1235 | name 1236 | punctuation.definition.string.begin.jsp 1237 | 1238 | 5 1239 | 1240 | name 1241 | punctuation.definition.string.end.jsp 1242 | 1243 | 1244 | match 1245 | (omit-xml-declaration|doctype-root-element|doctype-system|doctype-public)(=)((")[^"]*(")) 1246 | 1247 | 1248 | 1249 | 1250 | begin 1251 | (</?)(jsp:plugin)\b 1252 | beginCaptures 1253 | 1254 | 1 1255 | 1256 | name 1257 | punctuation.definition.tag.begin.jsp 1258 | 1259 | 2 1260 | 1261 | name 1262 | entity.name.tag.jsp 1263 | 1264 | 1265 | end 1266 | > 1267 | endCaptures 1268 | 1269 | 0 1270 | 1271 | name 1272 | punctuation.definition.tag.end.jsp 1273 | 1274 | 1275 | name 1276 | meta.tag.template.plugin.jsp 1277 | patterns 1278 | 1279 | 1280 | captures 1281 | 1282 | 1 1283 | 1284 | name 1285 | entity.other.attribute-name.jsp 1286 | 1287 | 2 1288 | 1289 | name 1290 | punctuation.separator.key-value.jsp 1291 | 1292 | 3 1293 | 1294 | name 1295 | string.quoted.double.jsp 1296 | 1297 | 4 1298 | 1299 | name 1300 | punctuation.definition.string.begin.jsp 1301 | 1302 | 5 1303 | 1304 | name 1305 | punctuation.definition.string.end.jsp 1306 | 1307 | 1308 | match 1309 | (type|code|codebase|name|archive|align|height|hspace|jreversion|nspluginurl|iepluginurl)(=)((")[^"]*(")) 1310 | 1311 | 1312 | 1313 | 1314 | captures 1315 | 1316 | 1 1317 | 1318 | name 1319 | punctuation.definition.tag.begin.jsp 1320 | 1321 | 2 1322 | 1323 | name 1324 | entity.name.tag.jsp 1325 | 1326 | 3 1327 | 1328 | name 1329 | punctuation.definition.tag.end.jsp 1330 | 1331 | 1332 | end 1333 | > 1334 | match 1335 | (</?)(jsp:fallback)(>) 1336 | name 1337 | meta.tag.template.fallback.jsp 1338 | 1339 | 1340 | begin 1341 | (</?)(jsp:root)\b 1342 | beginCaptures 1343 | 1344 | 1 1345 | 1346 | name 1347 | punctuation.definition.tag.begin.jsp 1348 | 1349 | 2 1350 | 1351 | name 1352 | entity.name.tag.jsp 1353 | 1354 | 1355 | end 1356 | > 1357 | endCaptures 1358 | 1359 | 0 1360 | 1361 | name 1362 | punctuation.definition.tag.end.jsp 1363 | 1364 | 1365 | name 1366 | meta.tag.template.root.jsp 1367 | patterns 1368 | 1369 | 1370 | captures 1371 | 1372 | 1 1373 | 1374 | name 1375 | entity.other.attribute-name.jsp 1376 | 1377 | 2 1378 | 1379 | name 1380 | punctuation.separator.key-value.jsp 1381 | 1382 | 3 1383 | 1384 | name 1385 | string.quoted.double.jsp 1386 | 1387 | 4 1388 | 1389 | name 1390 | punctuation.definition.string.begin.jsp 1391 | 1392 | 5 1393 | 1394 | name 1395 | punctuation.definition.string.end.jsp 1396 | 1397 | 1398 | match 1399 | (xmlns|version|xmlns:taglibPrefix)(=)((")[^"]*(")) 1400 | 1401 | 1402 | 1403 | 1404 | begin 1405 | (<)(jsp:setProperty)\b 1406 | beginCaptures 1407 | 1408 | 1 1409 | 1410 | name 1411 | punctuation.definition.tag.begin.jsp 1412 | 1413 | 2 1414 | 1415 | name 1416 | entity.name.tag.jsp 1417 | 1418 | 1419 | end 1420 | /> 1421 | endCaptures 1422 | 1423 | 0 1424 | 1425 | name 1426 | punctuation.definition.tag.end.jsp 1427 | 1428 | 1429 | name 1430 | meta.tag.template.setproperty.jsp 1431 | patterns 1432 | 1433 | 1434 | captures 1435 | 1436 | 1 1437 | 1438 | name 1439 | entity.other.attribute-name.jsp 1440 | 1441 | 2 1442 | 1443 | name 1444 | punctuation.separator.key-value.jsp 1445 | 1446 | 3 1447 | 1448 | name 1449 | string.quoted.double.jsp 1450 | 1451 | 4 1452 | 1453 | name 1454 | punctuation.definition.string.begin.jsp 1455 | 1456 | 5 1457 | 1458 | name 1459 | punctuation.definition.string.end.jsp 1460 | 1461 | 1462 | match 1463 | (name|property|value)(=)((")[^"]*(")) 1464 | 1465 | 1466 | 1467 | 1468 | captures 1469 | 1470 | 1 1471 | 1472 | name 1473 | punctuation.definition.tag.begin.jsp 1474 | 1475 | 2 1476 | 1477 | name 1478 | entity.name.tag.jsp 1479 | 1480 | 3 1481 | 1482 | name 1483 | punctuation.definition.tag.end.jsp 1484 | 1485 | 1486 | end 1487 | > 1488 | match 1489 | (</?)(jsp:text)(>) 1490 | name 1491 | meta.tag.template.text.jsp 1492 | 1493 | 1494 | begin 1495 | (</?)(jsp:useBean)\b 1496 | beginCaptures 1497 | 1498 | 1 1499 | 1500 | name 1501 | punctuation.definition.tag.begin.jsp 1502 | 1503 | 2 1504 | 1505 | name 1506 | entity.name.tag.jsp 1507 | 1508 | 1509 | end 1510 | /?> 1511 | endCaptures 1512 | 1513 | 0 1514 | 1515 | name 1516 | punctuation.definition.tag.end.jsp 1517 | 1518 | 1519 | name 1520 | meta.tag.template.usebean.jsp 1521 | patterns 1522 | 1523 | 1524 | captures 1525 | 1526 | 1 1527 | 1528 | name 1529 | entity.other.attribute-name.jsp 1530 | 1531 | 2 1532 | 1533 | name 1534 | punctuation.separator.key-value.jsp 1535 | 1536 | 3 1537 | 1538 | name 1539 | string.quoted.double.jsp 1540 | 1541 | 4 1542 | 1543 | name 1544 | punctuation.definition.string.begin.jsp 1545 | 1546 | 5 1547 | 1548 | name 1549 | punctuation.definition.string.end.jsp 1550 | 1551 | 1552 | match 1553 | (id|scope|class|type|beanName)(=)((")[^"]*(")) 1554 | 1555 | 1556 | 1557 | 1558 | 1559 | directive 1560 | 1561 | begin 1562 | (<)(jsp:directive\.(?=(attribute|include|page|tag|variable)\s)) 1563 | beginCaptures 1564 | 1565 | 1 1566 | 1567 | name 1568 | punctuation.definition.tag.begin.jsp 1569 | 1570 | 2 1571 | 1572 | name 1573 | entity.name.tag.jsp 1574 | 1575 | 1576 | end 1577 | /> 1578 | endCaptures 1579 | 1580 | 0 1581 | 1582 | name 1583 | punctuation.definition.tag.end.jsp 1584 | 1585 | 1586 | name 1587 | meta.tag.template.$3.jsp 1588 | patterns 1589 | 1590 | 1591 | begin 1592 | \G(attribute)(?=\s) 1593 | captures 1594 | 1595 | 1 1596 | 1597 | name 1598 | entity.name.tag.jsp 1599 | 1600 | 1601 | end 1602 | (?=/>) 1603 | patterns 1604 | 1605 | 1606 | captures 1607 | 1608 | 1 1609 | 1610 | name 1611 | entity.other.attribute-name.jsp 1612 | 1613 | 2 1614 | 1615 | name 1616 | punctuation.separator.key-value.jsp 1617 | 1618 | 3 1619 | 1620 | name 1621 | string.quoted.double.jsp 1622 | 1623 | 4 1624 | 1625 | name 1626 | punctuation.definition.string.begin.jsp 1627 | 1628 | 5 1629 | 1630 | name 1631 | punctuation.definition.string.end.jsp 1632 | 1633 | 1634 | match 1635 | (name|required|fragment|rtexprvalue|type|description)(=)((")[^"]*(")) 1636 | 1637 | 1638 | 1639 | 1640 | begin 1641 | \G(include)(?=\s) 1642 | captures 1643 | 1644 | 1 1645 | 1646 | name 1647 | entity.name.tag.jsp 1648 | 1649 | 1650 | end 1651 | (?=/>) 1652 | patterns 1653 | 1654 | 1655 | captures 1656 | 1657 | 1 1658 | 1659 | name 1660 | entity.other.attribute-name.jsp 1661 | 1662 | 2 1663 | 1664 | name 1665 | punctuation.separator.key-value.jsp 1666 | 1667 | 3 1668 | 1669 | name 1670 | string.quoted.double.jsp 1671 | 1672 | 4 1673 | 1674 | name 1675 | punctuation.definition.string.begin.jsp 1676 | 1677 | 5 1678 | 1679 | name 1680 | punctuation.definition.string.end.jsp 1681 | 1682 | 1683 | match 1684 | (file)(=)((")[^"]*(")) 1685 | 1686 | 1687 | 1688 | 1689 | begin 1690 | \G(page)(?=\s) 1691 | captures 1692 | 1693 | 1 1694 | 1695 | name 1696 | entity.name.tag.jsp 1697 | 1698 | 1699 | end 1700 | (?=/>) 1701 | patterns 1702 | 1703 | 1704 | captures 1705 | 1706 | 1 1707 | 1708 | name 1709 | entity.other.attribute-name.jsp 1710 | 1711 | 2 1712 | 1713 | name 1714 | punctuation.separator.key-value.jsp 1715 | 1716 | 3 1717 | 1718 | name 1719 | string.quoted.double.jsp 1720 | 1721 | 4 1722 | 1723 | name 1724 | punctuation.definition.string.begin.jsp 1725 | 1726 | 5 1727 | 1728 | name 1729 | punctuation.definition.string.end.jsp 1730 | 1731 | 1732 | match 1733 | (language|extends|import|session|buffer|autoFlush|isThreadSafe|info|errorPage|isErrorPage|contentType|pageEncoding|isElIgnored)(=)((")[^"]*(")) 1734 | 1735 | 1736 | 1737 | 1738 | begin 1739 | \G(tag)(?=\s) 1740 | captures 1741 | 1742 | 1 1743 | 1744 | name 1745 | entity.name.tag.jsp 1746 | 1747 | 1748 | end 1749 | (?=/>) 1750 | patterns 1751 | 1752 | 1753 | captures 1754 | 1755 | 1 1756 | 1757 | name 1758 | entity.other.attribute-name.jsp 1759 | 1760 | 2 1761 | 1762 | name 1763 | punctuation.separator.key-value.jsp 1764 | 1765 | 3 1766 | 1767 | name 1768 | string.quoted.double.jsp 1769 | 1770 | 4 1771 | 1772 | name 1773 | punctuation.definition.string.begin.jsp 1774 | 1775 | 5 1776 | 1777 | name 1778 | punctuation.definition.string.end.jsp 1779 | 1780 | 1781 | match 1782 | (display-name|body-content|dynamic-attributes|small-icon|large-icon|description|example|language|import|pageEncoding|isELIgnored)(=)((")[^"]*(")) 1783 | 1784 | 1785 | 1786 | 1787 | begin 1788 | \G(variable)(?=\s) 1789 | captures 1790 | 1791 | 1 1792 | 1793 | name 1794 | entity.name.tag.jsp 1795 | 1796 | 1797 | end 1798 | (?=/>) 1799 | patterns 1800 | 1801 | 1802 | captures 1803 | 1804 | 1 1805 | 1806 | name 1807 | entity.other.attribute-name.jsp 1808 | 1809 | 2 1810 | 1811 | name 1812 | punctuation.separator.key-value.jsp 1813 | 1814 | 3 1815 | 1816 | name 1817 | string.quoted.double.jsp 1818 | 1819 | 4 1820 | 1821 | name 1822 | punctuation.definition.string.begin.jsp 1823 | 1824 | 5 1825 | 1826 | name 1827 | punctuation.definition.string.end.jsp 1828 | 1829 | 1830 | match 1831 | (name-given|alias|variable-class|declare|scope|description)(=)((")[^"]*(")) 1832 | 1833 | 1834 | 1835 | 1836 | 1837 | embedded 1838 | 1839 | begin 1840 | (<)(jsp:(declaration|expression|scriptlet))(>) 1841 | beginCaptures 1842 | 1843 | 0 1844 | 1845 | name 1846 | meta.tag.template.$3.jsp 1847 | 1848 | 1 1849 | 1850 | name 1851 | punctuation.definition.tag.begin.jsp 1852 | 1853 | 2 1854 | 1855 | name 1856 | entity.name.tag.jsp 1857 | 1858 | 4 1859 | 1860 | name 1861 | punctuation.definition.tag.end.jsp 1862 | 1863 | 1864 | contentName 1865 | source.java 1866 | end 1867 | ((<)/)(jsp:\3)(>) 1868 | endCaptures 1869 | 1870 | 0 1871 | 1872 | name 1873 | meta.tag.template.$4.jsp 1874 | 1875 | 1 1876 | 1877 | name 1878 | punctuation.definition.tag.begin.jsp 1879 | 1880 | 2 1881 | 1882 | name 1883 | source.java 1884 | 1885 | 3 1886 | 1887 | name 1888 | entity.name.tag.jsp 1889 | 1890 | 4 1891 | 1892 | name 1893 | punctuation.definition.tag.end.jsp 1894 | 1895 | 1896 | name 1897 | meta.embedded.block.jsp 1898 | patterns 1899 | 1900 | 1901 | include 1902 | source.java 1903 | 1904 | 1905 | 1906 | 1907 | 1908 | 1909 | scopeName 1910 | text.html.jsp 1911 | uuid 1912 | ACB58B55-9437-4AE6-AF42-854995CF51DF 1913 | 1914 | 1915 | --------------------------------------------------------------------------------