diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2021-02-16 12:29:31 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2021-02-16 12:30:34 +0100 |
| commit | 1195f8eb8e32810f150b0091a6c23749fdecf767 (patch) | |
| tree | 87b6f6124b1be627d5d02dc618de2bb95cdd3563 /init.lua | |
| parent | d3b15082dc5d81dc341e51e17a0723c5e574793e (diff) | |
| download | vis-lspc-1195f8eb8e32810f150b0091a6c23749fdecf767.tar.gz vis-lspc-1195f8eb8e32810f150b0091a6c23749fdecf767.zip | |
[lspc] add option to autostart a language server on WIN_OPEN events
Diffstat (limited to 'init.lua')
| -rw-r--r-- | init.lua | 20 |
1 files changed, 17 insertions, 3 deletions
@@ -64,6 +64,8 @@ lspc = { logging = true, log_file = 'vis-lspc.log', log = init_logging, + -- automatically start a language server when a new window is opened + autostart = true, } local clangd = {name = 'clangd', cmd = 'clangd'} @@ -515,15 +517,19 @@ vis:command_register('lspc-shutdown-server', function(argv, _, win) ls_shutdown_server(ls) end) -local function ls_start_server(syntax) +local function ls_start_server(syntax, quiet) if lspc.running[syntax] then - vis:info('Error: Already a language server running for ' .. syntax) + if not quiet then + vis:info('Error: Already a language server running for ' .. syntax) + end return end local ls_conf = lspc.ls_map[syntax] if not ls_conf then - vis:info('Error: No language server available for ' .. syntax) + if not quiet then + vis:info('Error: No language server available for ' .. syntax) + end return end @@ -581,6 +587,14 @@ vis:command_register('lspc-start-server', function(argv, _, win) ls_start_server(argv[1] or win.syntax) end) +vis.events.subscribe(vis.events.WIN_OPEN, function(win) + if not lspc.autostart then + return + end + + ls_start_server(win.syntax, true) +end) + local function lspc_method_textDocumentPositionParams(ls, method, win) -- check if the language server has a provider for this method if not ls.capabilities[method .. 'Provider'] then |
