Merge branch 'main' into evaluation

This commit is contained in:
Michael Panchenko committed 2026-04-13 14:20:46 +02:00
commit 8e2b098471
3 files changed
+29 -5

No files matched your search

+1
View File
@@ -4,6 +4,7 @@ Status of the `main` branch. Changes prior to the next official version change w
* General:
- Support environment variable `SERENA_USAGE_REPORTING` (set to `false` to disable usage reporting)
- Extended the list of always ignored directories (by language servers) with common cases.
* Language Servers:
- Add mSL (mIRC Scripting Language) support (custom pygls-based language server; symbols, references, definitions)
+22 -1
View File
@@ -353,13 +353,34 @@ class SolidLanguageServer(ABC):
DOCUMENT_SYMBOL_CACHE_VERSION = 4
DOCUMENT_SYMBOL_CACHE_FILENAME = "document_symbols.pkl"
# Directories that should always be ignored regardless of language:
# VCS internals, virtual environments, caches, and serena's own data.
_ALWAYS_IGNORED_DIRS = frozenset(
{
".git",
".svn",
".hg",
".bzr", # VCS
".venv",
".env", # virtual environments
".cache",
".mypy_cache",
".pytest_cache",
".ruff_cache", # caches
".tox",
".nox", # test runners
".idea", # IDE internals
".serena", # serena's own data
}
)
# To be overridden and extended by subclasses
def is_ignored_dirname(self, dirname: str) -> bool:
"""
A language-specific condition for directories that should always be ignored. For example, venv
in Python and node_modules in JS/TS should be ignored always.
"""
return dirname.startswith(".")
return dirname in self._ALWAYS_IGNORED_DIRS
@staticmethod
def _determine_log_level(line: str) -> int:
+6 -4
View File
@@ -24,7 +24,7 @@ class TestTomlIgnoredDirectories:
assert language_server.is_ignored_dirname(".cargo"), ".cargo should be ignored"
assert language_server.is_ignored_dirname("node_modules"), "node_modules should be ignored"
# Directories starting with . are ignored by base class
# Infrastructure directories ignored by base class
assert language_server.is_ignored_dirname(".git"), ".git should be ignored"
assert language_server.is_ignored_dirname(".venv"), ".venv should be ignored"
@@ -49,12 +49,14 @@ class TestTomlIgnoredDirectories:
def test_various_cache_directories(self, language_server: SolidLanguageServer) -> None:
"""Test various cache and temporary directories are ignored."""
# Directories starting with . are ignored by base class
# Cache directories ignored by base class
assert language_server.is_ignored_dirname(".cache"), ".cache should be ignored"
# IDE directories (start with .)
# IDE internals
assert language_server.is_ignored_dirname(".idea"), ".idea should be ignored"
assert language_server.is_ignored_dirname(".vscode"), ".vscode should be ignored"
# .vscode is intentionally NOT ignored — it contains user-facing config
assert not language_server.is_ignored_dirname(".vscode"), ".vscode should not be ignored"
# Note: __pycache__ is NOT ignored by TOML server (only Python servers ignore it)
assert not language_server.is_ignored_dirname("__pycache__"), "__pycache__ is not TOML-specific"