* Added `jsonc` language with support for comments
The `vscode-json-language-server` accepts `jsonc` as a language id.
Allowing the use of comments within JSON files.
* fix: Update `injdection-rejex` to be unique
* fix: use includes to remove redundant queries
* ci: Generate language-support docs
* Add Groovy grammar
* Rewrite Neovim captures into Helix for Groovy
* Simplify Groovy injections
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Remove Neovim's spell from Groovy highlights
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Apply suggestions to languages.toml
* Escape backslash in groovy highlights.scm
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* languages: add docker-compose language
it uses docker-compose-langserver as lsp
And yaml for syntax highlighting, indents and injections
* languages: add luajit as a shebang of lua
This helps to provide syntax highlighting and
other lua goodies when writing luajit
* book(update): run cargo xtask docgen
* since #8006 full filenames uses glob
* languages: add CEL language and grammar
* languages: add spicedb schema language
* chore: docgen
* runtime/queries: refine spicedb & cel highlights
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* languages: update spicedb
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Add text object queries for dart
* Update runtime/queries/dart/textobjects.scm
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Clean up internal capture name
---------
Co-authored-by: Sébastien Blondiau <sebastien.blondiau@iot-d.com>
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* highlights(bash): rework keywords section
* Use more specified scope when possible for keywords like @keyword.repeat.
* Add more keywords like "local" or "unsetenv".
Limitation:
* Bash doesn't allow you to have a local variable outside of a function, so maybe we need to have better queries to not highlight the local in this case.
* If we name a function with a keyword (such as unset or local), it will use the highlight scope "keyword" instead of "function".
* indents(css, make): add basic queries
* Despite the fact that queries look simple, they improve indentation in some edge cases that helix couldn't handle correctly by default.
* Add HOCON language support
* Remove error query
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Change include query
* Fix query error
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* agda language support (wip)
* improve highlights
* disable agda-language-server
* minor addendum to documentation
* cargo xtask docgen
* oh i can just do this neat
* minor comment cleanup
* upstream updated
* imports: missed a spot
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* DBML language support
* DBML language support, highlights.scm added
* DBML support
* Update runtime/queries/dbml/highlights.scm
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Update runtime/queries/dbml/highlights.scm
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Update runtime/queries/dbml/highlights.scm
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* remove unnecessary block highlight
* remove unnecessary line
* remove index_block query
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
graphql-lsp has quite the strange name upstream, the project is technically called graphql-language-service,
but the binary shipped is called graphql-lsp hence the strange naming scheme
Signed-off-by: kjuulh <contact@kjuulh.io>
* bump tree-sitter-perl version
need some grammar tweaks for the indent queries to function properly
* add indent queries for perl
* add textobject queries for perl
* adds treesitter-highlight-name command
* commit documentation changes
* moves the get_highlight_name function into core/syntax
* rename get_highlight_name function to get_highlight_for_node_at_position
* addresses pr comments: moves fn into helper fn, simplifies a lot
* commit updated documentation changes
* changes scope method to return &str so that callers can decide whether or not to own
This implements function, (calling) argument and comment captures for use
in the textobject selections in bash.
This also updates the generated docs after adding the textobjects for bash.
* fix vlang grammar fetch and build fail
* update highlights.scm for v-analyzer
* Update languages.toml
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Update runtime/queries/v/highlights.scm
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* update scm for new lsp
* gen doc lang-support.md
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
Resolves issue #6888 by adding a command to join all selections and yank
them to the specified register. The typed command takes an argument as
the separator to use when joining the selections.
Language Servers are now configured in a separate table in `languages.toml`:
```toml
[langauge-server.mylang-lsp]
command = "mylang-lsp"
args = ["--stdio"]
config = { provideFormatter = true }
[language-server.efm-lsp-prettier]
command = "efm-langserver"
[language-server.efm-lsp-prettier.config]
documentFormatting = true
languages = { typescript = [ { formatCommand ="prettier --stdin-filepath ${INPUT}", formatStdin = true } ] }
```
The language server for a language is configured like this (`typescript-language-server` is configured by default):
```toml
[[language]]
name = "typescript"
language-servers = [ { name = "efm-lsp-prettier", only-features = [ "format" ] }, "typescript-language-server" ]
```
or equivalent:
```toml
[[language]]
name = "typescript"
language-servers = [ { name = "typescript-language-server", except-features = [ "format" ] }, "efm-lsp-prettier" ]
```
Each requested LSP feature is priorized in the order of the `language-servers` array.
For example the first `goto-definition` supported language server (in this case `typescript-language-server`) will be taken for the relevant LSP request (command `goto_definition`).
If no `except-features` or `only-features` is given all features for the language server are enabled, as long as the language server supports these. If it doesn't the next language server which supports the feature is tried.
The list of supported features are:
- `format`
- `goto-definition`
- `goto-declaration`
- `goto-type-definition`
- `goto-reference`
- `goto-implementation`
- `signature-help`
- `hover`
- `document-highlight`
- `completion`
- `code-action`
- `workspace-command`
- `document-symbols`
- `workspace-symbols`
- `diagnostics`
- `rename-symbol`
- `inlay-hints`
Another side-effect/difference that comes with this PR, is that only one language server instance is started if different languages use the same language server.
* Change Odin grammar to `ap29600/tree-sitter-odin`
The previously adopted grammar, `MineBill/tree-sitter-odin`, is unmaintained and mentions my repository as an alternative source.
* update queries
* docgen
* fix queries
* Update runtime/queries/odin/highlights.scm
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* remove `ERROR` query for `odin`
* track the latest rev in `ap29600/tree-sitter-odin`
* runtime/queries/odin/highlights.scm: update rune highlight class
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
The update includes a fix for comments in commit messages where there
was no space separating the '#' and the comment text.
The comment textobject can be useful occasionally to jump to the
summary part of the commit edit message.
Simple highlight query file with keywords and builtin types
matching. Many VHDL types however are defined in std libraries
which do not currently get matched on.
This is because the grammar doesn't consider them builtin types.