Commit Graph

315 Commits (2935e9da197442620578e07d87cd0607ae4145f1)

Author SHA1 Message Date
Eric Crosson 1c6bc6d455 feat: add tree-sitter-make
This commit adds syntax highlighting for GNU Make[^1] makefiles
via tree-sitter-make[^2].

[^1]: https://www.gnu.org/software/make/
[^2]: https://github.com/alemuller/tree-sitter-make
3 years ago
Owen Shepherd c238f20e1d Add fixity keywords to haskell's highlights.scm 3 years ago
Owen Shepherd 9eacbc1887 Upgrade haskell queries 3 years ago
Michael Davis b799b0d50e
capture markdown link text as markup.link.text (#1456) 3 years ago
Michael Davis a8fd33ac01
add tree-sitter-regex (#1362)
* add tree-sitter-regex

* adapt regex highlights from upstream

* inject regex into elixir sigil_r/2 and sigil_R/2

* generate lang-support docs

* capture interesting nodes in character-ranges

* make $.character_class captures more consistent

* fix fallthrough behavior for character classes

* capture pattern characters as 'string'

* use latest tree-sitter-regex

* set elixir regex injections as combined

* add link to upstream queries

* inject regex in rust into 'Regex::new' raw string literals
3 years ago
Philipp Mildenberger 66afbc9fff
Fix null and boolean constants in tree-sitter-nix highlights queries (#1428) 3 years ago
Sebastian Neubauer 5b1a628e81
Add textobjects and indents to c and cpp (#1293)
Indentation of single line statements doesn't work, i.e.

  for (;;)<hit enter>
leads to
  for(;;)
  <cursor here>

Only blocks with curly braces are indented.
3 years ago
Sebastian Neubauer 641255ccc8
Add llvm-mir highlighting (#1398)
* Add injection regex for more languages

To support embedding them in other languages like markdown.

* Add llvm-mir highlighting

LLVM Machine IR is dumped as yaml files that can embed LLVM IR and
Machine IR.

To support this, add a llvm-mir-yaml language that uses the yaml
parser, but uses different injections to highlight IR and MIR.

* Update submodule with fixed multiline comments

Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Triton171 4da050b4bb
Add basic indentation for languages without treesitter-based indentation rules (always use the indent of the current line for a new line). (#1341)
Fix several bugs in the treesitter indentation calculation.

Co-authored-by: Triton171 <triton0171@gmail.com>
3 years ago
Sebastian Neubauer 8f2af71340
Add LLVM TableGen highlighting (#1409)
Add a tree-sitter grammar and highlights for TableGen files.
TableGen and its grammar are described here:
https://llvm.org/docs/TableGen/index.html

Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Flakebi 0dab6c8c17 Fix markdown code-block highlighting
Markdown code blocks should be highlighted as a single block, so set
injection.include-children.
3 years ago
Michael Davis 8fda87af2b
add tree-sitter-git-rebase (#1402)
* add submodule on tree-sitter-rebase, add to languages

* add basic highlights query

* inject bash in execute statements

* update tree-sitter-rebase

* tree-sitter-rebase->tree-sitter-git-rebase

* get injection working with tree-sitter-git-commit

* set scope under source.gitrebase

* unset include-children on commit message injections

* Revert "unset include-children on commit message injections"

This reverts commit 2ecee155ea.

* fix generated language docs

* use rebase_command scopes from tree-sitter-git-commit
3 years ago
Michael Davis bcf3808e97
Add tree-sitter-git-diff (#1373)
* add submodule on tree-sitter-git-diff

* add git-diff highlights

* inject git-diff into git-commit

* update tree-sitter-git-commit with fix for bad diff case

* add git-diff to language support docs

* include-children in diff injections

This ensures that children nodes of $.message are included in the
injection, such as $.user or issue/pr numbers. Without this change,
diffs containing '#' or '@' characters can trip up the injection and
be parsed separately.

See https://github.com/helix-editor/helix/pull/1373#issuecomment-1001215629

* set diff language's scope as source.diff
3 years ago
Sebastian Neubauer 8c29b76bcc
Improve llvm highlighting and queries (#1388)
* Improve llvm highlighting and queries

The llvm tree-sitter parser was updated to support scopes and more
accurate highlighting.

* Group highlight expressions better
3 years ago
Stuart Hinson 7001665342
Add ruby indents (#1372)
* Add ruby indents

* Include ruby in generated docs
3 years ago
Michael Davis 6af0d51dc5 highlight rebase-commands as markup.raw 3 years ago
Michael Davis c3fb86cbaa tree-sitter-gitcommit->tree-sitter-git-commit 3 years ago
Michael Davis 28c9afdd0e add commented-out diff and rebase injection queries 3 years ago
Michael Davis 78f93239b5 add gitcommit highlights 3 years ago
Sebastian Neubauer ec878e4011
Add textobjects and indents to cmake (#1307) 3 years ago
Stuart Hinson bb684a2b42
Typo fix in ocaml indents.toml (#1342) 3 years ago
Gokul Soumya a8618cf111
Add precise rust queries for use, mod, as (#1339)
- Differentiates between `as` keyword as a binary type cast
  operator and import renamer.
- `mod` and `use` are now under `@keyword.control.import`,
  but `mod` is a `@keyword` if used as `mod name;`.
3 years ago
Midnight Exigent dba22c60ed
Support dockerfiles (#1303)
* allow language.config (in languages.toml) to be passed in as a toml object

* Change config field for languages from json string to toml object

* remove indents on languages.toml config

* fix: remove patch version from serde_json import in helix-core

* Use same tree-sitter-zig as upstream/master

* fix(completion_popup): Fixes #1256

* Update helix-term/src/ui/completion.rs

* feat(languages): Add support for `Dockerfile`s

* docs(cargo-xtask-docgen):

* improvement(langs-dockerfile): Add `injection-regex` to `languages.toml` for
`Dockerfile`

* improvement(langs-dockerfile): Add injections.scm

* Update .gitmodules

Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Sebastian Neubauer 205dc8776b
Add fish highlighting (#1308)
The highlights were copied and modified from
https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/fish/highlights.scm
3 years ago
Gokul Soumya f1c634326b
Improve rust syntax highlighting (#1295)
- Highlight fragment specifiers (expr, tt, in macro
  definitions) with @type.
- Highlight attributes as macros
3 years ago
Sebastian Neubauer 23091c9d29
Highlight comments in c, cpp, cmake and llvm (#1309)
Also, reuse the c injections in glsl
3 years ago
Michael Davis e72786df8e
Add tree-sitter-comment (#1300)
* Add tree-sitter-comment

Fix #1164

* fix precedence in tree-sitter-comment highlights

connects https://github.com/helix-editor/helix/pull/1170

* set injection-regex for comment language

* remove comment filetype

* fix comment injections for neovim-style injections tags

* add comment injections for elixir

* remove f.comment

* fix spacing in .gitmodules

* run 'cargo xtask docgen'

Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Gokul Soumya 7c01d92653 Add link and quote queries for markdown
- Rename markup.underline.link to markup.link.url
- Add markup.link.label
- Add markup.quote

(The constructor theme scope was missing from the
docs, so unrelated to this commit).
3 years ago
Gokul Soumya d52eda5d1b
Improve yaml syntax highlighting highlighting (#1294) 3 years ago
Luke Jones edf3c70c30
Add dart lsp config and queries (#1250)
* Add language: dart

The setup requires that dart be in the users path, such as:
```
export PATH="$HOME/Android/flutter/bin/cache/dart-sdk/bin/:$PATH"
```

Refactor the dart highlights

* lang: dart: add indents and locals

* lang: dart: corrections to local scope

Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Oliver Hechtl 0683f0a20a
Add scala syntax highlights (#1278)
* add partial scala syntax highlights

* ran cargo xtask docgen

* updated tree-sitter-scala, fixed highlights

* fix comments

* move identifier to the end of the highlights

* add indents
3 years ago
Blaž Hrastnik 5d91335d6b Fix more highlight scopes 3 years ago
Blaž Hrastnik 9c484e88cf highlights: @include -> @keyword.control.import 3 years ago
Blaž Hrastnik 78b6155292 Partly fix julia's locals.scm 3 years ago
ath3 a8060c06d1
Add indents.toml to perl (#1280) 3 years ago
Blaž Hrastnik ac4b72fcc8 Add injections query for markdown 3 years ago
Blaž Hrastnik 40969ad452 Partly fix latex highlights and add markup scope docs 3 years ago
Blaž Hrastnik 49e0678741 Add markdown grammar
Fixes #215
3 years ago
Kirawi 6f1a7b1220
Add llvm grammar (#1167) 3 years ago
Kirawi 4ec20eaeff
Add language support for WGSL (#1166) 3 years ago
Mateusz S. Szczygieł e0540fbcc4
Add json indents.toml file (#1055)
* add glsl language support

* glsl: use indents.toml file

* add json indents.toml
3 years ago
Mateusz S. Szczygieł 3f0345ff58
glsl support (#993)
* add glsl language support

* glsl: use indents.toml file
3 years ago
ath3 30744646cb
Perl support (#978) 3 years ago
Kirawi ee889aaa85
Updated tree-sitter query scopes (#896)
* updated theme scopes

variable.property -> variable.field
property -> variable.field

* updated theme scopes

* update book and themes

updated book and themes to reflect scope changes

* wip

* update more queries

* update dark_plus.toml
3 years ago
Daniel Poulin 9e247bf6ee Add indents definition based on the one from nvim-treesitter 3 years ago
Houkime a1c7e55e3b
update cpp queries (#930)
Co-authored-by: Houkime <>
3 years ago
Michael Davis 7e6ade9290 fix: string.regex{=>p} 3 years ago
Michael Davis bf20e51044 use punctuation.special for interpolation #{ } 3 years ago
Gokul Soumya 4ee92cad19
Add treesitter textobjects (#728)
* Add treesitter textobject queries

Only for Go, Python and Rust for now.

* Add tree-sitter textobjects

Only has functions and class objects as of now.

* Fix tests

* Add docs for tree-sitter textobjects

* Add guide for creating new textobject queries

* Add parameter textobject

Only parameter.inside is implemented now, parameter.around
will probably require custom predicates akin to nvim' `make-range`
since we want to select a trailing comma too (a comma will be
an anonymous node and matching against them doesn't work similar
to named nodes)

* Simplify TextObject cell init
3 years ago
ath3 787ba4f233
CMake support (#888) 3 years ago
Blaž Hrastnik a03b12530c
Merge pull request #830 from the-mikedavis/official-elixir-tree-sitter
prefer elixir-lang/tree-sitter-elixir
3 years ago
WindSoilder bb011f9fb2
Add indents for python, but it's not perfect. (#837)
* add indents for python, but it's not Perfect

* add last line
3 years ago
Michael Davis 4d8eb09b7c
scope arities in captures as operators 3 years ago
Michael Davis 80b54f2f69
use special.string.symbol instead of symbol
this aligns better with how ruby highlights symbols
3 years ago
Michael Davis 8f658f0dce
use latest tree-sitter-elixir with 'not in' query support
connects https://github.com/elixir-lang/tree-sitter-elixir/issues/9
3 years ago
Michael Davis 4771cc7ee4
align highlight scopes with documented scopes 3 years ago
Michael Davis c502cafecc
highlight calls to erlang modules as types
connects https://github.com/elixir-lang/tree-sitter-elixir/pull/5
3 years ago
Michael Davis b2655a7f5c
add LICENSE snippet at elixir hightlights top 3 years ago
Michael Davis 95ab40d171
use the warning type for tree-sitter ERRORs 3 years ago
Michael Davis 5db248cc1c
describe atoms as tags 3 years ago
Michael Davis d1b434d230
add highlights query from elixir-lang/tree-sitter-elixir 3 years ago
Michael Davis e216e9621e
Enable c-sharp language and highlights (#861) 3 years ago
Michael Davis be428a295a
fix digit escapes in java & php highlights (#846) 3 years ago
Michael Davis e069fb9dea
Add highlight support for tree-sitter-query language (tsq) (#845)
* add submodule on tree-sitter/tree-sitter-tsq

mark tsq submodule as shallow

* add tree-sitter-tsq to languages

* add highlight queries for tsq

* Update .gitmodules

Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Thomas Wehmöller a7f49fa56f
Add Vue tree sitter grammar (#787)
*  Add vue tree sitter support

* Update .gitmodules

Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
voroskoi 0e06c10d8c
Zig tree-sitter rework (#811)
- update tree-sitter-zig subproject
- use highlights.scm from upstream, just use helix scopes
- update indents.toml, this one actually works
3 years ago
Raphael Megzari b2195e08b5
languages: add svelte support (#733)
* languages: add svelte support

* languages: add svelte injections
3 years ago
cbarrete 394cc4f30f
Update ledger treesitter injections (#732)
Co-authored-by: Cédric Barreteau <cbarrete@users.noreply.github.com>
3 years ago
Blaž Hrastnik 4cc562318a Improve docs, fix up a few highlight scopes 3 years ago
Blaž Hrastnik 4ac29434cb syntax: Add go & rust locals, improve tree-sitter error message 3 years ago
Blaž Hrastnik 2bef245b7a At least partly highlight tsx 3 years ago
Blaž Hrastnik d85a8adb27 Improve highlighting scopes 3 years ago
Blaž Hrastnik 9b9c3c77f8 runtime: Query improvements 3 years ago
Blaž Hrastnik ade1a453ef syntax: Improve go highlights 3 years ago
Blaž Hrastnik a6108baec9 Improve grammar definitions 3 years ago
oberblastmeister 5766f5da8f
OCaml support (#666)
* added some stuff

* add interface

* indent

* highlights and locals

* scope

* change some stuff

* add indents

* fix blanket highlight

* macro

* use inherits
3 years ago
oberblastmeister ae3f936611
Lua support (#665)
* added submodule

* small changes

* updated some stuff

* remove

* shallow clone

* correct indent

* shallow

* ok

* highlights

* proper captures
3 years ago
oberblastmeister 1586b0eec7
YAML support (#667)
* added submodule

* remove wrong one

* added highlights

* use property

* add indents

* shallow
3 years ago
voroskoi f22e0aa2ae
Add zig tree-sitter support (#631)
* Add initial zig tree-sitter support

* zig/highlights.scm: remove unnecessary queries

* Add zig/indents.toml
3 years ago
Yusuf Bera Ertan ac8bc54108 fix: add missing optional keyword to protobuf syntax 3 years ago
Blaž Hrastnik 466528c493 Golang indent improvements 3 years ago
Yusuf Bera Ertan 2f42b2338e feat: add indenting for protobuf 3 years ago
Yusuf Bera Ertan 4b45f27a13 feat: add protobuf tree-sitter parser with highlighting queries 3 years ago
oberblastmeister 098b6b6eed
gruvbox theme changes (#594)
* changed some gruvbox highlights

* more stuff including cursors

* use property instead

* use variable.property
3 years ago
Ivan Tham aaccc9419a
Add ledger tree-sitter (#572)
Might need to update later since the current one highlight does not
work very well yet.
3 years ago
Kirawi b239f0f45f
add java highlighting (#448) 3 years ago
Blaž Hrastnik e2c3547f26 Improve nix indents 3 years ago
Blaž Hrastnik 29cefa1be8 rust: Indent multi line call expressions one level deeper 3 years ago
Blaž Hrastnik f24007b30f Improve rust indentation queries
if/if let are already handled by block, and keeping these scopes would
indent else blocks one level too far.
3 years ago
Kirawi 084a8a9522
Rewritten Rust `highlights.scm` (#425)
* rewrote Rust highlights.scm

* wip

* wip

* wip

* wip

* fixed type highlighting

* wip

* rewrite again

* moved operators

* missing newline

* missing newline

* update book

* fix constructor highlighting

* fix constructor highlighting

* fix const highlighting

* better constructor highlighting

* remove dup, bug was my locals.scm file

* fixed docs

* merge

* fixed for highlighting

* add yield

* remove yield

* added yield back

* fixed yield highlighting

* unecessary
3 years ago
Kirawi c7aa7bf4ba
VSCode Dark+ Theme (#414)
* wip

* Add VSCode Dark+ Theme

wip

wip

wip

wip

wip

wip

properly detect constants

add bool

wip

* suggestion

* add variant for c/c++

* fix hexcode error

* removed regex highlight

* fixed constant higlighting

* wip

* add space

* add suggestions

* update theme

* update book

* suggestions

* fix c/c++ enum

* update book
3 years ago
wesh aa70362d20 Add julia support (LSP not working) 3 years ago
Ivan Tham a364d6c383 Add latex 4 years ago
Timothy DeHerrera d8df10f295 Add Nix runtime 4 years ago
Corey Powell 35feb614b6 Updated elixir queries to fix crash 4 years ago
Corey Powell 01dd7b570a Restored haskell syntax
It seems to work
4 years ago
notoria f3a243c6cb Rust: Highlight crate namespace, categorize `mut` 4 years ago
notoria b2b2d430ae Rust: Add keyword `async`, match the entire macro 4 years ago
Corey Powell ca042a4bde Added elixir syntax
Using custom fork for now to get around generating the source files
4 years ago
Blaž Hrastnik c2e6b9f506 Add typescript support & ts/js indentation queries 4 years ago
Blaž Hrastnik 8fd8006043 Golang indent queries 4 years ago
Blaž Hrastnik aeabfc55a8 Adjust golang indents yet again 4 years ago
Blaž Hrastnik 67b037050f Adjust rust indents 4 years ago
Blaž Hrastnik a28eaa81a0 Golang indent adjustment 4 years ago
Blaž Hrastnik 094203c74e Update deps, introduce the new tree-sitter lifetimes 4 years ago
Blaž Hrastnik 9edae7e1f8 syntax: golang: Indent type declarations 4 years ago
Blaž Hrastnik 6e03019a2c Adjust highlighting for rust. 4 years ago
Blaž Hrastnik 31d41080ed Add indentation queries for golang. 4 years ago
Blaž Hrastnik 4a9d1163e0 Hacky way to specify indent scopes per language via toml configs.
Can't do it via a scm query nicely because it returns an iterator over
all the matches, whereas we want to traverse the tree ourselves.

Can't extract the pattern data from a parsed query either.

Oh well, toml files for now.
4 years ago
Blaž Hrastnik 77db3599ba Fix C highlighting inconsistencies. 4 years ago
Blaž Hrastnik 305a059f58 Highlight metavariables ($var) inside rust macros. 4 years ago
Blaž Hrastnik dfb1ae2d33 Rust: Highlight 'crate' as a keyword. 4 years ago
Blaž Hrastnik 4e31d1521b Add tree-sitter queries. 4 years ago
Blaž Hrastnik 61872de6c0 queries: rust: highlight number constants correctly. 4 years ago
Blaž Hrastnik 71c06c11cb Import tree sitter queries. 4 years ago