Commit Graph

690 Commits (super)

Author SHA1 Message Date
Galen Abell 581a1ebf5d
Add glob file type support (#8006)
* Replace FileType::Suffix with FileType::Glob

Suffix is rather limited and cannot be used to match files which have
semantic meaning based on location + file type (for example, Github
Action workflow files). This patch adds support for a Glob FileType to
replace Suffix, which encompasses the existing behavior & adds
additional file matching functionality.

Globs are standard Unix-style path globs, which are matched against the
absolute path of the file. If the configured glob for a language is a
relative glob (that is, it isn't an absolute path or already starts with
a glob pattern), a glob pattern will be prepended to allow matching
relative paths from any directory.

The order of file type matching is also updated to first match on globs
and then on extension. This is necessary as most cases where
glob-matching is useful will have already been matched by an extension
if glob matching is done last.

* Convert file-types suffixes to globs

* Use globs for filename matching

Trying to match the file-type raw strings against both filename and
extension leads to files with the same name as the extension having the
incorrect syntax.

* Match dockerfiles with suffixes

It's common practice to add a suffix to dockerfiles based on their
context, e.g. `Dockerfile.dev`, `Dockerfile.prod`, etc.

* Make env filetype matching more generic

Match on `.env` or any `.env.*` files.

* Update docs

* Use GlobSet to match all file type globs at once

* Update todo.txt glob patterns

* Consolidate language Configuration and Loader creation

This is a refactor that improves the error handling for creating
the `helix_core::syntax::Loader` from the default and user language
configuration.

* Fix integration tests

* Add additional starlark file-type glob

---------

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
10 months ago
Matouš Dzivjak d137a08231
feat(languages): pkl (#9515)
* feat(languages): pkl

Add [pkl](https://github.com/apple/pkl) language.
Official documentation: https://pkl-lang.org/

* remove branch indent
10 months ago
Tobias Hunger a1272bdb17
slint: Update treesitter parser and queries (#9551)
* slint: Update treesitter parser and queries

* slint: Port over suggestions from nvim review
10 months ago
zetashift 6e3ed7f0fa
Update Unison tree-sitter grammar for type changes and add indent queries (#9505)
* Update Unison tree-sitter grammar for type changes

* Add indent queries for Unison

* Improve Unison indent queries
10 months ago
Novus Nota d1054de3ce
feat: Add `Tact` language support (#9512)
Re-submitting
10 months ago
Devyn Cairns 3f380722fb
Update grammars for Nushell to rev 358c4f50 (#9502) 10 months ago
sogaiu f5b67d9acb
Use janet-simple grammar for Janet (#9247)
* 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>
10 months ago
Poliorcetics 0d09fb4f55
lang(git-ignore): add `helix/ignore` to git-ignore file types (#9447) 10 months ago
blinxen 2661e05b34
Update some grammars to a commit where the license file is included (#9279)
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
10 months ago
Idobenhamo 299bcce481
Update Typst Tree-Sitter grammar (#9403)
Co-authored-by: Idobenhamo <idobenhamo@users.noreply.github.com>
10 months ago
Boris Verkhovskiy 7d7ace551c
Highlight .bash_history as bash (#9401) 10 months ago
Jaakko Paju 9ed3dc52e0
Update Scala tree-sitter grammar (#9348)
* Update Scala tree-sitter grammar

* Support block comments

Modify comment handling in textobjects and highlights to support new TS-scala node type 'block_comment'
10 months ago
Jeremy Brudvik f41727cc9c
Support PureScript's new spago.yaml configs (#9362) 10 months ago
Michael Davis 17dd102e5c
Remove sourcehut tree-sitter grammars from default build (#9316)
Sourcehut has outages occasionally that cause the CI and from-source
builds to fail. It also doesn't setup redirects when a user renames
themselves, so if a user that publishes a tree-sitter grammar we use
changes their sourcehut name then it breaks the build and any prior
builds using that grammar.

For now let's remove them from the default build. It's a bandaid over
a larger reliability and trust problem with the grammar repositories
but it should fix the build for now.
11 months ago
Kirawi 7af78c7788
update comment grammar (#9253) 11 months ago
Greedwolf DSS 918bd9c2b0
feat: update wren tree-sitter grammar (#8544)
Co-authored-by: masai.dss <masai.dss@bytedance.com>
11 months ago
Jaakko Paju a32d537d0a
Add HOCON language support (#9203)
* 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>
11 months ago
petrak@ 7e389b67c2
Add auto-pairs to scheme language support (#9232)
Currently, typing a single quote in a `.scm` file "helpfully" auto-
completes a closing quote. This is because there is no auto-pairs
section in the languages.toml. This commit adds that.
11 months ago
Jaakko Paju a6ed104ea2
Add .prettierrc to json file types (#9214) 11 months ago
Pascal Kuthe 8653e1b02f Add config to mark diagnostic sources as persistent 11 months ago
romi ab50299efa
Add .glif to XML file-types (#9130)
`.glif` files are standard files in the type design industry. From the
Unified Font Object specification website:

The Glyph Interchange Format (GLIF) is a simple and clear XML
representation of a single glyph. GLIF files typically have a .glif
extension.
https://unifiedfontobject.org/versions/ufo3/glyphs/glif/
11 months ago
Evan Richter a98b8ddd1a
add smali language support (#9089) 11 months ago
Lucas Wagler 970f9e6333
Add Avro schema file support (#9113) 11 months ago
0rphee 0a83d85124
Add haskell-language-server as lsp for cabal files (#9111) 11 months ago
JJ c56cd6ee8b
Add support for Agda (#8285)
* 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>
11 months ago
Matthew Toohey 11856329bf
Change R markdown language name to fix language server detection (#9012) 11 months ago
Phil b4571c292e
Add initial support for janet-lang (#9081)
* Add initial support for janet-lang

* Use default roots for janet-lang
11 months ago
Michal Rostecki c2591445c9
chore: Update tree-sitter-d (#9021)
One of the included changes is gdamore/tree-sitter-d#22 which
fixes the build of Helix when using clang as `CC`.
12 months ago
Frederick Schwalbe c3cb1795bf
Update gleam grammar and queries (#9003) 12 months ago
Manuel Mendez 9fcfb88132
Add .envrc.local and .envrc.private to env file-types (#8988) 12 months ago
Skyler Hawthorne fcd564fddf
upgrade tree-sitter-python (#8976)
supports new syntaxes from Python 3.12
12 months ago
Nan Zhong 466b87c8e5
languages: update rescript grammar (#8962)
This bump fixes a build failure of the grammer with clang.
12 months ago
Tudyx f8d261cd20
add log tree-sitter (#8916)
* add log tree-sitter

* better highlight queries
1 year ago
A-Walrus 0739d13b03
Add musicxml to xml extensions (#8935) 1 year ago
Blaž Hrastnik 6d168eda27
fix CI: tree-sitter-gemini user renamed 1 year ago
ghashy ff095ebd9b
DBML Language support (#8860)
* 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>
1 year ago
Ethan Brierley f1b9c19fa9
add LSP for nushell (#8878) 1 year ago
Dan Field b306b25e82
GN language support (#6969)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
1 year ago
blinxen 39aa6fa646
Update some grammars to a commit where the license file is included (#8691) 1 year ago
Michael Davis 69a0df929a Remove 'roots' keys with default value from languages.toml 1 year ago
blt__ 172ef2fa9f
Highlight meson_options.txt as a meson file (#8794) 1 year ago
Triton171 cb0bc25a9f
Add indent queries for scheme (and reuse them for common-lisp & racket). (#8720) 1 year ago
postsolar a98ad137f9
Update PureScript grammar (#8712) 1 year ago
MDeiml 2fddc2a4fc Update markdown grammar to v0.1.6 1 year ago
cgahr 5c325fe342
replace kdl tree-sitter to fix highlighting (#8652)
* replace kdl tree-sitter

* kdl: adopt highlights for new tree-sitter

* kdl: add indent queries

* kdl: add textobjects

* kdl: improve syntax highlighting

* kdl: update lang-support

* kdl: make indents more concise

---------

Co-authored-by: Constantin Gahr <constantin.gahr@ipp.mpg.de>
1 year ago
Angus Dippenaar 44e03fa414
add golangci-lint-langserver (#8656)
* languages add golangci-lint-langserver

* update docs
1 year ago
Gabriel Dinner-David 4f1d414d9c
switch to tree-sitter-ron (#8624) 1 year ago
Frans Skarman 9eec9adb8f
Add LPF tree sitter (#8536)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
1 year ago
Alexander Brevig 2906660119
Add typst language and lsp (#7474)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
1 year ago
rsteube 764715a6c0
languages: add templ (#8540) 1 year ago
Ryan Mehri 814cf177d4
bump tree-sitter-haskell and update queries (#8558) 1 year ago
NomisIV 1ef7f24dae
Update purescript-tree-sitter grammar (#8527) 1 year ago
Kasper Juul Hermansen 5cb76e74f9
add lsp for graphql (#8492)
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>
1 year ago
DS/Charlie 96bbfb7c2e
bump tree-sitter-sql (#8464)
* bump tree-sitter-sql

* update highlights classes to helix flavour

* replace lua-match with match
1 year ago
Laurent Wandrebeck bdf7937a59
Add ansible-language-server for yaml (#7973)
* Update languages.toml

Add ansible support to yaml.

* cargo xtask docgen
1 year ago
DS/Charlie 93e54fa0c8
add support for json5 (#8473)
* add json5 language

* docgen
1 year ago
David Else 68fce3e160
Add tailwindcss language server (#8442) 1 year ago
David Else 0e13db2832
Add validation to CSS and JSON language servers (#8433) 1 year ago
Yoav Lavi 893802d5a2
Add VSCode file associations (#8388)
* Add VSCode file associations

* Update languages.toml

Co-authored-by: Robert Clover <robert@clover.gdn>

* Change cpp *.in files to suffixes

---------

Co-authored-by: Robert Clover <robert@clover.gdn>
1 year ago
Ken Micklas 0c879d4edc
Add shebangs for Makefiles (#8410)
For example, this is standard for Debian rules files: https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#defaultrules
1 year ago
nerohd 0252c7b162
add polkit rules files to javascript detection (#8370) 1 year ago
nerohd 7702e130ba
add polkit policy files to xml detection (#8369)
polkit policy files are just xml files, https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html for more info
1 year ago
zefr0x 842687e845
Add `.webmanifest` as supported JSON files (#8342)
Closes #8310
1 year ago
NomisIV cb39242783
Use Maskhjarnas tree-sitter-purescript (#8306) 1 year ago
Yoav Lavi ca9a7d506e
add .babelrc highlighting (#8309) 1 year ago
Yoav Lavi 8b076e3851
Add `.editorconfig` highlighting as INI (#8308) 1 year ago
Yoav Lavi 0e556484b7
Add JSON highlighting for `flake.lock` files (#8304) 1 year ago
Cyrill Schenkel 941dc6c614
add GNU assembler (gas) support #8291) 1 year ago
Bannerets e4ba237258
Disable auto-pairing ` in OCaml (#8260) 1 year ago
Blaž Hrastnik 95e994ab38
Add more shebangs to languages 1 year ago
Jesse Luehrs 81d6d3ff0e
re-add indent and textobject queries for perl (#7947)
* 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
1 year ago
Alexis Mousset 829db76563
Add feed-related formats as xml (#8232) 1 year ago
Ross Manchester 0d986fce76
chore: add additional ignore file highlights (#8220)
* chore: add additional ignore file highlights

Various files use the same syntax highlighting as `.gitignore` and
similarly tell different tools what files/folders to ignore. Update the
languages file so that other ignore type files use the same highlighting
as gitignore. The files added are:

- `.ignore`
- `.prettierignore`
- `.eslintignore`
- `.npmignore`

* chore: add highlighting for codeowners files

Add `CODEOWNERS` as an additional file type for `git-ignore` in the
language file. `CODEOWNERS`'s grammar is close enough to that of
`.gitignore`, this can be used to avoid making a new grammar
specifically for `CODEOWNERS` files.
1 year ago
Jaden 528a5e3aff
Update EdgedDB (ESDL) grammar (#8222) 1 year ago
Ivan Molodetskikh 9d7f66574d
Update tree-sitter-blueprint (#8161) 1 year ago
Michael Davis 072e1eae92
Update tree-sitter-gleam, enable auto-format (#8085) 1 year ago
sigmaSd 992c858369
chore: update strace tree sitter grammar (#8087) 1 year ago
Álan Crístoffer 9f843e4f56
highlight(matlab): bumps grammar after some improvements (#8040) 1 year ago
Sol Fisher Romanoff aeaeb09f48
add gemini language support (#8070) 1 year ago
David Else c9694f680f
Add ltex-ls language server (#7838) 1 year ago
David Else 454b61cb21
Update pyright config to avoid time-outs (#8032) 1 year ago
kaashyapan 75342968e2
update fsharp tree-sitter (#8024) 1 year ago
Tomas Sandven 18a79aa3bf
Update tree-sitter-robot (#7970)
* 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>
1 year ago
David Bell 567eda88ef
add .star as starlark file extension (#7922)
In addition to the other defined extensions, `.star` is a frequently used extension for starlark files. This can be demonstrated through a cursory search of github for files ending in `.star` here: https://github.com/search?q=path%3A%2F.star%24%2F&type=code
1 year ago
sigmaSd cbfe8eef89
add strace highlighting (#7928)
* feat: add strace tree sitter

* f
1 year ago
N 7b2f3f533c
Recognize more filenames for zsh (#7930)
Including `zshrc` et al. since this is convention in dotfiles repos
1 year ago
Erasin Wang 19dff5c3a4
Update slint grammar (#7893) 1 year ago
Noob Zhang b0c270f8e6
Added some LSP servers and updated python's roots (#7897)
* Add csharp-ls for possible c-sharp LSP

See https://github.com/razzmatazz/csharp-language-server for more info
about it.

* Add pyright for possible python LSP

It may be prefered than pylsp by someone.
According to https://github.com/helix-editor/helix/issues/5479, I don't
make it default for everyone. Just for people who need this.

* Update roots of python

Using some known filenames to detect correct project root.

* Add pylyzer for possible python LSP

Co-authored-by: zetashift <rskaraya@gmail.com>

---------

Co-authored-by: zetashift <rskaraya@gmail.com>
1 year ago
Jesse Luehrs 2caca1c4e9
Add pod highlighting (#7907) 1 year ago
Ivan Isekeev 57f093d836
Jinja language family syntax support (#7233)
* feat: add jinja language support

* feat: add nunjucks language support

* feat: add to lang support book jinja and nunjucks languages
1 year ago
Jan9103 c0eae84073
feat: add todo.txt tree-sitter (#7835) 1 year ago
Artemiy 1077630834
Update tree-sitter grammar for nu (#7873)
* 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
1 year ago
zetashift 294aa669a2
Add Unison support (#7724) 1 year ago
woojiq 7cda5b8592
build(tree-sitter): update javascript, typescript and tsx (#7852)
* 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.
1 year ago
Michael Davis d6c799fb30
Update tree-sitter-git-commit (#7831)
This fixes a problem parsing the "On branch _branch_" part of the
commit comment when the branch contains a slash.
1 year ago
Blaž Hrastnik 57071513a8 Only use tsq for tsq files
This makes our highlight files more plain but it correctly highlights
scheme :/
1 year ago
Blaž Hrastnik 979933b514 Update tree-sitter-scheme 1 year ago
woojiq 1d189820a1
feat(indent): add basic java indentation queries (#7844) 1 year ago
Jummit f19793c2f8
Improve wren support (#7819) 1 year ago
Christoph Sax 5a51036bc1
Update t32 language queries to version 2.2.1 (#7811)
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>
1 year ago
J. Brock 286e44050d
Bump the version of Hare's grammar (#7784) 1 year ago
voroskoi bc737404e8
Update tree-sitter-zig (#7803) 1 year ago
Jimmy Zelinskie 325692a154
languages: add protobuf language servers (#7796)
* languages: add bufls protobuf language server

* languages: add pbkit protobuf language server
1 year ago
lydiandy 57952c46a4
replace new lsp for vlang (#7760)
* 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>
1 year ago
Mateusz S. Szczygieł 13e7edab19
Register .gltf file type for JSON (#7781) 1 year ago
Matthias Q 224fd5fa29
feat: update prql parser (#7771) 1 year ago
Jummit 9a4890f62b
Add wren support (#7765) 1 year ago
Jesse Luehrs e7f60611ac
switch to https://github.com/tree-sitter-perl/tree-sitter-perl (#7644) 1 year ago
Doug Kelkhoff 79a8fd6249
Add a more file types for R (#7633) 1 year ago
kaashyapan 2ace6032e7
Add fsharp language support (#7619) 1 year ago
Michael Goodness 86bf0e00fe
feat: add Brewfile to Ruby file-types (#7629) 1 year ago
Erasin Wang 2cb00bcbc4
Support inlay-hints for svelteserver. (#7622) 1 year ago
Jeppe Christiansen bc4f08febf
Update Typescript, TSX and Svelte grammar, to latest tag (#6874)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
1 year ago
Arian Dehghani a5f7190614
Register systemd files as ini (#7592) 1 year ago
Jorge Santiago 9259c52606
Add shebang for nushell files (#7606) 1 year ago
Queyrouzec f68956a306
Update dart commit in languages.toml (#7576) 1 year ago
Borys Lykah 7c338429f8
Add language support for persistent library syntax (#7261) 1 year ago
Gammut 607b426e26
Refactor queries for ecma based languages (#7207) 1 year ago
Álan Crístoffer 550192826b
highlight(matlab): Better UTF-8 handling. (#7532) 1 year ago
Erin van der Veen 3fb430257e
Update Nickel grammar (#7551) 1 year ago
Álan Crístoffer 457b389395
highlight(matlab): Many bug fixes and improvements (#7511) 1 year ago
Chris Heyes aec1b997dd
Add .cppm file type to cpp language configuration (#7492) 1 year ago
Álan Crístoffer 78505e0149
Update tree-sitter-matlab (#7491) 1 year ago
Álan Crístoffer 08c0a23b79
highlight(matlab): Bumps tree-sitter-matlab commit. (#7442) 1 year ago
Álan Crístoffer 2c5288dafb
Replace MATLAB grammar (#7388) 1 year ago
LeoniePhiline 48ad9ae1bb
highlight(sql): Update tree-sitter-sql to `98a7fc9` (#7387)
* highlight(sql): Update tree-sitter-sql to 92018a3

* highlight(sql): Update tree-sitter-sql to 98a7fc9
1 year ago
Alexander Brevig b4fe31cad6
Add forth-lsp and update tree-sitter-forth (#7334)
* feat: add forth lsp and update tree sitter

* fix: update highlights
1 year ago
Ivan Svoboda df094909d1
Webc language support (#7290)
* feat: add webc language support

* feat: add to lang-support book webc
1 year ago
Selwyn 18e07addfd
Use Vue language server based on Volar (#7312) 1 year ago
Vitalii Solodilov a981a2525d
Support core mode for delve debugger (#7300) 1 year ago
Dimitri Sabadie 31b8b728a2
Fix C++ queries and update tree-sitter-cpp (#7285) 1 year ago
Christoph Sax d324feb072
Add support for language t32 (#7140)
Co-authored-by: Christoph Sax <christoph.sax@mailbox.org>
1 year ago
blt__ ba691f4fb0
Fix verilog grammar source repo and revision (#7262) 1 year ago
Alexander Brevig 78e8695420
Add support for Forth (#7256) 1 year ago
Tobias Clasen 71688a387b
Recognize 'make' file-type as Makefile (#7212) 1 year ago
Ivan Tkachuk 2022e6175b
Add blueprint language (#7213)
* Add blueprint tree-sitter support

* Add blueprint lsp support

* Run cargo xtask docgen
1 year ago
zetashift 92380540b8
chore: update scala tree-sitter grammar (#7147)
* chore: update scala tree-sitter grammar

* Add locals.scm for Scala
2 years ago
yvt 3a8592abdb
feat(languages): recognise `.gir` as XML (#7152) 2 years ago
Jimmy Zelinskie b107814e39
languages: add .zimrc to bash filetypes (#7146) 2 years ago
William Etheredge a2e11af608
Support hidden justfiles (#7088) 2 years ago
Brandon Sprague 16375cd94a
Treat 'Vagrantfile' files as Ruby code (#7112)
`Vagrantfile`s are configuration files for the [vagrant](https://www.vagrantup.com/) tool, and they are written in Ruby. Even as vagrant [is ported to Go](https://www.hashicorp.com/blog/toward-vagrant-3-0), `Vagrantfile`s [will be written in Ruby](https://developer.hashicorp.com/vagrant/docs/experimental/vagrant_go)

When a Vangrantfile is created, it starts with these lines:

```
```

But since Helix (quite reasonably) doesn't change editor behavior based on file contents, adding this to `languages.toml` seems like a reasonable way to get this functionality.
2 years ago
Viktor Kleen 0c21c227e1
Update languages.toml for Nickel (#7059) 2 years ago
Blaž Hrastnik 591629ec11
fix compilation 2 years ago
Blaž Hrastnik c6d1430243
Drop old cairo grammar, alias to rust for now 2 years ago
yvt 16e0340b4a feat(languages): recognise `Cargo.lock` as TOML 2 years ago
Chris d3cca0f357
Recognise XAML files as XML (#7083) 2 years ago
Charles Hall e4a9bec562
fix off-by-one git-commit rulers (#7072)
Characters should maximally reside *inside* the ruler, not on top of it.
2 years ago
Philipp Mildenberger b6d0e26814 Sort language servers table in languages.toml and rename language server 'R' to 'r' 2 years ago
Philipp Mildenberger 71551d395b Adds support for multiple language servers per language.
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.
2 years ago
gibbz00 6f135e58a3
languages.toml: recognize `gml` files. (#7055) 2 years ago