Skip to content

Commit d734869

Browse files
authored
fix(vscode): handle lsp failures more gracefully (#4418)
1 parent bd44a89 commit d734869

File tree

1 file changed

+22
-21
lines changed

1 file changed

+22
-21
lines changed

vscode/extension/src/extension.ts

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -62,27 +62,6 @@ export async function activate(context: vscode.ExtensionContext) {
6262
)
6363

6464
lspClient = new LSPClient()
65-
const result = await lspClient.start()
66-
if (isErr(result)) {
67-
switch (result.error.type) {
68-
case 'not_signed_in':
69-
await handleNotSginedInError(authProvider)
70-
break
71-
case 'sqlmesh_lsp_not_found':
72-
await handleSqlmeshLspNotFoundError()
73-
break
74-
case 'sqlmesh_lsp_dependencies_missing':
75-
await handleSqlmeshLspDependenciesMissingError(result.error)
76-
break
77-
case 'generic':
78-
await vscode.window.showErrorMessage(
79-
`Failed to start LSP: ${result.error.message}`,
80-
)
81-
break
82-
}
83-
} else {
84-
context.subscriptions.push(lspClient)
85-
}
8665

8766
context.subscriptions.push(
8867
vscode.languages.registerCompletionItemProvider(
@@ -138,6 +117,28 @@ export async function activate(context: vscode.ExtensionContext) {
138117
}),
139118
)
140119

120+
const result = await lspClient.start()
121+
if (isErr(result)) {
122+
switch (result.error.type) {
123+
case 'not_signed_in':
124+
await handleNotSginedInError(authProvider)
125+
break
126+
case 'sqlmesh_lsp_not_found':
127+
await handleSqlmeshLspNotFoundError()
128+
break
129+
case 'sqlmesh_lsp_dependencies_missing':
130+
await handleSqlmeshLspDependenciesMissingError(result.error)
131+
break
132+
case 'generic':
133+
await vscode.window.showErrorMessage(
134+
`Failed to start LSP: ${result.error.message}`,
135+
)
136+
break
137+
}
138+
} else {
139+
context.subscriptions.push(lspClient)
140+
}
141+
141142
traceInfo('Extension activated')
142143
}
143144

0 commit comments

Comments
 (0)