* 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>
* Document the bufferline scopes
* Update book/src/themes.md
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
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>
* 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
* adds treesitter-highlight-name command
* commit documentation changes
* moves the get_highlight_name function into core/syntax
* rename get_highlight_name function to get_highlight_for_node_at_position
* addresses pr comments: moves fn into helper fn, simplifies a lot
* commit updated documentation changes
* changes scope method to return &str so that callers can decide whether or not to own
Use `default` instead of `reset`, as this is the conventional name for ANSI codes 39/49. The word `reset` should be reserved for ANSI code `0`, which resets both fg and bg colors at once, while also removing all modifiers. While the code uses the value name `Reset`, this is misleading and should not leak into the user space.
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.
The clipboard special registers are able to retain multiple selections
and also join the value when copying it to the clipboard. So by default
we should yank regularly to the '*' and '+' registers. That will have
the same behavior for the clipboards but will allow pasting multiple
selections if the clipboard doesn't change between yanks.
* 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>
The helix snap now gets aliased to hx by default at installation time,
so manual aliasing should no longer be required.
Signed-off-by: Joseph Brock <joseph.brock@protonmail.com>
Resolves issue #6888 by adding a command to join all selections and yank
them to the specified register. The typed command takes an argument as
the separator to use when joining the selections.
* runtime config made clearer
* following Unix FHS
* we probably want to install Helix as a regular user without sudo access
* suggestions adopted from @the-mikedavis
* attempted to synthesise comments given
* capitalisation of second header
* required changes hopefully made
* we should have a match now
* Linux windows dir match
* Add command for merging non-consecutive ranges
* Add `merge_selections` command to book
* Simplify `merge_ranges`
Heeded the advice of @the-mikedavis to stop iterating over all ranges and simply merge the first and the last range, as the invariants of `Selection` guarantee that the list of ranges is always sorted and never empty.
* Clarify doc comment of `merge_ranges`
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.