Commit Graph
897 Commits
Author SHA1 Message Date
Michael Panchenko 062269ad23 Merge branch 'main' into feature/csharp-language-server
# Conflicts:
#	CHANGELOG.md
2025-06-29 00:16:35 +02:00
Michael Panchenko 4c9955447d Changelog, readme (info on new C# LS) 2025-06-29 00:14:19 +02:00
Michael Panchenko 51f1fe0efb C#: Removed jsons in favor of keeping data directly within python 2025-06-29 00:09:51 +02:00
Michael Panchenko 3d4dba77bd Formatting, minor ruff fixes 2025-06-28 23:42:44 +02:00
Michael Panchenko 6e2ed3969d Fixed urls in C# runtime_dependencies.json 2025-06-28 23:42:44 +02:00
Michael Panchenko 22372a30fa Removed pytest ini (all pytest config should happen in pyproject.toml)
Added csharp to markers
2025-06-28 23:42:44 +02:00
Claude Assistant 5c151ad1c4 PR comments 2025-06-28 23:42:44 +02:00
Claude AssistantandClaude 27eecb605a Fix JSON syntax error in initialize_params.json
Removes extraneous EOF marker that was causing JSON parsing to fail
during C# language server initialization parameter loading.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-28 23:42:44 +02:00
Claude AssistantandClaude 83e16782e7 Fix JSON syntax error in runtime_dependencies.json
Removes extraneous EOF marker that was causing JSON parsing to fail
during C# language server initialization.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-28 23:42:44 +02:00
Claude AssistantandClaude c007d5334d Add initialize_params.json for C# language server
Creates consistent initialization structure with other language servers:
- Extracts hardcoded initialization parameters to JSON configuration
- Uses template variables ($rootPath, $rootUri, $rootName) for dynamic values
- Maintains all existing capabilities and functionality
- Follows the established pattern used by 10/12 other language servers

This improves maintainability by allowing initialization parameter
modifications without code changes and ensures consistency across
all language server implementations.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-28 23:42:44 +02:00
Claude AssistantandClaude ebe5782c6b Add runtime_dependencies.json for C# language server
Creates consistent configuration structure with other language servers:
- Extracts hardcoded URLs/versions to JSON configuration
- Supports both .NET runtime and language server packages
- Maintains platform-specific package handling
- Keeps NuGet source configuration centralized

This improves maintainability and follows the established pattern
used by all other language server implementations.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-28 23:42:44 +02:00
Claude AssistantandClaude 07118e6fd6 Move serena.sln to C# test resources directory
Relocates the solution file to test/resources/repos/csharp/
to organize C# test assets and keep the root directory clean.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-28 23:42:44 +02:00
Claude AssistantandClaude 941927c564 Remove unnecessary __init__.py from csharp_language_server
Other language servers don't have __init__.py files, keeping
the structure consistent across language server implementations.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-28 23:42:44 +02:00
Miguel de Benito Delgado c3dd421ee8 Add pytest markers to pytest.ini (?) 2025-06-28 21:26:21 +02:00
Miguel de Benito Delgado d097171a1a Use pathlib in tests 2025-06-28 21:16:21 +02:00
Miguel de Benito Delgado b95cc78cbd Cosmetic 2025-06-28 20:48:50 +02:00
Miguel de Benito Delgado a99707cb17 Add java+clojure to the environment for the pytest gh workflow 2025-06-28 20:48:37 +02:00
Miguel de Benito Delgado 151df419ae Skip clojure tests on incompatible or missing cli 2025-06-28 20:37:29 +02:00
Miguel de Benito Delgado e7f5acd7d9 Fail on missing or incompatible clojure executable 2025-06-28 20:32:37 +02:00
Michael Panchenko f0a74ca62b Merge pull request #247 from SalvatoreT/salvatoret/246/support-arm64-docker
ci: publish ARM-based Docker image too
2025-06-28 16:26:59 +02:00
Miguel de Benito Delgado f24ee42592 De-fluff 2025-06-28 14:00:21 +02:00
Miguel de Benito Delgado 5cedba39e3 Finish renaming and moving files after move to solidlsp 2025-06-28 11:45:47 +00:00
Miguel de Benito Delgado 31cee4da63 Tell overeager codespell to stfu 2025-06-28 11:29:58 +00:00
Miguel de Benito Delgado 3fe2825538 Merge branch 'main' into feature/clojure-lsp 2025-06-28 11:27:17 +00:00
Miguel de Benito Delgado 0b280eca98 Add clojure pytest marker to config 2025-06-28 11:14:26 +00:00
Miguel de Benito Delgado d073735b6e Typo in contributing file 2025-06-28 11:12:57 +00:00
Miguel de Benito Delgado 528f037501 Additional basic tests for clojure 2025-06-28 11:11:08 +00:00
Miguel de Benito Delgado b58b3de0a2 Test basic clojure support 2025-06-28 09:16:47 +00:00
Miguel de Benito Delgado b8436c5c4a Add clojure test repo 2025-06-28 08:37:41 +00:00
Miguel de Benito Delgado fd3c633703 Add clojure temp files to gitignore 2025-06-28 08:36:23 +00:00
Miguel de Benito Delgado 5058ca73ef Typo in log message 2025-06-28 08:34:30 +00:00
Miguel de Benito Delgado 211b72042c Support for clojure via clojure-lsp 2025-06-28 08:31:52 +00:00
Salvatore Testa 8828d531e4 ci: publish ARM-based Docker image too
Without ARM support, this is harder to use on MacBook Pros.

I copied the `platforms` tag example from the Docker docs.
https://docs.docker.com/build/ci/github-actions/multi-platform/
2025-06-27 23:38:08 +02:00
Dominik Jain 65a64d75f3 Update change log 2025-06-27 13:29:40 +02:00
Michael Panchenko 92d3b80918 Update README.md - missing /sse in link [ci skip] 2025-06-26 22:20:30 +02:00
Claude AssistantandClaude 5b87038227 Fix C# language server configuration enum parsing errors
Replace numeric enum values with proper string values for:
- dotnet_member_insertion_location: "with_other_members_of_the_same_kind"
- dotnet_property_generation_behavior: "prefer_throwing_properties"

This resolves ImplementTypeInsertionBehavior and ImplementTypePropertyGenerationBehavior parsing failures.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-26 00:04:45 +01:00
Claude Assistant 6a9e0e97f4 Revert "Add .editorconfig to fix C# language server configuration warnings"
This reverts commit 17dbe4a595.
2025-06-26 00:03:52 +01:00
Claude AssistantandClaude 17dbe4a595 Add .editorconfig to fix C# language server configuration warnings
Resolves parsing errors for dotnet_member_insertion_location and
dotnet_property_generation_behavior by providing proper enum values
instead of numeric strings.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-26 00:03:02 +01:00
Claude AssistantandClaude a72d3b7db0 Fix workspace configuration handling for C# language server
The language server was failing to parse empty objects '{}' for configuration
values. Updated the workspace/configuration handler to return proper default
values based on the configuration section:

- Boolean settings (enable/show/suppress/navigate) default to False
- Scope settings (analyzer/compiler diagnostics) default to "openFiles"
- Tab width and indent size default to 4
- Insert final newline defaults to True
- Other settings return null

This eliminates the "Failed to parse '{}' to type" errors during initialization.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-25 23:57:53 +01:00
Claude AssistantandClaude 39276c327d Add client/registerCapability handler for C# language server
Microsoft.CodeAnalysis.LanguageServer attempts to call client/registerCapability
during initialization, which was causing errors and shutting down the server.
Added a handler that acknowledges these requests to prevent the error.

This fixes the "method 'client/registerCapability' not handled on client" error
that was causing the language server to shut down during indexing.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-25 23:53:43 +01: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 AssistantandClaude aa0fb79208 Fix C# language server initialization timeout
Remove incorrect shlex.quote() usage in command construction. The ProcessLaunchInfo
expects a simple string command, not shell-quoted arguments. This was causing the
dotnet runtime to receive literal quotes around arguments, preventing proper
execution of the language server DLL.

The fix changes from:
  cmd = " ".join(shlex.quote(part) for part in cmd_parts)
to:
  cmd = " ".join(cmd_parts)

This allows the language server to initialize correctly without timeout errors.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-25 23:29:56 +01:00
Claude Assistant a4a0b73898 feat: Enhanced logging for C# language server indexing visibility
- Add console output for progress notifications (print to stdout)
- Add console output for important server messages (errors, warnings, info)
- Show progress percentages every 10% to avoid spam
- Add messages indicating indexing has started and may take time
- Add debug logging for raw progress notifications

This should make it clear that indexing is happening and not hanging.
2025-06-25 23:24:12 +01:00
Claude Assistant 2a77363cdf chore: Remove and gitignore C# build artifacts
- Delete obj/ and bin/ directories from test project
- Add .gitignore for C# test project to exclude build artifacts
- Prevents committing build files, temporary files, and NuGet packages
2025-06-25 23:21:41 +01:00
Claude Assistant da92b60af0 chore: Add .claude/settings.local.json to .gitignore
- Remove tracked .claude/settings.local.json file
- Add to .gitignore to prevent future commits of local settings
- Local Claude settings should not be in version control
2025-06-25 23:20:10 +01:00
Claude Assistant f93ace8abd fix: Fix C# language server initialization timeout
- Use shlex.quote() for proper shell escaping instead of array
- ProcessLaunchInfo expects a string command, not an array
- Add better error handling with specific error messages
- Add debug logging for the actual command being executed

This fixes the Empty queue error during language server initialization.
2025-06-25 23:18:05 +01:00
Claude Assistant 790eadfc91 feat: Add progress reporting for C# language server indexing
- Implement handle_progress function to display indexing progress
- Add window/workDoneProgress/create request handler
- Enable workDoneProgress capability in both window and workspace
- Replace do_nothing handler with proper progress notifications

This should display progress messages during C# project indexing instead of appearing to hang.
2025-06-25 23:15:31 +01:00
Claude Assistant c975ceb1d6 fix: Address immediate code review issues in C# language server
- Fix command injection vulnerability by passing cmd_parts array directly to ProcessLaunchInfo
- Update docstring to correctly reference Microsoft.CodeAnalysis.LanguageServer
- Remove string concatenation for shell commands to prevent injection attacks

These changes address the high-priority security and documentation issues identified in code review.
2025-06-25 23:13:31 +01:00
Claude Assistant 20ddf17b78 feat: Add automatic .NET 9 runtime download to C# language server
- Implement _ensure_dotnet_runtime method to check for and download .NET 9
- Support platform-specific runtime downloads (win-x64, linux-x64, osx-x64, osx-arm64)
- Cache downloaded runtime in ~/.cache/serena/language-servers/csharp/
- Modified setup_runtime_dependencies to return tuple of (dotnet_path, dll_path)
- Automatically use system .NET 9 if available, otherwise download

This ensures the C# language server can run even without .NET 9 pre-installed.
2025-06-25 23:02:27 +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