-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
When I use GHDL-LS with Neovim, if I open a source file not defined in the list of project files, GHDL-LS keep running, but as soon as I open a source file belonging to the list specified in the hdl-prj.json
file, it crashes.
OS: Windows 10 x64 Pro
ghdl-ls: ghdl-ls 2.0.0-dev
hdl-prj.json:
{
"options": {
"ghdl_analysis": [
"--workdir=work",
"--ieee=synopsys",
"-fexplicit",
"--warn-library",
"--warn-default-binding",
"--warn-binding",
"--warn-reserved",
"--warn-nested-comment",
"--warn-parenthesis",
"--warn-vital-generic",
"--warn-delayed-checks",
"--warn-body",
"--warn-specs",
"--warn-runtime-error",
"--warn-shared",
"--warn-hide",
"--warn-unused",
"--warn-others",
"--warn-pure",
"--warn-static"
]
},
"files": [
{ "file": "ENTITY_TOP.vhd", "language": "vhdl" }
]
}
ENTITY_TOP.vhd:
library ieee;
use ieee.std_logic_1164.all;
entity ENTITY_TOP is
generic (
GEN : integer := 0
);
port (
INP : in std_logic
);
end entity;
architecture arch of ENTITY_TOP is
signal sig : std_logic := '0';
component ENTITY_1
generic (
GEN : integer := 0
);
port (
INP : in std_logic
);
end component;
component ENTITY_2
generic (
GEN : integer := 0
);
port (
INP : in std_logic
);
end component;
begin
ENTITY_1_1 : entity work.ENTITY_1(arch1)
generic map(
GEN => GEN
)
port map(
INP => INP
);
ENTITY_1_2 : entity work.ENTITY_1(arch2)
generic map(
GEN => GEN
)
port map(
INP => INP
);
ENTITY_2_1 : entity work.ENTITY_2(arch1)
generic map(
GEN => GEN
)
port map(
INP => INP
);
ENTITY_2_2 : entity work.ENTITY_2(arch2)
generic map(
GEN => GEN
)
port map(
INP => INP
);
PROC_p: process(INP)
-----------------------------
variable var_v : integer := 0;
-----------------------------
begin
-----------------------------
var_v := 0;
-----------------------------
if (INP = '1') then
sig <= '1';
else
sig <= '0';
end if;
-----------------------------
end process;
-----------------------------
process
-----------------------------
variable var_v : integer := 0;
-----------------------------
begin
-----------------------------
var_v := 0;
-----------------------------
if (INP = '1') then
sig <= '1';
else
sig <= '0';
end if;
-----------------------------
end process;
-----------------------------
end architecture;
vhdl-ls.log
2021-06-22 12:14:27,874 [INFO] Args: ['C:\\msys64\\mingw64\\bin\\ghdl-ls', '--verbose', '--log-file', 'vhdl-ls.log', '--trace-file', 'vhdl-ls.trace']
2021-06-22 12:14:27,874 [INFO] Current directory is C:\Work\MEGA\Portable
2021-06-22 12:14:27,878 [INFO] reading project file C:\Work\MEGA\Portable\GHDL\bin\src_test\hdl-prj.json
2021-06-22 12:14:27,878 [INFO] Using options: ['--workdir=work', '--ieee=synopsys', '-fexplicit', '--warn-library', '--warn-default-binding', '--warn-binding', '--warn-reserved', '--warn-nested-comment', '--warn-parenthesis', '--warn-vital-generic', '--warn-delayed-checks', '--warn-body', '--warn-specs', '--warn-runtime-error', '--warn-shared', '--warn-hide', '--warn-unused', '--warn-others', '--warn-pure', '--warn-static']
2021-06-22 12:14:27,881 [INFO] loading ENTITY_TOP.vhd
vhdl-ls.trace.in
Content-Length: 2742
{"id": 1, "jsonrpc": "2.0", "method": "initialize", "params": {"rootUri": "file:///C:/Work/MEGA/Portable/GHDL/bin/src_test", "initializationOptions": {}, "capabilities": {"workspace": {"workspaceFolders": true, "workspaceEdit": {"resourceOperations": ["rename", "create", "delete"]}, "applyEdit": true, "symbol": {"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]}, "dynamicRegistration": false, "hierarchicalWorkspaceSymbolSupport": true}, "configuration": true}, "window": {"showDocument": {"support": false}, "showMessage": {"messageActionItem": {"additionalPropertiesSupport": false}}, "workDoneProgress": true}, "callHierarchy": {"dynamicRegistration": false}, "textDocument": {"documentSymbol": {"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]}, "dynamicRegistration": false, "hierarchicalDocumentSymbolSupport": true}, "references": {"dynamicRegistration": false}, "publishDiagnostics": {"relatedInformation": true, "tagSupport": {"valueSet": [1, 2]}}, "rename": {"prepareSupport": true, "dynamicRegistration": false}, "synchronization": {"didSave": true, "willSaveWaitUntil": false, "willSave": false, "dynamicRegistration": false}, "completion": {"completionItem": {"snippetSupport": false, "commitCharactersSupport": false, "preselectSupport": false, "deprecatedSupport": false, "documentationFormat": ["markdown", "plaintext"]}, "contextSupport": false, "dynamicRegistration": false, "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]}}, "definition": {"linkSupport": true}, "codeAction": {"codeActionLiteralSupport": {"codeActionKind": {"valueSet": ["", "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"]}}, "dynamicRegistration": false}, "documentHighlight": {"dynamicRegistration": false}, "signatureHelp": {"signatureInformation": {"documentationFormat": ["markdown", "plaintext"]}, "dynamicRegistration": false}, "declaration": {"linkSupport": true}, "hover": {"dynamicRegistration": false, "contentFormat": ["markdown", "plaintext"]}, "implementation": {"linkSupport": true}, "typeDefinition": {"linkSupport": true}}}, "rootPath": "C:\\Work\\MEGA\\Portable\\GHDL\\bin\\src_test", "clientInfo": {"version": "0.5.0", "name": "Neovim"}, "processId": 14920, "trace": "off", "workspaceFolders": [{"uri": "file:///C:/Work/MEGA/Portable/GHDL/bin/src_test", "name": "C:\\Work\\MEGA\\Portable\\GHDL\\bin\\src_test"}]}}Content-Length: 57
{"method": "initialized", "jsonrpc": "2.0", "params": {}}Content-Length: 2037
{"method": "textDocument/didOpen", "jsonrpc": "2.0", "params": {"textDocument": {"uri": "file:///C:/Work/MEGA/Portable/GHDL/bin/src_test/ENTITY_TOP.vhd", "version": 0, "languageId": "vhdl", "text": "library ieee;\nuse ieee.std_logic_1164.all;\n\nentity ENTITY_TOP is\n generic (\n GEN : integer := 0\n );\n port (\n INP : in std_logic\n );\nend entity;\n\narchitecture arch of ENTITY_TOP is\n signal sig : std_logic := '0';\n \n component ENTITY_1\n generic (\n GEN : integer := 0\n );\n port (\n INP : in std_logic\n );\n end component;\n \n component ENTITY_2\n generic (\n GEN : integer := 0\n );\n port (\n INP : in std_logic\n );\n end component;\n \nbegin\n\n ENTITY_1_1 : entity work.ENTITY_1(arch1)\n generic map(\n GEN => GEN\n )\n port map(\n INP => INP\n );\n \n ENTITY_1_2 : entity work.ENTITY_1(arch2)\n generic map(\n GEN => GEN\n )\n port map(\n INP => INP\n );\n \n ENTITY_2_1 : entity work.ENTITY_2(arch1)\n generic map(\n GEN => GEN\n )\n port map(\n INP => INP\n );\n \n ENTITY_2_2 : entity work.ENTITY_2(arch2)\n generic map(\n GEN => GEN\n )\n port map(\n INP => INP\n );\n \n PROC_p: process(INP)\n -----------------------------\n variable var_v : integer := 0;\n -----------------------------\n begin\n -----------------------------\n var_v := 0;\n -----------------------------\n if (INP = '1') then\n sig <= '1';\n else\n sig <= '0';\n end if;\n -----------------------------\n end process;\n -----------------------------\n \n process\n -----------------------------\n variable var_v : integer := 0;\n -----------------------------\n begin\n -----------------------------\n var_v := 0;\n -----------------------------\n if (INP = '1') then\n sig <= '1';\n else\n sig <= '0';\n end if;\n -----------------------------\n end process;\n -----------------------------\nend architecture;\n"}}}
vhdl-ls.trace.out
Content-Length: 392
{"jsonrpc":"2.0","id":1,"result":{"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{"includeText":true}},"hoverProvider":false,"definitionProvider":true,"referencesProvider":false,"documentHighlightProvider":false,"documentSymbolProvider":true,"codeActionProvider":false,"documentFormattingProvider":false,"documentRangeFormattingProvider":true,"renameProvider":false}}}
Neovim LSP log:
[ START ] 2021-06-22T12:20:03+0200 ] LSP logging initiated
[ INFO ] 2021-06-22T12:20:14+0200 ] ...A\Portable\Neovim\share\nvim\runtime\lua\vim\lsp\rpc.lua:311 ] "Starting RPC client" { args = { "--verbose", "--log-file", "vhdl-ls.log", "--trace-file", "vhdl-ls.trace" }, cmd = "ghdl-ls", extra = {}}
[ DEBUG ] 2021-06-22T12:20:14+0200 ] ...\MEGA\Portable\Neovim\share\nvim\runtime\lua\vim\lsp.lua:826 ] "LSP[ghdl_ls]" "initialize_params" { capabilities = { callHierarchy = { dynamicRegistration = false, <metatable> = <1>{ __tostring = <function 1> } }, textDocument = { codeAction = { codeActionLiteralSupport = { codeActionKind = { valueSet = { "", "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" }, <metatable> = <table 1> }, <metatable> = <table 1> }, dynamicRegistration = false, <metatable> = <table 1> }, completion = { completionItem = { commitCharactersSupport = false, deprecatedSupport = false, documentationFormat = { "markdown", "plaintext" }, preselectSupport = false, snippetSupport = false, <metatable> = <table 1> }, 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 }, <metatable> = <table 1> }, contextSupport = false, dynamicRegistration = false, <metatable> = <table 1> }, declaration = { linkSupport = true, <metatable> = <table 1> }, definition = { linkSupport = true, <metatable> = <table 1> }, documentHighlight = { dynamicRegistration = false, <metatable> = <table 1> }, 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 }, <metatable> = <table 1> }, <metatable> = <table 1> }, hover = { contentFormat = { "markdown", "plaintext" }, dynamicRegistration = false, <metatable> = <table 1> }, implementation = { linkSupport = true, <metatable> = <table 1> }, publishDiagnostics = { relatedInformation = true, tagSupport = { valueSet = { 1, 2 }, <metatable> = <table 1> }, <metatable> = <table 1> }, references = { dynamicRegistration = false, <metatable> = <table 1> }, rename = { dynamicRegistration = false, prepareSupport = true, <metatable> = <table 1> }, signatureHelp = { dynamicRegistration = false, signatureInformation = { documentationFormat = { "markdown", "plaintext" }, <metatable> = <table 1> }, <metatable> = <table 1> }, synchronization = { didSave = true, dynamicRegistration = false, willSave = false, willSaveWaitUntil = false, <metatable> = <table 1> }, typeDefinition = { linkSupport = true, <metatable> = <table 1> }, <metatable> = <table 1> }, window = { showDocument = { support = false, <metatable> = <table 1> }, showMessage = { messageActionItem = { additionalPropertiesSupport = false, <metatable> = <table 1> }, <metatable> = <table 1> }, workDoneProgress = true, <metatable> = <table 1> }, workspace = { applyEdit = true, configuration = 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 }, <metatable> = <table 1> }, <metatable> = <table 1> }, workspaceEdit = { resourceOperations = { "rename", "create", "delete" }, <metatable> = <table 1> }, workspaceFolders = true, <metatable> = <table 1> } }, clientInfo = { name = "Neovim", version = "0.5.0" }, initializationOptions = vim.empty_dict(), processId = 32368, rootPath = "C:\\Work\\MEGA\\Portable\\GHDL\\bin\\src_test", rootUri = "file:///C:/Work/MEGA/Portable/GHDL/bin/src_test", trace = "off", workspaceFolders = { { name = "C:\\Work\\MEGA\\Portable\\GHDL\\bin\\src_test", uri = "file:///C:/Work/MEGA/Portable/GHDL/bin/src_test" } }}
[ DEBUG ] 2021-06-22T12:20:14+0200 ] ...A\Portable\Neovim\share\nvim\runtime\lua\vim\lsp\rpc.lua:390 ] "rpc.send.payload" { id = 1, jsonrpc = "2.0", method = "initialize", params = { capabilities = { callHierarchy = { dynamicRegistration = false, <metatable> = <1>{ __tostring = <function 1> } }, textDocument = { codeAction = { codeActionLiteralSupport = { codeActionKind = { valueSet = { "", "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" }, <metatable> = <table 1> }, <metatable> = <table 1> }, dynamicRegistration = false, <metatable> = <table 1> }, completion = { completionItem = { commitCharactersSupport = false, deprecatedSupport = false, documentationFormat = { "markdown", "plaintext" }, preselectSupport = false, snippetSupport = false, <metatable> = <table 1> }, 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 }, <metatable> = <table 1> }, contextSupport = false, dynamicRegistration = false, <metatable> = <table 1> }, declaration = { linkSupport = true, <metatable> = <table 1> }, definition = { linkSupport = true, <metatable> = <table 1> }, documentHighlight = { dynamicRegistration = false, <metatable> = <table 1> }, 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 }, <metatable> = <table 1> }, <metatable> = <table 1> }, hover = { contentFormat = { "markdown", "plaintext" }, dynamicRegistration = false, <metatable> = <table 1> }, implementation = { linkSupport = true, <metatable> = <table 1> }, publishDiagnostics = { relatedInformation = true, tagSupport = { valueSet = { 1, 2 }, <metatable> = <table 1> }, <metatable> = <table 1> }, references = { dynamicRegistration = false, <metatable> = <table 1> }, rename = { dynamicRegistration = false, prepareSupport = true, <metatable> = <table 1> }, signatureHelp = { dynamicRegistration = false, signatureInformation = { documentationFormat = { "markdown", "plaintext" }, <metatable> = <table 1> }, <metatable> = <table 1> }, synchronization = { didSave = true, dynamicRegistration = false, willSave = false, willSaveWaitUntil = false, <metatable> = <table 1> }, typeDefinition = { linkSupport = true, <metatable> = <table 1> }, <metatable> = <table 1> }, window = { showDocument = { support = false, <metatable> = <table 1> }, showMessage = { messageActionItem = { additionalPropertiesSupport = false, <metatable> = <table 1> }, <metatable> = <table 1> }, workDoneProgress = true, <metatable> = <table 1> }, workspace = { applyEdit = true, configuration = 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 }, <metatable> = <table 1> }, <metatable> = <table 1> }, workspaceEdit = { resourceOperations = { "rename", "create", "delete" }, <metatable> = <table 1> }, workspaceFolders = true, <metatable> = <table 1> } }, clientInfo = { name = "Neovim", version = "0.5.0" }, initializationOptions = vim.empty_dict(), processId = 32368, rootPath = "C:\\Work\\MEGA\\Portable\\GHDL\\bin\\src_test", rootUri = "file:///C:/Work/MEGA/Portable/GHDL/bin/src_test", trace = "off", workspaceFolders = { { name = "C:\\Work\\MEGA\\Portable\\GHDL\\bin\\src_test", uri = "file:///C:/Work/MEGA/Portable/GHDL/bin/src_test" } } }}
[ DEBUG ] 2021-06-22T12:20:14+0200 ] ...A\Portable\Neovim\share\nvim\runtime\lua\vim\lsp\rpc.lua:491 ] "decoded" { id = 1, jsonrpc = "2.0", result = { capabilities = { codeActionProvider = false, definitionProvider = true, documentFormattingProvider = false, documentHighlightProvider = false, documentRangeFormattingProvider = true, documentSymbolProvider = true, hoverProvider = false, referencesProvider = false, renameProvider = false, textDocumentSync = { change = 2, openClose = true, save = { includeText = true } } } }}
[ DEBUG ] 2021-06-22T12:20:14+0200 ] ...A\Portable\Neovim\share\nvim\runtime\lua\vim\lsp\rpc.lua:390 ] "rpc.send.payload" { jsonrpc = "2.0", method = "initialized", params = { [true] = 6 }}
[ DEBUG ] 2021-06-22T12:20:14+0200 ] ...\MEGA\Portable\Neovim\share\nvim\runtime\lua\vim\lsp.lua:853 ] "LSP[ghdl_ls]" "server_capabilities" { codeActionProvider = false, definitionProvider = true, documentFormattingProvider = false, documentHighlightProvider = false, documentRangeFormattingProvider = true, documentSymbolProvider = true, hoverProvider = false, referencesProvider = false, renameProvider = false, textDocumentSync = { change = 2, openClose = true, save = { includeText = true } }}
[ INFO ] 2021-06-22T12:20:14+0200 ] ...\MEGA\Portable\Neovim\share\nvim\runtime\lua\vim\lsp.lua:854 ] "LSP[ghdl_ls]" "initialized" { resolved_capabilities = { call_hierarchy = false, code_action = false, code_lens = false, code_lens_resolve = false, completion = false, declaration = false, document_formatting = false, document_highlight = false, document_range_formatting = true, document_symbol = true, execute_command = false, find_references = false, goto_definition = true, hover = false, implementation = false, rename = false, signature_help = false, signature_help_trigger_characters = {}, text_document_did_change = 2, text_document_open_close = true, text_document_save = { includeText = true }, text_document_save_include_text = true, text_document_will_save = false, text_document_will_save_wait_until = false, type_definition = false, workspace_folder_properties = { changeNotifications = false, supported = false }, workspace_symbol = false }}
[ DEBUG ] 2021-06-22T12:20:14+0200 ] ...A\Portable\Neovim\share\nvim\runtime\lua\vim\lsp\rpc.lua:390 ] "rpc.send.payload" { jsonrpc = "2.0", method = "textDocument/didOpen", params = { textDocument = { languageId = "vhdl", text = "library ieee;\nuse ieee.std_logic_1164.all;\n\nentity ENTITY_TOP is\n generic (\n GEN : integer := 0\n );\n port (\n INP : in std_logic\n );\nend entity;\n\narchitecture arch of ENTITY_TOP is\n signal sig : std_logic := '0';\n \n component ENTITY_1\n generic (\n GEN : integer := 0\n );\n port (\n INP : in std_logic\n );\n end component;\n \n component ENTITY_2\n generic (\n GEN : integer := 0\n );\n port (\n INP : in std_logic\n );\n end component;\n \nbegin\n\n ENTITY_1_1 : entity work.ENTITY_1(arch1)\n generic map(\n GEN => GEN\n )\n port map(\n INP => INP\n );\n \n ENTITY_1_2 : entity work.ENTITY_1(arch2)\n generic map(\n GEN => GEN\n )\n port map(\n INP => INP\n );\n \n ENTITY_2_1 : entity work.ENTITY_2(arch1)\n generic map(\n GEN => GEN\n )\n port map(\n INP => INP\n );\n \n ENTITY_2_2 : entity work.ENTITY_2(arch2)\n generic map(\n GEN => GEN\n )\n port map(\n INP => INP\n );\n \n PROC_p: process(INP)\n -----------------------------\n variable var_v : integer := 0;\n -----------------------------\n begin\n -----------------------------\n var_v := 0;\n -----------------------------\n if (INP = '1') then\n sig <= '1';\n else\n sig <= '0';\n end if;\n -----------------------------\n end process;\n -----------------------------\n \n process\n -----------------------------\n variable var_v : integer := 0;\n -----------------------------\n begin\n -----------------------------\n var_v := 0;\n -----------------------------\n if (INP = '1') then\n sig <= '1';\n else\n sig <= '0';\n end if;\n -----------------------------\n end process;\n -----------------------------\nend architecture;\n", uri = "file:///C:/Work/MEGA/Portable/GHDL/bin/src_test/ENTITY_TOP.vhd", version = 0 } }}
[ ERROR ] 2021-06-22T12:20:14+0200 ] ...A\Portable\Neovim\share\nvim\runtime\lua\vim\lsp\rpc.lua:457 ] "rpc" "ghdl-ls" "stderr" "\nraised SYSTEM.ASSERTIONS.ASSERT_FAILURE : files_map.adb:608\n"
[ INFO ] 2021-06-22T12:20:21+0200 ] ...\MEGA\Portable\Neovim\share\nvim\runtime\lua\vim\lsp.lua:1213 ] "exit_handler" {}
particularly:
[ ERROR ] 2021-06-22T12:20:14+0200 ] ...A\Portable\Neovim\share\nvim\runtime\lua\vim\lsp\rpc.lua:457 ] "rpc" "ghdl-ls" "stderr" "\nraised SYSTEM.ASSERTIONS.ASSERT_FAILURE : files_map.adb:608\n"
Something seems to have caused an exception related to the files_map.adb
GHDL-LS file, line 608.
Metadata
Metadata
Assignees
Labels
No labels