mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-12 20:15:56 +00:00
fix: Update SymbolKind handling to use Enum _missing_ method
This commit is contained in:
1 parent
c51887dc2f
commit
4f0863dec5
3 files changed
+3
-15
No files matched your search
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in new issue
Block a user