aboutsummaryrefslogtreecommitdiff
path: root/init.lua
Commit message (Collapse)AuthorAgeFilesLines
...
* use vis' event system instead of custom language server hooksFlorian Fischer2024-04-301-10/+2
|
* lspc, init: emit LS_INITIALIZED and implicitly call lspc_open on server initgit-bruh2024-04-301-0/+25
|
* include the language server name in log messagesFlorian Fischer2024-04-301-2/+2
|
* call the new hooksFlorian Fischer2024-04-301-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.
* move some of the ls_* methods in the language server's tableFlorian Fischer2024-04-301-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_method(ls, ...).
* support navigating in the merged diagnostics of multiple serversFlorian Fischer2024-04-301-24/+39
|
* add functions to compare LSP ranges and positionsFlorian Fischer2024-04-301-0/+10
|
* support showing diagnostics from multiple language serversFlorian Fischer2024-04-301-23/+32
|
* use a global mapping of open filesFlorian Fischer2024-04-301-17/+29
| | | | | | | 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.
* support highlighting line numbers using vis:style_posFlorian Fischer2024-04-251-21/+48
| | | | | Replace the hacky style_lineno code with the new vis:style_pos API probably included in upcoming vis v0.9.
* make the way messages are presented configurableFlorian Fischer2024-04-151-28/+35
| | | | | | | | | The two options are either using vis:message (the default) which will keep all messages in the vis message buffer and include a header line to distinguish the different messages. The second option is using open and presenting messages in a separate window supporting syntax highlighting.
* init: show messages not requiring context in a new splitgit-bruh2024-04-121-7/+14
|
* _show_markdown_message: helper for markdown infogit-bruh2024-04-121-5/+16
|
* disable reformatting the languageId mapFlorian Fischer2024-04-121-0/+2
|
* init: map javascript/typescript to jsx/tsxgit-bruh2024-04-121-4/+7
|
* init: make formatFlorian Fischer2024-04-111-4/+4
|
* lspc, init: add different diagnostic styles for each typegit-bruh2024-04-111-2/+26
|
* Merge branch 'apply-workspaceEdit-remember-cursor' into 'main'Florian Fischer2024-04-081-1/+9
|\ | | | | | | | | restore the primary cursor position after a workspaceEdit See merge request muhq/vis-lspc!47
| * restore the primary cursor position after a workspaceEditapply-workspaceEdit-remember-cursorFlorian Fischer2024-03-221-1/+9
| |
* | init: make lspc-message-level configurablegit-bruh2024-04-071-0/+5
|/
* Fix lscp.open_file not actually adding to historyMichiel van den Heuvel2023-11-211-4/+4
|
* 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
|
* implement cycling between available diagnosticsFlorian Fischer2023-10-071-0/+70
| | | | | | 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
* 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
|
* support highlighting the line number of available diagnosticsv0.2.0Florian Fischer2023-10-061-6/+32
|
* 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-281-1/+7
|
* 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
|
* 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
|
* Make formatting options sort of configurableMichiel van den Heuvel2023-06-291-1/+6
| | | | | | | | 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-291-0/+53
| | | | | | | 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 format of license file headersFlorian Fischer2023-06-251-4/+5
|
* fix the license headers to reflect the used GPL licenseFlorian Fischer2023-06-241-1/+14
|
* 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.
* 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
* remove superfluous function parameterFlorian Fischer2023-01-141-1/+1
|
* support configuration and initializationOptions per language serverFlorian Fischer2023-01-141-11/+48
| | | | | | | | | | | 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.
* make vis-menu and vertical selection the default menu cmdFlorian Fischer2023-01-111-2/+1
|