| Commit message (Collapse) | Author | Age |
... | |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* 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`
|
|
|
| |
Characters should maximally reside *inside* the ruler, not on top of it.
|
| |
|
|\
| |
| | |
Add support for multiple language servers per language
|
| | |
|
| |
| |
| |
| | |
(`diagnostics`, `code-action`, `completion`, `document-symbols` and `workspace-symbols`)
|
| |
| |
| |
| | |
to 'r'
|
| |
| |
| |
| | |
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
|
| |
| |
| |
| |
| |
| | |
binary search
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
|
| |
| |
| |
| | |
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
|
| |
| |
| |
| | |
code, also don't 'crash' in completion menu if language_server somehow disappeared
|
| |
| |
| |
| | |
top of function instead
|
| | |
|
| |
| |
| |
| | |
TODO comment
|
| |
| |
| |
| | |
weren't restarted, if not of the same scope id), and fix some smaller rebase issues
|
| |
| |
| |
| | |
visible)
|
| |
| |
| |
| | |
demand
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`doc.language_servers_with_feature`
* Add `helix_lsp::client::Client::supports_feature(&self, LanguageServerFeature)`
* Extend `doc.language_servers_with_feature` to use this method as filter as well
* Add macro `language_server_with_feature!` to reduce boilerplate for non-mergeable language server requests (like goto-definition)
* Refactored most of the `find_map` code to use the either the macro or filter directly via `doc.language_servers_with_feature`
|
| | |
|
| |
| |
| |
| | |
multiple language servers (code-action, completion, symbol pickers)
|
| | |
|
| |
| |
| |
| | |
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
|
| | |
|
| |
| |
| |
| | |
retain order
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
return an iterator and refactor LanguageServerFeature handling to a HashMap (language server name maps to features)
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
|
| |
| |
| |
| | |
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
|
| |
| |
| |
| | |
Co-authored-by: Skyler Hawthorne <skyler@dead10ck.com>
|
| |
| |
| |
| | |
Co-authored-by: Ivan Tham <pickfire@riseup.net>
|
| |
| |
| |
| |
| |
| | |
related review suggestions
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|