* 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)
* Introduce SymbolBody representation (compact), from which the
body can be reconstructed, rendering body computation lazy
* Introduce SymbolBodyFactory for the creation of such instances,
ensuring that instances created from the same factory share
the same file content, allowing the in-memory and on-disk caches
to have a significantly smaller memory footprint
* Change type of "body" key in UnifiedSymbolRepresentation to use
SymbolBody instead of str
* Adjust all usages of the "body" key
instead of creating new low-level data structures.
This enables uniform handling of required conversions in our
higher-level Serena data structures
Fixes#432
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