aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* call the new hooksmultiple_ls_per_fileFlorian Fischer2023-11-211-0/+9
| | | | | | | | | | | The two new hooks allow to execute user code after certain events. They are called with the language server table as first argument. * initialized_hook is called after the initialized notification was sent. * file_open_hook is called after sending a textDocument/didOpen notification. successfully initialized and when a new file is opened by the editor.
* include some of the ls_* methods in the language server's tableFlorian Fischer2023-11-211-43/+59
| | | | | | | | Including methods in the language server table allows them to be used outside of vis-lspc. Additionally, I think this makes more sense to use them as methods with the ls:method(...) syntax instead of calling them as ls_*(ls, ...).
* support navigating in the merged diagnostics of multiple serversFlorian Fischer2023-11-211-24/+39
|
* add functions to compare LSP ranges and positionsFlorian Fischer2023-11-211-0/+10
|
* support showing diagnostics from multiple language serversFlorian Fischer2023-11-211-23/+31
|
* use a global mapping of open filesFlorian Fischer2023-11-212-17/+30
| | | | | | | This allows us to support opening a single file in multiple language server instances. This can be useful when combining for example a latex and a language tool language server.
* Merge branch 'fix-doc-history' into 'main'Florian Fischer2023-11-211-4/+4
|\ | | | | | | | | Fix lscp.open_file not actually adding to history See merge request muhq/vis-lspc!45
| * Fix lscp.open_file not actually adding to historyMichiel van den Heuvel2023-11-211-4/+4
|/
* increase thedefault style idFlorian Fischer2023-10-251-1/+1
| | | | | | | | | Using the new latex lexer from the upcoming vis release I noticed that vis-lspc default style id 43 overrides the environment style from the lexer. To prevent id clashing use the highest allowed id for lexer styles, which is 64 according to the enum defined in vis/ui.h.
* fix wandering empty diagnostic highlightsFlorian Fischer2023-10-121-6/+9
| | | | | | | | | | | | | | | | The last commit introduces support for highlighting empty selections by properly calculating their vis ranges. However File:content does return an empty string for empty ranges and we can not check whether the diagnostic still applies to the same position. This is fixed by faking a one character range when receiving an empty one. Doing so we get a valid one-character content we can compare and still have proper highlighting because we unconditionally decrement the range end in highlight_diagnostics. Fixes: 7099e56062861fc8dbb143e78447cce6bf886a97
* fix diagnostic highlighting and messageThim Cederlund2023-10-121-2/+13
| | | | | | | | | | | | | | Some language servers report diagnostics with empty ranges, start and end are at the same line and character, which currently results in no highlighting at all. Since the end of a LSP range is exclusive we always subtract 1 from it which results in invalid ranges when the server has sent an empty one. Introduce a check to fix this special case. `textDocument/publishDiagnostics` doesn't always have a `code` field, resulting in `diagnostic.code` being nil and so it is replaced with `diagnostic` in those cases.
* allow to specify the syntax to use for the diagnostics commandsFlorian Fischer2023-10-121-10/+10
|
* report if no diagnostics are availableFlorian Fischer2023-10-121-1/+1
| | | | | Since the diagnostics table is created when we open the file it will always be ~= nil.
* store diagnostics received for files not in the current windowFlorian Fischer2023-10-121-2/+4
|
* improve language in the READMEFlorian Fischer2023-10-071-34/+34
| | | | | | | * fix typos * wrap file or project names in code blocks * drop the hint taht vis-lspc is in an early state * s/json/JSON/
* implement cycling between available diagnosticsFlorian Fischer2023-10-072-0/+72
| | | | | | This is implemented by the two new commands: * lspc-next-diagnostics - jump to the next available diagnostic * lspc-prev-diagnostics - jump to the previous available diagnostic
* fix diagnostics line highlightingFlorian Fischer2023-10-061-4/+3
| | | | | | | | Range highlighting used the vis_range and line highlighting the LSP range. Do not touch old code you no longer understand because you think you are apparently smarter than your past self! Fixes: efd5262f2c45d3289e482b1091d3c1d44cf67a42
* Merge branch 'vis-next' into 'main'Florian Fischer2023-10-062-6/+7
|\ | | | | | | | | | | | | use new vis 0.9 features Closes #43 See merge request muhq/vis-lspc!42
| * remove default formatting options for luaFlorian Fischer2023-10-061-1/+0
| | | | | | | | | | | | Default formatting options should not be configured by the LSPC client, the user should either configure them explicitly or use something like editorconfig or mode lines.
| * use vis default formatting optionsFlorian Fischer2023-10-061-2/+4
| | | | | | | | Since vis 0.9 the options are exposed via the vis.options table.
| * adapt communicate API released with vis 0.9Florian Fischer2023-10-061-3/+3
|/
* mention the legacy support branchFlorian Fischer2023-10-061-1/+3
|
* support highlighting the line number of available diagnosticsv0.2.0Florian Fischer2023-10-062-7/+33
|
* Merge branch 'naive_documentChanges_support' into 'main'Florian Fischer2023-08-291-1/+12
|\ | | | | | | | | | | | | try to convert workspaceEdit.documentChanges to plain changes Closes #34 See merge request muhq/vis-lspc!44
| * try to convert workspaceEdit.documentChanges to plain changesFlorian Fischer2023-08-291-1/+12
|/ | | | | | | We do not support workspaceEdit.documentChanges but some LSP servers do not respect our capabilities and send them anyways. Try to optimistically convert simple documentChanges to plain changes. We only support simple TextDocumentEdit[].
* do not index a nil value when no formatting edits are returnedFlorian Fischer2023-08-291-1/+4
| | | | | | | | | | | The method textDocument/formatting is allowed to return null/nil which was directly passed to vis_apply_textEdits causing an exception when trying to iterate the textEdits table. Only pass the result of textDocument/formatting to vis_apply_textEdits if there is an actual result. Fixes: e83950a7149f364b653395cdd4d9446875a7f469
* fix hover result determinationFlorian Fischer2023-08-291-1/+1
| | | | | If the result is MarkedString[] the table must have a length > 0, because all returned object types are represented as lua tables.
* Add function to open a file to lspc objectMichiel van den Heuvel2023-08-282-1/+26
|
* Remove duplicate command_register callMichiel van den Heuvel2023-08-281-10/+0
|
* Fix filename escaping when opening a fileMichiel van den Heuvel2023-08-281-2/+6
|
* Merge branch 'check-modified' into 'main'v0.1.9Florian Fischer2023-07-221-79/+87
|\ | | | | | | | | Check modified See merge request muhq/vis-lspc!41
| * Offer to save current file before opening new oneMichiel van den Heuvel2023-07-201-0/+8
| |
| * Move confirmation and selection functions upMichiel van den Heuvel2023-06-301-79/+79
| |
* | Merge branch 'main' into 'main'Florian Fischer2023-06-293-1/+64
|\| | | | | | | | | Add textDocument/formatting implementation See merge request muhq/vis-lspc!40
| * Make formatting options sort of configurableMichiel van den Heuvel2023-06-293-1/+9
| | | | | | | | | | | | | | | | This should be wired up to code that's in a pull request in the vis repository for the default options. This PR does not yet expose `expandtab`. Referenced PR: https://github.com/martanne/vis/pull/717
| * Add textDocument/formatting implementationMichiel van den Heuvel2023-06-292-0/+55
| | | | | | | | | | | | | | This is tested with the Rust language server and the Lua one. Moving the cursor to the correct position afterwards works with Rust, but not with Lua. Being smarter about the ranges is probably necessary for Lua and might make other ones more robust.
| * Fix typoMichiel van den Heuvel2023-06-251-1/+1
|/
* fix format of license file headersFlorian Fischer2023-06-255-27/+25
|
* fix the license headers to reflect the used GPL licenseFlorian Fischer2023-06-245-5/+77
|
* Avoid screen flicker when navigating within fileMichiel van den Heuvel2023-06-121-3/+7
| | | | | When using vis_open_doc_pos, don't reopen the file if the path of the opened file and the doc_pos match.
* fix log file creation for paths including spacesFlorian Fischer2023-06-111-1/+1
|
* jump to document position in the original windowFlorian Fischer2023-04-151-8/+11
| | | | | | | | | | Currently if a method call result causing the editor to jump to a new location is received from the language server we change the current window ('vis.win'). However this behavior is strange if the user has already switch window the message window was opened. Remember the window where the jump was requested and execute it in the original window.
* bump version to 0.1.8v0.1.8Florian Fischer2023-01-181-1/+1
|
* distinguish between method call and method responseFlorian Fischer2023-01-181-1/+1
| | | | | | | | | | | | | We can not only use the fact that we have a method call inflight with the observed id. Because the language server may has called a method on use with the same id. Therefore we have to also check if the incoming message contains a method field. method + id -> method call id -> method response method -> notification
* bump version to 0.1.7v0.1.7Florian Fischer2023-01-141-1/+1
|
* remove superfluous function parameterFlorian Fischer2023-01-141-1/+1
|
* fix typoFlorian Fischer2023-01-141-1/+1
|
* link to the shipped language server configurationsFlorian Fischer2023-01-141-1/+2
|
* support configuration and initializationOptions per language serverFlorian Fischer2023-01-144-21/+76
| | | | | | | | | | | Send language server settings after initialization via a workspace/didChangeConfiguration notification. Implement a workspace/configuration handler using the values stored in the language server settings. Send the init_options as initializationOptions in the initialize parameters.
* Merge branch 'supported-servers' into 'main'Florian Fischer2023-01-111-0/+7
|\ | | | | | | | | haskell and ocaml language servers See merge request muhq/vis-lspc!38