Serena notifies language servers about files changed outside its own edit tools (a git checkout, another editor, a build step) by sending workspace/didChangeWatchedFiles from LanguageServerManager.poll_and_notify, whose docstring names this exact case: such edits are 'otherwise invisible to a warm language server, causing symbolic queries to answer from a stale index'.
ClojureLSP never declared the corresponding client capability, so clojure-lsp was not told those notifications are sent and need not treat them as a reason to invalidate its analysis. DefaultInitializeParamsBuilder does not supply a default capabilities block, so nothing filled this in on the server's behalf.
Relates to #1593, where find_symbol returned a body from a comment mentioning the symbol rather than its definition, at a position the symbol had previously occupied.
* Introduce abstractions: FileCollection, FileProxy
* Unify handling of pattern search in project files
(source code vs. all files)
This prepares for processing of external files,
which can implement FileProxy differently.
Adds tests for name resolution for each language and fixes the name resolution where tests have failed.
Also:
Extends python tests to cover ty
Extends skipping conditions for several LS (but only when not in CI)
Better test output in CI
Removed a wrong python test (started failing for ty and should have failed for pyright too)
such that FindReferencingSymbolsTool is now also implemented without a direct reference
to the language server
All references to Component.language_server have been removed
adding all necessary related functionality:
* Handling of ignored files
* Enumeration of source files
Functions removed from SolidLanguageServer:
* index_repository
* request_parsed_files
* search_files_for_pattern
Implement SearchForPatternTool without language server