Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
564 commits
Select commit Hold shift + click to select a range
d7e93cc
Switch Unions second reviewer from 333fred to jjonescz in Language Fe…
Copilot Mar 3, 2026
0510123
Union declarations implement IUnion interface (#82560)
AlekseyTs Mar 3, 2026
8c13fd1
Mark Union related APIs as experimental (#82587)
AlekseyTs Mar 3, 2026
393a993
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 3, 2026
f0162c2
Ensure that a double-dispose of CPSProject doesn't throw (#82557)
jasonmalinowski Mar 3, 2026
0a6db8d
Throw NotImplementedException when a build errorId is not supported (…
JoeRobich Mar 3, 2026
8b4c743
Support union matching for values of ```Nullable<Union>``` (#82558)
AlekseyTs Mar 3, 2026
20a9eab
Unions: add most basic IDE support (#82604)
jcouv Mar 3, 2026
ce4b065
[main] Source code updates from dotnet/dotnet (#82610)
dotnet-maestro[bot] Mar 3, 2026
f911e54
Support kind-scoped experimental factory annotations
333fred Mar 2, 2026
a59419a
Set UnionDeclaration experimental URL to #82567
333fred Mar 3, 2026
6cc99f7
Ensure that lambdas are not cached in runtime async (#82559)
333fred Mar 3, 2026
1d9ca38
Add a document outlining RoslynAnalyzer acquisition (#82578)
JoeRobich Mar 4, 2026
40476e2
Run the Linux Single Machine CI with the Spanish locale. (#82450)
JoeRobich Mar 4, 2026
53446d6
[main] Update dependencies from dotnet/arcade (#82618)
dotnet-maestro[bot] Mar 4, 2026
fda4e9d
Check language version for union matching and conversions (#82617)
AlekseyTs Mar 4, 2026
7f8a7b3
Report errors for union members that are not permitted (#82626)
AlekseyTs Mar 4, 2026
a87f3d6
Add IFSharpInlineHintsService2 for displayAllOverride support (#82629)
majocha Mar 4, 2026
a82671c
Disallow `ref` modifier for a union declaration (#82632)
AlekseyTs Mar 4, 2026
697a893
Fix resx source generator for less common resx metadata and locations…
AArnott Mar 5, 2026
c4b4ee0
Don't log named pipe connection failures as errors in BuildServerConn…
Copilot Mar 5, 2026
dfe55b2
Update the build system errors instructions for Visual Studio 2026
jasonmalinowski Mar 5, 2026
1784d16
Track non-blocking PROTOTYPE comments for `Unions` feature in an issu…
AlekseyTs Mar 5, 2026
1dc4fc3
Merge 'Unions' into main
AlekseyTs Mar 5, 2026
f10d4fa
Pack enum values
AlekseyTs Mar 5, 2026
441caf3
Revert System.ValueTuple version update (#82639)
jjonescz Mar 5, 2026
afffe4f
[main] Source code updates from dotnet/dotnet (#82623)
dotnet-maestro[bot] Mar 6, 2026
d76d00b
Update the build system errors instructions for Visual Studio 2026 (#…
jasonmalinowski Mar 6, 2026
797317e
Revert "Throw NotImplementedException when a build errorId is not sup…
ToddGrun Mar 6, 2026
86763dd
Merge 'Unions' into main (#82640)
AlekseyTs Mar 7, 2026
858f660
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 7, 2026
54b4763
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 7, 2026
43acf64
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 7, 2026
ddcf175
Reduce allocations during source text diffing (#82462)
ToddGrun Mar 9, 2026
c0f9d5b
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 9, 2026
26ae29b
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 9, 2026
3a38d0c
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 9, 2026
dcc3438
Update insert.yml to use roslyn-tools for insertions (#82615)
JoeRobich Mar 9, 2026
f4ce901
[main] Source code updates from dotnet/dotnet (#82655)
dotnet-maestro[bot] Mar 9, 2026
2bc2bb6
Use `FieldTypeEncoder` API to emit field metadata. (#82651)
teo-tsirpanis Mar 9, 2026
0d88ffd
Copy specific skills from the dotnet/runtime repo (#82656)
phil-allen-msft Mar 9, 2026
07e15c1
Improve trivia handling in 'use as expression'. (#82577)
CyrusNajmabadi Mar 9, 2026
115a597
Use a sequence point for custom awaiters with runtime async (#82605)
333fred Mar 9, 2026
e9a5618
Fix IDE0059 to not flag writes to by-ref parameters or ref locals as …
Copilot Mar 10, 2026
d809327
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 10, 2026
958dfa5
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 10, 2026
0a8d4b9
[main] Update dependencies from dotnet/arcade (#82671)
dotnet-maestro[bot] Mar 10, 2026
170fc84
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 10, 2026
26be960
Add a CodeFlow link to new pull requests (#82684)
jjonescz Mar 10, 2026
cb64e68
Use more informative assert for FBA multi file test (#82688)
RikkiGibson Mar 10, 2026
0b12a91
Reduce allocations in DocumentAnalysisExecutor ctor (#82669)
ToddGrun Mar 10, 2026
d4f7c35
Convert ComputeDocumentDiagnosticsAsync to a static method (#82670)
ToddGrun Mar 10, 2026
0f737e1
Report progress when we're doing the auto-load of the project
jasonmalinowski Mar 11, 2026
859b23f
[main] Update dependencies from dotnet/arcade (#82695)
dotnet-maestro[bot] Mar 11, 2026
36c7834
[main] Source code updates from dotnet/dotnet (#82699)
dotnet-maestro[bot] Mar 11, 2026
d70faac
Fix visiting unreachable `when` clauses in NullableWalker (#82563)
jjonescz Mar 11, 2026
06bff44
Implement SynthesizedBackingFieldSymbolBase.TryGetFirstLocation (#82679)
ToddGrun Mar 11, 2026
dad808f
Add plan for regex NavigateTo search
Mar 11, 2026
8e15824
Add RegexQuery types, RegexQueryCompiler, and tests
Mar 11, 2026
9dc77c3
Add regex detection and AST-based dot splitting
Mar 11, 2026
9c67665
Add RegexQueryCheckPasses pre-filter + tests + benchmarks
Mar 11, 2026
ca42dae
Add RegexPatternMatcher for regex-based symbol matching
Mar 11, 2026
287aec5
Wire regex search into the NavigateTo pipeline
Mar 11, 2026
b0628a1
Address PR feedback: comments, FixedSizeArrayBuilder, Compiled regex
Mar 11, 2026
38f2042
Harden regex search: whitespace stripping, invalid regex handling, Fo…
Mar 11, 2026
8564c98
Address adversarial review: fix remaining foo→goo, strip all whitespa…
Mar 11, 2026
46e9530
Avoid duplicate TFM in Microsoft.CodeAnalysis.ExternalAccess.Razor.Fe…
jjonescz Mar 11, 2026
ef0c5bb
Report progress when we're doing the auto-load of the project (#82700)
jasonmalinowski Mar 11, 2026
ff1aa5b
Fix/76886 await nullable value type (#82146)
Metalaka Mar 11, 2026
8c985fa
Remove the support for server-created pipes
jasonmalinowski Mar 12, 2026
b1c056a
Clean up regex search: introduce SearchPatternInfo, lowercase literal…
Mar 12, 2026
24dfbc2
Remove plan file from PR
Mar 12, 2026
453a66a
Fix member accessibility: private for internal-only, public for exposed
Mar 12, 2026
775969e
Move SearchPatternInfo to its own top-level file
Mar 12, 2026
a04fe75
Add tests for edge cases: leading/trailing dot splits, whitespace-onl…
Mar 12, 2026
795e9cb
Remove pr-description.md from repo
Mar 12, 2026
6b75273
Use VS2026 Helix image for Desktop test CI (#82720)
JoeRobich Mar 12, 2026
18f1f01
Unsafe evolution: add LangVersion error for updated memory safety rul…
jjonescz Mar 12, 2026
a73833a
Unsafe evolution: add more tests (#82683)
jjonescz Mar 12, 2026
836ffa6
Unsafe evolution: handle `new()` constraint (#82647)
jjonescz Mar 12, 2026
6b9fe96
Seal new test classes
Mar 12, 2026
a920453
Tighten regex search pipeline: parse once, bail early, encapsulate ma…
Mar 12, 2026
1ee7160
Make Compile return null when no literals; tighten contracts
Mar 12, 2026
ea63049
Cache diagnostics for method body compilation. (#82667)
ToddGrun Mar 12, 2026
64b0b7c
Avoid switching to the UI thread every time we are subscribing menus
jasonmalinowski Feb 26, 2026
4e01d4f
Migrate some menu command registration to our package initialize
jasonmalinowski Feb 26, 2026
8e6b74d
Switch the StackTraceExplorer to use the same pattern that other comm…
jasonmalinowski Feb 26, 2026
5128876
Remove the support for server-created pipes (#82715)
jasonmalinowski Mar 12, 2026
6928311
Fix issues with reentrancy due to pumping in lock acquisition
jasonmalinowski Feb 24, 2026
096a68c
Fix test failures from regex pattern detection
Mar 12, 2026
38c1d17
Use NamedPipeUtil to create named pipes in interactive host (#82728)
tmat Mar 12, 2026
f6f8bd5
Proposal Adjuster - Keep line endings in line with original source te…
akhera99 Mar 12, 2026
e29ed2d
Fix RegexQueryCompilerTests: use 2+ char literals in optimizer tests
Mar 12, 2026
30c9b18
Update AutoLoad so LSP can read defaultSolution from .vscode/settings…
JoeRobich Mar 13, 2026
ee99296
Make RegexQueryCheckPasses throw on unexpected node types
Mar 13, 2026
d9ab6fd
Create a builder for AnalyzerActions (#82682)
ToddGrun Mar 13, 2026
f881263
Reduce allocations in GetEscapedMetadataName (#82716)
ToddGrun Mar 13, 2026
28bd949
Use VS2026 for building integration tests (#82740)
jjonescz Mar 13, 2026
822aba7
Avoid flaky "rules missing documentation" check due to rate limiting …
jjonescz Mar 13, 2026
d05575c
Clean up menu handler registration (#82554)
jasonmalinowski Mar 13, 2026
5dec7fb
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 13, 2026
9ba9cdd
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 13, 2026
a8d3977
Exclude implement interface/abstract member fixes from code cleanup (…
akhera99 Mar 13, 2026
1f1d220
Update titlePrefix parameter in PR validation (#82753)
JoeRobich Mar 13, 2026
db4a70a
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 13, 2026
f808321
Reduce allocations in normal elfie usage (#82743)
ToddGrun Mar 14, 2026
d8168bc
[main] Update dependencies from dotnet/arcade (#82766)
dotnet-maestro[bot] Mar 15, 2026
de6d596
[main] Source code updates from dotnet/dotnet (#82760)
dotnet-maestro[bot] Mar 15, 2026
a8c92d1
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 15, 2026
0e40d8b
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 15, 2026
3c50718
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 15, 2026
670e607
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 15, 2026
c3de0e6
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 15, 2026
60ccee8
Fix small LookupResult pooling leak in NameofBinder.LookupSymbolsInSi…
ToddGrun Mar 15, 2026
781516d
Update build pool name in PR-Val pipeline (#82778)
JoeRobich Mar 15, 2026
1538767
Reduce allocations in GreenNode.To(Full)String (#82718)
ToddGrun Mar 16, 2026
9788e10
[main] Update dependencies from dotnet/roslyn (#82783)
dotnet-maestro[bot] Mar 16, 2026
489667e
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 16, 2026
73136ae
[main] Source code updates from dotnet/dotnet (#82785)
dotnet-maestro[bot] Mar 16, 2026
20ee1e9
Fix another RuntimeAsync NRE with hoisted methods (#82624)
333fred Mar 16, 2026
28d629d
[Hot Reload] Include exception details in internal error message (#82…
tmat Mar 16, 2026
947ca38
Fix `CSharpSimplifyPropertyAccessorDiagnosticAnalyzer` (#82776)
DoctorKrolic Mar 16, 2026
9814a42
Add documentation for roslyn-language-server Copilot plugin
dibarbet Mar 16, 2026
b7ac390
Merge remote-tracking branch 'upstream/main' into features/navigate-t…
CyrusNajmabadi Mar 16, 2026
8235c1c
Add timeouts
CyrusNajmabadi Mar 16, 2026
3112155
reword requirement and link
dibarbet Mar 16, 2026
915f7a6
Allow running roslyn insert tool on newer runtime (#82796)
jjonescz Mar 16, 2026
d2d357d
Reduce allocations in TextBufferFactoryCloneService.Clone (#82777)
ToddGrun Mar 17, 2026
491aa49
Small optimization reducing repeated int.ToString calls in completion…
ToddGrun Mar 17, 2026
1ea3352
[main] Source code updates from dotnet/dotnet (#82801)
dotnet-maestro[bot] Mar 17, 2026
eb56329
Add componentBuildProjectName to PR validation configuration (#82803)
JoeRobich Mar 17, 2026
2f56a53
feedback - update troubleshooting
dibarbet Mar 17, 2026
7467800
Unsafe evolution: add warning for `unsafe` delegates (#82730)
jjonescz Mar 17, 2026
f4d947a
Rename doc to kebab-case and add doc naming guidelines
dibarbet Mar 17, 2026
b1eaa1a
[EnC] Fix reporting emit errors in telemetry (#82805)
tmat Mar 17, 2026
5cb922d
Fix InvalidCastException in split-if refactoring for top-level statem…
dibarbet Mar 17, 2026
b8e6208
Add documentation for roslyn-language-server Copilot plugin (#82797)
dibarbet Mar 17, 2026
94e14b7
Address PR feedback: make FindIfOrElseIf a local function and remove …
dibarbet Mar 18, 2026
1f7fae4
Reduce allocations in TextDocumentStates.AddRange (#82806)
ToddGrun Mar 18, 2026
9bd232f
Implement LSP `textDocument/selectionRange` handler (#82809)
Copilot Mar 18, 2026
8007c87
Include `[RequiresUnsafe]` in PublicAPI signatures (#82731)
jjonescz Mar 18, 2026
02833a6
[main] Source code updates from dotnet/dotnet (#82812)
dotnet-maestro[bot] Mar 18, 2026
06a735c
Simplifying internal structure and logic for the SyntaxNodeCache (#80…
CyrusNajmabadi Mar 18, 2026
a80b178
Add tests for inline regex options in conditional expression branches
Mar 18, 2026
3f4c548
[main] Update dependencies from dotnet/arcade (#82841)
dotnet-maestro[bot] Mar 19, 2026
4e5c49c
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 19, 2026
a0465c9
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 19, 2026
787432e
[main] Source code updates from dotnet/dotnet (#82847)
dotnet-maestro[bot] Mar 19, 2026
611c993
Add user name to PR validation titles (#82839)
JoeRobich Mar 19, 2026
e5de3cd
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 19, 2026
79038db
Skip building test projects in official builds (#82818)
jjonescz Mar 19, 2026
7e25adf
Use correct length for Slice in object initializer (#82794)
jcouv Mar 19, 2026
d5b0659
Switch to using Environment.OSVersion.Platform to check the platform
jasonmalinowski Mar 19, 2026
7f59aed
Refactor fbp workspace management (#82509)
RikkiGibson Mar 19, 2026
5cda9ec
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 19, 2026
7eee04e
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 19, 2026
8b8aebd
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 20, 2026
373490c
Optimize codegen for slicing to end (#82729)
jcouv Mar 20, 2026
bb74f15
Implement csproj-in-cone check for file-based app heuristic detection…
RikkiGibson Mar 20, 2026
5d06c25
[main] Source code updates from dotnet/dotnet (#82860)
dotnet-maestro[bot] Mar 20, 2026
ebc4231
Remove logging from CanonicalMiscellaneousFilesProjectProvider (#82861)
RikkiGibson Mar 20, 2026
c2a993b
Unsafe evolution: update RequiresUnsafeAttribute namespace (#82813)
jjonescz Mar 20, 2026
0376bcd
Fix bug in the remote the dart pipeline pulls from (#82873)
akhera99 Mar 20, 2026
909ec10
Update issue template URLs for CAxxxx rules (#82872)
jjonescz Mar 20, 2026
a1696dd
Exclude Replay tool from official builds (#82866)
jjonescz Mar 20, 2026
bf28202
Fix git pull failure in PR validation setup script (#82880)
akhera99 Mar 20, 2026
9ed174d
Put binder for object initializers in the binder map (#82543)
333fred Mar 20, 2026
216a7f2
Enable CFSClean* policies for dotnet-roslyn-official pipeline (main) …
mmitche Mar 20, 2026
48c00dc
Make the fetch of the VisualStudioWorkspace lazy in ObjectBrowser
jasonmalinowski Mar 20, 2026
70ce379
Adjust preconditions in CsprojInConeChecker (#82877)
RikkiGibson Mar 21, 2026
af65eb7
Reduce allocations in MergedNamespaceDeclaration.addNamespacesToChild…
ToddGrun Mar 21, 2026
d83e85b
[main] Source code updates from dotnet/dotnet (#82886)
dotnet-maestro[bot] Mar 21, 2026
2742db7
[main] Source code updates from dotnet/dotnet (#82888)
dotnet-maestro[bot] Mar 22, 2026
6e85e46
Optimize annotation search to avoid unnecessary red node creation (#8…
CyrusNajmabadi Mar 22, 2026
3af8cfc
[main] Update dependencies from dotnet/roslyn (#82898)
dotnet-maestro[bot] Mar 23, 2026
e5041dd
Fix InvalidCastException in split-if refactoring for top-level statem…
dibarbet Mar 23, 2026
bd2083f
DeterministicKeyBuilder: deduplicate ParseOptions across SyntaxTrees …
Copilot Mar 23, 2026
12c7798
Make the fetch of the VisualStudioWorkspace lazy in ObjectBrowser (#8…
jasonmalinowski Mar 24, 2026
7cb4a7c
Add IAsyncDisposable support to IWorkspaceProjectContext
jasonmalinowski Mar 21, 2026
3ff19bf
[main] Source code updates from dotnet/dotnet (#82908)
dotnet-maestro[bot] Mar 24, 2026
e794aa9
Add missing buildQueueName parameter to scouting pipeline (#82901)
jjonescz Mar 24, 2026
ce4f889
Fix handling of added import trivia (#82788)
jjonescz Mar 24, 2026
287981c
Modify SyntaxNode trivia search/walk methods to utilize green node ch…
ToddGrun Mar 24, 2026
9a06091
Update Microsoft.Bcl.Memory used by Basic.CompilerLog.Util to a non-v…
jjonescz Mar 24, 2026
077e9e8
Mark the synchronous Dispose implementation as Obsolete
jasonmalinowski Mar 24, 2026
3d3a43b
Update status of 'Unsafe evolution' feature (#82910)
jjonescz Mar 24, 2026
e8a04ee
Add completion provider for `#:include` directives (#82625)
RikkiGibson Mar 24, 2026
7762e77
Add IAsyncDisposable support to IWorkspaceProjectContext (#82907)
jasonmalinowski Mar 24, 2026
d8c4124
Thread cancellation more deeply into ProjectSystemProjectFactory.Create
jasonmalinowski Mar 24, 2026
d3724ec
Update PublicApi changes in 5.3 (#82904) (#82913) (#82914) (#82918)
ToddGrun Mar 24, 2026
f3b5991
Add regex search support to NavigateTo (#82706)
dibarbet Mar 25, 2026
1ba62c4
Add support for skipping analyzing banned API analysis in generated f…
333fred Mar 25, 2026
d3fa672
Embed AnalyzerConfigFiles in binlog (#82741)
Copilot Mar 25, 2026
5f04355
[main] Source code updates from dotnet/dotnet (#82925)
dotnet-maestro[bot] Mar 25, 2026
89a024e
Change service connection (#82856)
missymessa Mar 25, 2026
675bbbd
Improve classification of file-based app directives (#82627)
RikkiGibson Mar 25, 2026
22c3113
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 25, 2026
a13c229
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 25, 2026
a0d9ee7
Ensure we properly dispose our loggers during MSBuildWorkspace tests
jasonmalinowski Mar 26, 2026
8ebf7d5
Only cache diagnostics for legacy projects (#82643)
JoeRobich Mar 26, 2026
c8f805e
Ensure we properly dispose our loggers during MSBuildWorkspace tests …
jasonmalinowski Mar 26, 2026
9636481
Add tests for inline regex options in conditional expression branches…
dibarbet Mar 26, 2026
9cf40f7
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-bot Mar 26, 2026
c43cd69
Fix issues with reentrancy due to pumping in lock acquisition (#82522)
jasonmalinowski Mar 26, 2026
439635a
[main] Source code updates from dotnet/dotnet (#82959)
dotnet-maestro[bot] Mar 27, 2026
9bfaa97
Thread cancellation more deeply into ProjectSystemProjectFactory.Crea…
jasonmalinowski Mar 27, 2026
e94e90e
Localized file check-in by OneLocBuild Task: Build definition ID 327:…
dotnet-policy-service[bot] Mar 27, 2026
210abd1
Add timeout and log arguments to VBCSCompiler
Copilot Mar 27, 2026
a4627ec
Navigate to position instead of span for Go to Implementation (#82906)
akhera99 Mar 27, 2026
00f4340
Fix structure guideline anchor for initializer expressions with multi…
deepakrathore33 Mar 27, 2026
d6e77ba
Update codespaces definitions (#82963)
333fred Mar 27, 2026
e6ea27b
Update CCA (#82965)
333fred Mar 28, 2026
849bed6
Handle misc project having an AdditionalDocument and not a Document (…
RikkiGibson Mar 28, 2026
9dbf7ba
Don't format plain blocks as member declaration blocks in top level code
davidwengier Mar 29, 2026
bf29cc5
FIx formatting
davidwengier Mar 29, 2026
1068905
[main] Source code updates from dotnet/dotnet (#82972)
dotnet-maestro[bot] Mar 30, 2026
68d99b2
[main] Source code updates from dotnet/dotnet (#82990)
dotnet-maestro[bot] Mar 31, 2026
0b95158
Post-snap configuration updates (#82984)
jjonescz Mar 31, 2026
750f95c
[main] Update dependencies from dotnet/arcade (#82967)
dotnet-maestro[bot] Mar 31, 2026
40ea3ac
Preserve file-based app directives during formatting
dusrdev Mar 31, 2026
abacf67
Move CallHierarchy logic to the Features layer (#82864)
JoeRobich Mar 31, 2026
f2bb266
[Hot Reload] Unify ManagedHotReloadLanguageService across DevKit and …
tmat Mar 31, 2026
c208079
Correct arrow direction in project layering diagram (#83004)
tmat Mar 31, 2026
ebe25bb
Improve Copilot instruction files and extract analyzer/codefix skill …
akhera99 Mar 31, 2026
83c179c
Add LSP CallHierarchy support (#82865)
JoeRobich Mar 31, 2026
a6bbb36
Update the patch to remove dependency on IgnoredDirectiveTriviaSyntax
dusrdev Apr 1, 2026
f839a71
Switch Unix builds to Roslyn.slnx and drive test platform selection v…
Copilot Apr 1, 2026
0ce7508
Don't format plain blocks as member declaration blocks in top level c…
davidwengier Apr 1, 2026
b230b1d
Move inheritance margin logic to a features service (#83001)
JoeRobich Apr 2, 2026
c1128f7
Do not crash if URI not parseable and no default handler exists
dibarbet Apr 2, 2026
4002f41
Allow generate method to run on Razor documents
davidwengier Apr 2, 2026
f1f8682
[main] Update dependencies from dotnet/arcade (#83020)
dotnet-maestro[bot] Apr 2, 2026
1ce811b
[main] Source code updates from dotnet/dotnet (#83027)
dotnet-maestro[bot] Apr 2, 2026
6a8ea0e
Update assembly versions in VS insertions (#83016)
jjonescz Apr 2, 2026
1545b30
Port EditorFeatures2 tests to Linux (net10.0) (#83014)
jaredpar Apr 2, 2026
b99bcbb
Preserve #: file-based app directives during formatting (#82996)
jasonmalinowski Apr 2, 2026
731242d
Allow generate method to run on Razor documents (#83028)
davidwengier Apr 2, 2026
fe9097b
Do not crash if URI not parseable and no default handler exists (#83024)
dibarbet Apr 2, 2026
f6b7abf
Fix intermittent AssemblyLoading_MultipleVersions_ExactAndGreaterMatc…
Copilot Apr 3, 2026
ed183b9
[main] Source code updates from dotnet/dotnet (#83045)
dotnet-maestro[bot] Apr 3, 2026
2d43d45
Remove reflection from UICultureUtilities (#83038)
Copilot Apr 3, 2026
ecefed0
Fix with-element indentation in collection expressions on multiple li…
CyrusNajmabadi Apr 3, 2026
8d42c9c
Fix evaluations inside ref-returning methods (#83037)
asundheimMSFT Apr 3, 2026
3de19a1
Use brokered service for IManagedHotReloadService in VS (#83018)
tmat Apr 3, 2026
c9bb247
Disable draft insertions on main after VS snap (#83032)
jjonescz Apr 3, 2026
18365a9
File-based apps automatic discovery (#82863)
RikkiGibson Apr 3, 2026
55e61ec
Merge remote-tracking branch 'upstream/main' into update-closed-class…
RikkiGibson Apr 3, 2026
d904dd7
Resolve merge conflicts
RikkiGibson Apr 3, 2026
ef45ef8
Renumber diagnostic baselines
RikkiGibson Apr 3, 2026
0f1f592
Fixup exhaustiveness check for unions (#82859)
AlekseyTs Mar 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.192.0/containers/dotnet/.devcontainer/base.Dockerfile

FROM mcr.microsoft.com/dotnet/sdk:8.0
FROM mcr.microsoft.com/dotnet/sdk:10.0

ARG DOTNET_SDK_INSTALL_URL=https://dot.net/v1/dotnet-install.sh
# Install the correct Roslyn SDK into the same directory that the base image installs the SDK in.
Expand Down
15 changes: 13 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.140.1/containers/dotnetcore
{
"name": "C# (.NET 9)",
"name": "Roslyn (.NET 10)",
"build": {
"dockerfile": "Dockerfile",
// Set the context to the workspace folder to allow us to copy files from it.
"context": ".."
},
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/powershell:2.0.1": {}
},
"hostRequirements": {
"cpus": 8,
"memory": "16gb",
"storage": "32gb"
},
"waitFor": "updateContentCommand",
"customizations": {
"vscode": {
"settings": {
Expand Down Expand Up @@ -57,5 +67,6 @@
]
}
},
"postCreateCommand": "${containerWorkspaceFolder}/restore.sh"
// Keep restore prebuild-friendly so Codespaces can cache the expensive first-run setup.
"updateContentCommand": "${containerWorkspaceFolder}/.devcontainer/restore-workspace.sh Roslyn.slnx"
}
25 changes: 25 additions & 0 deletions .devcontainer/restore-workspace.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/usr/bin/env bash

set -euo pipefail

source="${BASH_SOURCE[0]}"

# resolve $SOURCE until the file is no longer a symlink
while [[ -h $source ]]; do
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
source="$(readlink "$source")"

# if $source was a relative symlink, we need to resolve it relative to the path where the
# symlink file was located
[[ $source != /* ]] && source="$scriptroot/$source"
done

scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
reporoot="$( cd -P "$scriptroot/.." && pwd )"

solution="${1:-Roslyn.slnx}"
if [[ $# -gt 0 ]]; then
shift
fi

"$reporoot/eng/build.sh" --restore --solution "$solution" "$@"
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = do_not_ignore
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
Expand Down
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Report issues related to CAxxxx rules
url: https://github.com/dotnet/roslyn-analyzers/issues/new/choose
about: Enhancements and bug reports to CAxxxx rules are reported to dotnet/roslyn-analyzers repository.
url: https://github.com/dotnet/sdk/issues/new/choose
about: Enhancements and bug reports to CAxxxx rules are reported to dotnet/sdk repository.
- name: Suggest language feature
url: https://github.com/dotnet/csharplang/issues/new/choose
about: Language feature suggestions are discussed in dotnet/csharplang repository first.
Expand Down
96 changes: 55 additions & 41 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,37 @@
## Architecture Overview

**Core Components** (layered from bottom-up):
- **Compilers** (`src/Compilers/`): C# and VB.NET compilers with syntax trees, semantic models, symbols, and emit APIs
- **Compilers** (`src/Compilers/`): C# and VB.NET compilers syntax trees, semantic models, symbols, and emit APIs
- **Workspaces** (`src/Workspaces/`): Solution/project model, document management, and host services
- **Features** (`src/Features/`): Language-agnostic IDE features (refactoring, completion, diagnostics)
- **Analyzers** (`src/Analyzers/`): IDE diagnostic analyzers and code fixes (IDE0xxx)
- **EditorFeatures** (`src/EditorFeatures/`): Editor-specific implementations and text buffer integration
- **LanguageServer** (`src/LanguageServer/`): LSP implementation used by VS Code extension
- **VisualStudio** (`src/VisualStudio/`): VS-specific language services and UI integration

## Development Workflow

**Building**:
- `build.sh` - Full solution build
- `dotnet build Compilers.slnf` - Compiler-only build
- `dotnet msbuild <path to csproj> /t:UpdateXlf` - Update .xlf files when their corresponding .resx file is modified
- Windows: `build.cmd` / Unix: `build.sh` — Full solution build
- `dotnet build Compilers.slnf` — Compiler-only build
- `dotnet build Ide.slnf` — IDE-only build
- Solution filters: `Roslyn.slnx` (full), `Compilers.slnf` (compilers), `Ide.slnf` (IDE)

**Testing**:
- `test.sh` - Run all tests
- `dotnet test` for specific test projects
- Tests inherit from base classes like `AbstractLanguageServerProtocolTests`, `WorkspaceTestBase`
- Windows: `test.cmd` / Unix: `test.sh` Run all tests
- `dotnet test <path to test .csproj>` — Run specific test project
- Tests inherit from base classes: `CSharpTestBase`, `VisualBasicTestBase` (compiler), `AbstractCSharpDiagnosticProviderBasedUserDiagnosticTest_NoEditor` (IDE analyzers)
- Use `[UseExportProvider]` for MEF-dependent tests
- Copilot coding agent setup preinstalls `roslyn-language-server` as a global tool and syncs the `dotnet/skills` catalog into `~/.copilot/skills`

**Formatting**:
- Whitespace formatting preferences are stored in the `.editorconfig` file
- When running `dotnet format whitespace` use the `--folder .` option followed by `--include <path to file>` to avoid a design-time build
- Apply formatting preferences to any modified .cs or .vb file
- **Important**: Blank lines must not contain any whitespace characters (spaces or tabs). This will cause linting errors that must be fixed.
- **Critical**: Blank lines must not contain any whitespace characters (spaces or tabs). This causes linting errors.

**Localization**:
- `dotnet msbuild <path to csproj> /t:UpdateXlf` — Update `.xlf` files after modifying `.resx` files
- Resource strings accessed via generated designer classes (e.g., `CSharpResources.xxx`, `FeaturesResources.xxx`, `AnalyzersResources.xxx`)

## Code Patterns

Expand All @@ -40,55 +47,62 @@ internal sealed class CSharpMyService : IMyService

**Roslyn API Usage**:
```csharp
// Always use immutable patterns
var newTree = oldTree.WithChangedText(newText);
// All syntax trees, documents, and solutions are immutable — use With* methods
var newDocument = oldDocument.WithSyntaxTree(newTree);

// Semantic analysis
// Semantic analysis — always pass CancellationToken
var semanticModel = await document.GetSemanticModelAsync(cancellationToken);
var symbolInfo = semanticModel.GetSymbolInfo(expression);
```

**Testing Conventions**:
- Inherit from `TestBase` or language-specific base classes
- Use `UseExportProvider` for MEF services
- Test utilities in `Microsoft.CodeAnalysis.Test.Utilities`
- Language-specific test bases: `CSharpTestBase`, `VisualBasicTestBase`
- Add `[WorkItem("https://github.com/dotnet/roslyn/issues/issueNumber")]` attribute to tests that fix specific GitHub issues
- Add `[WorkItem("https://github.com/dotnet/roslyn/issues/NNN")]` attribute to tests that fix specific GitHub issues
- Prefer raw string literals (`"""..."""`) over verbatim strings (`@"..."`) when creating test source code
- Avoid unnecessary intermediary assertions - tests should do the minimal amount of work to validate just the core issue being addressed
- In tests, use concise methods like `.Single()` instead of asserting count and extracting elements
- For compiler tests, validate diagnostics (e.g., `comp.VerifyEmitDiagnostics()`) so reviewers can easily see if the code is in error or represents something legal

## Critical Integration Points

- **Language Server Protocol**: `src/LanguageServer/` contains LSP implementation used by VS Code extension
- **ServiceHub**: Remote services (`src/Workspaces/Remote/`) run out-of-process for performance
- **Analyzers**: `src/Analyzers/` for static analysis, separate from `src/RoslynAnalyzers/` (internal tooling)
- **VSIX Packaging**: Multiple deployment targets - `src/VisualStudio/Setup/` for main VS integration
- Keep tests focused — do minimal work to validate the core issue
- Use `.Single()` instead of asserting count and extracting elements
- For compiler tests, use `comp.VerifyEmitDiagnostics()` so reviewers can see if code is legal
- For IDE tests, use `TestInRegularAndScriptAsync` / `TestMissingInRegularAndScriptAsync`

## Key Conventions

- **Namespace Strategy**: `Microsoft.CodeAnalysis.[Language].[Area]` (e.g., `Microsoft.CodeAnalysis.CSharp.Formatting`)
- **File Organization**: Group by feature area, separate language-specific implementations
- **Immutability**: All syntax trees, documents, and solutions are immutable - create new instances for changes
- **Immutability**: All syntax trees, documents, and solutions are immutable — create new instances for changes
- **Cancellation**: Always thread `CancellationToken` through async operations
- **MEF Lifecycle**: Use `[ImportingConstructor]` with obsolete attribute for MEF v2 compatibility
- **PROTOTYPE Comments**: Only used to track follow-up work in feature branches and are disallowed in main branch
- **Code Formatting**: Avoid trailing spaces and blank lines (lines with only whitespace). Ensure all lines either have content or are completely empty.
- **MEF Lifecycle**: Use `[ImportingConstructor]` with `[Obsolete(MefConstruction.ImportingConstructorMessage, error: true)]`
- **Null checks**: Use `Contract.ThrowIfNull()` instead of manual null checks
- **Private fields**: `_camelCase` naming
- **PROTOTYPE Comments**: Only used to track follow-up work in feature branches — disallowed in main branch
- **Code Formatting**: Avoid trailing spaces. Blank lines must be completely empty (no whitespace characters).
- **Public API Tracking**: Update `PublicAPI.Unshipped.txt` when adding/changing public APIs

## Code Generation

Several core data structures are generated from XML definitions — never edit generated `.cs` files directly:
- **Syntax trees**: `src/Compilers/CSharp/Portable/Syntax/Syntax.xml`
- **Bound trees**: `src/Compilers/CSharp/Portable/BoundTree/BoundNodes.xml`
- **After modifying XML files**, run: `dotnet run --file eng/generate-compiler-code.cs`

## Common Gotchas

- Follow existing conventions in the file
- Follow existing conventions in the file you're editing
- Language services must be exported per-language, not shared across C#/VB
- Test failures often indicate MEF composition issues - check export attributes
- VSIX deployment targets multiple architectures - ensure platform-specific assets are handled
- ServiceHub components require special deployment considerations for .NET Core vs Framework
- Test failures often indicate MEF composition issues — check export attributes
- ServiceHub components (`src/Workspaces/Remote/`) require special deployment considerations for .NET Core vs Framework
- IDE analyzers should inherit from `AbstractBuiltInCodeStyleDiagnosticAnalyzer` for code style diagnostics, not raw `DiagnosticAnalyzer`
- Always provide `FixAllProvider` (typically `WellKnownFixAllProviders.BatchFixer`) for code fixes

## Documentation

**Creating new docs**:
- Use **kebab-case** for file names (e.g., `roslyn-language-server-copilot-plugin.md`, not `Roslyn Language Server Copilot Plugin.md`)
- Place docs in the appropriate subdirectory under `docs/` (e.g., `docs/contributing/`, `docs/compilers/`, `docs/features/`)
- General docs that don't fit a subdirectory go directly in `docs/`

## Essential Files for Context

- `docs/wiki/Roslyn-Overview.md` - Architecture deep-dive
- `docs/contributing/Building, Debugging, and Testing on Unix.md` - Development setup
- `src/Compilers/Core/Portable/` - Core compiler APIs
- `src/Workspaces/Core/Portable/` - Workspace object model
- Solution filters: `Roslyn.slnx`, `Compilers.slnf`, `Ide.slnf` for focused builds
- `src/Compilers/CSharp/Portable/Errors/ErrorCode.cs` — All C# compiler error codes
- `src/Compilers/CSharp/Portable/Errors/MessageID.cs` — Language feature version gating
- `src/Analyzers/Core/Analyzers/IDEDiagnosticIds.cs` — All IDE diagnostic ID constants
- `src/Compilers/CSharp/Portable/Syntax/Syntax.xml` — Syntax tree node definitions
- `src/Compilers/CSharp/Portable/BoundTree/BoundNodes.xml` — Bound tree node definitions
- `docs/wiki/Roslyn-Overview.md` — Architecture deep-dive
1 change: 1 addition & 0 deletions .github/instructions/Compiler.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public class MyTests : CSharpTestBase
## Build & Test Workflows

### Essential Build Commands

```powershell
# Full build (use VS Code tasks when available)
./build.sh
Expand Down
Loading