fix: Update SymbolKind handling to use Enum _missing_ method

This commit is contained in:
habaneraa committed 2026-03-19 19:02:52 +08:00
1 parent c51887dc2f
commit 4f0863dec5
3 files changed
+3 -15

No files matched your search

+1 -1
View File
@@ -222,7 +222,7 @@ class LanguageServerSymbol(Symbol, ToStringMixin):
"""
:return: string representation of the symbol kind (name attribute of the `SymbolKind` enum item)
"""
return SymbolKind.from_int(self.symbol_kind).name
return SymbolKind(self.symbol_kind).name
@property
def symbol_kind(self) -> SymbolKind:
-4
View File
@@ -1276,10 +1276,6 @@ class SolidLanguageServer(ABC):
item = cast(ls_types.UnifiedSymbolInformation, dict(original_symbol_dict))
absolute_path = os.path.join(self.repository_root_path, relative_file_path)
# handle non-standard symbol kind values (e.g., 255)
if "kind" in item and isinstance(item["kind"], int):
item["kind"] = ls_types.SymbolKind.from_int(item["kind"])
# handle missing location and path entries
if "location" not in item:
uri = pathlib.Path(absolute_path).as_uri()
+2 -10
View File
@@ -181,16 +181,8 @@ class SymbolKind(IntEnum):
TypeParameter = 26
@classmethod
def from_int(cls, value: int) -> "SymbolKind":
"""Convert an integer to a SymbolKind.
Returns Unknown (0) for non-standard values instead of raising ValueError.
This handles language servers that may use custom/extended symbol kinds.
"""
try:
return cls(value)
except ValueError:
return cls.Unknown
def _missing_(cls, value: int) -> "SymbolKind":
return cls.Unknown
class SymbolTag(IntEnum):