mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-12 22:14:54 +00:00
Rename LanguageServerException -> SolidLSPException
(making clear that the exception originates from the proxy framework of SolidLSP)
This commit is contained in:
1 parent
9368ce446c
commit
bb0e944b6d
7 files changed
+39
-39
No files matched your search
@@ -15,7 +15,7 @@ from serena.prompt_factory import PromptFactory
|
||||
from serena.symbol import LanguageServerSymbolRetriever
|
||||
from serena.util.class_decorators import singleton
|
||||
from serena.util.inspection import iter_subclasses
|
||||
from solidlsp.ls_exceptions import LanguageServerException
|
||||
from solidlsp.ls_exceptions import SolidLSPException
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from serena.agent import LinesRead, MemoriesManager, SerenaAgent
|
||||
@@ -239,7 +239,7 @@ class Tool(Component):
|
||||
# apply the actual tool
|
||||
try:
|
||||
result = apply_fn(**kwargs)
|
||||
except LanguageServerException as e:
|
||||
except SolidLSPException as e:
|
||||
if e.is_language_server_terminated():
|
||||
log.error(f"Language server terminated while executing tool ({e}). Restarting the language server and retrying ...")
|
||||
self.agent.reset_language_server()
|
||||
|
||||
@@ -20,7 +20,7 @@ from overrides import override
|
||||
|
||||
from solidlsp.ls import SolidLanguageServer
|
||||
from solidlsp.ls_config import LanguageServerConfig
|
||||
from solidlsp.ls_exceptions import LanguageServerException
|
||||
from solidlsp.ls_exceptions import SolidLSPException
|
||||
from solidlsp.ls_logger import LanguageServerLogger
|
||||
from solidlsp.ls_utils import PathUtils
|
||||
from solidlsp.lsp_protocol_handler.lsp_types import InitializeParams
|
||||
@@ -240,7 +240,7 @@ class CSharpLanguageServer(SolidLanguageServer):
|
||||
elif system == "linux":
|
||||
return "linux-x64" if machine in ["x86_64", "amd64"] else "linux-arm64"
|
||||
else:
|
||||
raise LanguageServerException(f"Unsupported platform: {system} {machine}")
|
||||
raise SolidLSPException(f"Unsupported platform: {system} {machine}")
|
||||
|
||||
@staticmethod
|
||||
def _get_runtime_dependencies(runtime_id: str) -> tuple[RuntimeDependency, RuntimeDependency]:
|
||||
@@ -255,9 +255,9 @@ class CSharpLanguageServer(SolidLanguageServer):
|
||||
dotnet_runtime_dep = dep
|
||||
|
||||
if not lang_server_dep:
|
||||
raise LanguageServerException(f"No C# language server dependency found for platform {runtime_id}")
|
||||
raise SolidLSPException(f"No C# language server dependency found for platform {runtime_id}")
|
||||
if not dotnet_runtime_dep:
|
||||
raise LanguageServerException(f"No .NET runtime dependency found for platform {runtime_id}")
|
||||
raise SolidLSPException(f"No .NET runtime dependency found for platform {runtime_id}")
|
||||
|
||||
return lang_server_dep, dotnet_runtime_dep
|
||||
|
||||
@@ -300,7 +300,7 @@ class CSharpLanguageServer(SolidLanguageServer):
|
||||
CSharpLanguageServer._extract_language_server(lang_server_dep, package_path, server_dir)
|
||||
|
||||
if not server_dll.exists():
|
||||
raise LanguageServerException("Microsoft.CodeAnalysis.LanguageServer.dll not found after extraction")
|
||||
raise SolidLSPException("Microsoft.CodeAnalysis.LanguageServer.dll not found after extraction")
|
||||
|
||||
# Make executable on Unix systems
|
||||
if platform.system().lower() != "windows":
|
||||
@@ -326,7 +326,7 @@ class CSharpLanguageServer(SolidLanguageServer):
|
||||
source_dir = possible_dir
|
||||
break
|
||||
else:
|
||||
raise LanguageServerException(f"Could not find language server files in package. Searched in {package_path}")
|
||||
raise SolidLSPException(f"Could not find language server files in package. Searched in {package_path}")
|
||||
|
||||
# Copy files to cache directory
|
||||
server_dir.mkdir(parents=True, exist_ok=True)
|
||||
@@ -358,7 +358,7 @@ class CSharpLanguageServer(SolidLanguageServer):
|
||||
break
|
||||
|
||||
if not package_base_address:
|
||||
raise LanguageServerException("Could not find package base address in Azure NuGet feed")
|
||||
raise SolidLSPException("Could not find package base address in Azure NuGet feed")
|
||||
|
||||
# Construct the download URL for the specific package
|
||||
package_id_lower = package_name.lower()
|
||||
@@ -385,7 +385,7 @@ class CSharpLanguageServer(SolidLanguageServer):
|
||||
return package_extract_dir
|
||||
|
||||
except Exception as e:
|
||||
raise LanguageServerException(
|
||||
raise SolidLSPException(
|
||||
f"Failed to download package {package_name} version {package_version} from Azure NuGet feed: {e}"
|
||||
) from e
|
||||
|
||||
@@ -448,7 +448,7 @@ class CSharpLanguageServer(SolidLanguageServer):
|
||||
return str(dotnet_exe)
|
||||
|
||||
except Exception as e:
|
||||
raise LanguageServerException(f"Failed to download .NET 9 runtime from {url}: {e}") from e
|
||||
raise SolidLSPException(f"Failed to download .NET 9 runtime from {url}: {e}") from e
|
||||
|
||||
def _get_initialize_params(self) -> InitializeParams:
|
||||
"""
|
||||
@@ -623,7 +623,7 @@ class CSharpLanguageServer(SolidLanguageServer):
|
||||
self.server.start()
|
||||
except Exception as e:
|
||||
self.logger.log(f"Failed to start language server process: {e}", logging.ERROR)
|
||||
raise LanguageServerException(f"Failed to start C# language server: {e}")
|
||||
raise SolidLSPException(f"Failed to start C# language server: {e}")
|
||||
|
||||
# Send initialization
|
||||
initialize_params = self._get_initialize_params()
|
||||
@@ -633,7 +633,7 @@ class CSharpLanguageServer(SolidLanguageServer):
|
||||
init_response = self.server.send.initialize(initialize_params)
|
||||
self.logger.log(f"Received initialize response: {init_response}", logging.DEBUG)
|
||||
except Exception as e:
|
||||
raise LanguageServerException(f"Failed to initialize C# language server for {self.repository_root_path}: {e}") from e
|
||||
raise SolidLSPException(f"Failed to initialize C# language server for {self.repository_root_path}: {e}") from e
|
||||
|
||||
# Apply diagnostic capabilities
|
||||
self._force_pull_diagnostics(init_response)
|
||||
|
||||
@@ -14,7 +14,7 @@ from overrides import override
|
||||
|
||||
from solidlsp.ls import SolidLanguageServer
|
||||
from solidlsp.ls_config import LanguageServerConfig
|
||||
from solidlsp.ls_exceptions import LanguageServerException
|
||||
from solidlsp.ls_exceptions import SolidLSPException
|
||||
from solidlsp.ls_logger import LanguageServerLogger
|
||||
from solidlsp.ls_utils import DotnetVersion, FileUtils, PlatformId, PlatformUtils
|
||||
from solidlsp.lsp_protocol_handler.lsp_types import InitializeParams
|
||||
@@ -68,7 +68,7 @@ class OmniSharp(SolidLanguageServer):
|
||||
slnfilename = find_least_depth_sln_file(repository_root_path)
|
||||
if slnfilename is None:
|
||||
logger.log("No *.sln file found in repository", logging.ERROR)
|
||||
raise LanguageServerException("No SLN file found in repository")
|
||||
raise SolidLSPException("No SLN file found in repository")
|
||||
|
||||
cmd = " ".join(
|
||||
[
|
||||
|
||||
+10
-10
@@ -21,7 +21,7 @@ from serena.text_utils import MatchedConsecutiveLines
|
||||
from serena.util.file_system import match_path
|
||||
from solidlsp import ls_types
|
||||
from solidlsp.ls_config import Language, LanguageServerConfig
|
||||
from solidlsp.ls_exceptions import LanguageServerException
|
||||
from solidlsp.ls_exceptions import SolidLSPException
|
||||
from solidlsp.ls_handler import SolidLanguageServerHandler
|
||||
from solidlsp.ls_logger import LanguageServerLogger
|
||||
from solidlsp.ls_utils import FileUtils, PathUtils, TextUtils
|
||||
@@ -209,7 +209,7 @@ class SolidLanguageServer(ABC):
|
||||
|
||||
else:
|
||||
logger.log(f"Language {config.code_language} is not supported", logging.ERROR)
|
||||
raise LanguageServerException(f"Language {config.code_language} is not supported")
|
||||
raise SolidLSPException(f"Language {config.code_language} is not supported")
|
||||
|
||||
ls.set_request_timeout(timeout)
|
||||
return ls
|
||||
@@ -427,7 +427,7 @@ class SolidLanguageServer(ABC):
|
||||
"open_file called before Language Server started",
|
||||
logging.ERROR,
|
||||
)
|
||||
raise LanguageServerException("Language Server not started")
|
||||
raise SolidLSPException("Language Server not started")
|
||||
|
||||
absolute_file_path = str(PurePath(self.repository_root_path, relative_file_path))
|
||||
uri = pathlib.Path(absolute_file_path).as_uri()
|
||||
@@ -483,7 +483,7 @@ class SolidLanguageServer(ABC):
|
||||
"insert_text_at_position called before Language Server started",
|
||||
logging.ERROR,
|
||||
)
|
||||
raise LanguageServerException("Language Server not started")
|
||||
raise SolidLSPException("Language Server not started")
|
||||
|
||||
absolute_file_path = str(PurePath(self.repository_root_path, relative_file_path))
|
||||
uri = pathlib.Path(absolute_file_path).as_uri()
|
||||
@@ -529,7 +529,7 @@ class SolidLanguageServer(ABC):
|
||||
"insert_text_at_position called before Language Server started",
|
||||
logging.ERROR,
|
||||
)
|
||||
raise LanguageServerException("Language Server not started")
|
||||
raise SolidLSPException("Language Server not started")
|
||||
|
||||
absolute_file_path = str(PurePath(self.repository_root_path, relative_file_path))
|
||||
uri = pathlib.Path(absolute_file_path).as_uri()
|
||||
@@ -573,7 +573,7 @@ class SolidLanguageServer(ABC):
|
||||
"request_definition called before Language Server started",
|
||||
logging.ERROR,
|
||||
)
|
||||
raise LanguageServerException("Language Server not started")
|
||||
raise SolidLSPException("Language Server not started")
|
||||
|
||||
with self.open_file(relative_file_path):
|
||||
# sending request to the language server and waiting for response
|
||||
@@ -665,7 +665,7 @@ class SolidLanguageServer(ABC):
|
||||
"request_references called before Language Server started",
|
||||
logging.ERROR,
|
||||
)
|
||||
raise LanguageServerException("Language Server not started")
|
||||
raise SolidLSPException("Language Server not started")
|
||||
|
||||
with self.open_file(relative_file_path):
|
||||
try:
|
||||
@@ -724,7 +724,7 @@ class SolidLanguageServer(ABC):
|
||||
"request_text_document_diagnostics called before Language Server started",
|
||||
logging.ERROR,
|
||||
)
|
||||
raise LanguageServerException("Language Server not started")
|
||||
raise SolidLSPException("Language Server not started")
|
||||
|
||||
with self.open_file(relative_file_path):
|
||||
response = self.server.send.text_document_diagnostic(
|
||||
@@ -1286,7 +1286,7 @@ class SolidLanguageServer(ABC):
|
||||
"request_referencing_symbols called before Language Server started",
|
||||
logging.ERROR,
|
||||
)
|
||||
raise LanguageServerException("Language Server not started")
|
||||
raise SolidLSPException("Language Server not started")
|
||||
|
||||
# First, get all references to the symbol
|
||||
references = self.request_references(relative_file_path, line, column)
|
||||
@@ -1558,7 +1558,7 @@ class SolidLanguageServer(ABC):
|
||||
"request_defining_symbol called before Language Server started",
|
||||
logging.ERROR,
|
||||
)
|
||||
raise LanguageServerException("Language Server not started")
|
||||
raise SolidLSPException("Language Server not started")
|
||||
|
||||
# Get the definition location(s)
|
||||
definitions = self.request_definition(relative_file_path, line, column)
|
||||
|
||||
@@ -3,7 +3,7 @@ This module contains the exceptions raised by the framework.
|
||||
"""
|
||||
|
||||
|
||||
class LanguageServerException(Exception):
|
||||
class SolidLSPException(Exception):
|
||||
def __init__(self, message: str, cause: Exception | None = None):
|
||||
"""
|
||||
Initializes the exception with the given message.
|
||||
|
||||
@@ -14,7 +14,7 @@ from typing import Any
|
||||
import psutil
|
||||
from sensai.util.string import ToStringMixin
|
||||
|
||||
from solidlsp.ls_exceptions import LanguageServerException
|
||||
from solidlsp.ls_exceptions import SolidLSPException
|
||||
from solidlsp.ls_request import LanguageServerRequest
|
||||
from solidlsp.lsp_protocol_handler.lsp_requests import LspNotification
|
||||
from solidlsp.lsp_protocol_handler.lsp_types import ErrorCodes
|
||||
@@ -454,7 +454,7 @@ class SolidLanguageServerHandler:
|
||||
|
||||
self._log("Processing result")
|
||||
if result.is_error():
|
||||
raise LanguageServerException(f"Error processing request {method} with params:\n{params}", cause=result.error) from result.error
|
||||
raise SolidLSPException(f"Error processing request {method} with params:\n{params}", cause=result.error) from result.error
|
||||
|
||||
self._log(f"Returning non-error result, which is:\n{result.payload}")
|
||||
return result.payload
|
||||
|
||||
+11
-11
@@ -14,7 +14,7 @@ from pathlib import Path, PurePath
|
||||
|
||||
import requests
|
||||
|
||||
from solidlsp.ls_exceptions import LanguageServerException
|
||||
from solidlsp.ls_exceptions import SolidLSPException
|
||||
from solidlsp.ls_logger import LanguageServerLogger
|
||||
from solidlsp.ls_types import UnifiedSymbolInformation
|
||||
|
||||
@@ -170,13 +170,13 @@ class FileUtils:
|
||||
"""
|
||||
if not os.path.exists(file_path):
|
||||
logger.log(f"File read '{file_path}' failed: File does not exist.", logging.ERROR)
|
||||
raise LanguageServerException(f"File read '{file_path}' failed: File does not exist.")
|
||||
raise SolidLSPException(f"File read '{file_path}' failed: File does not exist.")
|
||||
try:
|
||||
with open(file_path, encoding="utf-8") as inp_file:
|
||||
return inp_file.read()
|
||||
except Exception as exc:
|
||||
logger.log(f"File read '{file_path}' failed to read with encoding 'utf-8': {exc}", logging.ERROR)
|
||||
raise LanguageServerException("File read failed.") from None
|
||||
raise SolidLSPException("File read failed.") from None
|
||||
|
||||
@staticmethod
|
||||
def download_file(logger: LanguageServerLogger, url: str, target_path: str) -> None:
|
||||
@@ -187,12 +187,12 @@ class FileUtils:
|
||||
response = requests.get(url, stream=True, timeout=60)
|
||||
if response.status_code != 200:
|
||||
logger.log(f"Error downloading file '{url}': {response.status_code} {response.text}", logging.ERROR)
|
||||
raise LanguageServerException("Error downloading file.")
|
||||
raise SolidLSPException("Error downloading file.")
|
||||
with open(target_path, "wb") as f:
|
||||
shutil.copyfileobj(response.raw, f)
|
||||
except Exception as exc:
|
||||
logger.log(f"Error downloading file '{url}': {exc}", logging.ERROR)
|
||||
raise LanguageServerException("Error downloading file.") from None
|
||||
raise SolidLSPException("Error downloading file.") from None
|
||||
|
||||
@staticmethod
|
||||
def download_and_extract_archive(logger: LanguageServerLogger, url: str, target_path: str, archive_type: str) -> None:
|
||||
@@ -220,10 +220,10 @@ class FileUtils:
|
||||
shutil.copyfileobj(f_in, f_out)
|
||||
else:
|
||||
logger.log(f"Unknown archive type '{archive_type}' for extraction", logging.ERROR)
|
||||
raise LanguageServerException(f"Unknown archive type '{archive_type}'")
|
||||
raise SolidLSPException(f"Unknown archive type '{archive_type}'")
|
||||
except Exception as exc:
|
||||
logger.log(f"Error extracting archive '{tmp_file_name}' obtained from '{url}': {exc}", logging.ERROR)
|
||||
raise LanguageServerException("Error extracting archive.") from exc
|
||||
raise SolidLSPException("Error extracting archive.") from exc
|
||||
finally:
|
||||
for tmp_file_name in tmp_files:
|
||||
if os.path.exists(tmp_file_name):
|
||||
@@ -289,7 +289,7 @@ class PlatformUtils:
|
||||
platform_id += "-" + libc
|
||||
return PlatformId(platform_id)
|
||||
else:
|
||||
raise LanguageServerException(f"Unknown platform: {system=}, {machine=}, {bitness=}")
|
||||
raise SolidLSPException(f"Unknown platform: {system=}, {machine=}, {bitness=}")
|
||||
|
||||
@staticmethod
|
||||
def _determine_windows_machine_type():
|
||||
@@ -345,7 +345,7 @@ class PlatformUtils:
|
||||
available_version_cmd_output.append(version_cmd_output)
|
||||
|
||||
if not available_version_cmd_output:
|
||||
raise LanguageServerException("dotnet not found on the system")
|
||||
raise SolidLSPException("dotnet not found on the system")
|
||||
|
||||
# Check for supported versions in order of preference (latest first)
|
||||
for version_cmd_output in available_version_cmd_output:
|
||||
@@ -361,7 +361,7 @@ class PlatformUtils:
|
||||
return DotnetVersion.V4
|
||||
|
||||
# If no supported version found, raise exception with all available versions
|
||||
raise LanguageServerException(
|
||||
raise SolidLSPException(
|
||||
f"No supported dotnet version found. Available versions: {', '.join(available_version_cmd_output)}. Supported versions: 4, 6, 7, 8"
|
||||
)
|
||||
except (FileNotFoundError, subprocess.CalledProcessError):
|
||||
@@ -369,7 +369,7 @@ class PlatformUtils:
|
||||
result = subprocess.run(["mono", "--version"], capture_output=True, check=True)
|
||||
return DotnetVersion.VMONO
|
||||
except (FileNotFoundError, subprocess.CalledProcessError):
|
||||
raise LanguageServerException("dotnet or mono not found on the system")
|
||||
raise SolidLSPException("dotnet or mono not found on the system")
|
||||
|
||||
|
||||
class SymbolUtils:
|
||||
|
||||
Reference in new issue
Block a user