switch back to didUpdate instead of closing and opening file

This commit is contained in:
Dax Raad
2025-08-11 21:36:05 -04:00
parent bb14a955a0
commit f03fae03e5
2 changed files with 22 additions and 11 deletions

View File

@@ -2,6 +2,7 @@ import { LSP } from "../../../lsp"
import { bootstrap } from "../../bootstrap"
import { cmd } from "../cmd"
import { Log } from "../../../util/log"
import { appendFile } from "fs/promises"
export const LSPCommand = cmd({
command: "lsp",
@@ -17,6 +18,9 @@ const DiagnosticsCommand = cmd({
await bootstrap({ cwd: process.cwd() }, async () => {
await LSP.touchFile(args.file, true)
console.log(await LSP.diagnostics())
await appendFile(args.file, `\nconst x: number = "foo"`)
await LSP.touchFile(args.file, true)
console.log(await LSP.diagnostics())
})
},
})

View File

@@ -126,19 +126,26 @@ export namespace LSPClient {
input.path = path.isAbsolute(input.path) ? input.path : path.resolve(app.path.cwd, input.path)
const file = Bun.file(input.path)
const text = await file.text()
const version = files[input.path]
if (version !== undefined) {
diagnostics.delete(input.path)
await connection.sendNotification("textDocument/didClose", {
textDocument: {
uri: `file://` + input.path,
},
})
}
log.info("textDocument/didOpen", input)
diagnostics.delete(input.path)
const extension = path.extname(input.path)
const languageId = LANGUAGE_EXTENSIONS[extension] ?? "plaintext"
const version = files[input.path]
if (version !== undefined) {
const next = version + 1
files[input.path] = next
log.info("textDocument/didChange", { path: input.path, version: next })
await connection.sendNotification("textDocument/didChange", {
textDocument: {
uri: `file://` + input.path,
version: next,
},
contentChanges: [{ text }],
})
return
}
log.info("textDocument/didOpen", input)
diagnostics.delete(input.path)
await connection.sendNotification("textDocument/didOpen", {
textDocument: {
uri: `file://` + input.path,