Skip to content

Fix issue in watch window completion #77204

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

ToddGrun
Copy link
Contributor

The issue here is when the watch window contains

for (int i = 0; i < 10; i++)
[Console.WriteLine(i);]

where [] denotes the current statement. In that case, the adjusted context should be at the start of Console.WriteLine. Additionally, a semicolon should not be placed in the generated projection buffer before debuggerMappedSpan, as that would place debuggerMappedSpan outside the for loop.

Fixes #42718

The issue here is when the watch window contains

for (int i = 0; i < 10; i++)
    [Console.WriteLine(i);]

where [] denotes the current statement. In that case, the adjusted context should be at the start of Console.WriteLine. Additionally, a semicolon should not be placed in the generated projection buffer before debuggerMappedSpan, as that would place debuggerMappedSpan outside the for loop.

Fixes dotnet#42718
@ToddGrun ToddGrun requested a review from a team as a code owner February 13, 2025 15:21
@ghost ghost added Area-IDE untriaged Issues and PRs which have not yet been triaged by a lead labels Feb 13, 2025
@ToddGrun ToddGrun requested a review from genlu February 13, 2025 15:21
@@ -152,21 +148,10 @@ private bool TrySetContext(
regionEdit.Apply();
}

// Adjust the context point to ensure that the right information is in scope.
// For example, we may need to move the point to the end of the last statement in a method body
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment is not true, and led me astray for quite a while.

var contextPoint = this.ContextBuffer.CurrentSnapshot.GetLineFromLineNumber(CurrentStatementSpan.iEndLine).Start + CurrentStatementSpan.iEndIndex;
var adjustedContextPoint = GetAdjustedContextPoint(contextPoint, document);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found having multiple abstract methods made this more confusing, and I needed to add in another concept which would have made this worse. Instead, just a single abstract method that just returns the end projection buffer and let the language implementations stitch them together themselves.

@ToddGrun
Copy link
Contributor Author

@genlu or @jasonmalinowski -- as the bug mentions, this area is magic, but I think I found an incantation to make this scenario work.

@ToddGrun ToddGrun enabled auto-merge (squash) February 25, 2025 20:47
@ToddGrun ToddGrun merged commit 7da6fb7 into dotnet:main Feb 25, 2025
25 checks passed
@dotnet-policy-service dotnet-policy-service bot added this to the Next milestone Feb 25, 2025
@ToddGrun ToddGrun deleted the dev/toddgrun/2-13-completion-in-watch-window branch March 5, 2025 18:06
333fred added a commit that referenced this pull request Mar 11, 2025
* Parse partial events and constructors (#76860)

* Parse partial events and constructors

* Update pre-existing tests

* Explain why partial ctors are sometimes disallowed

* Parse `partial` constructors unconditionally

* Gate parsing on LangVersion

* Extend tests and docs

* Fix indentation

* Rename combinatorial values

* Test more lang versions

* Parse partial events unconditionally

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250203.2

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.607901 -> To Version 10.0.610302

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250204.2

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.607901 -> To Version 10.0.610402

* Partial events and constructors: merge and check symbols (#76970)

* Partial events and constructors: merge and check symbols

* Improve code

* Move partial availability check

* Improve code

* Fix duplicate definition diagnostic

* Test different ordering

* Avoid reporting diagnostic for escaped `partial`

* Clarify naming of AccessorsHaveImplementation property

* Add event definition accessor symbol

* Improve code

* Test sequence points

* Test extern IL

* Fix interface container diagnostics

* Fix sequence points issue in the test utility

* Ensure the new accessor owner is a definition

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250210.2

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.607901 -> To Version 10.0.611002

* Remove async/await

* Update dependencies from https://github.com/dotnet/arcade build 20250211.5

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks
 From Version 9.0.0-beta.25077.4 -> To Version 9.0.0-beta.25111.5

* Partial events and constructors: check differences (#77118)

* Partial events and constructors: check differences

* Improve code and tests

* Complete constructor implementation part

* Report error for tuple differences in constructors

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250212.3

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.608004 -> To Version 10.0.611203

* Add test for override completion error

* Fix override completion when attribute below

* Partial events and constructors: doc comments (#77200)

* Ensure generated operator methods have the format annotation

* Update VB tests to assert new formatting behavior

* Use raw strings in override tests

* Ensure diagnostics refresh when source generators run in balanced mode

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250218.1

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.608004 -> To Version 10.0.611801

* Create missing options types

* Fix Quick Info nullability display for backing fields (#77240)

Co-authored-by: Cyrus Najmabadi <[email protected]>

* Mix the source generator version info into the dependent checksum we get for projects

* Make diagnostic checksum an extension

* Move

* simplify

* Fix crash in 'introduce variable' when converting an object creation expression to an implicit object creation expression

* Enable NRT

* Update src/Tools/SemanticSearch/ReferenceAssemblies/Apis/Microsoft.CodeAnalysis.CSharp.txt

* Partial events and constructors: attributes (#77182)

* Partial events and constructors: attributes

* Update pre-existing tests

* Fixup expected PEVerify output

* Check a flag before materializing syntax nodes

* Assert that the definition part of an event doesn't have accessors

* Keep pre-existing event attribute target behavior

* Improve code

* Add WorkItem attribute

* Strengthen asserts

Co-authored-by: Rikki Gibson <[email protected]>

---------

Co-authored-by: Rikki Gibson <[email protected]>

* Use proj dependent checksum instead now that it contains SG info

* disable realtime monitoring

* Update debugger contracts to fix hot reload issue

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250219.1

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.608004 -> To Version 10.0.611901

* Return stronger-ly typed results from completion

* Forgot to change the file header when copying the file contents

* One level deep

* Add test

* Add an option to ignore aliases when moving using directives outside a namespace

* Add test

* Add work items

* Update runtime async spec (#76872)

* Update runtime async spec

Updates from the runtime side: dotnet/runtime#110420.

* Update method signature

* Add note about blocking

* Fill in more examples

* Remove outdated paragraph

* A bit of reorganization for clarity

* Collapse a number of samples to expandable section

* Fix heading

* Remove out of support branches from PublishData.json

* Switch TextDocumentState.GetTextVersionAsync to ValueTask to reduce allocations. (#77213)

The task creation from calling this method accounts for 36 MB (0.2%) of allocations in the CSharpEditingTests.Completion speedometer test. Speedometer results with this change show marked improvement in these allocations.

* Fix

* Update PublicAPI files for 17.13 ship (#77266) (#77295)

(cherry picked from commit f8f04dd)

* Expand doc comment

* Update azure-pipelines-official.yml

* Don't use hardcoded line endings (#77296)

Was causing these files to change every build on linux.

* Allow Semantic Search query function to take symbol parameter (#77272)

Fix

* Update to release nuget packages (#77261) (#77298)

* Update to release nuget packages

In order to publish 17.13 nuget packages, we need to update a few dependencies. I updated the minimum number of packages required from our public packages, then fixed up any restore issues. For each updated package, I then went and confirmed that the dll was actually present in 17.13.0, so we should be safe from dependency loading issues. This change does not need to be inserted into VS.

* Skip tests for microsoft/vs-solutionpersistence#95

* Skip failing tests, see #77293.

(cherry picked from commit 3350036)

* Generate Documentation Auto-Insert (#76665)

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* remove some commented out code

* still cleaning up

* revert file

* clean up + option

* wip

* dispose of disable of intellicode line completions

* comments

* comments

* add quota exceeded checks

* fix tests

* revert file

* remove unused optional params

* last few fixes

* feedback

* fix tests

* small fix

* fix

* feedback

* feedback

* removed per comments

* remove unused usings

* feedback

* feedback

* move stuff around with new EA structure in roslyn

* wip

* feedback

* feedbacl

* fix

* feedback

* feedback

* feedback

* revert

* remove null check

* clean up

* fix

* fix tests

* last fixes

* telemetry + fixes

* last comments

* Move check to 'make field readonly'

* Add test

* Update src/Tools/SemanticSearch/ReferenceAssemblies/Apis/Microsoft.CodeAnalysis.CSharp.txt

* Partial events and constructors: more tests (#77280)

* Add Copilot UI prototype to Semantic Search window (#77222)

* disable the WPF ComboBox Search behavior in Rename popup

* Change override completion to select text after updating the buffer. (#76983)

* Change override completion to select text after updating the buffer.

This (along with #76969) will allow a user to commit an override completion and easily replace the default text (and still use the expression body fixers).

This required the CompletionChange class to now allow the data to represent a selection instead of just a cursor position.

* Explictly jump off the main thread before serializing data to call Razor

* Reduce allocations during completion in FilterToVisibleAndBrowsableSymbols (#77315)

* Reduce allocations during completion in FilterToVisibleAndBrowsableSymbols

This method was visible in allocations in one of the completion speedometer profiles I was looking at and has a couple of easily removable allocations.

Can combine two WhereAsArray calls
Can switch to using WhereAsArray(ImmutableAray) instead of the IEnumerable overload
Can use the pooling support in MetadataUnifyingSymbolHashSet
Can avoid EditorBrowsableInfo allocation when input symbols is empty
Can avoid the closure allocation that was present in RemoveOverriddenSymbolsWithinSet
Even with all these changes, the net benefit didn't prove large from the speedometer run, but I've done the work, it doesn't complicate things, and every bit helps.

* Fix typos (#77316)

* Refresh diagnostics when fading options change

* Mix options into diagnostic data checksum

* Apply suggestions from code review

* Support 'view call hierarchy' on primary consstructor

* Fix

* Arrays

* cleanup tests

* Add test

* Docs

* NRT

* Primary constructor

* Add nuget to documentation (#77330)

* Implement TypeScript ExternalAccess wrappers for AsynchronousOperationListener (#77318)

* Update configs for 17.14 P2 snap (#77329)

* wip

* update configs for 17.14p2 snap

* Update eng/config/PublishData.json

Co-authored-by: Joey Robichaud <[email protected]>

---------

Co-authored-by: Joey Robichaud <[email protected]>

* Simplify

* Disallow initializers on partial constructor definitions (#77275)

* Partial events and constructors: public API (#77202)

* Partial events and constructors: public API

* Simplify code

* Add more `sealed`

* Add more asserts

* Null annotate MetadataHelpers (#77309)

* Null annotate MetadataHelpers

Issue #76394 indicites there is a null reference happening inside
`MetadataHelpers.GetInfoForImmediateNamespaceMembers`. The symptoms
indicate it's non-deterministic (deterministic ordering or race
condition).

Decided to null annotate the type and a few surrounding calls to see if
I could get lucky and spot the source of the NRE. Was not able to do
this but decided to submit the annotations.

* more

* more

* pr feedback

* pr feedback

* Allow expression body refactorings on non empty selections (#76969)

Currently, all expression/body refactorings only work with an empty selection. I've started looking into #29495 which requests overload completion to set the selection upon commit. Upon commit (and setting the selection), it's desirable to be able to do the expression/body refactoring. This change should allow that.

* PERF: Reduce the number of nodes walked during import completion commit. (#77305)

ImportAdderService.AddImportsAsync was previously doing a full tree walk (and realizing all the nodes in the tree) during override completion commit.

Noticed while looking at the csharp completion speedometer profile for the completion commit of override methods. Previously, this accounted for about 28% of CPU and 23% of allocations during CommitManager.TryCommit. With these changes applied, this enumeration is basically free.

See PR for details on the performance numbers

* Handle ModuleCancellationTokenExpression in AbstractFlow visitor (#77310)

* Fix issue in watch window completion (#77204)

* Fix issue in watch window completion

The issue here is when the watch window contains

for (int i = 0; i < 10; i++)
    [Console.WriteLine(i);]

where [] denotes the current statement. In that case, the adjusted context should be at the start of Console.WriteLine. Additionally, a semicolon should not be placed in the generated projection buffer before debuggerMappedSpan, as that would place debuggerMappedSpan outside the for loop.

Fixes #42718

* Don't realize the SourceText in SyntaxTree.OverlapsHiddenPosition if not needed (#77334)

This shows up in override completion commit in the speedometer profiles as 12.5% of allocations and 11.6% of CPU under CommitManager.TryCommit. We can avoid needing the SourceText in this method if the line mappings in the tree are empty. With this change, OverlapsHiddenRegion no longer appears in either allocations or cpu usage during override completion commit. I've also verified that these costs associated with creating this sourcetext weren't incurred elsewhere (at least under CommitManager.TryCommit)

See PR for more detailed numbers

* Expose some functionality from SourceGeneratedDocumentUri to Razor

* Update src/Tools/ExternalAccess/Razor/RazorUri.cs

* add resource to automate github action merge PRs

* Update resourceManagement.yml

* Preserve encoding during DocumentState updates

Fixes dotnet/sdk#46780

* Fix issue where we were crashing trying to get inheritance margin information for SG docs

* Docs

* Generate-Documentation Check if file is excluded (#77353)

* check for excluded files

* remove unused usings

* fix indentation

* PR Validation - allow insertion to run on commit that isn't latest (#77369)

* allow insertion to run on commit that isn't latest

* remove comments

* Allow PR Val pipeline runs to opt-out of the latest commit validation

* Update CI excludes paths to include some yml files

* Update setup-pr-validation.ps1

* Apply suggestions from code review

---------

Co-authored-by: Joey Robichaud <[email protected]>

* Fix yml typos

* Update PublishData.json after VS Snap (#77383)

* Fix formatting in tests

* Collection expr

* Collection expr

* Make selaed

* Make selaed

* Primary constructors

* Fix out of bounds in text extent computation

* Fix out of bounds in text extent computation

* Fix issue where goto-def wouldn't go to the right place after invoking twice

* [main] Update dependencies from dotnet/source-build-reference-packages (#77335)

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250224.2

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.611901 -> To Version 10.0.612402

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250225.2

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.611901 -> To Version 10.0.612502

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250227.2

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.611901 -> To Version 10.0.612702

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250228.4

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.611901 -> To Version 10.0.612804

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250303.3

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.611901 -> To Version 10.0.615303

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Partial events and constructors: IDE (#77337)

* Partial events and constructors: IDE

* Fix event keyword recommender

* Fix symbol suggestions

* Fixup failing tests

* Fixup SymbolKey

* Improve code

* Use `Equal` instead of `Same` in SymbolKey tests

* Extend a test

* Use collection expressions

Co-authored-by: Cyrus Najmabadi <[email protected]>

---------

Co-authored-by: Cyrus Najmabadi <[email protected]>

* Partial events and constructors: compact error codes

* Detect more null check patterns

* Emit call to ThrowIfNull

* Add string checks

* Add string checks

* Add work items

* Improve performance of SyntaxReplacer.ReplaceNode (#77314)

Improve performance of SyntaxReplacer.ReplaceNode

This should allow better performance when replacing nodes. I've noticed overrides completion commit profiles as indicating a large amount of time/memory spent in their ReplaceNode calls. (about 18% of CPU time and 20% of memory allocations spent within CommitManager.TryCommit are attributable to ReplaceNode calls)

See PR for more details on the performance benefit the speedometer achieves with this change.

* Fix issue where we were changing semantics when converting to a collection expr

* Work item

* Update test

* Update formatting tests

* File scoped namespace

* Fix projects

* Configure main-vs-deps (#77408)

* Configure main-vs-deps

* Run every 3 hours

* Don't use an implicit-object if the lang version doesn't support it

* Add workitem

* Fix bot name (#77436)

* Auto merge PRs instead of just applying a label to them (#77438)

* Small cleanup in the packages and editor factories (#77439)

* Small cleanup in the packages and editor factories

This area is going to get some larger changes in Dev18. As I'm waiting for that branch to become available, do a small cleanup in the area in anticipation of those changes.

These changes are mostly cosmetic. The only change that is a bit more than that is the (Un)RegisterObjectBrowserLibraryManager changes to not be sync. This was done to remove a couple JTF.Runs in the code, and was done after verifying with JeffRo that our package disposal will indeed always be done on the main thread.

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250305.3 (#77452)

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.615303 -> To Version 10.0.615503

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Remove workaround of WPF bug

This shouldn't be needed anymore, and prevents some design time build
breaks if NuGet restore wasn't able to get this package.

Fixes #74923

* Fix design time build error in Roslyn.VisualStudio.Setup

The MSBuild task invocation here is a copy/paste from earlier in the
file, but the item group renamed so it didn't conflict. The rename
was in complete, so the use in the Properties property was still
using the old name; this had the effect that we wouldn't set the TFM
property, which would cause problems for multi-targeting projects.

* [Rename flyout] Fixed cropping issue on small screens

* Addressed feedback

* Remove BoundConversion.OriginalUserDefinedConversionsOpt property (#77465)

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250306.1 (#77470)

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.615503 -> To Version 10.0.615601

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Update dev18 target branch (#77443)

* Remove unnecessary imports

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250310.1

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.615601 -> To Version 10.0.616001

* Mark partial events and ctors as complete (#77525)

---------

Co-authored-by: Jan Jones <[email protected]>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Cyrus Najmabadi <[email protected]>
Co-authored-by: David Barbet <[email protected]>
Co-authored-by: Ankita Khera <[email protected]>
Co-authored-by: David Wengier <[email protected]>
Co-authored-by: Rikki Gibson <[email protected]>
Co-authored-by: Cyrus Najmabadi <[email protected]>
Co-authored-by: Rikki Gibson <[email protected]>
Co-authored-by: akhera99 <[email protected]>
Co-authored-by: Joey Robichaud <[email protected]>
Co-authored-by: Todd Grunke <[email protected]>
Co-authored-by: Youssef1313 <[email protected]>
Co-authored-by: Joey Robichaud <[email protected]>
Co-authored-by: Tomáš Matoušek <[email protected]>
Co-authored-by: Amadeusz Wieczorek <[email protected]>
Co-authored-by: Charles Stoner <[email protected]>
Co-authored-by: Jared Parsons <[email protected]>
Co-authored-by: Sam Harwell <[email protected]>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Jason Malinowski <[email protected]>
Co-authored-by: Etienne Baudoux <[email protected]>
Co-authored-by: AlekseyTs <[email protected]>
Co-authored-by: Jan Jones <[email protected]>
ToddGrun added a commit to ToddGrun/roslyn that referenced this pull request Mar 18, 2025
Addresses https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2287966

This recently regressed due to this recent PR: dotnet#77204

The issue here is that I changed the csharp debugger context's projection buffer creation code from always having a one char string as the second sourceSpan to sometimes having that string be empty. This allowed the completion context to include items for which a semicolon would close that scope. However, by having a zero length span, a seam was created for a tracking span at priorTrackingSpan to be introduced into the set of tracking positions that can contribute to completion. Editor completion doesn't handle this well, so we're best off always sending a non-zero length source Span, so we do so and just use a space as the value.
ToddGrun added a commit that referenced this pull request Mar 18, 2025
…77656)

* Fix watch window completion window upon manual completion invocation

Addresses https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2287966

This recently regressed due to this recent PR: #77204

The issue here is that I changed the csharp debugger context's projection buffer creation code from always having a one char string as the second sourceSpan to sometimes having that string be empty. This allowed the completion context to include items for which a semicolon would close that scope. However, by having a zero length span, a seam was created for a tracking span at priorTrackingSpan to be introduced into the set of tracking positions that can contribute to completion. Editor completion doesn't handle this well, so we're best off always sending a non-zero length source Span, so we do so and just use a space as the value.
333fred added a commit that referenced this pull request Mar 20, 2025
* wip

* wip

* wip

* wip

* wip

* wip

* wip

* remove some commented out code

* still cleaning up

* revert file

* clean up + option

* wip

* dispose of disable of intellicode line completions

* comments

* comments

* add quota exceeded checks

* fix tests

* revert file

* remove unused optional params

* last few fixes

* feedback

* fix tests

* small fix

* fix

* feedback

* feedback

* removed per comments

* remove unused usings

* Fixer/Analyzer for implementing method

TODO
- Try invoking copilot service from Features layer (needs GenerateMethod APIs added to EA)
- Try invoking semantic search from Features layer

Reviews done:
- Skimmed through the proposal edit approach used for ///
- Excluded diff for ///, does not exist in copilot service

* feedback

* feedback

* move stuff around with new EA structure in roslyn

* wip

* feedback

* feedbacl

* fix

* feedback

* feedback

* feedback

* revert

* remove null check

* clean up

* fix

* fix tests

* local ad ons

* local ad ons

* Add main bits for generating method implementation

* todo next

* update APIs

* trial 1

* Fix compile after merge

* temp1

* temp2

* Implement method, end-to-end for one-off code action

* corrections

* cleanup

* cleanup preliminary check

* Fix bug

* cleanup and fixes

* remove local changes for pr

* correct spacing

* cleanup

* Add unit test - takes code block suggestion to replace with method body

* Add test, support expression body clause later

* Change the FAR API call

* using `.Parent.FirstAncestorOrSelf`

* Improve wrapper implementation

* Apply first round code review

* Merge DualChangeAction into DocumentChangeAction

* Make IDE3000 not configurable

This diagnostic is always hidden (no UI) for the sole support of the
associated code fix provider.

* Simplify analyzer code and improve robustness

* Simplifies fixer and applies most remaining feedback

* Fix compile related to DocumentChangeAction

* Cleanup messaging

* Add resources for messaging

* Adds a few basic tests

* Undo most recent analyzer changes,
to keep the throw statement/expression check

- Adds more test
- Removes dead code
- [ ] Cleanup more code
- [ ] Fix failing tests
- [ ] Rename API make consistent
- [ ] Revisist triple slash docs
- [ ] Change SyntaxNode to MemberDeclaration
- [ ] Remove unexpected null checks

* Apply PR feedback

    - [x] Adds more test
    - [x] Removes dead code
    - [x] Cleans up more code
    - [ ] Fix failing tests
    - [x] Renames API to make consistent
    - [x] Revisits triple slash docs
    - [x] API Accepts SyntaxNode
    - [x] Removes unreachable code

* Tests renamed

* Correct test setup

- and do minor Cleanup

* Improves readability and removes unreachable code

* Correct mistakes in tests

* Adds more unit tests

* Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)

* Fixes Analyzer tests

- [ ] Fixer seems not activates in tests

* Makes sure original and replacement text are properly aligned

* Apply partial PR feedback

- Test correction on placement of diagnostic span

* cleanup

* Applies feedback to change API surface

* All tests pass

* tests are actually failing

* Fix Quota bug and show failing tests

* Update tests for error conditions where diagnostics are not corrected

* undo IsImplementNotImplementedExceptionEnabledAsync change

* Fixes remaining tests

* cleanup

* Add back referencedSymbols to API call to help with perf

* Gracefully comment when result is unexpected

* Remove unused resource

* Simplify error messages

* Cleanup tests

* Add missing entry for IDE3000

* Add Missing Help Link

* mid stage

* Removes QuotaExceeds property, received as message

* Update signature

* Fix missed out warning

* Fix test correctness issue picked up by CI

* Add logging

* Apply PR feedback

* Fix run code analysis on solution not reporting results

Fixes #77495

* Use HangMitigatingTimeout for cases where operations do not complete synchronously

* some PR feedback

* spacing

* Move test

* Apply most remaining feedback

* Applies feedback

* Add runtime async to official build (#77537)

* Signature now strictly uses MemberDeclarationSyntax

* Update message for analyzer referencing newer compiler than host (#77541)

* Updates tests

* field implementation is not supported as method or property

see test below

```
    [InlineData("int myField;", typeof(FieldDeclarationSyntax))]
    public async Task TestInvalidNodeReplacement(string syntax, Type type)
```

* Fix NFW due to invoking Workspace.RaiseEventForHandlers in the CA process (#77546)

NFW telemetry indicates Solution.Workspace is getting called in our server process. This is due to a recent change I made around immediate eventing. In the server process, there are no immediate (or standard) workspace event handlers, but due to this recent changewe were always calling RaiseEventForHandlers for the immediate handlers without checking for their presence.

* Implement field null resilience analysis (#77127)

Co-authored-by: Fred Silberberg <[email protected]>

* Fix incremental generator in deterministic key file (#77553)

* Apply PR feedback

* Disable downloading the runtime packages during restore and instead ensure that it happens when needed (pack) (#77515)

During the most recent SDK insertion, allocation regressions were reported in the C# editing speedometer test. Investigation yielded that these were because of restore failures in the test project as the runtime packages are not published at the point of the SDK insertion.

Looking at the MS.CodeAnalysis.LanguageServer project closer revealed that these runtime identifiers needed to only be set during the pack task. This PR moves setting the RuntimeIdentifiers property to only be done during the pack task, and thus the restore task won't attempt to download these packages. As the test doesn't perform a pack on the roslyn solution, this should prevent future SDK insertions from hitting this issue again.

* Simplifies assumptions - Only trigger fixer when service available

* nit spacing

* Fix preview window for 'implement NotImplementedException'

* Simmplify

* Remove uneeded helper

* Fix Stack Trace Explorer for additional documents (#77517)

Update IDocumentNavigationService implementation in VS to work on any TextDocument
Fix IDocumentNavigationService extension to use TextDocument
Fix Stack Trace Explorer to search for AdditionalDocuments when trying to find a match in file path or name
Partial fix for #77499

There might be more cases where finding symbols doesn't work but filepath+line navigation should now work

* Update dependencies from https://github.com/dotnet/arcade build 20250311.4 (#77569)

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks
 From Version 9.0.0-beta.25111.5 -> To Version 9.0.0-beta.25161.4

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Update PublishData.json (#77589)

* Update main-merge.yml to not run on forks

* Fix typo (#77595)

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250313.4 (#77604)

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.616001 -> To Version 10.0.616304

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Filter down the list of files we need to examing when looking for a :base(...) call in find refs

* Move feature-oriented helpers to appropriate location

* Ensure we don't touch Solution.Workspace if we don't have to

This is a bit more of a defense-in-depth fix to fix a potential NFW.

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250314.1 (#77623)

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.616304 -> To Version 10.0.616401

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Update dependencies from https://github.com/dotnet/arcade build 20250314.2 (#77624)

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks
 From Version 9.0.0-beta.25161.4 -> To Version 9.0.0-beta.25164.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Correct how we pick up options for `ICopilotOptionsService` (#77620)

* Corrections to how we pick up roslyn options settings

* Cleanup

* Set default for Implement with Copilot to be false

* update for copilot.general.editor.enableGenerateDocumentationComment

* Update BuildActionTelemetryTable tool

* Add feature flag controlling Copilot prompt in Semantic Search (#77562)

* Fix BuildActionTelemetryTable project

* Update CodeActionDescriptionsMap. 

Updates program to generate new description map when analyzers are added.

* Fix typo

* Remove dead code, use generated regex, use filescoped namespace.

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250317.1 (#77649)

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.616401 -> To Version 10.0.616701

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* On-the-fly-docs Pass along additional context (#77510)

* wip

* works end to end

* some feedback

* feedback

* fix bugs

* tests

* revert settings

* fix code analysis service

* fix formatting

* Feedback

* Change vs deps flow (#77651)

* Fix generation of attribute with array constant

* Make ISemanticSearchCopilotUIProvider import lazy to avoid loading VS.EA.Copilot (#77516)

* Fix watch window completion window upon manual completion invocation (#77656)

* Fix watch window completion window upon manual completion invocation

Addresses https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2287966

This recently regressed due to this recent PR: #77204

The issue here is that I changed the csharp debugger context's projection buffer creation code from always having a one char string as the second sourceSpan to sometimes having that string be empty. This allowed the completion context to include items for which a semicolon would close that scope. However, by having a zero length span, a seam was created for a tracking span at priorTrackingSpan to be introduced into the set of tracking positions that can contribute to completion. Editor completion doesn't handle this well, so we're best off always sending a non-zero length source Span, so we do so and just use a space as the value.

* Generate Documentation - Bug Fixes (#77641)

* fix some bugs

* Feedback

* Fix reflection

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250318.1 (#77672)

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.616701 -> To Version 10.0.616801

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Fix typo (#77678)

disalloed => disallowed.

* Fix SkipApplyOptimizationData parameter (#77677)

* Support textDocument/semanticTokens/full

* Cleanup and make semantic token processing and testing code more consistent

* Fix test

* Add CI validation of Semantic Search API lists (#77535)

* raw strings

* Fix bug where exact path match would throw for additional files (#77583)

From /pull/77517/files/45c0e103f76f36bed6004f836d3dcfeae4bfae0d#r1992506030

* Update CSharpCopilotCodeAnalysisService.cs (#77691)

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250319.2 (#77694)

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.616801 -> To Version 10.0.616902

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

---------

Co-authored-by: Ankita Khera <[email protected]>
Co-authored-by: Maryam Ariyan <[email protected]>
Co-authored-by: Sam Harwell <[email protected]>
Co-authored-by: Rikki Gibson <[email protected]>
Co-authored-by: Todd Grunke <[email protected]>
Co-authored-by: Jared Parsons <[email protected]>
Co-authored-by: Cyrus Najmabadi <[email protected]>
Co-authored-by: Andrew Hall <[email protected]>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Jan Jones <[email protected]>
Co-authored-by: Arun Chander <[email protected]>
Co-authored-by: Kauwai Lucchesi <[email protected]>
Co-authored-by: Jason Malinowski <[email protected]>
Co-authored-by: Tomáš Matoušek <[email protected]>
Co-authored-by: Joey Robichaud <[email protected]>
Co-authored-by: Ankita Khera <[email protected]>
Co-authored-by: David Barbet <[email protected]>
Co-authored-by: Joey Robichaud <[email protected]>
Co-authored-by: David Wengier <[email protected]>
Co-authored-by: Bill Wagner <[email protected]>
Co-authored-by: PaddiM8 <[email protected]>
@jjonescz jjonescz modified the milestones: Next, 17.14 P3 Apr 1, 2025
jjonescz added a commit that referenced this pull request Apr 1, 2025
* Change vs deps flow (#77651)

* Add tests

* Add version check

* Fix type argument removal

* Add tests

* Add tests

* Add tests

* Add tests

* Add tests

* Add tests

* Add tests

* Docs

* move to local functions

* Remove unused using

* Docs

* Add tests

* Add tests

* Add tests

* Loc strings

* Loc strings

* Fix generation of attribute with array constant

* Make ISemanticSearchCopilotUIProvider import lazy to avoid loading VS.EA.Copilot (#77516)

* Fix watch window completion window upon manual completion invocation (#77656)

* Fix watch window completion window upon manual completion invocation

Addresses https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2287966

This recently regressed due to this recent PR: #77204

The issue here is that I changed the csharp debugger context's projection buffer creation code from always having a one char string as the second sourceSpan to sometimes having that string be empty. This allowed the completion context to include items for which a semicolon would close that scope. However, by having a zero length span, a seam was created for a tracking span at priorTrackingSpan to be introduced into the set of tracking positions that can contribute to completion. Editor completion doesn't handle this well, so we're best off always sending a non-zero length source Span, so we do so and just use a space as the value.

* Extensions: flesh out behavior for some pattern-based binding scenarios (#77608)

* Generate Documentation - Bug Fixes (#77641)

* fix some bugs

* Feedback

* More receiverType check out of EnumerateAllExtensionMembersInSingleBinder

* Address feedback

* Remove TODO

* Fix formatting

* Update maintenance-packages versions conditioned to sourcebuild only

* Fix reflection

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250318.1 (#77672)

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.616701 -> To Version 10.0.616801

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Fix typo (#77678)

disalloed => disallowed.

* Extensions: Adjust accessibility and file-type checks for extension members (#77657)

* Avoid adding duplicate suppressors to the host analyzer arrays

* Remove unnecessary code

* Add docs

* Simplify

* Add docs

* Strong types

* move removed api

* Fix SkipApplyOptimizationData parameter (#77677)

* Avoid alloc

* Add repro for IDE issue

* Don't check constraint in explicit type argument scenario for now

* Support textDocument/semanticTokens/full

* Revert "Don't check constraint in explicit type argument scenario for now"

This reverts commit e3af843.

* Use type parameter definitions and avoid creating new type maps in checkConstraintsIncludingExtension

* Add more tests

* Upgrade from VSTelemetryApi 17.14.2 to 17.14.8

* Cleanup and make semantic token processing and testing code more consistent

* Fix test

* Add CI validation of Semantic Search API lists (#77535)

* raw strings

* Fix bug where exact path match would throw for additional files (#77583)

From /pull/77517/files/45c0e103f76f36bed6004f836d3dcfeae4bfae0d#r1992506030

* Extensions: update semantic model APIs (#77619)

* Update to latest in nuget.org

* Update CSharpCopilotCodeAnalysisService.cs (#77691)

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250319.2 (#77694)

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.616801 -> To Version 10.0.616902

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Disable integration tests on PRs to main-vs-deps and above

* Make the ci build happy

* Update aps

* Simplify

* Update compiler

* Update src/Workspaces/Core/Portable/Recommendations/AbstractRecommendationServiceRunner.cs

Co-authored-by: Jan Jones <[email protected]>

* Update src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests.vb

* Update src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests.vb

* Update src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests.vb

* Remove old vs4mac code

* Files

* Fix copilot layering

* Fix tests

* Fix tests

* Fix

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250320.2

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.616902 -> To Version 10.0.617002

* Do not consider `ref` argument to `in`/`ref readonly` parameter as being written to (#77682)

Fixes #77528.
Related to test plan #68056.

* Update dotnet format instructions (#77699)

* Add -solution option to build.ps1 (#77698)

* Update infra

* Implement scoping and shadowing rules for extension parameter and type parameters (#77704)

See dotnet/csharplang#9229 (commit 9)

* Fix updating committed solution with insignificant changes (#77648)

* Extensions: only look for new extensions in new LangVer (#77690)

* Improve raw string completion

* Fix

* Fix speeling

* Extensions: definite assignment and region analysis (#77675)

* Make things more strongly typed in compilation tracker

* Show lightbulb on member name as well as on throw node

* Rework analyzer assembly loading (#77004)

This change restructures our analyzer assembly loading to allow for composable customizations to meet the demands of customers like VBCSCompiler, VS IDE, Razor and VS Code. Specifically, these layers want to customize two aspects of assembly loading:

1. The location where an assembly is loaded from. For example shadow copying does not change the content of what is loaded but it does change where it is loaded from 
2. The `Assembly` loaded for a given path / name. For example Razor wants to control exactly which `Assembly` from which `AssemblyLoadContext` is loaded when running inside the VS OOP process.

The existing customization approach was to derive from `AnalyzerAssemblyLoader`, override the right `virtual` and customize the behavior. That had limits, particularly because different parts of the VS IDE want to override these behaviors in different ways. That forced us to centralize logic that we didn't want to centralize (baking Razor into workspaces) and was challenging to integrate with our MEF composition. 

The new approach is to have a `sealed` type that allows customization through interfaces. 

This PR only establishes the new architecture and leaves the IDE unchanged. I originally attempted to do both at one time and the PR was hard to follow, the perf implications were challenging to track down and verify. Instead going to approach this by getting the basics in place then start migrating parts of the IDE over one at a time.

* Remove all the existing workaround checks

All of these have been fixed long ago (or we suspect they've long been
fixed.)

Closes #35123

* Ensure we also package Microsoft.Extensions.DependencyInjection.Abstractions

* Add new skips for Codelens

For reasons I'm unable to diagnose the codelens ServiceHub service is
failing, possibly because it's missing a reference. I'm unable to sort
out why, but it's not critical for integration tests so just ignore
the failure.

* Remove exclusion of main-vs-deps for running integration tests

* Cleanup for code review

* Improve the lightbulb detection

* Fix handling of partial definition deletes (#77735)

* Extensions: account for new extensions in function type scenarios (#77755)

* Do not allow System.CommandLine to swallow all exceptions

* Set the default namespace for the project and proper folders for documents.

Resovles dotnet/vscode-csharp#8091

* Fix move to namespace offering for primary constructor (#77751)

* add comment

* Update src/LanguageServer/Microsoft.CodeAnalysis.LanguageServer/Program.cs

Co-authored-by: Jason Malinowski <[email protected]>

* Update tests to verify Folders change.

* Clean up branches that we're excluding

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250324.2

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.617002 -> To Version 10.0.617402

* Update infra

* Fix issue with disappearing newlines after multiline documentation comment (#77521)

* Fix issue with disappearing newlines after multiline documentation comments

* Fix formatting issues

* Convert LineBreaksAfterLeading to local function

* Update function syntax to match conventions

Co-authored-by: Jan Jones <[email protected]>

* Fix compilation errors

---------

Co-authored-by: Jan Jones <[email protected]>

* Disallow complex forms of IndexerName attributes in extensions (#77781)

* Implement name an signature conflict check across extension containers with the same receiver type (#77747)

Implements the following rule from the spec:
"Within a given enclosing static class, the set of extension member declarations with the same receiver type (modulo identity conversion and type parameter name substitution) are treated as a single declaration space similar to the members within a class or struct declaration, and are subject to the same rules about uniqueness."

* Address PROTOTYPE comment in ExtensionMethodBodyRewriter (#77782)

* Simplify tests

* Simplify tests

* Simplify tests

* Simplify tests

* Remove unnecessary nullable directives

* Remove unnecessary nullable directives

* Remove unnecessary nullable directives

* Remove unnecessary nullable directives

* Remove unnecessary nullable directives

* Remove unnecessary nullable directives

* Remove unnecessary nullable directives

* Remove unnecessary nullable directives

* Update behavior to only report when throw in member

* Fix tests

* Remove unnecessary nullable directives

* fixed test

* Generate Documentation - Add remarks if available (#77783)

* add remarks to documentation if available

* add named parameter for nulls

* Reduce likelihood of needing a dual insertion in VS Code (#77715)

* Create new folder structure for Razor EA.

/Shared : will eventually be the area for all source items shared between
the current EA and the new EA.Razor.Features
/Features : will have an EA that is restricted to depending only on the
features layer. This will help provide a way to ship a more sane EA
structure for VS Code as well as reduce the likelyhood and work required
for a dual insertion
/EditorFeatures : contains the current EA. The project name is kept the
same for now but the folder is moved. This denotes that the binary does
depend on the EditorFeatures layer in Roslyn

* Update to new behavior - always show on throw

* nit cleanup

* Remove whitespaces

* Remove extra blank line

* Remove allThrows array

* Simplify logic

* Simplify

* Comment

* Workaround issue related to crossgen and specific .NET 9 runtimes

* Show fleshed out example

* Show fleshed out example

* CommentS

* Fixes tests

Left to do: => case

* Fixes => case

* use patterns

* use patterns

* formatting

* Complete fix

* Set PackageProjectUrl (#77824)

Avoids the SDK setting this to dotnet/dotnet automatically, which is generally not useful for customers.

* [main] Update dependencies from dotnet/source-build-reference-packages (#77829)

This pull request updates the following dependencies

[marker]: <> (Begin:4e88e544-5668-4a45-0f48-08dc0c57b4c0)
## From https://github.com/dotnet/source-build-reference-packages
- **Subscription**: 4e88e544-5668-4a45-0f48-08dc0c57b4c0
- **Build**:
[20250325.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2671647)
- **Date Produced**: March 25, 2025 5:28:05 PM UTC
- **Commit**:
[d2fc98192bb9780acbe2ad3df284da19203cc26d](dotnet/source-build-reference-packages@d2fc981)
- **Branch**: refs/heads/main

[DependencyUpdate]: <> (Begin)

- **Updates**:
-
**Microsoft.SourceBuild.Intermediate.source-build-reference-packages**:
[from 10.0.617402 to 10.0.617501][1]

[1]:
dotnet/source-build-reference-packages@4a8b582...d2fc981

[DependencyUpdate]: <> (End)


[marker]: <> (End:4e88e544-5668-4a45-0f48-08dc0c57b4c0)

* Extensions: check inferrability (#77815)

* Extensions: Review/adjust call sites of `MethodSymbol.IsExtensionMethod` API (#77820)

* Extensions: compact error codes (#77832)

* Review call sites of extension methods related APIs (#77838)

- BoundCollectionElementInitializer.InvokedAsExtensionMethod
- BoundCall.InvokedAsExtensionMethod
- BoundDelegateCreationExpression.IsExtensionMethod
- MethodGroup.IsExtensionMethodGroup
- MethodGroupResolution.IsExtensionMethodGroup

* Update Ubuntu and MacOS images (#77833)

* Apply PR feedback

* Block use of extension properties in unsupported scenarios (#77844)

* Extensions: remove PROTOTYPE comments (#77836)

* Update src/Features/CSharp/Portable/Copilot/CSharpImplementNotImplementedExceptionDiagnosticAnalyzer.cs

Co-authored-by: Cyrus Najmabadi <[email protected]>

* Log trace messages as "debug" so it formats right

Otherwise this gets logged by the LSP client as a generic message,
which isn't prefixed with a severity like everything else.

* Support ILogger.BeginScope() for LSP logging

This surrounds the processing of each LSP request with a call to
ILogger.BeginScope() with the name of the method that's being invoked.
This is prefixed to the message we send back to the LSP client, so
it's much easier to understand the source of various pieces of logging.

ILspLogger.LogStartContext/LogEndContext are deprecated here, as
setting scopes plus an explicit start/end as appropriate makes things
work much better when we're handling requests in parallel.

* Completely delete the obsolete methods

* Resolve merge conflicts

* Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250326.1

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 10.0.617501 -> To Version 10.0.617601

* Skip failing tests on macOS

* Parse ignored directives (#77696)

Speclet:
https://github.com/dotnet/csharplang/blob/main/proposals/ignored-directives.md
Public API: Resolves #77697.

* Null-conditional assignment: Add tests from test plan review (#77717)

* Implement support for Semantic Search agent and tool (#77784)

* Another attempt to fix the SDK insertion issue related to runtime/apphost downloads (#77845)

Use the EnableRuntimePackDownload/EnableAppHostPackDownload flags to indicate whether the restore should download those packages./

* Upgrade to VSSDK.BuildTools 17.14.1043-preview2

The original reason to upgrade to this is carries along updates
to the Fast Up to Date Check support, which means Roslyn can delete
our own copy of the targets.

The upgrade caused one break: there's newer support in the VS SDK now
where they look for ForceIncludeInVSIX metadata on PackageReferences
as a way to bypass the suppression logic that exists to ensure certain
references don't end up in the final VSIX. We had our own custom logic
where you'd set just IncludeInVSIX="true" as metadata, which would
produce items under teh covers with ForceIncludeInVSIX=true. There's
arguably a bug in the targets that they should be respecting our
underlying metadata rather than looking back to the PackageReference
metadata, but it still seems reasonable for us just to adopt the same
metadata name as the VS SDK. At this point it's not clear to me if
we even need our custom logic anymore or if it's now obsolete.

# Conflicts:
#	eng/Versions.props
#	src/VisualStudio/Setup.Dependencies/Roslyn.VisualStudio.Setup.Dependencies.csproj

# Conflicts:
#	src/VisualStudio/Setup.Dependencies/Roslyn.VisualStudio.Setup.Dependencies.csproj

* Generate Documentation - Add loading state (#77718)

* wip

* loading state works

* clean up

* feedback/comments

* fix formatting

* fix formatting

* feedback

* change enqueueaction

* last feedback

* feedback

* commented out line of code

* Use --opt-cross-module only for assemblies within the servicing bubble

* Fix up comment

* Remove condition

* Fix up urls in docs

* Add rules docs

* Regenerate documentation

* Silence warning about release note header

* Update default .NET Core metadata references

* Allow the new Razor project to access protocol types

* Remove richnav pipeline and package (#77902)

The service no longer exists.

* Update the link to the file Portable PDB v1.0: Format Specification (#77911)

* Feedback from analyzer loading change (#77780)

* Feedback from analyzer loading change

Few changes here:

1. Jason had suggested I add an assert into the shadow copy loader, I
   did but apparently forgot to save.
2. Rename the file to match type name

Follow up to #77004

* PR feedback

* Apply suggestions from code review

Co-authored-by: Jan Jones <[email protected]>

---------

Co-authored-by: Jan Jones <[email protected]>

* Use NoWarn for RS2007

* Skip tests

* Razor EA: load from ServiceHubCore (#77720)

* Razor EA: load from ServiceHubCore

* Update src/Tools/ExternalAccess/Razor/RazorAnalyzerAssemblyResolver.cs

Co-authored-by: Jan Jones <[email protected]>

* Trim trailing slashes

* Update src/Tools/ExternalAccess/Razor/RazorAnalyzerAssemblyResolver.cs

Co-authored-by: Jan Jones <[email protected]>

* Fix trim call

* PR feedback

---------

Co-authored-by: Jan Jones <[email protected]>
Co-authored-by: Jared Parsons <[email protected]>

---------

Co-authored-by: Cyrus Najmabadi <[email protected]>
Co-authored-by: dotnet-policy-service[bot] <123482357+dotnet-policy-service[bot]@users.noreply.github.com>
Co-authored-by: David Barbet <[email protected]>
Co-authored-by: Tomáš Matoušek <[email protected]>
Co-authored-by: Todd Grunke <[email protected]>
Co-authored-by: AlekseyTs <[email protected]>
Co-authored-by: Ankita Khera <[email protected]>
Co-authored-by: Julien Couvreur <[email protected]>
Co-authored-by: Joey Robichaud <[email protected]>
Co-authored-by: Carlos Sánchez López <[email protected]>
Co-authored-by: David Wengier <[email protected]>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Bill Wagner <[email protected]>
Co-authored-by: Sam Harwell <[email protected]>
Co-authored-by: PaddiM8 <[email protected]>
Co-authored-by: Arun Chander <[email protected]>
Co-authored-by: Andrew Hall <[email protected]>
Co-authored-by: Julien Couvreur <[email protected]>
Co-authored-by: Cyrus Najmabadi <[email protected]>
Co-authored-by: Maryam Ariyan <[email protected]>
Co-authored-by: Jared Parsons <[email protected]>
Co-authored-by: Jason Malinowski <[email protected]>
Co-authored-by: David Barbet <[email protected]>
Co-authored-by: Jason Malinowski <[email protected]>
Co-authored-by: Joey Robichaud <[email protected]>
Co-authored-by: Dimitris Gounaris <[email protected]>
Co-authored-by: Matt Mitchell <[email protected]>
Co-authored-by: Rikki Gibson <[email protected]>
Co-authored-by: Alexander Köplinger <[email protected]>
Co-authored-by: Dong A. <[email protected]>
Co-authored-by: Chris Sienkiewicz <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-IDE untriaged Issues and PRs which have not yet been triaged by a lead
Projects
None yet
Development

Successfully merging this pull request may close these issues.

IntelliSense doesn't work in watch window
3 participants