Skip to content

Commit

Permalink
feat: add support for gjs and gts (helix-editor#9940)
Browse files Browse the repository at this point in the history
  • Loading branch information
c0rydoras committed May 6, 2024
1 parent a959c0e commit 295a9a9
Show file tree
Hide file tree
Showing 16 changed files with 109 additions and 0 deletions.
2 changes: 2 additions & 0 deletions book/src/generated/lang-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
| git-config || | | |
| git-ignore || | | |
| git-rebase || | | |
| gjs |||| `typescript-language-server`, `vscode-eslint-language-server`, `ember-language-server` |
| gleam ||| | `gleam` |
| glimmer || | | `ember-language-server` |
| glsl |||| |
Expand All @@ -73,6 +74,7 @@
| gowork || | | `gopls` |
| graphql ||| | `graphql-lsp` |
| groovy || | | |
| gts |||| `typescript-language-server`, `vscode-eslint-language-server`, `ember-language-server` |
| hare || | | |
| haskell ||| | `haskell-language-server-wrapper` |
| haskell-persistent || | | |
Expand Down
70 changes: 70 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,28 @@ inlayHints.functionLikeReturnTypes.enabled = true
inlayHints.enumMemberValues.enabled = true
inlayHints.parameterNames.enabled = "all"

[language-server.vscode-eslint-language-server]
command = "vscode-eslint-language-server"
args = ["--stdio"]

[language-server.vscode-eslint-language-server.config]
validate = "on"
experimental = { useFlatConfig = false }
rulesCustomizations = []
run = "onType"
problems = { shortenToSingleLine = false }
nodePath = ""

[language-server.vscode-eslint-language-server.config.codeAction.disableRuleComment]
enable = true
location = "separateLine"

[language-server.vscode-eslint-language-server.config.codeAction.showDocumentation]
enable = true

[language-server.vscode-eslint-language-server.config.workingDirectory]
mode = "location"

[[language]]
name = "rust"
scope = "source.rust"
Expand Down Expand Up @@ -3586,3 +3608,51 @@ language-servers = ["pest-language-server"]
[[grammar]]
name = "pest"
source = { git = "https://github.com/pest-parser/tree-sitter-pest", rev = "a8a98a824452b1ec4da7f508386a187a2f234b85" }

[[language]]
name = "gjs"
scope = "source.gjs"
file-types = ["gjs"]
roots = ["package.json", "ember-cli-build.js"]
comment-token = "//"
block-comment-tokens = { start = "/*", end = "*/" }
language-servers = [
{ except-features = [
"format", "diagnostics",
], name = "typescript-language-server" },
"vscode-eslint-language-server",
"ember-language-server",
]
indent = { tab-width = 2, unit = " " }
grammar = "javascript"

[language.auto-pairs]
'<' = '>'
"'" = "'"
"{" = "}"
"(" = ")"
'"' = '"'

[[language]]
name = "gts"
scope = "source.gts"
file-types = ["gts"]
roots = ["package.json", "ember-cli-build.js"]
comment-token = "//"
block-comment-tokens = { start = "/*", end = "*/" }
language-servers = [
{ except-features = [
"format", "diagnostics",
], name = "typescript-language-server" },
"vscode-eslint-language-server",
"ember-language-server",
]
indent = { tab-width = 2, unit = " " }
grammar = "typescript"

[language.auto-pairs]
'<' = '>'
"'" = "'"
"{" = "}"
"(" = ")"
'"' = '"'
5 changes: 5 additions & 0 deletions runtime/queries/_gjs/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[
(glimmer_opening_tag)
(glimmer_closing_tag)
] @constant.builtin

20 changes: 20 additions & 0 deletions runtime/queries/_gjs/injections.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
; PARSE GLIMMER TEMPLATES
(call_expression
function: [
(identifier) @injection.language
(member_expression
property: (property_identifier) @injection.language)
]
arguments: (template_string) @injection.content)

; e.g.: <template><SomeComponent @arg={{double @value}} /></template>
((glimmer_template) @injection.content
(#set! injection.language "hbs"))

; Parse Ember/Glimmer/Handlebars/HTMLBars/etc. template literals
; e.g.: await render(hbs`<SomeComponent />`)
(call_expression
function: ((identifier) @_name
(#eq? @_name "hbs"))
arguments: ((template_string) @glimmer
(#offset! @glimmer 0 1 0 -1)))
1 change: 1 addition & 0 deletions runtime/queries/gjs/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_javascript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gjs/indents.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_javascript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gjs/injections.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_javascript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gjs/locals.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_javascript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gjs/tags.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_javascript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gjs/textobjects.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_javascript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gts/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_typescript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gts/indents.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_typescript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gts/injections.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_typescript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gts/locals.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_typescript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gts/tags.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_typescript,ecma
1 change: 1 addition & 0 deletions runtime/queries/gts/textobjects.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
; inherits: _gjs,_typescript,ecma

0 comments on commit 295a9a9

Please sign in to comment.