Merge pull request #1524 from BinarySo1o/fix/ts-coverage-dirname-ignore

TypeScript: stop hard-ignoring source directories named `coverage`
This commit is contained in:
Dr. Dominik Jain authored and GitHub committed 2026-07-21 13:30:50 +02:00
commit 4903da5ac0
4 files changed
+39 -2

No files matched your search

+4
View File
@@ -36,6 +36,10 @@ Status of the `main` branch. Changes prior to the next official version change w
symbol range of such declarations starting at the identifier rather than the keyword (unlike
`func` declarations); the range is now extended to include the keyword so the body and the
replacement range stay consistent.
- `typescript` / `typescript_vts`: No longer ignore directories named `coverage`. This was intended to skip
coverage-report output, but matched by bare dirname and so also hid legitimate source directories named
`coverage` (e.g. `src/routes/coverage/`) from symbol tools. Generated report dirs are already covered by
gitignore. Fixes #1523.
* Tools:
- Fix: `search_for_pattern` marked one line too many as matched whenever a match ended with a line
@@ -201,7 +201,6 @@ class TypeScriptLanguageServer(SolidLanguageServer):
"node_modules",
"dist",
"build",
"coverage",
]
@staticmethod
@@ -68,7 +68,6 @@ class VtsLanguageServer(SolidLanguageServer):
"node_modules",
"dist",
"build",
"coverage",
]
@classmethod
@@ -0,0 +1,35 @@
"""
Tests for TypeScript language server directory-ignoring behavior.
Regression test for the case where a *source* directory named `coverage`
(e.g. `src/routes/coverage/`) was hard-ignored by `is_ignored_dirname`,
hiding it from symbol tools. Only generated coverage-report dirs should be
excluded, and those are handled by gitignore.
"""
import pytest
from solidlsp import SolidLanguageServer
from solidlsp.ls_config import Language
pytestmark = pytest.mark.typescript
@pytest.mark.parametrize("language_server", [Language.TYPESCRIPT], indirect=True)
class TestTypescriptIgnoredDirectories:
"""TypeScript-specific directory ignoring behavior."""
def test_generated_dirs_still_ignored(self, language_server: SolidLanguageServer) -> None:
assert language_server.is_ignored_dirname("node_modules"), "node_modules should be ignored"
assert language_server.is_ignored_dirname("dist"), "dist should be ignored"
assert language_server.is_ignored_dirname("build"), "build should be ignored"
# VCS dir handled by the base class
assert language_server.is_ignored_dirname(".git"), ".git should be ignored"
def test_source_dirs_not_ignored(self, language_server: SolidLanguageServer) -> None:
# `coverage` is a legitimate source/module name; only generated
# coverage-report dirs (which are gitignored) should be excluded.
assert not language_server.is_ignored_dirname("coverage"), "coverage source dir should not be ignored"
assert not language_server.is_ignored_dirname("src"), "src should not be ignored"
assert not language_server.is_ignored_dirname("lib"), "lib should not be ignored"
assert not language_server.is_ignored_dirname("routes"), "routes should not be ignored"