on master help sign in
feat(indent): add basic java indentation queries (#7844)
1d18982woojiq
book/src/generated/lang-support.md+1−1
@@ -69,7 +69,7 @@
69| idris | | | | `idris2-lsp` |
69| idris | | | | `idris2-lsp` |
70| iex | ✓ | | | |
70| iex | ✓ | | | |
71| ini | ✓ | | | |
71| ini | ✓ | | | |
72−| java | ✓ | ✓ | | `jdtls` |
72+| java | ✓ | ✓ | ✓ | `jdtls` |
73| javascript | ✓ | ✓ | ✓ | `typescript-language-server` |
73| javascript | ✓ | ✓ | ✓ | `typescript-language-server` |
74| jsdoc | ✓ | | | |
74| jsdoc | ✓ | | | |
75| json | ✓ | | ✓ | `vscode-json-language-server` |
75| json | ✓ | | ✓ | `vscode-json-language-server` |
languages.toml+1−1
@@ -833,7 +833,7 @@ injection-regex = "java"
833file-types = ["java"]
833file-types = ["java"]
834roots = ["pom.xml", "build.gradle", "build.gradle.kts"]
834roots = ["pom.xml", "build.gradle", "build.gradle.kts"]
835language-servers = [ "jdtls" ]
835language-servers = [ "jdtls" ]
836−indent = { tab-width = 4, unit = " " }
836+indent = { tab-width = 2, unit = " " }
837
837
838[[grammar]]
838[[grammar]]
839name = "java"
839name = "java"
runtime/queries/java/indents.scmnew file+35
@@ -0,0 +1,35 @@
1+[
2+ (class_body)
3+ (enum_body)
4+ (interface_body)
5+ (constructor_body)
6+ (annotation_type_body)
7+ (module_body)
8+ (block)
9+ (switch_block)
10+ (array_initializer)
11+ (argument_list)
12+ (formal_parameters)
13+ (annotation_argument_list)
14+ (element_value_array_initializer)
15+] @indent
16+
17+[
18+ "}"
19+ ")"
20+ "]"
21+] @outdent
22+
23+; Single statement after if/while/for without brackets
24+(if_statement
25+ consequence: (_) @indent
26+ (#not-kind-eq? @indent "block")
27+ (#set! "scope" "all"))
28+(while_statement
29+ body: (_) @indent
30+ (#not-kind-eq? @indent "block")
31+ (#set! "scope" "all"))
32+(for_statement
33+ (_) @indent
34+ (#not-kind-eq? @indent "block")
35+ (#set! "scope" "all"))