on main help sign in
fix(lsp): respect lsp auto start config (#2487)
0e640a1Bruno Krugel
internal/lsp/manager.go+10−3
@@ -141,6 +141,15 @@ var skipAutoStartCommands = map[string]bool{
141}
141}
142
142
143func (s *Manager) startServer(ctx context.Context, name, filepath string, server *powernapconfig.ServerConfig) {
143func (s *Manager) startServer(ctx context.Context, name, filepath string, server *powernapconfig.ServerConfig) {
144+ var (
145+ isUserConfigured = s.isUserConfigured(name)
146+ autoLSP = s.cfg.Config().Options.AutoLSP
147+ )
148+ if !isUserConfigured && autoLSP != nil && !*autoLSP {
149+ slog.Debug("Auto-start LSP disabled", "name", name)
150+ return
151+ }
152+
144 cfg := s.buildConfig(name, server)
153 cfg := s.buildConfig(name, server)
145 if cfg.Disabled {
154 if cfg.Disabled {
146 return
155 return
@@ -159,9 +168,7 @@ func (s *Manager) startServer(ctx context.Context, name, filepath string, server
159 }
168 }
160 }
169 }
161
170
162− userConfigured := s.isUserConfigured(name)
171+ if !isUserConfigured {
163−
164− if !userConfigured {
165 if _, err := exec.LookPath(server.Command); err != nil {
172 if _, err := exec.LookPath(server.Command); err != nil {
166 slog.Debug("LSP server not installed, skipping", "name", name, "command", server.Command)
173 slog.Debug("LSP server not installed, skipping", "name", name, "command", server.Command)
167 unavailable.Set(name, struct{}{})
174 unavailable.Set(name, struct{}{})