Skip to content

Commit c4bf63d

Browse files
authored
Only send lsp status updates when the lsp status changes (#263)
1 parent 3ad3c9b commit c4bf63d

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

ls.nim

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ type
156156
outStream*: FileStream
157157
stdinContext*: ptr ReadStdinContext
158158
projectErrors*: seq[ProjectError]
159+
lastStatusSent: JsonNode
159160
#List of errors (crashes) nimsuggest has had since the lsp session started
160161

161162
Certainty* = enum
@@ -362,9 +363,11 @@ proc getLspStatus*(ls: LanguageServer): NimLangServerStatus {.raises: [].} =
362363
result.projectErrors = ls.projectErrors
363364

364365
proc sendStatusChanged*(ls: LanguageServer) {.raises: [].} =
365-
let status: NimLangServerStatus = ls.getLspStatus()
366-
ls.notify("extension/statusUpdate", %*status)
367-
366+
let status = %*ls.getLspStatus()
367+
if status != ls.lastStatusSent:
368+
ls.notify("extension/statusUpdate", status)
369+
ls.lastStatusSent = status
370+
368371
proc addProjectFileToPendingRequest*(
369372
ls: LanguageServer, id: uint, uri: string
370373
) {.async.} =

0 commit comments

Comments
 (0)