rust_hdl icon indicating copy to clipboard operation
rust_hdl copied to clipboard

Panic when (seemingly) completing a port name

Open SethGower opened this issue 3 months ago • 0 comments

Hello. It seems that the LSP is panicking and exiting with exit code 101 when I try to complete a port name.

Minimal example: vhdl_ls version v0.80.0 Client: Neovim with latest nvim-lspconfig, LSP installed with mason. Using the default configuration in nvim-lspconfig, but here is my config for the LSP.

vhdl_ls.toml

[libraries]
defaultlib.files = [
    "./*.vhd"
]

VHDL File

library ieee;
    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;

entity test1 is
    port (
        i_clk  : in    std_logic;
        i_rstn : in    std_logic;
        i_d    : in    std_logic;
        o_q    : out   std_logic;
        o_qn   : out   std_logic
    );
end entity test1;

architecture behav of test1 is

begin

    o_q_proc : process (i_clk) is
    begin

        if rising_edge(i_clk) then
            if (i_rstn = '0') then
                o_q <= '0';
            else
                o_q <= i_d;
            end if;
        end if;

    end process o_q_proc;

end architecture behav;

If I try to add o_qn <= not o_q, by typing out o_ and then selecting the autocomplete candidate from the LSP, I get the crash. Seems to be a rust panic. I have attached the log for the whole LSP session. The only related line seems to be the last one, however I figured I'd include it all

[START][2024-05-02 15:48:41] LSP logging initiated
[INFO][2024-05-02 15:48:41] .../vim/lsp/rpc.lua:662	"Starting RPC client"	{  args = {},  cmd = "/home/sgower/.local/share/nvim/mason/bin/vhdl_ls",  extra = {    cwd = "/home/sgower/Documents/Development/test/vhdl"  }}
[DEBUG][2024-05-02 15:48:41] .../vim/lsp/rpc.lua:284	"rpc.send"	{  id = 1,  jsonrpc = "2.0",  method = "initialize",  params = {    capabilities = {      textDocument = {        callHierarchy = {          dynamicRegistration = false        },        codeAction = {          codeActionLiteralSupport = {            codeActionKind = {              valueSet = { "", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" }            }          },          dataSupport = true,          dynamicRegistration = false,          isPreferredSupport = true,          resolveSupport = {            properties = { "edit" }          }        },        completion = {          completionItem = {            commitCharactersSupport = false,            deprecatedSupport = false,            documentationFormat = { "markdown", "plaintext" },            preselectSupport = false,            resolveSupport = {              properties = { "documentation", "detail", "additionalTextEdits" }            },            snippetSupport = true          },          completionItemKind = {            valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }          },          contextSupport = false,          dynamicRegistration = false        },        declaration = {          linkSupport = true        },        definition = {          linkSupport = true        },        documentHighlight = {          dynamicRegistration = false        },        documentSymbol = {          dynamicRegistration = false,          hierarchicalDocumentSymbolSupport = true,          symbolKind = {            valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }          }        },        hover = {          contentFormat = { "markdown", "plaintext" },          dynamicRegistration = false        },        implementation = {          linkSupport = true        },        publishDiagnostics = {          relatedInformation = true,          tagSupport = {            valueSet = { 1, 2 }          }        },        references = {          dynamicRegistration = false        },        rename = {          dynamicRegistration = false,          prepareSupport = true        },        semanticTokens = {          augmentsSyntaxTokens = true,          dynamicRegistration = false,          formats = { "relative" },          multilineTokenSupport = false,          overlappingTokenSupport = true,          requests = {            full = {              delta = true            },            range = false          },          serverCancelSupport = false,          tokenModifiers = { "declaration", "definition", "readonly", "static", "deprecated", "abstract", "async", "modification", "documentation", "defaultLibrary" },          tokenTypes = { "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" }        },        signatureHelp = {          dynamicRegistration = false,          signatureInformation = {            activeParameterSupport = true,            documentationFormat = { "markdown", "plaintext" },            parameterInformation = {              labelOffsetSupport = true            }          }        },        synchronization = {          didSave = true,          dynamicRegistration = false,          willSave = true,          willSaveWaitUntil = true        },        typeDefinition = {          linkSupport = true        }      },      window = {        showDocument = {          support = true        },        showMessage = {          messageActionItem = {            additionalPropertiesSupport = false          }        },        workDoneProgress = true      },      workspace = {        applyEdit = true,        configuration = true,        didChangeWatchedFiles = {          dynamicRegistration = false,          relativePatternSupport = true        },        semanticTokens = {          refreshSupport = true        },        symbol = {          dynamicRegistration = false,          hierarchicalWorkspaceSymbolSupport = true,          symbolKind = {            valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }          }        },        workspaceEdit = {          resourceOperations = { "rename", "create", "delete" }        },        workspaceFolders = true      }    },    clientInfo = {      name = "Neovim",      version = "0.9.5"    },    initializationOptions = vim.empty_dict(),    processId = 2692421,    rootPath = "/home/sgower/Documents/Development/test/vhdl",    rootUri = "file:///home/sgower/Documents/Development/test/vhdl",    trace = "off",    workspaceFolders = { {        name = "/home/sgower/Documents/Development/test/vhdl",        uri = "file:///home/sgower/Documents/Development/test/vhdl"      } }  }}
[DEBUG][2024-05-02 15:48:41] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Loaded Installation configuration file: /home/sgower/.local/share/nvim/mason/packages/rust_hdl/vhdl_ls-x86_64-unknown-linux-musl/bin/../vhdl_libraries/vhdl_ls.toml",    type = 4  }}
[DEBUG][2024-05-02 15:48:41] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Loaded HOME folder configuration file: /home/sgower/.vhdl_ls.toml",    type = 4  }}
[DEBUG][2024-05-02 15:48:41] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Loaded workspace root configuration file: /home/sgower/Documents/Development/test/vhdl/vhdl_ls.toml",    type = 4  }}
[INFO][2024-05-02 15:48:41] ...lsp/handlers.lua:539	"Loaded Installation configuration file: /home/sgower/.local/share/nvim/mason/packages/rust_hdl/vhdl_ls-x86_64-unknown-linux-musl/bin/../vhdl_libraries/vhdl_ls.toml"
[INFO][2024-05-02 15:48:41] ...lsp/handlers.lua:539	"Loaded HOME folder configuration file: /home/sgower/.vhdl_ls.toml"
[INFO][2024-05-02 15:48:41] ...lsp/handlers.lua:539	"Loaded workspace root configuration file: /home/sgower/Documents/Development/test/vhdl/vhdl_ls.toml"
[DEBUG][2024-05-02 15:48:41] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  id = 1,  jsonrpc = "2.0",  result = {    capabilities = {      completionProvider = {        completionItem = {          labelDetailsSupport = true        },        resolveProvider = true,        triggerCharacters = { "." }      },      declarationProvider = true,      definitionProvider = true,      documentSymbolProvider = true,      hoverProvider = true,      implementationProvider = true,      referencesProvider = true,      renameProvider = {        prepareProvider = true      },      textDocumentSync = 2,      workspaceSymbolProvider = true    }  }}
[DEBUG][2024-05-02 15:48:41] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "initialized",  params = vim.empty_dict()}
[INFO][2024-05-02 15:48:41] .../lua/vim/lsp.lua:1344	"LSP[vhdl_ls]"	"server_capabilities"	{  server_capabilities = {    completionProvider = {      completionItem = {        labelDetailsSupport = true      },      resolveProvider = true,      triggerCharacters = { "." }    },    declarationProvider = true,    definitionProvider = true,    documentSymbolProvider = true,    hoverProvider = true,    implementationProvider = true,    referencesProvider = true,    renameProvider = {      prepareProvider = true    },    textDocumentSync = {      change = 2,      openClose = true,      save = {        includeText = false      },      willSave = false,      willSaveWaitUntil = false    },    workspaceSymbolProvider = true  }}
[DEBUG][2024-05-02 15:48:41] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didOpen",  params = {    textDocument = {      languageId = "vhdl",      text = "library ieee;\n    use ieee.std_logic_1164.all;\n    use ieee.numeric_std.all;\n\nentity test1 is\n    port (\n        i_clk  : in    std_logic;\n        i_rstn : in    std_logic;\n        i_d    : in    std_logic;\n        o_q    : out   std_logic;\n        o_qn   : out   std_logic\n    );\nend entity test1;\n\narchitecture behav of test1 is\n\nbegin\n\n    o_q_proc : process (i_clk) is\n    begin\n\n        if rising_edge(i_clk) then\n            if (i_rstn = '0') then\n                o_q <= '0';\n            else\n                o_q <= i_d;\n            end if;\n        end if;\n\n    end process o_q_proc;\n\n    o_qn <= not o_q;\n\nend architecture behav;\n",      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd",      version = 0    }  }}
[DEBUG][2024-05-02 15:48:41] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "workspace/didChangeConfiguration",  params = {    settings = vim.empty_dict()  }}
[DEBUG][2024-05-02 15:48:42] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:42] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:49] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          ["end"] = {            character = 0,            line = 32          },          start = {            character = 0,            line = 30          }        },        rangeLength = 22,        text = ""      } },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd",      version = 5    }  }}
[DEBUG][2024-05-02 15:48:49] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:49] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "unused",        message = "Unused declaration of port 'o_qn' : out",        range = {          ["end"] = {            character = 12,            line = 10          },          start = {            character = 8,            line = 10          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}
[DEBUG][2024-05-02 15:48:50] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didSave",  params = {    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"    }  }}
[DEBUG][2024-05-02 15:48:54] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          ["end"] = {            character = 0,            line = 30          },          start = {            character = 25,            line = 29          }        },        rangeLength = 1,        text = "\n    \n"      } },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd",      version = 7    }  }}
[DEBUG][2024-05-02 15:48:54] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:54] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "unused",        message = "Unused declaration of port 'o_qn' : out",        range = {          ["end"] = {            character = 12,            line = 10          },          start = {            character = 8,            line = 10          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          ["end"] = {            character = 4,            line = 30          },          start = {            character = 0,            line = 30          }        },        rangeLength = 4,        text = "\n    "      } },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd",      version = 8    }  }}
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "unused",        message = "Unused declaration of port 'o_qn' : out",        range = {          ["end"] = {            character = 12,            line = 10          },          start = {            character = 8,            line = 10          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          ["end"] = {            character = 4,            line = 31          },          start = {            character = 4,            line = 31          }        },        rangeLength = 0,        text = "o"      } },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd",      version = 9    }  }}
[DEBUG][2024-05-02 15:48:55] .../lua/vim/lsp.lua:1391	"LSP[vhdl_ls]"	"client.request"	1	"textDocument/completion"	{  context = {    triggerKind = 1  },  position = {    character = 5,    line = 31  },  textDocument = {    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}	<function 1>	1
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:284	"rpc.send"	{  id = 2,  jsonrpc = "2.0",  method = "textDocument/completion",  params = {    context = {      triggerKind = 1    },    position = {      character = 5,      line = 31    },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"    }  }}
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 5,            line = 31          },          start = {            character = 5,            line = 31          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'o_qn' : out",        range = {          ["end"] = {            character = 12,            line = 10          },          start = {            character = 8,            line = 10          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  id = 2,  jsonrpc = "2.0",  result = {    isIncomplete = true,    items = { {        data = 253403070465,        detail = "port 'i_clk' : in",        insertText = "i_clk",        kind = 23,        label = "i_clk"      }, {        data = 253403070467,        detail = "port 'i_d' : in",        insertText = "i_d",        kind = 23,        label = "i_d"      }, {        data = 253403070466,        detail = "port 'i_rstn' : in",        insertText = "i_rstn",        kind = 23,        label = "i_rstn"      }, {        data = 253403070468,        detail = "port 'o_q' : out",        insertText = "o_q",        kind = 23,        label = "o_q"      }, {        data = 253403070469,        detail = "port 'o_qn' : out",        insertText = "o_qn",        kind = 23,        label = "o_qn"      }, {        insertText = "${1:test_inst}: entity ${2|work,defaultlib|}.test\n generic map(\n    G_WIDTH => ${4:G_WIDTH}\n)\n port map(\n    i_clk => ${5:i_clk},\n    i_a => ${6:i_a},\n    i_b => ${7:i_b},\n    i_c => ${8:i_c},\n    i_d => ${9:i_d},\n    o_x => ${10:o_x},\n    o_sig => ${11:o_sig}\n);",        insertTextFormat = 2,        kind = 9,        label = "test instantiation"      } }  }}
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          ["end"] = {            character = 5,            line = 31          },          start = {            character = 5,            line = 31          }        },        rangeLength = 0,        text = "_"      } },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd",      version = 10    }  }}
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 6,            line = 31          },          start = {            character = 6,            line = 31          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'o_qn' : out",        range = {          ["end"] = {            character = 12,            line = 10          },          start = {            character = 8,            line = 10          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}
[DEBUG][2024-05-02 15:48:55] .../lua/vim/lsp.lua:1391	"LSP[vhdl_ls]"	"client.request"	1	"textDocument/completion"	{  context = {    triggerKind = 3  },  position = {    character = 6,    line = 31  },  textDocument = {    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}	<function 1>	1
[DEBUG][2024-05-02 15:48:55] .../vim/lsp/rpc.lua:284	"rpc.send"	{  id = 3,  jsonrpc = "2.0",  method = "textDocument/completion",  params = {    context = {      triggerKind = 3    },    position = {      character = 6,      line = 31    },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"    }  }}
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  id = 3,  jsonrpc = "2.0",  result = {    isIncomplete = true,    items = { {        data = 261993005057,        detail = "port 'i_clk' : in",        insertText = "i_clk",        kind = 23,        label = "i_clk"      }, {        data = 261993005059,        detail = "port 'i_d' : in",        insertText = "i_d",        kind = 23,        label = "i_d"      }, {        data = 261993005058,        detail = "port 'i_rstn' : in",        insertText = "i_rstn",        kind = 23,        label = "i_rstn"      }, {        data = 261993005060,        detail = "port 'o_q' : out",        insertText = "o_q",        kind = 23,        label = "o_q"      }, {        data = 261993005061,        detail = "port 'o_qn' : out",        insertText = "o_qn",        kind = 23,        label = "o_qn"      }, {        insertText = "${1:test_inst}: entity ${2|work,defaultlib|}.test\n generic map(\n    G_WIDTH => ${4:G_WIDTH}\n)\n port map(\n    i_clk => ${5:i_clk},\n    i_a => ${6:i_a},\n    i_b => ${7:i_b},\n    i_c => ${8:i_c},\n    i_d => ${9:i_d},\n    o_x => ${10:o_x},\n    o_sig => ${11:o_sig}\n);",        insertTextFormat = 2,        kind = 9,        label = "test instantiation"      } }  }}
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          ["end"] = {            character = 6,            line = 31          },          start = {            character = 6,            line = 31          }        },        rangeLength = 0,        text = "q"      } },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd",      version = 11    }  }}
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 31          },          start = {            character = 7,            line = 31          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'o_qn' : out",        range = {          ["end"] = {            character = 12,            line = 10          },          start = {            character = 8,            line = 10          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}
[DEBUG][2024-05-02 15:48:56] .../lua/vim/lsp.lua:1391	"LSP[vhdl_ls]"	"client.request"	1	"textDocument/completion"	{  context = {    triggerKind = 3  },  position = {    character = 7,    line = 31  },  textDocument = {    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}	<function 1>	1
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:284	"rpc.send"	{  id = 4,  jsonrpc = "2.0",  method = "textDocument/completion",  params = {    context = {      triggerKind = 3    },    position = {      character = 7,      line = 31    },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"    }  }}
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  id = 4,  jsonrpc = "2.0",  result = {    isIncomplete = true,    items = { {        data = 270582939649,        detail = "port 'i_clk' : in",        insertText = "i_clk",        kind = 23,        label = "i_clk"      }, {        data = 270582939651,        detail = "port 'i_d' : in",        insertText = "i_d",        kind = 23,        label = "i_d"      }, {        data = 270582939650,        detail = "port 'i_rstn' : in",        insertText = "i_rstn",        kind = 23,        label = "i_rstn"      }, {        data = 270582939652,        detail = "port 'o_q' : out",        insertText = "o_q",        kind = 23,        label = "o_q"      }, {        data = 270582939653,        detail = "port 'o_qn' : out",        insertText = "o_qn",        kind = 23,        label = "o_qn"      }, {        insertText = "${1:test_inst}: entity ${2|work,defaultlib|}.test\n generic map(\n    G_WIDTH => ${4:G_WIDTH}\n)\n port map(\n    i_clk => ${5:i_clk},\n    i_a => ${6:i_a},\n    i_b => ${7:i_b},\n    i_c => ${8:i_c},\n    i_d => ${9:i_d},\n    o_x => ${10:o_x},\n    o_sig => ${11:o_sig}\n);",        insertTextFormat = 2,        kind = 9,        label = "test instantiation"      } }  }}
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          ["end"] = {            character = 7,            line = 31          },          start = {            character = 7,            line = 31          }        },        rangeLength = 0,        text = "n"      } },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd",      version = 12    }  }}
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 8,            line = 31          },          start = {            character = 8,            line = 31          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'o_qn' : out",        range = {          ["end"] = {            character = 12,            line = 10          },          start = {            character = 8,            line = 10          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}
[DEBUG][2024-05-02 15:48:56] .../lua/vim/lsp.lua:1391	"LSP[vhdl_ls]"	"client.request"	1	"textDocument/completion"	{  context = {    triggerKind = 3  },  position = {    character = 8,    line = 31  },  textDocument = {    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}	<function 1>	1
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:284	"rpc.send"	{  id = 5,  jsonrpc = "2.0",  method = "textDocument/completion",  params = {    context = {      triggerKind = 3    },    position = {      character = 8,      line = 31    },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"    }  }}
[DEBUG][2024-05-02 15:48:56] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  id = 5,  jsonrpc = "2.0",  result = {    isIncomplete = true,    items = { {        data = 279172874241,        detail = "port 'i_clk' : in",        insertText = "i_clk",        kind = 23,        label = "i_clk"      }, {        data = 279172874243,        detail = "port 'i_d' : in",        insertText = "i_d",        kind = 23,        label = "i_d"      }, {        data = 279172874242,        detail = "port 'i_rstn' : in",        insertText = "i_rstn",        kind = 23,        label = "i_rstn"      }, {        data = 279172874244,        detail = "port 'o_q' : out",        insertText = "o_q",        kind = 23,        label = "o_q"      }, {        data = 279172874245,        detail = "port 'o_qn' : out",        insertText = "o_qn",        kind = 23,        label = "o_qn"      }, {        insertText = "${1:test_inst}: entity ${2|work,defaultlib|}.test\n generic map(\n    G_WIDTH => ${4:G_WIDTH}\n)\n port map(\n    i_clk => ${5:i_clk},\n    i_a => ${6:i_a},\n    i_b => ${7:i_b},\n    i_c => ${8:i_c},\n    i_d => ${9:i_d},\n    o_x => ${10:o_x},\n    o_sig => ${11:o_sig}\n);",        insertTextFormat = 2,        kind = 9,        label = "test instantiation"      } }  }}
[DEBUG][2024-05-02 15:48:57] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          ["end"] = {            character = 8,            line = 31          },          start = {            character = 7,            line = 31          }        },        rangeLength = 1,        text = ""      } },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd",      version = 13    }  }}
[DEBUG][2024-05-02 15:48:57] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:57] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 31          },          start = {            character = 7,            line = 31          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'o_qn' : out",        range = {          ["end"] = {            character = 12,            line = 10          },          start = {            character = 8,            line = 10          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}
[DEBUG][2024-05-02 15:48:57] .../vim/lsp/rpc.lua:284	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          ["end"] = {            character = 7,            line = 31          },          start = {            character = 6,            line = 31          }        },        rangeLength = 1,        text = ""      }, {        range = {          ["end"] = {            character = 6,            line = 31          },          start = {            character = 5,            line = 31          }        },        rangeLength = 1,        text = ""      }, {        range = {          ["end"] = {            character = 5,            line = 31          },          start = {            character = 4,            line = 31          }        },        rangeLength = 1,        text = ""      }, {        range = {          ["end"] = {            character = 4,            line = 31          },          start = {            character = 4,            line = 31          }        },        rangeLength = 0,        text = "o"      }, {        range = {          ["end"] = {            character = 5,            line = 31          },          start = {            character = 5,            line = 31          }        },        rangeLength = 0,        text = "_"      }, {        range = {          ["end"] = {            character = 6,            line = 31          },          start = {            character = 6,            line = 31          }        },        rangeLength = 0,        text = "q"      }, {        range = {          ["end"] = {            character = 7,            line = 31          },          start = {            character = 7,            line = 31          }        },        rangeLength = 0,        text = "n"      } },    textDocument = {      uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd",      version = 20    }  }}
[DEBUG][2024-05-02 15:48:57] .../lua/vim/lsp.lua:1391	"LSP[vhdl_ls]"	"client.request"	1	"completionItem/resolve"	{  data = 279172874245,  detail = "port 'o_qn' : out",  insertText = "o_qn",  kind = 23,  label = "o_qn"}	<function 1>	1
[DEBUG][2024-05-02 15:48:57] .../vim/lsp/rpc.lua:284	"rpc.send"	{  id = 6,  jsonrpc = "2.0",  method = "completionItem/resolve",  params = {    data = 279172874245,    detail = "port 'o_qn' : out",    insertText = "o_qn",    kind = 23,    label = "o_qn"  }}
[DEBUG][2024-05-02 15:48:57] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 7,            line = 119          },          start = {            character = 7,            line = 119          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unnecessary_work_library",        message = "Library clause not necessary for current working library",        range = {          ["end"] = {            character = 12,            line = 27          },          start = {            character = 8,            line = 27          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_d' : in",        range = {          ["end"] = {            character = 11,            line = 56          },          start = {            character = 8,            line = 56          }        },        severity = 2,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'i_c' : in",        range = {          ["end"] = {            character = 11,            line = 43          },          start = {            character = 8,            line = 43          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test.vhd"  }}
[DEBUG][2024-05-02 15:48:57] .../vim/lsp/rpc.lua:387	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        code = "syntax_error",        message = "Expected '<=' or ';'",        range = {          ["end"] = {            character = 8,            line = 31          },          start = {            character = 8,            line = 31          }        },        severity = 1,        source = "vhdl ls"      }, {        code = "unused",        message = "Unused declaration of port 'o_qn' : out",        range = {          ["end"] = {            character = 12,            line = 10          },          start = {            character = 8,            line = 10          }        },        severity = 2,        source = "vhdl ls"      } },    uri = "file:///home/sgower/Documents/Development/test/vhdl/test1.vhd"  }}
[ERROR][2024-05-02 15:48:57] .../vim/lsp/rpc.lua:734	"rpc"	"/home/sgower/.local/share/nvim/mason/bin/vhdl_ls"	"stderr"	"thread 'main' panicked at vhdl_lang/src/named_entity/arena.rs:113:32:\nno entry found for key\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n"

Seems to be pointing to an error related the the dict not having a key here https://github.com/VHDL-LS/rust_hdl/blob/56f17db69a56b0e094667a9da83fb17cd20922c2/vhdl_lang/src/named_entity/arena.rs#L113

SethGower avatar May 02 '24 19:05 SethGower