From 574ac8b17b41462bc110de57934ce17ba9837581 Mon Sep 17 00:00:00 2001 From: Henning Holm Date: Sun, 26 Jul 2020 17:23:36 +0200 Subject: ghdl-ls: Fix exception crashing language server Previously, the language server crashed on unhandled symbols with an exception. As ignoring unhandled symbols should be fine, logging this as an error to the logger results in a much better user experience. This fixes #1410 --- python/vhdl_langserver/symbols.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'python/vhdl_langserver') diff --git a/python/vhdl_langserver/symbols.py b/python/vhdl_langserver/symbols.py index b39827bed..5d3c35dd9 100644 --- a/python/vhdl_langserver/symbols.py +++ b/python/vhdl_langserver/symbols.py @@ -1,3 +1,4 @@ +import logging import libghdl.thin.name_table as name_table import libghdl.thin.files_map as files_map import libghdl.thin.vhdl.pyutils as pyutils @@ -7,6 +8,8 @@ import libghdl.thin.vhdl.elocations as elocations from . import lsp +log = logging.getLogger(__name__) + SYMBOLS_MAP = { nodes.Iir_Kind.Package_Declaration: {'kind': lsp.SymbolKind.Package, 'detail': '(declaration)'}, nodes.Iir_Kind.Package_Body: {'kind': lsp.SymbolKind.Package, 'detail': '(body)'}, @@ -85,7 +88,8 @@ def get_symbols(fe, n): return get_symbols(fe, nodes.Get_Library_Unit(n)) m = SYMBOLS_MAP.get(k, None) if m is None: - raise AssertionError("get_symbol: unhandled {}".format(pyutils.kind_image(k))) + log.error("get_symbol: unhandled {}".format(pyutils.kind_image(k))) + return None kind = m['kind'] if kind is None: return None -- cgit v1.2.3