Commit Graph
2063 Commits
Author SHA1 Message Date
Tom Longhurst 611acebe67 Normalize Roslyn symbol names and populate LSP detail field
Roslyn 5.5.0 returns symbol names with type annotations:
- Properties: "Name : string" instead of just "Name"
- Methods: "Add(int, int) : int" instead of just "Add"

This broke Serena's overload detection system which expects clean
base names with overload_idx for duplicates.

Solution:
- Override request_document_symbols() in CSharpLanguageServer
- Normalize symbol names to base form ("Name", "Add")
- Cache original names at (file, line, char) for rich info display
- Populate LSP spec's 'detail' field with type/signature info
- Process children symbols recursively

Follows AL Language Server pattern. All 24 C# tests pass.
2026-02-02 12:47:12 +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
Tom Longhurst f5e2b8a21b Add tests for .NET version detection edge cases
- Test cached .NET installation is reused without re-downloading
- Test .NET 9 is rejected and triggers .NET 10 install
- Test .NET 11+ versions are accepted for forward compatibility

All 7 .NET install tests now pass (4 existing + 3 new)
2026-02-02 10:57:10 +00:00
Tom Longhurst b5f8cd55dd Update CSharpLanguageServer docstring to reflect new NuGet.org and install script behavior
- Remove outdated DotNetRuntime override example
- Add CSharpLanguageServer override example
- Document .NET 10+ requirement and automatic installation
- Clarify that install scripts are now used for runtime

Addresses code review feedback about outdated documentation.
2026-02-02 10:40:16 +00:00
Tom Longhurst af0075c3e0 Use official .NET install scripts instead of manual downloads
Replace manual .NET runtime downloads with Microsoft's official dotnet-install
scripts for better maintainability and automatic platform detection.

Changes:
- Remove 6 DotNetRuntime RuntimeDependency entries (42 lines removed)
- Replace _ensure_dotnet_runtime_from_config with _install_dotnet_with_script
- Use bash script (dotnet-install.sh) for Linux/macOS
- Use PowerShell script (dotnet-install.ps1) for Windows
- Update version check from .NET 9 to .NET 10+ (supports 10.x, 11.x, etc.)
- Add comprehensive tests for install script behavior

Benefits:
- Simpler codebase (~80 lines of manual download code → ~60 lines of script invocation)
- Automatic platform/architecture detection by Microsoft scripts
- Built-in checksum verification and dependency handling
- Official Microsoft-maintained approach
- Easier version updates (just change version string)
- Better compatibility with .NET 10 (required by roslyn-language-server packages)

The language server packages from NuGet.org remain unchanged - this only
affects how the .NET runtime is installed to execute the language server.
2026-02-02 10:32:53 +00:00
Tom Longhurst b238e1d0ce Switch C# language server from Azure NuGet feed to official NuGet.org
Replace Microsoft.CodeAnalysis.LanguageServer packages from Azure DevOps
feed with official roslyn-language-server packages from NuGet.org.

Changes:
- Update package names to roslyn-language-server.* (from Microsoft.CodeAnalysis.LanguageServer.*)
- Update version from 5.0.0-1.25329.6 to 5.5.0-2.26078.4
- Add direct URLs pointing to NuGet.org for each platform variant
- Update extract paths from content/LanguageServer/<platform> to tools/net10.0/<platform>
- Simplify download logic by removing Azure feed service index lookup
- Replace _download_nuget_package_direct with simpler _download_nuget_package
- Add tests to verify NuGet.org download behavior

Benefits:
- More reliable package source (official NuGet.org vs Azure DevOps feed)
- Newer version with latest Roslyn improvements
- Simpler codebase (removed ~60 lines of Azure-specific logic)
- Better error messages with explicit URLs
2026-02-02 10:21:43 +00:00
Dominik Jain 764f26f28f Merge pull request #982 from oraios/ls-completions-event
Remove event completions_available and other superfluous events
2026-02-01 22:58:59 +01:00
Dominik Jain 0f9421e023 Merge pull request #981 from oraios/async-ignorespec
Project: Initialise ignorespec and list of patterns asynchronously
2026-02-01 22:56:51 +01:00
Dominik Jain 9d9e83770e Remove event completions_available and other superfluous events in LS implementations 2026-02-01 21:02:21 +01:00
Dominik Jain 0f30a850c4 Project: Initialise ignorespec and list of patterns asynchronously
Resolves #980
2026-02-01 20:13:03 +01:00
Dominik Jain 811e1981b5 Merge pull request #978 from oraios/dependency-provider-rust
Convert RustAnalyzer to use LanguageServerDependencyProviderSinglePath
2026-02-01 18:50:37 +01:00
Dominik Jain 6b87ffd758 Convert RustAnalyzer to use LanguageServerDependencyProviderSinglePath 2026-02-01 14:29:39 +01:00
Michael Panchenko fb3a0f5b17 Removed try-except around sensai import [ci skip] 2026-02-01 20:18:47 +07:00
Michael Panchenko 1d0b3afdc9 Removed ccls mention from readme 2026-02-01 20:09:37 +07:00
Azraf Nahian 71a6f1ff82 CCLS Support added (#975)
Also added a test suite for both clangd and ccls
2026-02-01 20:01:51 +07:00
Dominik Jain 01dc6f8734 Add note making clear the LS-specific settings need not be adjusted by most users 2026-01-31 17:22:02 +01:00
Dominik Jain 944cf5d956 Improve docs on mode configuration 2026-01-30 00:36:28 +01:00
Dominik Jain a9552b64f5 Merge pull request #969 from oraios/feature/mode-config
Improve mode configurability and general config improvements
2026-01-29 20:05:16 +01:00
Dominik Jain 80f3586186 Support forced comment updates when transferring comments
Apply forced update for 'projects' key (old comment is misleading)
2026-01-29 19:02:26 +01:00
Dominik Jain ad47570c4f Minor changes to improve uniformity of comments 2026-01-29 19:02:26 +01:00
Dominik Jain 153ccb5238 Improve --mode help text 2026-01-29 19:02:26 +01:00
Michael Panchenko f14faa12d0 Merge pull request #947 from Linde7777/fix-codex-prompt
Adjust the activation prompt for Codex, to make GPT-5 more compliant.
2026-01-29 14:26:09 +07:00
Michael Panchenko c41810a227 Better documentation of modes in cli 2026-01-29 13:49:30 +07:00
Michael Panchenko df0c10fa1a Minor: declare mode-related fields instead of setting them
The fields _active_modes and _active_tools were overwritten directly after having been set, this is no longer the case
2026-01-29 12:50:56 +07:00
Dominik Jain 754d7e5108 transfer_missing_yaml_comments: Remove obsolete parameter fully_missing_only 2026-01-28 19:49:00 +01:00
Dominik Jain f0cb06eb4b Add docstrings 2026-01-28 19:49:00 +01:00
Dominik Jain 3c29a8fbe8 Deduplicate active modes 2026-01-28 19:49:00 +01:00
Dominik Jain 712c493360 Handle newline differences between leading and trailing comments 2026-01-28 19:49:00 +01:00
Dominik Jain a8753d9618 Apply YAML comment transfer to serena_config.yml when re-saving
* Use leading comment convention in template, because trailing
   comments are much more difficult to deal with and very hard to normalise
 * Apply a conversion to the user's yaml content (translating from trailing
   comments where necessary) before applying the comment transfer
2026-01-28 19:49:00 +01:00
Dominik Jain 5125831c3a Improve comment on special requirements for language servers, linking to docs 2026-01-28 19:49:00 +01:00
Dominik Jain 7c7f100d75 transfer_missing_yaml_comments_by_index: Also transfer source comment if target comment is effectively empty 2026-01-28 19:49:00 +01:00
Dominik Jain a58a1c2f16 Transfer comments from template when re-saving project.yml files 2026-01-28 19:49:00 +01:00
Dominik Jain 57423142fe Add YAML comment normalisation to ensure that comments are properly associated
with the respective keys (given a file that uniformly uses pre-key comments)
2026-01-28 19:49:00 +01:00
Dominik Jain 71fca6c567 Remove unnecessary overload (always preserve comments) 2026-01-28 19:49:00 +01:00
Dominik Jain c6b00c39eb Separate YAML and dataclass utils 2026-01-28 19:49:00 +01:00
Dominik Jain 7ad00d8e51 Ensure that project.yml files are complete, re-saving incomplete ones with defaults 2026-01-28 19:49:00 +01:00
Dominik Jain 40a3075cc0 Ensure consistent mode configuration for project
Enabled modes must not depend on project activation order.
Always apply, in order: SerenaConfig, ProjectConfig, current CLI overrides
2026-01-28 19:49:00 +01:00
Dominik Jain 5b103ee281 Improve configurability of modes
Modes can now be configured in three places (in reverse order of precedence)
  * global config
  * project config
  * command line

Furthermore, we differentiate base modes from default modes,
where command line parameters override only default modes,
adding more flexibility

Resolves #926
2026-01-26 20:20:29 +01:00
Dominik Jain 414f591d58 Update contribution guidelines [skip ci] 2026-01-26 13:23:42 +01:00
Dominik Jain be77ad371d Merge pull request #948 from zen010101/feature/pasls-auto-update
feat(pascal): Add auto-update for Pascal Language Server
2026-01-24 15:53:28 +01:00
Dominik Jain 8260ca7f4b Merge pull request #967 from oraios/name-path-matching-logic
Adjust name path matching logic to consider overload indices at all positions in the name path
2026-01-24 14:12:13 +01:00
Dominik Jain 0fbc2b5f82 Adjust name path matching logic to consider overload indices at all positions in the name path
(now matching the implementation in the JetBrains plugin)

Resolves #935
2026-01-24 02:21:11 +01:00
Dominik Jain 62e407dae5 Merge pull request #950 from zen010101/feature/pascal-ls-specific-settings
feat(pascal): Support ls_specific_settings for Pascal LSP
2026-01-24 02:14:45 +01:00
zen010101 ab3787c8e3 docs: Update Pascal docs to focus on ls_specific_settings
Changed documentation to describe ls_specific_settings configuration
instead of environment variables, as suggested by reviewer.
2026-01-24 07:06:59 +08:00
zen010101 5502e5246a chore: retrigger CI 2026-01-24 05:45:15 +08:00
zen010101 dabf14f1f6 docs: Add Pascal language server configuration documentation
Document pasls settings including:
- Language server installation (PATH vs auto-download)
- Auto-update behavior (24h interval, SHA256 verification, atomic updates)
- Configuration via environment variables (PP, FPCDIR, LAZARUSDIR, etc.)
2026-01-23 16:49:07 +08:00
Dominik Jain 1ec5a731a3 cli: Allow "project index" with project name (not just path), refactoring 2026-01-22 14:39:23 +01:00
Dominik Jain 1d0e38be85 cli: Remove deprecated indexing command 2026-01-22 14:29:33 +01:00
Dominik Jain 0f3e23c4e8 cli: "project create" now saves the created project to SerenaConfig
Resolves #868
2026-01-22 14:29:32 +01:00
Dominik Jain a2d2f0f0a9 Merge pull request #965 from oraios/memory-efficient-body-cache
Ensure memory-efficient high-level document symbol cache
2026-01-22 02:25:20 +01:00