Commit Graph
30 Commits
Author SHA1 Message Date
Michael Panchenko d30cdf8474 Fix symbol name resolution in selected LS (#1247)
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)
2026-04-01 16:29:00 +02:00
Michael Panchenko 0bbd9e375e Reformat (minor, after replacing black with ruff)
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
2026-03-23 21:10:41 +01:00
Alberto SimõesandDominik Jain 58efe413e3 Merge pull request #1131 from cx-alberto-simoes/feature/configurable-serena-folder-location
feat: add configurable project_serena_folder_location setting

Add a new `project_serena_folder_location` setting to `serena_config.yml` that allows configuring where the per-project `.serena` data folder (memories, caches) is stored, with `$projectDir` and `$projectFolderName` placeholder support (default: `$projectDir/.serena`, preserving current behavior).

Resolves #1123

Co-authored-by: Dominik Jain <dominik.jain@oraios-ai.de>
2026-03-05 21:09:13 +01:00
joachim.arting 88cd3c27a2 feat(csharp): add .slnx solution file support 2026-02-23 09:08:18 +01:00
Tom Longhurst b432560789 Make hover test assertions more specific
Assert on actual hover content (type names and symbol names) instead
of just checking for non-empty content. This verifies hover returns
meaningful type information from Roslyn.
2026-02-02 22:36:02 +00:00
Tom Longhurst 3627f61977 Address PR review: use iter_symbols() and make hover tests assertive
- Replace get_all_symbols_and_roots() with iter_symbols() to avoid
  redundant tuple unpacking
- Make hover tests assert that hover_info is not None instead of
  defensive conditionals
2026-02-02 22:28:56 +00:00
Tom Longhurst 973724c258 Add hover injection for C# type annotations
Following ALLanguageServer pattern, inject cached original symbol names
(with type annotations) into hover responses. This ensures type information
is available via hover operation as per SolidLSP convention.

- Override request_hover() to prepend original names to hover content
- Add comprehensive hover test verifying both property and method hovers
- Test covers Name property and IsAdult method

Addresses reviewer feedback about delivering type info via hover.
Test passes.
2026-02-02 14:45:06 +00:00
Tom Longhurst 0f7e9722c3 Update C# tests to use exact matching for normalized symbol names
Replace startswith() checks with exact matching now that symbol names
are normalized at the source. This is cleaner and more accurate.

Comments updated to reflect that names are normalized (not type-annotated).
All 14 tests pass.
2026-02-02 14:40:26 +00:00
Tom Longhurst cc2eb0a0be Update tests and symbol handling for new Roslyn format with type annotations
The new Roslyn 5.5.0 returns symbols with type annotations:
- Properties: 'Name : string' instead of 'Name'
- Methods: 'Add(int, int) : int' instead of 'Add'

Changes:
- Update SymbolUtils.symbol_tree_contains_name() to handle both formats
- Update test assertions to match new format (startswith checks)
- Update test expectations (new Roslyn correctly excludes definitions from references)

This provides more informative symbol information while maintaining backward compatibility.
2026-02-02 12:13:55 +00:00
Dominik Jain b33a4085c2 CSharpLanguageServer: Refactored to use DependencyProvider 2026-01-15 18:55:15 +01:00
Dominik Jain b724eccde6 CSharpLanguageServer: Wait for indexing to complete
resolving issues pertaining to retrievals not working correctly initially

Fixes #814
2025-12-08 18:27:23 +01:00
Dominik Jain 4982622b6a Disable randomly failing assertion #814 2025-12-06 13:59:12 +01:00
Dominik Jain 7f11d6b7e8 Fix SuspendedLoggerContext (adding a copy to serena.util.logging) 2025-11-23 13:32:41 +01:00
Dominik Jain 82d495b2a6 Remove LanguageServerLogger
Resolves #745
2025-11-20 21:33:37 +01:00
Dominik Jain d8cac3aedb Introduce abstraction DocumentSymbols, which is now returned by request_document_symbols 2025-11-12 03:46:18 +01:00
MischaPanch aa8c5c6ff6 Minor fix in mocks in tests.
Unclear why there was no failure in the past in CI
2025-09-02 18:54:49 +02:00
MischaPanch e6ae39ab1b Fixed path in test 2025-08-15 13:28:32 +02:00
MischaPanch d4dedd5d84 Improve waiting logic for cross-file references to be ready
Now waiting only once instead of on each request, hopefully that's enough
2025-08-15 13:10:46 +02:00
MischaPanch c82fab97c1 CSharp: added waiting for request_referencing and test for cross-file references 2025-08-14 12:01:58 +02:00
MischaPanch 65259254fd CC Vanilla
Tokens: 5,213,813
Prompts:
- I recently added the non-optional parameter solidlsp_settings to the init of SolidLanguageServer, the create method, and the ls_resources_dir method. All language server subclasses now need to be adjusted            │
│   accordingly to use solidlsp_settings. Do that. You can have a look at relevant memories in .serena/memories to understand the repo structure
- don't execute elixir tests, they hang
2025-07-25 15:17:03 +02:00
Michael Panchenko 7e06148648 Refactoring: added base method ls_resources_dir, used in C# LS 2025-07-06 18:28:22 +02:00
Michael Panchenko cf2a0c248b Moved omnisharp module up, minor tweaks
In this state, C# tests with omnisharp as LS mostly pass, except those querying for references
2025-07-06 00:08:40 +02:00
Michael Panchenko e8e417a18e Refactoring, stage 1: move ls implementations one step up
Paths to jsons were adjusted in the modules, minimal change, tests run through
2025-07-05 12:46:37 +02:00
Tom Longhurst cfe3350c34 Fix C# Language Server (#262)
Now when the language server starts, the initialisation will scan for solution or project files, and then pass them to the language server instructing it to open them. Which in-turn should give us all the nice context since the code is actually being 'loaded' up properly now.
2025-06-30 22:39:44 +02:00
Michael Panchenko 0ea317bd33 Restructured C# tests to be like the other tests 2025-06-29 01:00:43 +02:00
Michael Panchenko e21fb40376 Missing pytest mark 2025-06-29 00:24:32 +02:00
Michael Panchenko 3d4dba77bd Formatting, minor ruff fixes 2025-06-28 23:42:44 +02:00
Claude AssistantandClaude 723b7cb175 Fix C# language server startup and test configuration
- Add required --stdio flag for Microsoft.CodeAnalysis.LanguageServer
- Add required --extensionLogDirectory parameter to avoid startup failure
- Fix test fixture to properly start/stop language server
- Remove skip markers from C# tests to enable testing
- Return cache_dir from setup_runtime_dependencies for log directory creation

The language server now starts successfully and the first test passes.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-25 23:49:54 +01:00
Claude Assistant 57e30aec57 Replace OmniSharp with Microsoft.CodeAnalysis.LanguageServer
- Implemented new CSharpLanguageServer class using Microsoft's official C# language server
- Downloads Microsoft.CodeAnalysis.LanguageServer NuGet package (requires .NET 9)
- Supports direct download from NuGet API with fallback to package managers
- Uses platform-specific runtime packages (linux-x64, win-x64, osx-x64, etc.)
- Caches downloaded language server in ~/.cache/serena/language-servers/csharp/
- Added basic tests for C# language server functionality
- Updated SolidLanguageServer.create to use new implementation
- Removed old OmniSharp implementation

Note: Full language server tests are skipped as they require .NET 9 runtime
2025-06-25 22:56:17 +01:00
Tom Longhurst eb8b118d62 Initial Commit 2025-06-25 22:01:46 +01:00