aboutsummaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua20
1 files changed, 17 insertions, 3 deletions
diff --git a/init.lua b/init.lua
index a84b3b1..bce126e 100644
--- a/init.lua
+++ b/init.lua
@@ -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