Versión 1.66.x rompió la lectura/actualización de settings
Closed this issue · 1 comments
fdodino commented
Eso, hay que refactorizar la lectura y escritura de los settings que fue pisada por los últimos cambios del archivo server.ts
de VSC en la versión 1.66.x. Hoy no se está llamando a initializeSettings
y settingsChanged
, porque de hacerlo te saltaría un mensaje de error
/home/dodain/workspace/wollok-dev/wollok-lsp-ide/server/node_modules/vscode-jsonrpc/lib/common/connection.js:477
responsePromise.reject(new messages_1.ResponseError(error.code, error.message, error.data));
^
ResponseError: Unhandled method workspace/configuration
at handleResponse (/home/dodain/workspace/wollok-dev/wollok-lsp-ide/server/node_modules/vscode-jsonrpc/lib/common/connection.js:477:48)
at processMessageQueue (/home/dodain/workspace/wollok-dev/wollok-lsp-ide/server/node_modules/vscode-jsonrpc/lib/common/connection.js:292:17)
at Immediate.<anonymous> (/home/dodain/workspace/wollok-dev/wollok-lsp-ide/server/node_modules/vscode-jsonrpc/lib/common/connection.js:276:13)
at processImmediate (node:internal/timers:464:21) {
code: -32601,
data: undefined
}
fdodino commented
El tema es que esta definición
connection.onDidChangeConfiguration((change) => {
ya no tiene sentido, porque cuando cambiás la definición desde el cliente la referencia a change
siempre es null
.
Hay que leerla cuando cambia el documento, una paja pero bueno, te asegurás de que el modelo lo pullee el server como quiere Bäumer:
export const validateTextDocument = (connection: Connection) => async (textDocument: TextDocument): Promise<void> => {
const settings = await getDocumentSettings(connection)
console.info(JSON.stringify(settings)) // acá viene la data posta de los settings