summaryrefslogtreecommitdiffhomepage
path: root/internal/app
diff options
context:
space:
mode:
authorNacho Vazquez <[email protected]>2025-04-12 12:43:23 -0300
committerNacho Vazquez <[email protected]>2025-04-12 12:43:23 -0300
commitbd2cb4b5b998602537ded61d1d8eae95f955d2df (patch)
treea41536e1e15850722e19ae3967a7e9b524affffd /internal/app
parent6fe85c66e7ab17c4e7bf886a662b1f27ac630120 (diff)
downloadopencode-bd2cb4b5b998602537ded61d1d8eae95f955d2df.tar.gz
opencode-bd2cb4b5b998602537ded61d1d8eae95f955d2df.zip
refactor: use context for automatic lsp process cleanup
Diffstat (limited to 'internal/app')
-rw-r--r--internal/app/services.go18
1 files changed, 1 insertions, 17 deletions
diff --git a/internal/app/services.go b/internal/app/services.go
index dcdfe12e0..76b2226ae 100644
--- a/internal/app/services.go
+++ b/internal/app/services.go
@@ -3,7 +3,6 @@ package app
import (
"context"
"database/sql"
- "log/slog"
"github.com/kujtimiihoxha/termai/internal/config"
"github.com/kujtimiihoxha/termai/internal/db"
@@ -23,8 +22,6 @@ type App struct {
Permissions permission.Service
LSPClients map[string]*lsp.Client
-
- ceanups []func()
}
func New(ctx context.Context, conn *sql.DB) *App {
@@ -44,10 +41,7 @@ func New(ctx context.Context, conn *sql.DB) *App {
}
for name, client := range cfg.LSP {
- lspClient, err := lsp.NewClient(client.Command, client.Args...)
- app.ceanups = append(app.ceanups, func() {
- lspClient.Close()
- })
+ lspClient, err := lsp.NewClient(ctx, client.Command, client.Args...)
workspaceWatcher := watcher.NewWorkspaceWatcher(lspClient)
if err != nil {
logging.Error("Failed to create LSP client for", name, err)
@@ -64,13 +58,3 @@ func New(ctx context.Context, conn *sql.DB) *App {
}
return app
}
-
-func (a *App) Close() {
- for _, cleanup := range a.ceanups {
- cleanup()
- }
- for _, client := range a.LSPClients {
- client.Close()
- }
- slog.Info("App closed")
-}