* 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>
* Use janet-simple grammar for Janet
* Update book
* Tweak language name and related
* Rename janet-simple to janet in book
* Remove spurious language section for janet
* Drop quote_lit and qq_lit related highlighting
---------
Co-authored-by: sogaiu <983021772@users.noreply.github.com>
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* 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>
* Update Scala tree-sitter grammar
* Support block comments
Modify comment handling in textobjects and highlights to support new TS-scala node type 'block_comment'
* 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>
Enum variants and (tuple) structs are indistinguishable in general, so we
mark any PascalCase pattern or expression as a "constructor", which
covers all three.
* 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>
Since the tree-sitter grammar is not very good
at parsing function calls while they're being written,
this is not yet super useful.
However, it prevents the new `hybrid` indent heuristic
from choosing these lines as a baseline, making it
more robust.
* 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>
* 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
* Update tree-sitter-robot
* Update Robot highlights query for Helix
* Change @comment.single to @comment
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
YAML indents queries are tweaked to fix auto indent behavior.
A new capture type `indent.always` is introduced to address use cases
where combining indent captures on a single line is desired.
Fixes#6661
* Update tree-sitter grammar for nu
Change tree-sitter grammar for nushell to 'officially' maintained
by nushell project https://github.com/nushell/tree-sitter-nu. Update
to the latest version. Replace queries with supported
* Restore injection queries for nu
Restore injection.scm queries for nushell tree-sitter grammar
* build(tree-sitter): update javascript, typescript and tsx
* update revision of tree-sitter parsers for these languages.
* rename `?.` to `optional_chain`, introduced in tree-sitter/tree-sitter-javascript@186f2adbf7.
* fix(highlight): change jsx queries to match latest tree-sitter
Latest tree-sitter/tree-sitter-javascript@bb1f97b643 added some breaking changes that broke highlighting.
* Remove some queries with `nested_identifier`.
* Remove deprecated `jsx_fragment` from indent query.
* Count `</` and `/>` as a single token.
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.
Version 2.2.1 of the grammar adds extended support for HLL (C, C++,..)
expressions. Quite a few node types were added, renamed or removed in
the process.
This change brings the highlight queries in sync with the ones found in
the repository of the grammar. The highlighting tests "look" okay after
updating the queries.
Recently, Codeberg had some reliability issues. That is why the language
is now using the mirror repository on GitLab as source instead.
Co-authored-by: Christoph Sax <christoph.sax@mailbox.org>
* 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>
Since regex is almost always injected into other languages,
`pattern_character`s will inherit the highlight for the structure that
injects them (for example `/foo/` in JavaScript or `~r/foo/` in Elixir).
This removes the string highlight when used in the prompt.
We also add `ERROR` node highlighting so that errors in regex syntax
appear in the prompt. This resolves a TODO in the `regex_prompt`
function about highlighting errors in the regex.
* inject language based on file extension
Nodes can now be captured with "injection.filename". If this capture
contains a valid file extension known to Helix, then the content will
be highlighted as that language.
* inject language by shebang
Nodes can now be captured with "injection.shebang". If this capture
contains a valid shebang line known to Helix, then the content will
be highlighted as the language the shebang calls for.
* add documentation for language injection
* nix: fix highlights
The `@` is now highlighted properly on either side of the function arg.
Also, extending the phases with `buildPhase = prev.buildPhase + ''''`
is now highlighted properly.
Fix highlighting of `''$` style escapes (requires tree-sitter-nix bump)
Fix `inherit` highlighting.
* simplify injection_for_match
Split out injection pair logic into its own method to make the overall
flow easier to follow.
Also transform the top-level function into a method on a
HighlightConfiguration.
* markdown: add shebang injection query
* 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>
Unlike other languages, in Go, switches themselves are not indented;
it's just each case body which is indented by one level:
switch foo {
case "bar":
baz()
}
As such, we shouldn't `@indent` for type_switch_statement nor
expression_switch_statement, as otherwise inserted lines show up as:
switch foo {
// inserted with "o"
case "bar":
// inserted with "o"
baz()
}
With the fix, the inserted lines are indented properly:
switch foo {
// inserted with "o"
case "bar":
// inserted with "o"
baz()
}
I also verified that indentation on selects similarly works well.
Thanks to Triton171 for helping with this fix.
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.
* Switch nix grammar repository location to the new repo. The author
has transferred the repository to 'nix-community'.
* Capture ':' and '...' as 'punctuation.delimiter'.
* Macros that start with underscore were incorrectly marked as
'comment.unused' rather than 'keyword.directive' due to an ordering
issue of those two patterns.
* Recognize escripts as Erlang by the shebang.