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)
Black dependency created a dependabot warning and couldn't be bumped since it collided with pathspec dependencies. Since ruff can also format, black is not needed. But we now have these small format changes, mostly in test files
* 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
* Implement Ruby dual language server support with ruby-lsp and Solargraph
- Add ruby-lsp as primary Ruby language server with modern LSP features
- Mark Solargraph as experimental legacy option (ruby_solargraph enum)
- Implement Bundler-first installation strategy for ruby-lsp
- Add Rails project detection and performance optimizations
- Fix LSP protocol compliance for Solargraph (languageId: "ruby")
- Support both .rb and .erb files for ruby-lsp, .rb only for Solargraph
- Address reviewer feedback on dependency management and error handling
- Update test compatibility for dual language server behavior
Co-authored-by: Claude <noreply@anthropic.com>