Commit Graph

279 Commits (8fc493137d159c4b1fbf964ed52dc6d53f6fcaf8)

Author SHA1 Message Date
Joe 0c9594e41e
Add SCSS language support (#3074) 2 years ago
Philipp Mildenberger e97b8607c1
Added ungrammar language support (#3048) 2 years ago
Austen LeBeau 0cb0c30618
add fortran language (#3025) 2 years ago
Erin van der Veen e0cf19c612
Update tree-sitter-nickel (#2987) 2 years ago
Ivan Tham b612211070
Update tree-sitter-ledger (#2936) 2 years ago
Michael Davis aacd0c8aa5
Update TSQ queries (#2960)
A few changes to make TSQ highlights better:

* A parsing error has been fixed in the grammar itself
    * Previously tree-sitter-tsq did not parse the variables
      in predicates like `(#set! injection.language "javascript")`
* Theme nodes as `tag`
    * The newly added node to the parser (from the above fix) is
      `variable` which takes over the `variable` capture from nodes
* Highlight known predicates as `function` and unsupported
  predicates as `error`
    * This may help when translating queries from nvim-treesitter.
      For example `#any-of?` is a common one used in nvim-treesitter
      queries but not implemented in Helix or tree-sitter-cli.
* Inject tree-sitter-regex into `#match?` predicates
2 years ago
Matthew Toohey d78354c537
add language `idris` (#2971) 2 years ago
0rphee e58d28a972
Add Haskell roots (#2954) 2 years ago
rsteube 4c30a3609a
languages: added elvish (#2948) 2 years ago
Michael Davis c5600c9c01 markdown: limit raw block highlight to code fence content 2 years ago
Michael Davis bf1aa8876c git-commit: fix highlight edge cases
* branch message with current branch and diverged branch has been
  added to the parser
* scissors used in verbose commits are marked as a punctuation
  delimiter
    * we could use comment instead since they're visually the
      same but IMO this works better
2 years ago
Michael Davis a890c4a64d tsq: update parser to fix escaping double quotes
This includes a fix for the new HTML highlights introduced a few
parent commits back:

    ["\"" (attribute_name)] @string

Would get tripped up and the entire line would be highlighted as
a string. Now `\"` is a valid escape.

I'm switching to my fork as the primary repo as the upstream hasn't
been touched in over a year (mostly because stability afaict) but
it has no watchers currently so I'm not hopeful that my PR will
be merged.
2 years ago
Michael Davis d8f036f0a9 erlang: update parser for fix on remote calls 2 years ago
Michael Davis 199a2460ca make: add injection-regex 2 years ago
Michael Davis beb19fe1bd bash: expand injection-regex to common shells 2 years ago
Michael Davis 64cf4c859b
support Bazel languages (#2903) 2 years ago
Kihaya Sugiura 24351c20d4
languages: Fix ruby rakefile and gemfile file type (#2875) 2 years ago
Hekno25 33e6df8707
feat: add wgsl_analyzer as wgsl language server (#2872) 2 years ago
Erin van der Veen b365f2d614
update tree-sitter-nickel to include ' in ident (#2859)
see https://github.com/nickel-lang/tree-sitter-nickel/pull/9
and  https://github.com/tweag/nickel/pull/737
2 years ago
Clay b13e534b92
HEEx: upgrade version and support new special_attribute node (#2800) 2 years ago
Axot 4d604d3b50
Add clojure language support (#2780)
Co-authored-by: Mateusz Ledwoń <mateusz.ledwon@iteo.com>
2 years ago
Ivan 0bc7259672
add prisma tree-sitter and lsp support (#2703)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2 years ago
Clay f37ffaa3a1
elixirLS disable dialyzer by default (#2710)
Not all Elixir projects use dialyzer and it can cause the editor
to slow down quite a bit on large projects if the PLT is not built.

See https://github.com/elixir-lsp/elixir-ls#dialyzer-integration=
2 years ago
Michael Davis 7a9147489e add textobject queries for erlang 2 years ago
farwyler f0d1c85553
support for openscad (#2680)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
3 years ago
Michael Davis fd4858c03d
add tree-sitter-jsdoc (#2650) 3 years ago
Michael Davis 42d780b103
add tree-sitter-edoc (#2640)
* add tree-sitter-edoc

* fix escape character capture in markdown queries

* add field negation operator "!" to tsq highlights
3 years ago
Fanda Vacek 8d4c954060
CPON parser supports unsigned int (#2643)
Co-authored-by: Fanda Vacek <fvacek@elektroline.cz>
3 years ago
Timothy DeHerrera eba82250bb
feat(lang): Update Nix grammar & improve queries (#2472) 3 years ago
pancake 7706a4a0d8
Add Vlang tree-sitter in the languages.toml (#2526)
Co-authored-by: pancake <pancake@nopcode.org>
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
3 years ago
Michael Davis 82da9bd4f2 update Erlang grammar and queries
The update to the grammar itself covers the case where the document
is a single expression without a trailing newline such as "min(A, B)".
A small change to the parser now parses these expressions correctly
which improves the display of the function head in the signature
help popup.

The update to the queries marks 'andalso', 'orelse', 'not', etc. as
`@keyword.operator` which improves the look - it looks odd to see
operators that are words highlighted the same as tokens like '->'
or '=:='.
3 years ago
Michael Davis 45dd54082e update Gleam grammar and queries
With respect to the queries:

The locals scope for functions was not large enough, so a function's
parameter could outlive the function body. To fix it, we just widen
the scope to the `function` node.

See also https://github.com/gleam-lang/tree-sitter-gleam/issues/25

With respect to the parser:

An external scanner has been added that fixes the parsing of strings.
Previously, a comment inside a string would act like a comment rather
than string contents.

See also https://github.com/gleam-lang/tree-sitter-gleam/issues/14#issuecomment-1129263640

A new constructor node has been added as well which makes type
highlighting more fine grained.

See also https://github.com/gleam-lang/tree-sitter-gleam/pull/29
3 years ago
Andrey Tkachenko 67fe16008e
Basic verilog support (#2552) 3 years ago
Erasin 386dccc84e
Add lua lsp (#2560) 3 years ago
Blaž Hrastnik d25bae844c
Add Scheme support
Skipped scm for now :/ it overlaps with tree-sitter-tsq
3 years ago
Jacob Thompson e8e252648f
Added a default lsp server for Java in languages.toml (#2511)
* Added a default lsp server for Java in languages.toml

* Added a default lsp server for Java in languages.toml cont.

Co-authored-by: Jacob Thompson <a01657923@usu.edu>
3 years ago
midnightexigent 8493b5fca6
Add tree-sitter ssh client config queries (#2498)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
3 years ago
Alexis Geoffrey 595213ca74
Change default Hare tab width to 8 (#2480) 3 years ago
spindlebink af387e6873
Default to tabs instead of spaces for Odin files (#2464) 3 years ago
unrelentingtech 2cb1ea7127
feat(lang): add Meson language support (#2314)
https://mesonbuild.com/Syntax.html
3 years ago
Yt ae19aaf1a6
languages: add inc files to php (#2440) 3 years ago
Fanda Vacek 76d55c0d9e
Cpon support tree sitter version bumped (#2424)
Co-authored-by: Fanda Vacek <fvacek@elektroline.cz>
3 years ago
Robert Walter 495ba40eaf
feat(languages): add odin language (#2399) 3 years ago
Ben Lee-Cohen 2f240b018e
Adding the global gitignore to the default (#2410) 3 years ago
Matthew Toohey a5f4925f53
feat(languages): git-ignore and git-attributes (#2397) 3 years ago
Pavel Borzenkov f1a77370cf
feat(languages): detect 't' as perl (#2395) 3 years ago
Matthew Toohey 25d128b5b3
feat(languages): detect cjs as javascript (#2387) 3 years ago
Fanda Vacek 1668183590
feat(lang): Cpon lang support (#2355)
Co-authored-by: Fanda Vacek <fvacek@elektroline.cz>
3 years ago
Blaž Hrastnik 73879052c1
Add Cairo support 3 years ago
unrelentingtech 8e77e3388c
feat(lang): add devicetree (Flattened Device Tree Source) (#2329) 3 years ago
Erin van der Veen 21487d13fd
feat(lang): Update nickel to include "rec" keyword (#2320) 3 years ago
Alexis Kalabura 2e46961886
feat(lsp): add toml lsp (#2302) 3 years ago
meak 1a3d6252b9
feat(lang): add hare language support (#2289)
Co-authored-by: Mehdi Katranji <hello@mek.yt>
3 years ago
ttys3 a8cb46680d
feat(lsp): add vala language support (#2243) 3 years ago
Lukas 5ca8dfe57c
fix(lsp): divide hcl into seperate languages (#2244) 3 years ago
Lukas 1c1ba006ae
feat(lsp): add yaml lsp (#2234) 3 years ago
Justin Ma 5c2570582b
feat(lang): add nushell language support (#2225)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
3 years ago
ttys3 4144c9d2f2
feat(lang): add go.mod and go.work support (#2197) 3 years ago
ttys3 8d335f63f0
chore(filetype): bash and hcl file type add more common used extensions or files (#2201) 3 years ago
Erin van der Veen 9616477197
Add Nickel language (#2173) 3 years ago
Danillo Melo be656c14e3
Ruby TextObjects and more file extensions (#2143) 3 years ago
Michael Davis ad36a024da
Update tree-sitters Erlang and HEEx (#2149) 3 years ago
Evan Lecklider 450f348925
Add make file-type "mk" to languages.toml (#2120) 3 years ago
EmmChriss 50df924811
gdscript support (#1985) 3 years ago
Jared Ramirez 460e6a857b
feat(languages): SQL (#2097) 3 years ago
Michael Davis 4836bb38d3 add tree-sitter-heex
HEEx is a templating engine on top of Elixir's EEx templating
language specific to HTML that is included in Phoenix.LiveView
(though I think the plan is to eventually include it in base
Phoenix). It's a superset of EEx with some additional features
like components and slots.

The injections don't work perfectly because the Elixir grammar is
newline sensitive (the _terminator rule). See
https://github.com/elixir-lang/tree-sitter-elixir/issues/24
for more information.
3 years ago
Michael Davis 9d095e0fdc add tree-sitter-eex
EEx is an templating language for Elixir. Since the incremental
parsing refactor we can used combined injections which allows us
to add EEx support.
3 years ago
Michael Davis 8c3c90198a update tree-sitter-elixir
The new revision handles a case that I come across often: a stab
clause (i.e. '->') with an empty right hand side:

    Enum.map(xs, fn x ->
    end)

The old version would parse the "end" token as an error.

This is technically valid syntax but more importantly it comes up
very often when editing, and the old revision would flicker between
the keyword highlight and the warning highlight.
3 years ago
Michael Davis 3d79c60a1f
Rewrite Language Support docs (#2065) 3 years ago
Michael Davis 494306ad7a
add tree-sitter-embedded-template (erb & ejs) (#2055)
After the incremental parsing rewrite for injections (which was released
in 22.03 https://helix-editor.com/news/release-22-03-highlights/#incremental-injection-parsing-rewrite),
we can now do combined injections which lets us pull in some templating
grammars. The most notable of those is embedded-template - a pretty
straightforward grammar that covers ERB and EJS.

The grammar and highlights queries are shared between the two but they have
different injections.
3 years ago
Kurenshe Nurdaulet 0b410b0a16
Add default language server for Vue (#2043) 3 years ago
unrelentingtech 7f461895b0
Add language server command for OCaml (#2035) 3 years ago
Aaron Housh 9caf7c0d5a
Add swift language (#2033) 3 years ago
Karl Grasegger 8e12fd5290
PHP roots and languageserver improvements (#2031)
Co-authored-by: Karl Grasegger <karl.grasegger@gebruederheitz.de>
3 years ago
David 61d1684a32
Add default language server for CSS (#2025) 3 years ago
David 22629ca211
Add default language server for JSON (#2024) 3 years ago
David b5efb9d66c
Add default language server for HTML (#2018) 3 years ago
Matthew Toohey 31c468ab95
add languages `r` and `rmarkdown` (#1998)
* add languages `r` and `rmarkdown`

* r: fix highlights

* rmarkdown: add eof in queries

* rmarkdown: update lang-support.md

* r: fix highlight query precedence
3 years ago
VuiMuich eb84d9493c
add language `ron` (#1925) 3 years ago
Lauri Gustafsson e4561d1dde
Add texlab language server for latex (#1922) 3 years ago
Michael Davis ffdc2f1793
separate JSX queries from javascript (#1921)
It looks like a24fb17b2a (and
855e438f55) broke the typescript
highlights because typescript

    ; inherits: javascript

but it doesn't have those named nodes in its grammar.

So instead we can separate out JSX into its own language and copy
over everything from javascript and supplement it with the new
JSX highlights. Luckily there isn't too much duplication, just the
language configuration parts - we can re-use the parser with the
languages.toml `grammar` key and most of the queries with `inherits`.
3 years ago
joezak11 deb7ee6595
Update bash tree sitter (#1917) 3 years ago
Blaž Hrastnik a24fb17b2a
Add JSX highlighting queries 3 years ago
Amine Hmida d0ff2ffd89
Add support for jsx (#1906)
* Add support for javascriptreact language

* Add support for jsx files
3 years ago
Michael Davis 7cd6050235 add tree-sitter-gleam 3 years ago
Michael Davis 1819478940 update tree-sitter-elixir
news:

- tree-sitter-elixir now powers Elixir syntax highlighting on github.com
- GitHub now supports code-navigation for Elixir repos via
  tree-sitter-elixir

changes:

- modules now use the `@module` highlight, which was added upstream to
  tree-sitter
    - it seems appropriate to use `@namespace` to follow helix convention
- added nullary range operator (e.g. `Enum.to_list(..) == []`), a new syntax
  for elixir 1.14
- a fix for stab clause nodes mis-highlighting when the right hand side of
  the stab clause contained multiple simple expressions
3 years ago
Michael Davis e2a50711d5 update tree-sitter-erlang
changes:

- typed fields within records which do not declare a default
  value are now correctly highlighted as record fields
- the EEP49 'maybe' form is now parsed
- fixes for highlights for 'begin' and 'after' tokens
3 years ago
Slin Lee 3e78b8fdad
Add syntax highlighting for Solidity (#1854) 3 years ago
Slin Lee 3c79bf5117
Add LSP support for Solidity (#1848)
* Add LSP support for Solidity

This requires a recent version of Solidity 0.8.11+

* Add Solidity to docs

* Update the docs
3 years ago
zetashift 7eb013c6fb
Initial basic Org markup support thanks to tree-sitter-org (#1845) 3 years ago
Michael Davis cfd992b151
update tree-sitter-git-commit (#1838)
changes:

- any text following a (scissors) is now contained in one (message)
    - this vastly improves performance on large verbose commits:
      no more slowness on huge commits
3 years ago
ChrHorn 0902ede7b1
simplify Julia config (#1811)
* simplify Julia config

* remove trailing whitespace
3 years ago
Aaron Housh 0712eb3e3b
Add csharp lsp support (#1788)
* add csharp lsp support

* remove hostPID

* update docs
3 years ago
Michael Davis 94203a97e5 update revision for tree-sitter-rescript
Looks like this was rebased a few hours ago and now the 789a171
revision no longer exists.
3 years ago
Michael Davis e01c53551d flake: use builtins.fetchTree to shallow-clone grammar repos
Here we perform a shallow fetch using builtins.fetchTree. In order
to make this work, we need to specify the `ref' for any repository
that doesn't have `master' as its default branch (I'm not sure why
this limitation exists since we don't need this when performing
the shallow fetch in `--grammar build')

This `ref' field is ignored by helix, so I have left it undocumented
for now, but I could be open to documenting it.
3 years ago
Michael Davis 4fc991fdec migrate grammar fetching/building code into helix-loader crate
This is a rather large refactor that moves most of the code for
loading, fetching, and building grammars into a new helix-loader
module. This works well with the [[grammars]] syntax for
languages.toml defined earlier: we only have to depend on the types
for GrammarConfiguration in helix-loader and can leave all the
[[language]] entries for helix-core.
3 years ago
Michael Davis c1f90a127b add tree-sitter sources to languages.toml
Here we add syntax to the languages.toml languge

    [[grammar]]
    name = "<name>"
    source = { .. }

Which can be used to specify a tree-sitter grammar separately of
the language that defines it, and we make this distinction for
two reasons:

* In later commits, we will separate this code from helix-core
  and bring it to a new helix-loader crate. Using separate schemas
  for language and grammar configurations allows for a nice divide
  between the types needed to be declared in helix-loader and in
  helix-core/syntax

* Two different languages may use the same grammar. This is currently
  the case with llvm-mir-yaml and yaml. We could accomplish a config
  that works for this with just `[[languages]]`, but it gets a bit
  dicey with languages depending on one another. If you enable
  llvm-mir-yaml and disable yaml, does helix still need to fetch and
  build tree-sitter-yaml? It could be a matter of interpretation.
3 years ago
Michael Daffin a76e94848a
Add terraform lsp support (#1726)
Using terraform-ls and enables auto-formate support. Also adds tfvars as an extra filetype.
3 years ago
Michael Daffin 93ec42d06e
Add support for HCL language (#1705)
Queries based on the neovims ones: https://github.com/nvim-treesitter/nvim-treesitter/tree/master/queries/hcl and modified for helix support.
3 years ago
Skyler Hawthorne a494f47a5d
Configurable auto pairs (#1624)
* impl auto pairs config

Implements configuration for which pairs of tokens get auto completed.

In order to help with this, the logic for when *not* to auto complete
has been generalized from a specific hardcoded list of characters to
simply testing if the next/prev char is alphanumeric.

It is possible to configure a global list of pairs as well as at the
language level. The language config will take precedence over the
global config.

* rename AutoPair -> Pair

* clean up insert_char command

* remove Rc

* remove some explicit cloning with another impl

* fix lint

* review comments

* global auto-pairs = false takes precedence over language settings

* make clippy happy

* print out editor config on startup

* move auto pairs accessor into Document

* rearrange auto pair doc comment

* use pattern in Froms
3 years ago