Skip to content

Fix C# raw-string multiline field extraction - #463

Merged
Widthdom merged 3 commits into
mainfrom
fix-447
Apr 20, 2026
Merged

Fix C# raw-string multiline field extraction#463
Widthdom merged 3 commits into
mainfrom
fix-447

Conversation

@Widthdom

Copy link
Copy Markdown
Owner

Summary

  • bound the expensive C# multiline declaration confirmation phase without truncating confirmed field signatures
  • preserve full signatures for wrapped static readonly raw-string fields, same-line const raw-string fields, and long object/collection initializers
  • add extractor-level and CLI-level regression coverage for symbols / outline output so signature truncation is caught end-to-end

Root Cause

The earlier #447 perf fix capped multiline lookahead, but confirmed field declarations still depended on partial candidate assembly when building stored signatures. That left long raw-string declarations, especially same-line const fields, truncated at the opener line even though the symbol itself still existed.

Impact

symbols, definition, and outline now retain the full declaration signature for long multiline C# fields instead of stopping at string or """.

Validation

  • dotnet build
  • dotnet test tests/CodeIndex.Tests/CodeIndex.Tests.csproj --filter "FullyQualifiedName~SymbolExtractorTests"
  • dotnet test tests/CodeIndex.Tests/CodeIndex.Tests.csproj --filter "FullyQualifiedName~RunSymbolsAndOutline_CSharpLongRawStringFields_PreserveFullSignature"
  • local built dotnet ./src/CodeIndex/bin/Debug/net8.0/cdidx.dll on temporary projects to verify symbols and outline output for long raw-string fields

Closes #447.

@Widthdom
Widthdom marked this pull request as ready for review April 20, 2026 16:14
@Widthdom
Widthdom merged commit bd58fe0 into main Apr 20, 2026
6 checks passed
@Widthdom
Widthdom deleted the fix-447 branch April 20, 2026 16:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant