* theme: add horizon-dark
* fix whitespace color and gutter selected
* taplo fmt
* markup and color tweaks
markup colors
diff colors
better comment and menu colors
* horizon-dark: fix constructor color
makes Some and None to look better and more like the vscode theme
* 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>
* adding 16-color terminal themes
* minor consistency update
* minor consistency update
* rename to be more consistent with other helix theme name conventions
* fixing improper theme inherits name
Turning on a ruler does not show a visible ruler
line for the GitHub themes. This change renders
rulers using the `canvas.subtle` color. This
matches the color used for the `cursorline` and
creates a visible ruler that fits the theme.
* 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>
* theme: Add Theme poimandres
* theme: inherit `poimandres_storm` from `poimandres` with minor tweaks
* fix(theme): rename `crossed-out` to `crossed_out`
* fix(theme:poimandres): improve contrast of selection color for regular variant
* Create material theme files
* Add material deep ocean pallete
* Add primary theme properties to material deep ocean theme
* Fix material deep ocean theme
* Ad syntax highlighting to material deep ocean theme
* Make material oceanic theme
* Make material darker theme
* Remove material lighter theme
* Make material palenight theme
* Make other material themes inherit material deep ocean theme
* Add virtual ruler background to the material theme collection
* 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.
* theme: nightfox - fix subselection highlighting
This fixes an issue with subselect highlighting on the same line as
reported here: https://github.com/helix-editor/helix/discussions/5158
* theme: nightfox - update bufferline colors
This uses `ui.bufferline` to make it easier to distinguish
between (in-)active tabs/buffers.
* 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.
Ferra's current ruler styling overrides the foreground style, which is
an odd look only for characters in the ruler column. This commit removes
the foreground styling for the ruler rule. This is more in line with
what other themes do for the ruler.