Skip to content

Running cshrap-ls causes a new instance of lsp to be created for every buffer / buffer navigation #1677

Open

Description

@OlegKarasik

I tried to configure the csharp-ls as a language server using the following configuration:

if executable('csharp-ls')
    au User lsp_setup call lsp#register_server({
        \   'name': 'csharp-ls',
        \   'cmd': {server_info->['csharp-ls']},
        \   'allowlist': ['cs'],
        \   'root_uri': {
        \      server_info->lsp#utils#path_to_uri('<direct path to the project root with .sln file in it>')
        \   },
        \ })
endif

I was able to start the server and actually get the syntax highlighting and go-to-definition navigation. However, I noticed that every time I open a new buffer or just navigate between buffers (using :bn and :bp commands) the new instance of the csharp-ls is started.

I enabled the logs but inside them it looks like the vim-lsp correctly detects that the sever is running but still for some reason creates a new instance. Here is an excerpt from logs (sorry I know it is too large but I am not sure what information is relevant for the issue).

Do you have any ideas where the issue can be? I am open to contribute the fix if you can point me to the more or less the right place.

Tue Jun 16 21:36:17 2026:["Starting server","csharp-ls",["csharp-ls"]]
Tue Jun 16 21:36:17 2026:[{"response":{"data":{"__data__":"vim-lsp","lsp_id":7,"server_name":"csharp-ls"},"message":"started lsp server successfully"}}]
Tue Jun 16 21:36:17 2026:["--->",7,"csharp-ls",{"method":"initialize","params":{"rootUri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","capabilities":{"workspace":{"workspaceFolders":false,"configuration":true,"symbol":{"dynamicRegistration":false},"applyEdit":true},"window":{"workDoneProgress":false},"textDocument":{"callHierarchy":{"dynamicRegistration":false},"rename":{"prepareSupport":true,"dynamicRegistration":false,"prepareSupportDefaultBehavior":1},"codeAction":{"isPreferredSupport":true,"disabledSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dynamicRegistration":false},"completion":{"completionItem":{"insertReplaceSupport":true,"snippetSupport":false,"resolveSupport":{"properties":["additionalTextEdits","detail"]},"documentationFormat":["markdown","plaintext"]},"dynamicRegistration":false,"completionItemKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,1,2,3,4,5,6,7,8,9]}},"formatting":{"dynamicRegistration":false},"codeLens":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"documentLink":{"dynamicRegistration":false},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"rangeFormatting":{"dynamicRegistration":false},"declaration":{"dynamicRegistration":false,"linkSupport":true},"references":{"dynamicRegistration":false},"typeHierarchy":{"dynamicRegistration":false},"foldingRange":{"rangeLimit":5000,"dynamicRegistration":false,"lineFoldingOnly":true},"documentSymbol":{"symbolKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,1,2,3,4,5,6,7,8,9]},"dynamicRegistration":false,"labelSupport":false,"hierarchicalDocumentSymbolSupport":false},"publishDiagnostics":{"relatedInformation":true},"synchronization":{"dynamicRegistration":false,"willSaveWaitUntil":false,"willSave":false,"didSave":true},"documentHighlight":{"dynamicRegistration":false},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"semanticTokens":{"serverCancelSupport":false,"requests":{"full":{"delta":true},"range":false},"multilineTokenSupport":false,"dynamicRegistration":false,"overlappingTokenSupport":false,"tokenTypes":["type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":[],"formats":["relative"]},"signatureHelp":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true}}},"rootPath":"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","clientInfo":{"name":"vim-lsp"},"processId":86000,"trace":"off"}}]
Tue Jun 16 21:36:17 2026:["<---(stderr)",7,"csharp-ls","21:36:17.963 info: LifeCycle[0]\n      initializing, csharp-ls version 0.25.0 (Punia)+19a9574d7577521555f49bf49e94688a3ba67dd2\n"]
Tue Jun 16 21:36:17 2026:["<---",7,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: initializing, version 0.25.0 (Punia)+19a9574d7577521555f49bf49e94688a3ba67dd2","type":3}}}]
Tue Jun 16 21:36:17 2026:["<---",7,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: csharp-ls is released under MIT license and is not affiliated with Microsoft Corp.; see https://github.com/razzmatazz/csharp-language-server","type":3}}}]
Tue Jun 16 21:36:17 2026:["<---(stderr)",7,"csharp-ls","21:36:17.990 info: LifeCycle[0]\n      csharp-ls is released under MIT license and is not affiliated with Microsoft Corp.; see https://github.com/razzmatazz/csharp-language-server\n"]
Tue Jun 16 21:36:18 2026:["<---(stderr)",7,"csharp-ls","21:36:18.002 info: Roslyn.Solution[0]\n      SDK instances found, as reported by MSBuild:\n      - SDK=\".NET Core SDK\", Version=10.0.301, MSBuildPath=\"/usr/local/share/dotnet/sdk/10.0.301\", DiscoveryType=DotNetSdk\n      - SDK=\".NET Core SDK\", Version=9.0.306, MSBuildPath=\"/usr/local/share/dotnet/sdk/9.0.306\", DiscoveryType=DotNetSdk\n"]
Tue Jun 16 21:36:18 2026:["<---(stderr)",7,"csharp-ls","21:36:18.002 info: Roslyn.Solution[0]\n      MSBuildLocator: will register \".NET Core SDK\", Version=10.0.301 as default instance\n"]
Tue Jun 16 21:36:18 2026:["<---(stderr)",7,"csharp-ls","21:36:18.020 info: LifeCycle[0]\n      handleInitialize: using workspaceFolders: [{\"uri\":\"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall\",\"name\":\"root\"}]\n"]
Tue Jun 16 21:36:18 2026:["<---",7,"csharp-ls",{"response":{"id":1,"jsonrpc":"2.0","result":{"capabilities":{"documentHighlightProvider":true,"hoverProvider":true,"typeDefinitionProvider":true,"definitionProvider":true,"referencesProvider":true,"diagnosticProvider":{"workspaceDiagnostics":true,"interFileDependencies":false,"documentSelector":[{"pattern":"**/*.cs","language":"csharp","scheme":"file"}]},"inlayHintProvider":{"resolveProvider":false},"signatureHelpProvider":{"triggerCharacters":["(",",","<","{","["]},"foldingRangeProvider":true,"callHierarchyProvider":true,"codeActionProvider":{"resolveProvider":true},"textDocumentSync":{"save":{"includeText":true},"change":2,"openClose":true},"codeLensProvider":{"resolveProvider":true},"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"implementationProvider":true,"documentOnTypeFormattingProvider":{"moreTriggerCharacter":["}",")"],"firstTriggerCharacter":";"},"workspaceSymbolProvider":true,"documentRangeFormattingProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":["class","comment","constant","enumMember","enum","event","method","field","variable","interface","keyword","namespace","number","operator","parameter","property","struct","regex","string","typeParameter"],"tokenModifiers":["static"]},"range":true,"full":true},"typeHierarchyProvider":true,"documentFormattingProvider":true,"documentSymbolProvider":true,"renameProvider":{"prepareProvider":true},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".","'"]}},"serverInfo":{"version":"0.25.0.0","name":"csharp-ls"}}},"request":{"id":1,"jsonrpc":"2.0","method":"initialize","params":{"rootUri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","capabilities":{"workspace":{"workspaceFolders":false,"configuration":true,"symbol":{"dynamicRegistration":false},"applyEdit":true},"window":{"workDoneProgress":false},"textDocument":{"callHierarchy":{"dynamicRegistration":false},"rename":{"prepareSupport":true,"dynamicRegistration":false,"prepareSupportDefaultBehavior":1},"codeAction":{"isPreferredSupport":true,"disabledSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dynamicRegistration":false},"completion":{"completionItem":{"insertReplaceSupport":true,"snippetSupport":false,"resolveSupport":{"properties":["additionalTextEdits","detail"]},"documentationFormat":["markdown","plaintext"]},"dynamicRegistration":false,"completionItemKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,1,2,3,4,5,6,7,8,9]}},"formatting":{"dynamicRegistration":false},"codeLens":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"documentLink":{"dynamicRegistration":false},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"rangeFormatting":{"dynamicRegistration":false},"declaration":{"dynamicRegistration":false,"linkSupport":true},"references":{"dynamicRegistration":false},"typeHierarchy":{"dynamicRegistration":false},"foldingRange":{"rangeLimit":5000,"dynamicRegistration":false,"lineFoldingOnly":true},"documentSymbol":{"symbolKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,1,2,3,4,5,6,7,8,9]},"dynamicRegistration":false,"labelSupport":false,"hierarchicalDocumentSymbolSupport":false},"publishDiagnostics":{"relatedInformation":true},"synchronization":{"dynamicRegistration":false,"willSaveWaitUntil":false,"willSave":false,"didSave":true},"documentHighlight":{"dynamicRegistration":false},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"semanticTokens":{"serverCancelSupport":false,"requests":{"full":{"delta":true},"range":false},"multilineTokenSupport":false,"dynamicRegistration":false,"overlappingTokenSupport":false,"tokenTypes":["type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":[],"formats":["relative"]},"signatureHelp":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true}}},"rootPath":"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","clientInfo":{"name":"vim-lsp"},"processId":86000,"trace":"off"}}}]
Tue Jun 16 21:36:18 2026:["--->",7,"csharp-ls",{"method":"initialized","params":{}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"configuration sent"}}]
Tue Jun 16 21:36:18 2026:["s:update_file_content()",5]
Tue Jun 16 21:36:18 2026:["--->",7,"csharp-ls",{"method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs","version":1,"languageId":"cs","text":"using System;\nusing System.Threading.Tasks;\nusing Hast.Layer;\nusing Hast.Transformer.SimpleMemory;\n\nnamespace Code.Hardware;\n\npublic class APSP04\n{\n  public virtual void ParallelOptimisation(SimpleMemory matrix, int sz)\n  {\n    for (var k = 0; k < sz; ++k)\n    {\n      Parallel.For(0, sz, i =>\n      {\n        for (var j = 0; j < sz; ++j)\n        {\n          var distance = matrix.ReadInt32(i * sz + k) + matrix.ReadInt32(k * sz + j);\n          if (matrix.ReadInt32(i * sz + j) > distance)\n          {\n            matrix.WriteInt32(i * sz + j, distance);\n          }\n        }\n      });\n    }\n  }\n\n  public void Run(int[] matrix, int sz, IHastlayer hastlayer = null, IHardwareGenerationConfiguration configuration = null)\n  {\n    var memory = hastlayer is null\n      ? SimpleMemory.CreateSoftwareMemory(matrix.Length)\n      : hastlayer.CreateMemory(configuration, matrix.Length);\n\n    for (var i = 0; i < matrix.Length; ++i)\n      memory.WriteInt32(i, matrix[i]);\n\n    ParallelOptimisation(memory, sz);\n\n    for (var i = 0; i < matrix.Length; ++i)\n      matrix[i] = memory.ReadInt32(i);\n  }\n}\n"}}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"server already started"}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"jsonrpc":"2.0","result":{"capabilities":{"documentHighlightProvider":true,"hoverProvider":true,"typeDefinitionProvider":true,"definitionProvider":true,"referencesProvider":true,"diagnosticProvider":{"workspaceDiagnostics":true,"interFileDependencies":false,"documentSelector":[{"pattern":"**/*.cs","language":"csharp","scheme":"file"}]},"inlayHintProvider":{"resolveProvider":false},"signatureHelpProvider":{"triggerCharacters":["(",",","<","{","["]},"foldingRangeProvider":true,"callHierarchyProvider":true,"codeActionProvider":{"resolveProvider":true},"textDocumentSync":{"save":{"includeText":true},"change":2,"openClose":true},"codeLensProvider":{"resolveProvider":true},"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"implementationProvider":true,"documentOnTypeFormattingProvider":{"moreTriggerCharacter":["}",")"],"firstTriggerCharacter":";"},"workspaceSymbolProvider":true,"documentRangeFormattingProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":["class","comment","constant","enumMember","enum","event","method","field","variable","interface","keyword","namespace","number","operator","parameter","property","struct","regex","string","typeParameter"],"tokenModifiers":["static"]},"range":true,"full":true},"typeHierarchyProvider":true,"documentFormattingProvider":true,"documentSymbolProvider":true,"renameProvider":{"prepareProvider":true},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".","'"]}},"serverInfo":{"version":"0.25.0.0","name":"csharp-ls"}}},"server_name":"csharp-ls"},"message":"lsp server already initialized"}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"configuration sent"}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs","__data__":"vim-lsp","server_name":"csharp-ls"},"message":"already opened"}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs","__data__":"vim-lsp","server_name":"csharp-ls"},"message":"not dirty"}}]
Tue Jun 16 21:36:18 2026:["--->",7,"csharp-ls",{"method":"textDocument/foldingRange","on_notification":"---funcref---","bufnr":5,"params":{"textDocument":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs"}},"sync":0}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs","__data__":"vim-lsp","filetype":"cs","server_name":"csharp-ls"},"message":"textDocument/open sent"}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs","__data__":"vim-lsp","server_name":"csharp-ls"},"message":"not dirty"}}]
Tue Jun 16 21:36:18 2026:["<---","s:on_request",7,{"id":1,"jsonrpc":"2.0","method":"workspace/configuration","params":{"items":[{"section":"csharp"}]}}]
Tue Jun 16 21:36:18 2026:["--->",7,"csharp-ls",{"id":1,"result":[null]}]
Tue Jun 16 21:36:18 2026:["<---(stderr)",7,"csharp-ls","21:36:18.165 info: LifeCycle[0]\n      initialize: initial csharp config: { logLevel = Some \"info\"\n        applyFormattingOptions = None\n        analyzersEnabled = None\n        useMetadataUris = Some false\n        razorSupport = Some false\n        locale = None\n        debug = Some { solutionLoadDelay = None\n                       debugMode = Some false }\n        solutionPathOverride = None }\n"]
Tue Jun 16 21:36:18 2026:["<---",7,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: attempting to find and load solution on path \"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall\"..","type":3}}}]
Tue Jun 16 21:36:18 2026:["<---",7,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: 1 solution(s) found: [/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/Solution.sln]","type":3}}}]
Tue Jun 16 21:36:18 2026:["<---",7,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: Loading solution \"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/Solution.sln\"...","type":3}}}]
Tue Jun 16 21:36:18 2026:["<---(stderr)",7,"csharp-ls","21:36:18.227 info: Roslyn.Solution[0]\n      Will use MSBuild props: map [(TargetFramework, net8.0)]\n"]
Tue Jun 16 21:36:18 2026:["<---",6,"csharp-ls",{"response":{"method":"textDocument/publishDiagnostics","jsonrpc":"2.0","params":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs","diagnostics":[]}}}]
Tue Jun 16 21:36:18 2026:["<---",6,"csharp-ls",{"response":{"id":3,"jsonrpc":"2.0","result":{"data":[0,0,5,10,0,0,6,6,11,0,1,0,5,10,0,0,6,6,11,0,0,6,1,13,0,0,1,2,11,0,1,0,5,10,0,0,6,6,11,0,0,6,1,13,0,0,1,4,11,0,0,4,1,13,0,0,1,18,11,0,2,0,9,10,0,0,10,4,11,0,0,4,1,13,0,0,1,5,11,0,2,0,6,10,0,0,7,8,10,0,0,9,7,10,0,0,8,6,10,0,0,7,6,16,0,2,2,6,10,0,0,7,8,10,0,0,9,6,10,0,0,7,6,16,0,2,4,6,10,0,0,7,5,10,0,0,6,3,10,0,0,4,7,2,1,0,8,1,13,0,0,2,6,16,0,0,6,1,13,0,0,1,7,2,1,2,4,6,10,0,0,7,8,10,0,0,9,3,10,0,0,6,4,7,0,1,4,6,10,0,0,7,8,10,0,0,9,3,10,0,0,4,5,7,0,1,4,6,10,0,0,7,8,10,0,0,9,3,10,0,0,4,4,7,0,2,4,6,10,0,0,7,6,16,0,1,6,3,10,0,0,6,4,14,0,1,6,3,10,0,0,4,5,14,0,1,6,3,10,0,0,4,4,14,0,2,6,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,4,14,0,1,6,4,10,0,0,4,1,13,0,0,1,5,7,0,0,6,1,13,0,0,2,5,14,0,1,6,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,4,14,0,4,2,6,10,0,0,7,5,10,0,0,6,3,10,0,0,4,7,2,1,0,8,1,13,0,0,2,3,10,0,0,3,1,13,0,0,1,8,2,1,0,9,1,13,0,0,2,1,12,0,0,2,1,13,0,0,2,1,12,0,2,2,6,10,0,0,7,8,10,0,0,9,3,10,0,0,6,4,7,0,1,2,6,10,0,0,7,8,10,0,0,9,3,10,0,0,4,4,7,0,2,2,6,10,0,0,7,6,16,0,1,4,3,10,0,0,6,4,14,0,1,4,3,10,0,0,4,4,14,0,2,4,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,4,14,0,1,4,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,4,14,0,3,3,14,0,0,0,15,49,18,0,1,2,7,10,0,0,8,6,10,0,0,7,7,10,0,0,8,5,0,0,0,6,9,6,1,2,2,6,10,0,0,7,6,16,0,0,7,13,6,0,1,4,3,10,0,0,4,4,14,0,2,4,3,10,0,0,4,5,8,0,0,6,1,13,0,0,2,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,4,14,0,1,4,2,10,0,0,4,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,4,14,0,0,5,2,13,0,0,3,1,12,0,2,6,5,10,0,0,6,3,10,0,0,4,25,0,0,0,26,39,18,0,3,4,3,10,0,0,4,16,8,0,0,17,1,13,0,0,2,4,14,0,0,5,1,13,0,0,2,4,14,0,1,4,3,10,0,0,4,19,8,0,0,20,1,13,0,0,2,5,8,0,0,6,1,13,0,0,2,16,8,0,2,4,3,10,0,0,4,6,8,0,0,7,1,13,0,0,2,3,10,0,0,4,3,10,0,0,4,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,4,10,0,0,4,1,13,0,0,1,4,7,0,1,4,3,10,0,0,5,3,10,0,0,4,1,8,0,0,2,1,13,0,0,2,1,12,0,0,3,1,8,0,0,2,1,13,0,0,2,4,10,0,0,4,1,13,0,0,1,4,7,0,0,6,1,8,0,0,1,2,13,0,2,6,3,10,0,0,5,3,10,0,0,4,1,8,0,0,2,1,13,0,0,2,1,12,0,0,3,1,8,0,0,2,1,13,0,0,2,4,10,0,0,4,1,13,0,0,1,4,7,0,0,6,1,8,0,0,1,2,13,0,2,8,3,10,0,0,4,2,8,0,0,3,1,13,0,0,2,1,8,0,0,2,1,13,0,0,2,4,14,0,0,6,3,10,0,0,4,2,8,0,0,3,1,13,0,0,2,1,8,0,0,2,1,13,0,0,2,4,14,0,1,8,3,10,0,0,4,2,8,0,0,3,1,13,0,0,2,1,8,0,0,2,1,13,0,0,2,4,14,0,0,6,3,10,0,0,4,2,8,0,0,3,1,13,0,0,2,1,8,0,0,2,1,13,0,0,2,4,14,0,2,8,6,8,0,0,7,2,8,0,0,3,1,13,0,0,2,19,8,0,0,20,1,13,0,0,2,2,8,0,0,3,1,13,0,0,2,16,8,0,0,17,1,13,0,0,2,2,8,0,0,3,1,13,0,0,2,4,14,0,0,5,1,13,0,0,2,2,8,0,0,4,1,13,0,0,2,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,8,0,0,2,1,13,0,0,2,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,1,8,0,3,4,5,0,0,0,5,1,13,0,0,1,4,6,1,0,5,6,8,0,0,8,4,10,0,0,4,1,13,0,0,1,4,7,0,0,6,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,4,10,0,0,4,1,13,0,0,1,4,7,0,2,4,6,10,0,0,7,3,10,0,0,4,6,16,0,0,7,4,10,0,0,4,1,13,0,0,1,4,7,0,0,6,5,8,0,0,7,4,14,0,3,2,6,10,0,0,7,4,10,0,0,5,14,6,0,1,4,6,16,0,0,7,6,14,0,2,4,2,10,0,0,4,6,14,0,0,6,1,13,0,0,1,4,7,0,0,5,2,13,0,0,3,4,10,0,0,4,1,13,0,0,1,4,7,0,2,6,5,10,0,0,6,3,10,0,0,4,17,0,0,0,18,59,18,0,3,4,3,10,0,0,4,16,8,0,0,17,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,1,4,3,10,0,0,4,19,8,0,0,20,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,5,7,0,0,6,1,13,0,0,2,16,8,0,2,4,3,10,0,0,4,4,8,0,0,5,1,13,0,0,2,3,10,0,0,4,3,10,0,0,4,4,10,0,0,4,1,13,0,0,1,4,7,0,0,4,1,13,0,0,1,6,15,0,1,4,3,10,0,0,5,3,10,0,0,4,1,8,0,0,2,1,13,0,0,2,1,12,0,0,3,1,8,0,0,2,1,13,0,0,2,4,10,0,0,4,1,13,0,0,1,4,7,0,0,6,1,8,0,0,1,2,13,0,2,6,3,10,0,0,5,3,10,0,0,4,1,8,0,0,2,1,13,0,0,2,1,12,0,0,3,1,8,0,0,2,1,13,0,0,2,4,10,0,0,4,1,13,0,0,1,4,7,0,0,6,1,8,0,0,1,2,13,0,2,8,3,10,0,0,4,2,8,0,0,3,1,13,0,0,2,1,8,0,0,2,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,0,6,3,10,0,0,4,2,8,0,0,3,1,13,0,0,2,1,8,0,0,2,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,1,8,3,10,0,0,4,2,8,0,0,3,1,13,0,0,2,1,8,0,0,2,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,0,6,3,10,0,0,4,2,8,0,0,3,1,13,0,0,2,1,8,0,0,2,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,2,8,4,8,0,0,5,1,8,0,0,2,1,13,0,0,2,4,10,0,0,4,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,1,8,0,0,3,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,0,5,2,8,0,0,3,1,13,0,0,2,19,8,0,0,20,1,13,0,0,2,2,8,0,0,3,1,13,0,0,2,16,8,0,0,17,1,13,0,0,2,2,8,0,0,3,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,2,8,0,3,4,5,0,0,0,5,1,13,0,0,1,4,6,1,0,5,4,8,0,0,6,6,14,0,0,6,1,13,0,0,1,4,7,0,0,6,4,8,0,0,4,1,13,0,0,1,6,15,0,3,2,6,10,0,0,7,6,10,0,0,7,6,16,0,0,7,7,6,1,1,4,3,10,0,0,4,4,14,0,2,4,3,10,0,0,4,4,8,0,0,5,1,13,0,0,2,3,10,0,0,4,3,10,0,0,4,4,14,0,0,5,1,13,0,0,2,4,14,0,1,4,5,0,0,0,5,1,13,0,0,1,4,6,1,0,5,4,8,0,0,6,7,2,1,2,4,6,10,0,0,7,3,10,0,0,4,6,16,0,0,7,4,8,0,0,6,4,14,0,3,2,6,10,0,0,7,6,10,0,0,7,6,16,0,0,7,4,6,1,1,4,6,16,0,0,7,6,14,0,2,4,3,10,0,0,4,4,8,0,0,5,1,13,0,0,2,3,10,0,0,4,3,10,0,0,4,6,14,0,0,6,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,2,4,5,0,0,0,5,1,13,0,0,1,4,6,1,0,5,6,14,0,0,6,1,13,0,0,1,4,7,0,0,6,4,8,0,0,6,4,8,0,0,4,1,13,0,0,1,6,15,0,2,4,6,10,0,0,7,3,10,0,0,4,6,16,0,0,7,4,8,0,0,6,6,14,0,0,6,1,13,0,0,1,4,7,0,3,2,6,10,0,0,7,6,10,0,0,7,6,16,0,0,7,4,6,1,1,4,6,0,0,0,7,6,14,0,2,4,2,10,0,0,4,6,14,0,0,7,2,10,0,0,3,4,10,0,2,6,5,10,0,0,6,3,10,0,0,4,21,0,0,0,22,6,10,0,0,7,6,14,0,3,4,5,10,0,0,6,3,10,0,0,4,5,8,0,0,6,1,13,0,0,2,3,10,0,0,4,12,0,0,0,13,6,14,0,0,8,9,14,0,0,11,4,10,0,2,4,3,10,0,0,4,4,8,0,0,5,1,13,0,0,2,5,8,0,0,5,1,13,0,0,1,8,6,0,1,4,2,10,0,0,4,1,13,0,0,1,3,10,0,0,3,1,13,0,0,1,8,6,1,0,9,4,8,0,0,6,3,10,0,0,4,3,10,0,0,4,4,8,0,1,6,5,10,0,0,6,3,10,0,0,4,9,0,0,0,10,2,18,0,0,2,87,18,0,0,88,4,8,0,0,5,1,18,0,0,1,1,18,0,2,4,3,10,0,0,4,4,8,0,0,5,1,13,0,0,2,3,10,0,0,4,3,10,0,0,4,4,8,0,0,5,1,13,0,0,2,4,8,0,2,4,42,1,0,1,4,45,1,0,1,4,2,1,0,1,4,5,0,0,0,5,1,13,0,0,1,4,6,1,0,5,4,8,0,0,6,7,2,1,2,4,5,10,0,0,8,4,8,0,0,5,1,13,0,0,2,5,8,0,0,5,1,13,0,0,1,8,6,0,0,12,2,10,0,0,3,3,10,0,0,4,4,10,0,2,6,3,10,0,0,4,5,8,0,0,6,1,13,0,0,2,9,6,1,0,11,1,13,0,0,1,5,6,0,0,6,4,8,0,1,6,2,10,0,0,4,1,13,0,0,1,5,8,0,0,5,1,13,0,0,1,7,15,0,1,8,5,10,0,0,6,3,10,0,0,4,9,0,0,0,10,2,18,0,0,2,76,18,0,0,77,4,8,0,0,5,1,18,0,0,1,1,18,0,2,6,3,10,0,0,4,4,8,0,0,5,1,13,0,0,2,3,10,0,0,3,1,13,0,0,1,5,6,1,0,6,5,8,0,0,5,1,13,0,0,1,6,15,0,0,7,6,18,0,0,7,1,13,0,0,1,9,15,0,1,6,3,10,0,0,4,2,8,0,0,3,1,13,0,0,2,3,10,0,0,3,1,13,0,0,1,5,6,1,0,6,5,8,0,0,5,1,13,0,0,1,6,15,0,0,7,4,18,0,0,5,1,13,0,0,1,9,15,0,1,6,3,10,0,0,4,8,8,0,0,9,1,13,0,0,2,3,10,0,0,3,1,13,0,0,1,5,6,1,0,6,5,8,0,0,5,1,13,0,0,1,6,15,0,0,7,10,18,0,0,11,1,13,0,0,1,9,15,0,2,6,4,8,0,0,5,4,8,0,0,5,1,13,0,0,2,4,8,0,0,5,1,13,0,0,2,2,8,0,0,4,1,13,0,0,2,8,8,0,2,4,6,10,0,0,7,3,10,0,0,4,6,16,0,0,7,4,8,0,0,6,4,8,0,3,2,6,10,0,0,7,6,10,0,0,7,4,10,0,0,5,5,6,1,1,4,6,0,0,0,7,6,14,0,1,4,6,16,0,0,7,6,14,0,2,4,2,10,0,0,4,6,14,0,0,7,2,10,0,0,3,4,10,0,2,6,5,10,0,0,6,3,10,0,0,4,21,0,0,0,22,6,10,0,0,7,6,14,0,3,4,5,10,0,0,6,3,10,0,0,4,6,8,0,0,7,1,13,0,0,2,3,10,0,0,4,12,0,0,0,13,6,14,0,0,8,9,14,0,0,11,4,10,0,2,4,6,8,0,0,6,1,13,0,0,1,9,6,0,0,10,6,14,0,0,6,1,13,0,0,1,4,7,0,2,4,3,10,0,0,5,3,10,0,0,4,1,8,0,0,2,1,13,0,0,2,1,12,0,0,3,1,8,0,0,2,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,0,6,1,8,0,0,1,2,13,0,2,6,3,10,0,0,5,3,10,0,0,4,1,8,0,0,2,1,13,0,0,2,1,12,0,0,3,1,8,0,0,2,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,0,6,1,8,0,0,1,2,13,0,2,8,2,10,0,0,4,6,14,0,0,6,1,13,0,0,1,4,7,0,0,5,1,8,0,0,2,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,1,8,0,0,3,2,13,0,0,3,7,2,1,2,10,6,8,0,0,6,1,13,0,0,1,9,6,0,0,10,2,18,0,0,3,1,8,0,0,2,1,18,0,0,2,1,8,0,0,2,1,18,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,0,5,1,8,0,0,2,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,4,7,0,0,5,1,13,0,0,2,1,8,0,0,3,1,18,0]}},"request":{"id":3,"jsonrpc":"2.0","method":"textDocument/semanticTokens/full","params":{"textDocument":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs"}}}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"server already started"}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"jsonrpc":"2.0","result":{"capabilities":{"documentHighlightProvider":true,"hoverProvider":true,"typeDefinitionProvider":true,"definitionProvider":true,"referencesProvider":true,"diagnosticProvider":{"workspaceDiagnostics":true,"interFileDependencies":false,"documentSelector":[{"pattern":"**/*.cs","language":"csharp","scheme":"file"}]},"inlayHintProvider":{"resolveProvider":false},"signatureHelpProvider":{"triggerCharacters":["(",",","<","{","["]},"foldingRangeProvider":true,"callHierarchyProvider":true,"codeActionProvider":{"resolveProvider":true},"textDocumentSync":{"save":{"includeText":true},"change":2,"openClose":true},"codeLensProvider":{"resolveProvider":true},"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"implementationProvider":true,"documentOnTypeFormattingProvider":{"moreTriggerCharacter":["}",")"],"firstTriggerCharacter":";"},"workspaceSymbolProvider":true,"documentRangeFormattingProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":["class","comment","constant","enumMember","enum","event","method","field","variable","interface","keyword","namespace","number","operator","parameter","property","struct","regex","string","typeParameter"],"tokenModifiers":["static"]},"range":true,"full":true},"typeHierarchyProvider":true,"documentFormattingProvider":true,"documentSymbolProvider":true,"renameProvider":{"prepareProvider":true},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".","'"]}},"serverInfo":{"version":"0.25.0.0","name":"csharp-ls"}}},"server_name":"csharp-ls"},"message":"lsp server already initialized"}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"configuration sent"}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs","__data__":"vim-lsp","server_name":"csharp-ls"},"message":"already opened"}}]
Tue Jun 16 21:36:18 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs","__data__":"vim-lsp","server_name":"csharp-ls"},"message":"not dirty"}}]
Tue Jun 16 21:36:18 2026:["--->",7,"csharp-ls",{"method":"textDocument/semanticTokens/full","on_notification":"---funcref---","params":{"textDocument":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs"}}}]
Tue Jun 16 21:36:19 2026:["lsp#register_server","server already registered","csharp-ls"]
Tue Jun 16 21:36:19 2026:["lsp#register_server","server registered","csharp-ls"]
Tue Jun 16 21:36:19 2026:["s:on_text_document_did_open()",6,"cs","/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs"]
Tue Jun 16 21:36:19 2026:["Starting server","csharp-ls",["csharp-ls"]]
Tue Jun 16 21:36:19 2026:[{"response":{"data":{"__data__":"vim-lsp","lsp_id":8,"server_name":"csharp-ls"},"message":"started lsp server successfully"}}]
Tue Jun 16 21:36:19 2026:["--->",8,"csharp-ls",{"method":"initialize","params":{"rootUri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","capabilities":{"workspace":{"workspaceFolders":false,"configuration":true,"symbol":{"dynamicRegistration":false},"applyEdit":true},"window":{"workDoneProgress":false},"textDocument":{"callHierarchy":{"dynamicRegistration":false},"rename":{"prepareSupport":true,"dynamicRegistration":false,"prepareSupportDefaultBehavior":1},"codeAction":{"isPreferredSupport":true,"disabledSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dynamicRegistration":false},"completion":{"completionItem":{"insertReplaceSupport":true,"snippetSupport":false,"resolveSupport":{"properties":["additionalTextEdits","detail"]},"documentationFormat":["markdown","plaintext"]},"dynamicRegistration":false,"completionItemKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,1,2,3,4,5,6,7,8,9]}},"formatting":{"dynamicRegistration":false},"codeLens":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"documentLink":{"dynamicRegistration":false},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"rangeFormatting":{"dynamicRegistration":false},"declaration":{"dynamicRegistration":false,"linkSupport":true},"references":{"dynamicRegistration":false},"typeHierarchy":{"dynamicRegistration":false},"foldingRange":{"rangeLimit":5000,"dynamicRegistration":false,"lineFoldingOnly":true},"documentSymbol":{"symbolKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,1,2,3,4,5,6,7,8,9]},"dynamicRegistration":false,"labelSupport":false,"hierarchicalDocumentSymbolSupport":false},"publishDiagnostics":{"relatedInformation":true},"synchronization":{"dynamicRegistration":false,"willSaveWaitUntil":false,"willSave":false,"didSave":true},"documentHighlight":{"dynamicRegistration":false},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"semanticTokens":{"serverCancelSupport":false,"requests":{"full":{"delta":true},"range":false},"multilineTokenSupport":false,"dynamicRegistration":false,"overlappingTokenSupport":false,"tokenTypes":["type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":[],"formats":["relative"]},"signatureHelp":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true}}},"rootPath":"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","clientInfo":{"name":"vim-lsp"},"processId":86000,"trace":"off"}}]
Tue Jun 16 21:36:19 2026:["<---(stderr)",8,"csharp-ls","21:36:19.551 info: LifeCycle[0]\n      initializing, csharp-ls version 0.25.0 (Punia)+19a9574d7577521555f49bf49e94688a3ba67dd2\n"]
Tue Jun 16 21:36:19 2026:["<---",7,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: Finished loading solution \"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/Solution.sln\"","type":3}}}]
Tue Jun 16 21:36:19 2026:["<---",8,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: initializing, version 0.25.0 (Punia)+19a9574d7577521555f49bf49e94688a3ba67dd2","type":3}}}]
Tue Jun 16 21:36:19 2026:["<---",8,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: csharp-ls is released under MIT license and is not affiliated with Microsoft Corp.; see https://github.com/razzmatazz/csharp-language-server","type":3}}}]
Tue Jun 16 21:36:19 2026:["<---(stderr)",8,"csharp-ls","21:36:19.578 info: LifeCycle[0]\n      csharp-ls is released under MIT license and is not affiliated with Microsoft Corp.; see https://github.com/razzmatazz/csharp-language-server\n"]
Tue Jun 16 21:36:19 2026:["<---(stderr)",8,"csharp-ls","21:36:19.589 info: Roslyn.Solution[0]\n      SDK instances found, as reported by MSBuild:\n      - SDK=\".NET Core SDK\", Version=10.0.301, MSBuildPath=\"/usr/local/share/dotnet/sdk/10.0.301\", DiscoveryType=DotNetSdk\n      - SDK=\".NET Core SDK\", Version=9.0.306, MSBuildPath=\"/usr/local/share/dotnet/sdk/9.0.306\", DiscoveryType=DotNetSdk\n21:36:19.589 info: Roslyn.Solution[0]\n      MSBuildLocator: will register \".NET Core SDK\", Version=10.0.301 as default instance\n"]
Tue Jun 16 21:36:19 2026:["<---(stderr)",8,"csharp-ls","21:36:19.606 info: LifeCycle[0]\n      handleInitialize: using workspaceFolders: [{\"uri\":\"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall\",\"name\":\"root\"}]\n"]
Tue Jun 16 21:36:19 2026:["<---",7,"csharp-ls",{"response":{"id":2,"jsonrpc":"2.0","result":[{"startLine":0,"kind":"imports","endLine":3},{"startLine":7,"endLine":41},{"startLine":9,"endLine":25},{"startLine":27,"endLine":40}]},"request":{"id":2,"jsonrpc":"2.0","method":"textDocument/foldingRange","params":{"textDocument":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs"}}}}]
Tue Jun 16 21:36:19 2026:["<---",8,"csharp-ls",{"response":{"id":1,"jsonrpc":"2.0","result":{"capabilities":{"documentHighlightProvider":true,"hoverProvider":true,"typeDefinitionProvider":true,"definitionProvider":true,"referencesProvider":true,"diagnosticProvider":{"workspaceDiagnostics":true,"interFileDependencies":false,"documentSelector":[{"pattern":"**/*.cs","language":"csharp","scheme":"file"}]},"inlayHintProvider":{"resolveProvider":false},"signatureHelpProvider":{"triggerCharacters":["(",",","<","{","["]},"foldingRangeProvider":true,"callHierarchyProvider":true,"codeActionProvider":{"resolveProvider":true},"textDocumentSync":{"save":{"includeText":true},"change":2,"openClose":true},"codeLensProvider":{"resolveProvider":true},"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"implementationProvider":true,"documentOnTypeFormattingProvider":{"moreTriggerCharacter":["}",")"],"firstTriggerCharacter":";"},"workspaceSymbolProvider":true,"documentRangeFormattingProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":["class","comment","constant","enumMember","enum","event","method","field","variable","interface","keyword","namespace","number","operator","parameter","property","struct","regex","string","typeParameter"],"tokenModifiers":["static"]},"range":true,"full":true},"typeHierarchyProvider":true,"documentFormattingProvider":true,"documentSymbolProvider":true,"renameProvider":{"prepareProvider":true},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".","'"]}},"serverInfo":{"version":"0.25.0.0","name":"csharp-ls"}}},"request":{"id":1,"jsonrpc":"2.0","method":"initialize","params":{"rootUri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","capabilities":{"workspace":{"workspaceFolders":false,"configuration":true,"symbol":{"dynamicRegistration":false},"applyEdit":true},"window":{"workDoneProgress":false},"textDocument":{"callHierarchy":{"dynamicRegistration":false},"rename":{"prepareSupport":true,"dynamicRegistration":false,"prepareSupportDefaultBehavior":1},"codeAction":{"isPreferredSupport":true,"disabledSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dynamicRegistration":false},"completion":{"completionItem":{"insertReplaceSupport":true,"snippetSupport":false,"resolveSupport":{"properties":["additionalTextEdits","detail"]},"documentationFormat":["markdown","plaintext"]},"dynamicRegistration":false,"completionItemKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,1,2,3,4,5,6,7,8,9]}},"formatting":{"dynamicRegistration":false},"codeLens":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"documentLink":{"dynamicRegistration":false},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"rangeFormatting":{"dynamicRegistration":false},"declaration":{"dynamicRegistration":false,"linkSupport":true},"references":{"dynamicRegistration":false},"typeHierarchy":{"dynamicRegistration":false},"foldingRange":{"rangeLimit":5000,"dynamicRegistration":false,"lineFoldingOnly":true},"documentSymbol":{"symbolKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,1,2,3,4,5,6,7,8,9]},"dynamicRegistration":false,"labelSupport":false,"hierarchicalDocumentSymbolSupport":false},"publishDiagnostics":{"relatedInformation":true},"synchronization":{"dynamicRegistration":false,"willSaveWaitUntil":false,"willSave":false,"didSave":true},"documentHighlight":{"dynamicRegistration":false},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"semanticTokens":{"serverCancelSupport":false,"requests":{"full":{"delta":true},"range":false},"multilineTokenSupport":false,"dynamicRegistration":false,"overlappingTokenSupport":false,"tokenTypes":["type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":[],"formats":["relative"]},"signatureHelp":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true}}},"rootPath":"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","clientInfo":{"name":"vim-lsp"},"processId":86000,"trace":"off"}}}]
Tue Jun 16 21:36:19 2026:["--->",8,"csharp-ls",{"method":"initialized","params":{}}]
Tue Jun 16 21:36:19 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"configuration sent"}}]
Tue Jun 16 21:36:19 2026:["s:update_file_content()",6]
Tue Jun 16 21:36:19 2026:["--->",8,"csharp-ls",{"method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs","version":1,"languageId":"cs","text":"using System;\nusing System.IO;\nusing System.Text.RegularExpressions;\n\nnamespace Code.Utilz;\n\npublic readonly partial struct Matrix\n{\n  public readonly struct Blocks\n  {\n    public const int NO_EDGE = Matrix.NO_EDGE;\n\n    public readonly int[] Data;\n    public readonly int Count;\n    public readonly int Size;\n\n    public Blocks(\n      int[] data,\n      int count,\n      int size)\n    {\n      this.Data = data;\n      this.Count = count;\n      this.Size = size; \n    }\n  }\n\n  public const int NO_EDGE = int.MaxValue / 2 - 1;\n\n  public readonly int[] Data;\n  public readonly int Size;\n\n  public Matrix(\n    int[] data,\n    int size)\n  {\n    this.Data = data;\n    this.Size = size;\n  }\n\n  [GeneratedRegex(\"(?<from>\\\\d+)\\\\s(?<to>\\\\d+)\\\\s(?<distance>\\\\d+)\")]\n  private static partial Regex ReadRegex();\n\n  public Blocks SplitInBlocks(\n    int size)\n  {\n    var count = this.Size / size;\n    if (this.Size % size != 0)\n    {\n      throw new InvalidOperationException(\"Can't split matrix into uneven blocks\");\n    }\n\n    var lineralBlockSize = size * size;\n    var lineralBlockRowSize = count * lineralBlockSize;\n\n    var blocks = new int[this.Size * this.Size];\n    for (var i = 0; i < this.Size; i++)\n    {\n      for (var j = 0; j < this.Size; j++)\n      {\n        var bI = i / size; var bJ = j / size;\n        var bX = i % size; var bY = j % size;\n\n        blocks[bI * lineralBlockRowSize + bJ * lineralBlockSize + bX * size + bY] = this.Data[i * this.Size + j];\n      }\n    }\n    Array.Copy(blocks, this.Data, this.Size * this.Size);\n\n    return new Blocks(this.Data, count, size);\n  }\n\n  public void JoinFromBlocks(\n    Blocks blocks)\n  {\n    if (blocks.Data != this.Data)\n    {\n      throw new ArgumentException(\"Unable to assemble matrix from blocks of different matrix\");\n    }\n\n    var lineralBlockSize = blocks.Size * blocks.Size;\n    var lineralBlockRowSize = blocks.Count * lineralBlockSize;\n\n    var data = new int[this.Data.Length];\n    for (var i = 0; i < this.Size; i++)\n    {\n      for (var j = 0; j < this.Size; j++)\n      {\n        var bI = i / blocks.Size; var bJ = j / blocks.Size;\n        var bX = i % blocks.Size; var bY = j % blocks.Size;\n\n        data[i * this.Size + j] = blocks.Data[bI * lineralBlockRowSize + bJ * lineralBlockSize + bX * blocks.Size + bY];\n      }\n    }\n    Array.Copy(data, blocks.Data, data.Length);\n  }\n\n  public static Matrix Default(\n    int size)\n  {\n    var data = new int[size * size];\n    Array.Fill(data, NO_EDGE);\n\n    return new Matrix(data, size);\n  }\n\n  public static Matrix Copy(\n    Matrix matrix)\n  {\n    var data = new int[matrix.Size * matrix.Size];\n\n    Array.Copy(matrix.Data, data, data.Length);\n\n    return new Matrix(data, matrix.Size);\n  }\n\n  public static Matrix Read(\n    Stream stream)\n  {\n    if (stream is null)\n    {\n      throw new ArgumentNullException(nameof(stream));\n    }\n\n    using var input = new StreamReader(stream, leaveOpen: true);\n\n    var line = input.ReadLine();\n    if (!int.TryParse(line, out var size))\n      throw new Exception($\"Unexpected start of stream, expected <number> as the first value from stream but got: '{line}'\");\n\n    var data = new int[size * size];\n\n    // Fill the whole data with NO_EDGE values\n    // because we are reading only existing edges\n    //\n    Array.Fill(data, NO_EDGE);\n\n    while ((line = input.ReadLine()) is not null)\n    {\n      var match = ReadRegex().Match(line);\n      if (!match.Success)\n        throw new Exception($\"Unexpected value, expected value in <from> <to> <distance> format but got: '{line}'\");\n\n      var from = int.Parse(match.Groups[\"from\"].ValueSpan);\n      var to = int.Parse(match.Groups[\"to\"].ValueSpan);\n      var distance = int.Parse(match.Groups[\"distance\"].ValueSpan);\n\n      data[from * size + to] = distance;\n    }\n    return new Matrix(data, size);\n  }\n\n  public static void Write(\n    Stream stream,\n    Matrix matrix)\n  {\n    if (stream is null)\n    {\n      throw new ArgumentNullException(nameof(stream));\n    }\n\n    using var output = new StreamWriter(stream, leaveOpen: true);\n\n    output.WriteLine(matrix.Size);\n\n    for (int i = 0; i < matrix.Size; i++)\n    {\n      for (int j = 0; j < matrix.Size; j++)\n      {\n        if (matrix.Data[i * matrix.Size + j] != NO_EDGE)\n        {\n          output.WriteLine($\"{i} {j} {matrix.Data[i * matrix.Size + j]}\");\n        }\n      }\n    }\n  }\n}\n"}}}]
Tue Jun 16 21:36:19 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"server already started"}}]
Tue Jun 16 21:36:19 2026:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"jsonrpc":"2.0","result":{"capabilities":{"documentHighlightProvider":true,"hoverProvider":true,"typeDefinitionProvider":true,"definitionProvider":true,"referencesProvider":true,"diagnosticProvider":{"workspaceDiagnostics":true,"interFileDependencies":false,"documentSelector":[{"pattern":"**/*.cs","language":"csharp","scheme":"file"}]},"inlayHintProvider":{"resolveProvider":false},"signatureHelpProvider":{"triggerCharacters":["(",",","<","{","["]},"foldingRangeProvider":true,"callHierarchyProvider":true,"codeActionProvider":{"resolveProvider":true},"textDocumentSync":{"save":{"includeText":true},"change":2,"openClose":true},"codeLensProvider":{"resolveProvider":true},"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"implementationProvider":true,"documentOnTypeFormattingProvider":{"moreTriggerCharacter":["}",")"],"firstTriggerCharacter":";"},"workspaceSymbolProvider":true,"documentRangeFormattingProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":["class","comment","constant","enumMember","enum","event","method","field","variable","interface","keyword","namespace","number","operator","parameter","property","struct","regex","string","typeParameter"],"tokenModifiers":["static"]},"range":true,"full":true},"typeHierarchyProvider":true,"documentFormattingProvider":true,"documentSymbolProvider":true,"renameProvider":{"prepareProvider":true},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".","'"]}},"serverInfo":{"version":"0.25.0.0","name":"csharp-ls"}}},"server_name":"csharp-ls"},"message":"lsp server already initialized"}}]
Tue Jun 16 21:36:19 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"configuration sent"}}]
Tue Jun 16 21:36:19 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs","__data__":"vim-lsp","server_name":"csharp-ls"},"message":"already opened"}}]
Tue Jun 16 21:36:19 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs","__data__":"vim-lsp","server_name":"csharp-ls"},"message":"not dirty"}}]
Tue Jun 16 21:36:19 2026:["--->",8,"csharp-ls",{"method":"textDocument/foldingRange","on_notification":"---funcref---","bufnr":6,"params":{"textDocument":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs"}},"sync":0}]
Tue Jun 16 21:36:19 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs","__data__":"vim-lsp","filetype":"cs","server_name":"csharp-ls"},"message":"textDocument/open sent"}}]
Tue Jun 16 21:36:19 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs","__data__":"vim-lsp","server_name":"csharp-ls"},"message":"not dirty"}}]
Tue Jun 16 21:36:19 2026:["<---","s:on_request",8,{"id":1,"jsonrpc":"2.0","method":"workspace/configuration","params":{"items":[{"section":"csharp"}]}}]
Tue Jun 16 21:36:19 2026:["--->",8,"csharp-ls",{"id":1,"result":[null]}]
Tue Jun 16 21:36:19 2026:["<---(stderr)",8,"csharp-ls","21:36:19.747 info: LifeCycle[0]\n      initialize: initial csharp config: { logLevel = Some \"info\"\n        applyFormattingOptions = None\n        analyzersEnabled = None\n        useMetadataUris = Some false\n        razorSupport = Some false\n        locale = None\n        debug = Some { solutionLoadDelay = None\n                       debugMode = Some false }\n        solutionPathOverride = None }\n"]
Tue Jun 16 21:36:19 2026:["<---",8,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: attempting to find and load solution on path \"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall\"..","type":3}}}]
Tue Jun 16 21:36:19 2026:["<---",8,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: 1 solution(s) found: [/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/Solution.sln]","type":3}}}]
Tue Jun 16 21:36:19 2026:["<---",8,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: Loading solution \"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/Solution.sln\"...","type":3}}}]
Tue Jun 16 21:36:19 2026:["<---(stderr)",8,"csharp-ls","21:36:19.808 info: Roslyn.Solution[0]\n      Will use MSBuild props: map [(TargetFramework, net8.0)]\n"]
Tue Jun 16 21:36:20 2026:["--->",8,"csharp-ls",{"method":"$/cancelRequest","params":{"id":3}}]
Tue Jun 16 21:36:20 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"server already started"}}]
Tue Jun 16 21:36:20 2026:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"jsonrpc":"2.0","result":{"capabilities":{"documentHighlightProvider":true,"hoverProvider":true,"typeDefinitionProvider":true,"definitionProvider":true,"referencesProvider":true,"diagnosticProvider":{"workspaceDiagnostics":true,"interFileDependencies":false,"documentSelector":[{"pattern":"**/*.cs","language":"csharp","scheme":"file"}]},"inlayHintProvider":{"resolveProvider":false},"signatureHelpProvider":{"triggerCharacters":["(",",","<","{","["]},"foldingRangeProvider":true,"callHierarchyProvider":true,"codeActionProvider":{"resolveProvider":true},"textDocumentSync":{"save":{"includeText":true},"change":2,"openClose":true},"codeLensProvider":{"resolveProvider":true},"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"implementationProvider":true,"documentOnTypeFormattingProvider":{"moreTriggerCharacter":["}",")"],"firstTriggerCharacter":";"},"workspaceSymbolProvider":true,"documentRangeFormattingProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":["class","comment","constant","enumMember","enum","event","method","field","variable","interface","keyword","namespace","number","operator","parameter","property","struct","regex","string","typeParameter"],"tokenModifiers":["static"]},"range":true,"full":true},"typeHierarchyProvider":true,"documentFormattingProvider":true,"documentSymbolProvider":true,"renameProvider":{"prepareProvider":true},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".","'"]}},"serverInfo":{"version":"0.25.0.0","name":"csharp-ls"}}},"server_name":"csharp-ls"},"message":"lsp server already initialized"}}]
Tue Jun 16 21:36:20 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"configuration sent"}}]
Tue Jun 16 21:36:20 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs","__data__":"vim-lsp","server_name":"csharp-ls"},"message":"already opened"}}]
Tue Jun 16 21:36:20 2026:[{"response":{"data":{"path":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs","__data__":"vim-lsp","server_name":"csharp-ls"},"message":"not dirty"}}]
Tue Jun 16 21:36:20 2026:["--->",8,"csharp-ls",{"method":"textDocument/semanticTokens/full","on_notification":"---funcref---","params":{"textDocument":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs"}}}]
Tue Jun 16 21:36:20 2026:["<---",7,"csharp-ls",{"response":{"id":3,"jsonrpc":"2.0","result":{"data":[0,0,5,10,0,0,6,6,11,0,1,0,5,10,0,0,6,6,11,0,0,6,1,13,0,0,1,9,11,0,0,9,1,13,0,0,1,5,11,0,1,0,5,10,0,0,6,4,11,0,0,4,1,13,0,0,1,5,11,0,1,0,5,10,0,0,6,4,11,0,0,4,1,13,0,0,1,11,11,0,0,11,1,13,0,0,1,12,11,0,2,0,9,10,0,0,10,4,11,0,0,4,1,13,0,0,1,8,11,0,2,0,6,10,0,0,7,5,10,0,0,6,6,0,0,2,2,6,10,0,0,7,7,10,0,0,8,4,10,0,0,5,20,6,0,0,21,12,0,0,0,13,6,14,0,0,8,3,10,0,0,4,2,14,0,2,4,3,10,0,0,5,3,10,0,0,4,1,8,0,0,2,1,13,0,0,2,1,12,0,0,3,1,8,0,0,2,1,13,0,0,2,2,14,0,0,4,2,13,0,0,2,1,8,0,2,6,8,0,1,0,8,1,13,0,0,1,3,6,1,0,4,1,12,0,0,3,2,14,0,0,4,1,14,0,0,2,2,13,0,2,8,3,10,0,0,5,3,10,0,0,4,1,8,0,0,2,1,13,0,0,2,1,12,0,0,3,1,8,0,0,2,1,13,0,0,2,2,14,0,0,4,2,13,0,0,2,1,8,0,2,10,3,10,0,0,4,8,8,0,0,9,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,9,6,0,0,10,1,14,0,0,2,1,13,0,0,2,2,14,0,0,3,1,13,0,0,2,1,8,0,0,3,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,9,6,0,0,10,1,8,0,0,2,1,13,0,0,2,2,14,0,0,3,1,13,0,0,2,1,8,0,1,10,2,10,0,0,4,6,14,0,0,6,1,13,0,0,1,9,6,0,0,10,1,14,0,0,2,1,13,0,0,2,2,14,0,0,3,1,13,0,0,2,1,8,0,0,3,1,13,0,0,2,8,8,0,2,12,6,14,0,0,6,1,13,0,0,1,10,6,0,0,11,1,14,0,0,2,1,13,0,0,2,2,14,0,0,3,1,13,0,0,2,1,8,0,0,3,8,8,0,7,2,6,10,0,0,7,4,10,0,0,5,3,6,0,0,4,3,10,0,0,6,6,14,0,0,8,3,10,0,0,4,2,14,0,0,4,10,9,0,0,11,9,14,0,0,10,1,13,0,0,2,4,10,0,0,6,32,9,0,0,33,13,14,0,0,14,1,13,0,0,2,4,10,0,2,4,3,10,0,0,4,6,8,0,0,7,1,13,0,0,2,9,14,0,0,10,2,10,0,0,3,4,10,0,1,6,1,13,0,0,2,12,0,0,0,12,1,13,0,0,1,20,6,1,0,21,6,14,0,0,6,1,13,0,0,1,6,15,0,1,6,1,13,0,0,2,9,14,0,0,9,1,13,0,0,1,12,6,0,0,13,13,14,0,0,15,6,14,0,0,6,1,13,0,0,1,6,15,0,2,4,3,10,0,0,5,3,10,0,0,4,1,8,0,0,2,1,13,0,0,2,1,12,0,0,3,1,8,0,0,2,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,6,15,0,0,8,2,13,0,0,2,1,8,0,1,6,6,8,0,0,6,1,13,0,0,1,10,6,0,0,11,1,8,0,0,3,6,14,0,0,7,1,8,0,2,4,20,6,0,0,21,6,8,0,0,8,2,14,0,2,4,3,10,0,0,5,3,10,0,0,4,1,8,0,0,2,1,13,0,0,2,1,12,0,0,3,1,8,0,0,2,1,13,0,0,2,6,14,0,0,6,1,13,0,0,1,6,15,0,0,8,2,13,0,0,2,1,8,0,1,6,6,14,0,0,7,1,8,0,0,3,1,13,0,0,2,6,8,0,0,6,1,13,0,0,1,9,6,0,0,10,1,8,0]}},"request":{"id":3,"jsonrpc":"2.0","method":"textDocument/semanticTokens/full","params":{"textDocument":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs"}}}}]
Tue Jun 16 21:36:20 2026:["<---",7,"csharp-ls",{"response":{"method":"textDocument/publishDiagnostics","jsonrpc":"2.0","params":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs","diagnostics":[{"source":"lsp","range":{"end":{"character":13,"line":0},"start":{"character":0,"line":0}},"code":"CS8019","message":"Unnecessary using directive.","codeDescription":{"href":"https://msdn.microsoft.com/query/roslyn.query?appId=roslyn&k=k(CS8019)"},"severity":2}]}}}]
Tue Jun 16 21:36:21 2026:["<---",8,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: Finished loading solution \"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/Solution.sln\"","type":3}}}]
Tue Jun 16 21:36:21 2026:["<---",8,"csharp-ls",{"response":{"id":2,"jsonrpc":"2.0","result":[{"startLine":0,"kind":"imports","endLine":2},{"startLine":6,"endLine":175},{"startLine":8,"endLine":25},{"startLine":16,"endLine":24},{"startLine":32,"endLine":38},{"startLine":40,"endLine":41},{"startLine":43,"endLine":69},{"startLine":71,"endLine":94},{"startLine":96,"endLine":103},{"startLine":105,"endLine":113},{"startLine":115,"endLine":149},{"startLine":151,"endLine":174}]},"request":{"id":2,"jsonrpc":"2.0","method":"textDocument/foldingRange","params":{"textDocument":{"uri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Utilz/Matrix.cs"}}}}]
Tue Jun 16 21:36:21 2026:["lsp#register_server","server already registered","csharp-ls"]
Tue Jun 16 21:36:21 2026:["lsp#register_server","server registered","csharp-ls"]
Tue Jun 16 21:36:21 2026:["s:on_text_document_did_open()",5,"cs","/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall/src/Hardware/APSP04.cs"]
Tue Jun 16 21:36:21 2026:["Starting server","csharp-ls",["csharp-ls"]]
Tue Jun 16 21:36:21 2026:[{"response":{"data":{"__data__":"vim-lsp","lsp_id":9,"server_name":"csharp-ls"},"message":"started lsp server successfully"}}]
Tue Jun 16 21:36:21 2026:["--->",9,"csharp-ls",{"method":"initialize","params":{"rootUri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","capabilities":{"workspace":{"workspaceFolders":false,"configuration":true,"symbol":{"dynamicRegistration":false},"applyEdit":true},"window":{"workDoneProgress":false},"textDocument":{"callHierarchy":{"dynamicRegistration":false},"rename":{"prepareSupport":true,"dynamicRegistration":false,"prepareSupportDefaultBehavior":1},"codeAction":{"isPreferredSupport":true,"disabledSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dynamicRegistration":false},"completion":{"completionItem":{"insertReplaceSupport":true,"snippetSupport":false,"resolveSupport":{"properties":["additionalTextEdits","detail"]},"documentationFormat":["markdown","plaintext"]},"dynamicRegistration":false,"completionItemKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,1,2,3,4,5,6,7,8,9]}},"formatting":{"dynamicRegistration":false},"codeLens":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"documentLink":{"dynamicRegistration":false},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"rangeFormatting":{"dynamicRegistration":false},"declaration":{"dynamicRegistration":false,"linkSupport":true},"references":{"dynamicRegistration":false},"typeHierarchy":{"dynamicRegistration":false},"foldingRange":{"rangeLimit":5000,"dynamicRegistration":false,"lineFoldingOnly":true},"documentSymbol":{"symbolKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,1,2,3,4,5,6,7,8,9]},"dynamicRegistration":false,"labelSupport":false,"hierarchicalDocumentSymbolSupport":false},"publishDiagnostics":{"relatedInformation":true},"synchronization":{"dynamicRegistration":false,"willSaveWaitUntil":false,"willSave":false,"didSave":true},"documentHighlight":{"dynamicRegistration":false},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"semanticTokens":{"serverCancelSupport":false,"requests":{"full":{"delta":true},"range":false},"multilineTokenSupport":false,"dynamicRegistration":false,"overlappingTokenSupport":false,"tokenTypes":["type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":[],"formats":["relative"]},"signatureHelp":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true}}},"rootPath":"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","clientInfo":{"name":"vim-lsp"},"processId":86000,"trace":"off"}}]
Tue Jun 16 21:36:21 2026:["<---(stderr)",9,"csharp-ls","21:36:21.751 info: LifeCycle[0]\n      initializing, csharp-ls version 0.25.0 (Punia)+19a9574d7577521555f49bf49e94688a3ba67dd2\n"]
Tue Jun 16 21:36:21 2026:["<---",9,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: initializing, version 0.25.0 (Punia)+19a9574d7577521555f49bf49e94688a3ba67dd2","type":3}}}]
Tue Jun 16 21:36:21 2026:["<---",9,"csharp-ls",{"response":{"method":"window/logMessage","jsonrpc":"2.0","params":{"message":"csharp-ls: csharp-ls is released under MIT license and is not affiliated with Microsoft Corp.; see https://github.com/razzmatazz/csharp-language-server","type":3}}}]
Tue Jun 16 21:36:21 2026:["<---(stderr)",9,"csharp-ls","21:36:21.777 info: LifeCycle[0]\n      csharp-ls is released under MIT license and is not affiliated with Microsoft Corp.; see https://github.com/razzmatazz/csharp-language-server\n"]
Tue Jun 16 21:36:21 2026:["<---(stderr)",9,"csharp-ls","21:36:21.788 info: Roslyn.Solution[0]\n      SDK instances found, as reported by MSBuild:\n      - SDK=\".NET Core SDK\", Version=10.0.301, MSBuildPath=\"/usr/local/share/dotnet/sdk/10.0.301\", DiscoveryType=DotNetSdk\n      - SDK=\".NET Core SDK\", Version=9.0.306, MSBuildPath=\"/usr/local/share/dotnet/sdk/9.0.306\", DiscoveryType=DotNetSdk\n"]
Tue Jun 16 21:36:21 2026:["<---(stderr)",9,"csharp-ls","21:36:21.789 info: Roslyn.Solution[0]\n      MSBuildLocator: will register \".NET Core SDK\", Version=10.0.301 as default instance\n"]
Tue Jun 16 21:36:21 2026:["<---(stderr)",9,"csharp-ls","21:36:21.806 info: LifeCycle[0]\n      handleInitialize: using workspaceFolders: [{\"uri\":\"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall\",\"name\":\"root\"}]\n"]
Tue Jun 16 21:36:21 2026:["<---",9,"csharp-ls",{"response":{"id":1,"jsonrpc":"2.0","result":{"capabilities":{"documentHighlightProvider":true,"hoverProvider":true,"typeDefinitionProvider":true,"definitionProvider":true,"referencesProvider":true,"diagnosticProvider":{"workspaceDiagnostics":true,"interFileDependencies":false,"documentSelector":[{"pattern":"**/*.cs","language":"csharp","scheme":"file"}]},"inlayHintProvider":{"resolveProvider":false},"signatureHelpProvider":{"triggerCharacters":["(",",","<","{","["]},"foldingRangeProvider":true,"callHierarchyProvider":true,"codeActionProvider":{"resolveProvider":true},"textDocumentSync":{"save":{"includeText":true},"change":2,"openClose":true},"codeLensProvider":{"resolveProvider":true},"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"implementationProvider":true,"documentOnTypeFormattingProvider":{"moreTriggerCharacter":["}",")"],"firstTriggerCharacter":";"},"workspaceSymbolProvider":true,"documentRangeFormattingProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":["class","comment","constant","enumMember","enum","event","method","field","variable","interface","keyword","namespace","number","operator","parameter","property","struct","regex","string","typeParameter"],"tokenModifiers":["static"]},"range":true,"full":true},"typeHierarchyProvider":true,"documentFormattingProvider":true,"documentSymbolProvider":true,"renameProvider":{"prepareProvider":true},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".","'"]}},"serverInfo":{"version":"0.25.0.0","name":"csharp-ls"}}},"request":{"id":1,"jsonrpc":"2.0","method":"initialize","params":{"rootUri":"file:///Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","capabilities":{"workspace":{"workspaceFolders":false,"configuration":true,"symbol":{"dynamicRegistration":false},"applyEdit":true},"window":{"workDoneProgress":false},"textDocument":{"callHierarchy":{"dynamicRegistration":false},"rename":{"prepareSupport":true,"dynamicRegistration":false,"prepareSupportDefaultBehavior":1},"codeAction":{"isPreferredSupport":true,"disabledSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dynamicRegistration":false},"completion":{"completionItem":{"insertReplaceSupport":true,"snippetSupport":false,"resolveSupport":{"properties":["additionalTextEdits","detail"]},"documentationFormat":["markdown","plaintext"]},"dynamicRegistration":false,"completionItemKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,1,2,3,4,5,6,7,8,9]}},"formatting":{"dynamicRegistration":false},"codeLens":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"documentLink":{"dynamicRegistration":false},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"rangeFormatting":{"dynamicRegistration":false},"declaration":{"dynamicRegistration":false,"linkSupport":true},"references":{"dynamicRegistration":false},"typeHierarchy":{"dynamicRegistration":false},"foldingRange":{"rangeLimit":5000,"dynamicRegistration":false,"lineFoldingOnly":true},"documentSymbol":{"symbolKind":{"valueSet":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,1,2,3,4,5,6,7,8,9]},"dynamicRegistration":false,"labelSupport":false,"hierarchicalDocumentSymbolSupport":false},"publishDiagnostics":{"relatedInformation":true},"synchronization":{"dynamicRegistration":false,"willSaveWaitUntil":false,"willSave":false,"didSave":true},"documentHighlight":{"dynamicRegistration":false},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"semanticTokens":{"serverCancelSupport":false,"requests":{"full":{"delta":true},"range":false},"multilineTokenSupport":false,"dynamicRegistration":false,"overlappingTokenSupport":false,"tokenTypes":["type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":[],"formats":["relative"]},"signatureHelp":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true}}},"rootPath":"/Users/shimanski/Projects/GitHub/apsp-problems/floyd-warshall","clientInfo":{"name":"vim-lsp"},"processId":86000,"trace":"off"}}}]
Tue Jun 16 21:36:21 2026:["--->",9,"csharp-ls",{"method":"initialized","params":{}}]
Tue Jun 16 21:36:21 2026:[{"response":{"data":{"__data__":"vim-lsp","server_name":"csharp-ls"},"message":"configuration sent"}}]

Activity

  1. OlegKarasik commented on Jun 22, 2026

    @OlegKarasik
    Author

    If someone is interested, I was able to find a partial solution to the above problem by updating my registration code to:

    if executable('csharp-ls')
      let g:lsp_setup_called_cs = []
    
      function! HandleLspSetup()
        let root = lsp#utils#path_to_uri(
          \   lsp#utils#find_nearest_parent_file_directory(
          \     lsp#utils#get_buffer_path(),
          \     ['*.sln', '*.csproj', '.git', '.git/']
          \   )
          \ )
    
        if index(g:lsp_setup_called_cs, root) < 0
          call lsp#register_server({
            \ 'name': 'csharp-ls',
            \ 'cmd': {server_info->['csharp-ls', '--features', 'metadata-uris']},
            \ 'allowlist': ['cs'],
            \ 'root_uri': {server_info->root},
            \ 'config': {},
            \ 'workspace_config': {},
            \ })
    
          call add(g:lsp_setup_called_cs, root)
        endif
      endfunction
    
      au User lsp_setup call HandleLspSetup()
    endif
    

    There are two issues here - this registration bloats the .vimrc (a minor one) an it never unregisters the LSP when all buffers from a particular directory are unregistered. Maybe I will come up with the solution to these two also a bit later.

    Leaving this issue open, so maybe maintainers can advise something better, or maybe some of the things can be contributed somewhere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions