From 73489e9b62b1864ae8d52b272dffe5739e248440 Mon Sep 17 00:00:00 2001 From: jmgomez Date: Thu, 30 May 2024 10:33:53 +0100 Subject: [PATCH] chache nim dump results --- nimlangserver.nim | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nimlangserver.nim b/nimlangserver.nim index 5b51d55..48a1b73 100644 --- a/nimlangserver.nim +++ b/nimlangserver.nim @@ -87,6 +87,7 @@ type isShutdown*: bool storageDir*: string cmdLineClientProcessId: Option[int] + nimDumpCache: Table[string, NimbleDumpInfo] #path to NimbleDumpInfo Certainty = enum None, @@ -143,6 +144,8 @@ proc supportSignatureHelp(cc: ClientCapabilities): bool = caps.isSome and caps.get.signatureHelp.isSome proc getNimbleDumpInfo(ls: LanguageServer, nimbleFile: string): NimbleDumpInfo = + if nimbleFile in ls.nimDumpCache: + return ls.nimDumpCache[nimbleFile] let info = execProcess("nimble dump " & nimbleFile) for line in info.splitLines: if line.startsWith("srcDir"): @@ -154,6 +157,12 @@ proc getNimbleDumpInfo(ls: LanguageServer, nimbleFile: string): NimbleDumpInfo = if line.startsWith("nimblePath"): result.nimblePath = some line[(1 + line.find '"')..^2] + var nimbleFile = nimbleFile + if nimbleFile == "" and result.nimblePath.isSome: + nimbleFile = result.nimblePath.get + if nimbleFile != "": + ls.nimDumpCache[nimbleFile] = result + proc getProjectFileAutoGuess(ls: LanguageServer, fileUri: string): string = let file = fileUri.decodeUrl result = file