mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-14 00:16:57 +00:00
Report language server status in GetCurrentConfigTool result
Resolves #1782
This commit is contained in:
1 parent
dd12fa032f
commit
a47df023f5
3 files changed
+16
No files matched your search
@@ -20,6 +20,7 @@ Status of the `main` branch. Changes prior to the next official version change w
|
||||
|
||||
* Tools:
|
||||
- `find_symbol`: Change tool description to improve tool search results in clients that load tools dynamically
|
||||
- `get_current_config`: Result now includes language server status #1782
|
||||
|
||||
* Language Servers:
|
||||
- Allow language server priorities to be configured in `serena_config.yml` (for auto-detection during
|
||||
|
||||
@@ -1356,6 +1356,8 @@ class SerenaAgent:
|
||||
if self._active_project and self._active_project.project_config.language_backend is not None:
|
||||
result_str += " (project override)"
|
||||
result_str += f" (global default: {self.serena_config.language_backend.value})\n"
|
||||
if self._language_backend.is_lsp() and self._active_project:
|
||||
result_str += f"Language server status: {self._active_project.get_language_server_manager_status()}\n"
|
||||
result_str += "Available projects:\n" + "\n".join(list(self.serena_config.project_names)) + "\n"
|
||||
result_str += f"Active context: {self._context.name}\n"
|
||||
|
||||
|
||||
@@ -504,6 +504,19 @@ class Project(ToStringMixin):
|
||||
self._language_server_manager_init_error = e
|
||||
raise
|
||||
|
||||
def get_language_server_manager_status(self) -> str:
|
||||
"""
|
||||
:return: a status string describing the state of the language server manager; if its initialisation resulted in an
|
||||
error, the error message is included in the status string
|
||||
"""
|
||||
if self.language_server_manager is None:
|
||||
if self._language_server_manager_init_error is not None:
|
||||
return f"error ({self._language_server_manager_init_error})"
|
||||
else:
|
||||
return "not initialized"
|
||||
else:
|
||||
return "ready"
|
||||
|
||||
def get_language_server_manager_or_raise(self) -> LanguageServerManager:
|
||||
if self.language_server_manager is None:
|
||||
msg = TextBuilder("The language server manager is not initialized, indicating a problem during project initialisation.")
|
||||
|
||||
Reference in new issue
Block a user