@@ -4,15 +4,15 @@ import {
44 CompletionItem ,
55 CompletionParams ,
66} from 'vscode-languageserver/node'
7- import { TextDocuments } from 'vscode-languageserver/lib/common/server '
7+ import { LSPObject , TextDocuments } from 'vscode-languageserver'
88import { CompletionTriggerKind } from 'vscode-languageserver-protocol/lib/common/protocol'
99import { TextDocument } from 'vscode-languageserver-textdocument'
1010import { CodeAction , TextDocumentEdit , TextEdit , Position , CodeActionKind } from 'vscode-languageserver-types'
1111import cache from './cache'
1212import { complete } from './complete'
1313import createDiagnostics from './createDiagnostics'
1414import createConnection from './createConnection'
15- import SettingStore from './SettingStore'
15+ import SettingStore , { Connection as SettingConnection } from './SettingStore'
1616import { Schema } from './database_libs/AbstractClient'
1717import getDatabaseClient from './database_libs/getDatabaseClient'
1818import initializeLogging from './initializeLogging'
@@ -186,13 +186,19 @@ export function createServerWithConnection(connection: Connection, debug = false
186186 if ( ! hasConfigurationCapability ) {
187187 return
188188 }
189- const connections = change . settings ?. sqlLanguageServer ?. connections ?? [ ]
189+ if ( ! Object . prototype . hasOwnProperty . call ( change . settings , 'sqlLanguageServer' ) ) {
190+ logger . debug ( 'onDidChangeConfiguration' , "it doesn't have sqlLanguageServer property" )
191+ return
192+ }
193+ const sqlLanguageServerSetting = ( ( change . settings as LSPObject ) . sqlLanguageServer ) as LSPObject
194+
195+ const connections = ( sqlLanguageServerSetting . connections ?? [ ] ) as SettingConnection [ ]
190196 if ( connections . length > 0 ) {
191197 SettingStore . getInstance ( ) . setSettingFromWorkspaceConfig ( connections )
192198 }
193199
194200 // On configuration changes we retrieve the lint config
195- const lint = change . settings ?. sqlLanguageServer ?. lint
201+ const lint = ( ( sqlLanguageServerSetting ) . lint ) as RawConfig
196202 lintConfig = lint
197203 if ( lint ?. rules ) {
198204 documents . all ( ) . forEach ( v => {
@@ -272,7 +278,7 @@ export function createServerWithConnection(connection: Connection, debug = false
272278 ) {
273279 try {
274280 SettingStore . getInstance ( ) . changeConnection (
275- request . arguments && request . arguments [ 0 ] || ''
281+ request . arguments && request . arguments [ 0 ] ?. toString ( ) || ''
276282 )
277283 } catch ( e ) {
278284 const err = e as NodeJS . ErrnoException
@@ -291,7 +297,7 @@ export function createServerWithConnection(connection: Connection, debug = false
291297 } )
292298 return
293299 }
294- const document = documents . get ( uri )
300+ const document = documents . get ( uri . toString ( ) )
295301 const text = document ?. getText ( )
296302 if ( ! text ) {
297303 logger . debug ( 'Failed to get text' )
@@ -305,7 +311,7 @@ export function createServerWithConnection(connection: Connection, debug = false
305311 logger . debug ( 'Fix all fixable problems' , text , result [ 0 ] . fixedText )
306312 connection . workspace . applyEdit ( {
307313 documentChanges : [
308- TextDocumentEdit . create ( { uri, version : document ! . version } , [
314+ TextDocumentEdit . create ( { uri : uri . toString ( ) , version : document ! . version } , [
309315 TextEdit . replace ( {
310316 start : Position . create ( 0 , 0 ) ,
311317 end : Position . create ( Number . MAX_VALUE , Number . MAX_VALUE )
0 commit comments