Report language server status in GetCurrentConfigTool result

Resolves #1782
This commit is contained in:
Dominik Jain authored and Dominik Jain committed 2026-07-31 16:06:02 +02:00
1 parent dd12fa032f
commit a47df023f5
3 files changed
+16

No files matched your search

+1
View File
@@ -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
+2
View File
@@ -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"
+13
View File
@@ -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.")