Skip to content

Conversation

@ryzngard
Copy link
Contributor

  • Update dependencies from https://github.com/dotnet/arcade build 20241025.2
  • Return Hover from HoverFactory instead of VSInternalHover
  • Remove documentFilePath parameter from HoverFactory.GetHoverAsync(...)
  • Extract capabilities to a central place
  • Use a test accessor
  • Add language to RazorCodeActionContext
  • Get C# and Html code actions before calling the service
  • Make method static
  • Resolve C# and Html code actions before calling the service
  • Create basic cohosting infrastrcuture
  • Complete cohosting code actions functionality
  • Update PublishData.json
  • refactor: import common targets, centrally
  • build: warn about missing long path support when building on windows
  • docs: tell about options to overcome 'path-too-long'-errors
  • Fix some things for extract component (Fix some things for extract component #11137)
  • Override Range with SelectionRange in VS
  • Extract base class from code actions tests
  • Report better MEF composition errors in tests
  • Add delegated document Uri to code action data
  • Add cohost resolve endpoint and tests
  • Fix code action translation to Roslyn types
  • Move helpers to base class
  • Implement additional roslyn helpers, and add tests for more involved code actions
  • Cohost eqivalent of Fix code actions (and code actions integration tests) #11141
  • Silly mistake number 1
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20241030.1
  • Add RemoteHoverService to MS.CA.Remote.Razor
  • Add CohostHoverEndpoint to MS.VS.LS.Razor
  • A couple of small tweaks
  • Fix CohostHoverEndpoint registration
  • Acquire hover display options from client capabilities
  • Better logging for named pipe (Better logging for named pipe #11144)
  • Add first cohosting hover test
  • Add second cohosting hover test
  • Add HTML cohosting hover test
  • Create a test to validate cohost registrations
  • Fix broken endpoints
  • Set document selectors centrally, so nobody can forget
  • Validate LSP methods are unique
  • Bump Roslyn to 4.13.0-2.24554.8
  • Update tests. No idea why these weren't failing to compile on my machine before. I blame VS
  • Seal endpoints (silly mistake 2?)
  • Update to macOS-14 (Update to macOS-14 #11153)
  • Adding cohost completion handler (Adding cohost completion handler #11048)
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2575420
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2575420
  • Update compiler test baselines
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2575448
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2575448
  • Improvements for Assumed.Unreachable(...)
  • Simplify RemoteHoverService logic
  • Debug.Fail(...) if we encounter a language that we don't expect
  • Revert "Update project configuration from Roslyn info (Update project configuration from Roslyn info #11092)"
  • Update endpoint after merge
  • Update CohostHoverEndpoint.GetRegistrations signature
  • Revert "Some random clean up and improvements (Some random clean up and improvements #11095)"
  • PR Feedback
  • FIx code actions resolve in VS.
  • Fix registration after merge
  • Fix namespace on test
  • Add cohosting Hover test for component attribute
  • Tweak roslyn helpers and nullability
  • Fixing html snippet completion and intergration tests (Fixing html snippet completion and integration tests #11172)
  • Halve the time it takes to run formatting unit tests
  • Further tweak Roslyn helpers
  • Remove LanguageServerFlags
  • Use LanguageServerFeatureOptions to get the language server feature option
  • Update tests and benchmark
  • Update breaking change docs titles
  • Re-apply "Some random clean up and improvements (Some random clean up and improvements #11095)" (Re-apply "Some random clean up and improvements (#11095)" #11177)
  • Fix format on paste data readon from request (Fix format on paste data readon from request #11176)
  • Make IFileSystem a real, non-obsolete, DIed service
  • Convert static helper into a extension method
  • Move component accessibility code action provider to IFileSystem, and add tests
  • Move generate method code action to use IFileSystem and add tests
  • Add a couple more missing tests
  • Fix build
  • Fix typo
  • Update VSTelemetryAPI version
  • Update to correct version to match VS
  • Make method private
  • Clean and refactor code within GenerateCodeDocumentAsync a bit
  • Don't produce intermediary array of document snapshots
  • Fix some mistakes in strings that have no bearing on anything important
  • Don't expose DocumentState.GetImportsAsync
  • Make DocumentState.ImportItem private
  • Delete ImportDocumentSnapshot now that it is unused
  • Fix nullability of IDocumentSnapshot
  • Add feature flag to turn on the new Roslyn tokenizer
  • fix codefix that wasn't closed
  • Update ProjectWorkspaceState and HostProject at the same time
  • Remove unused enum, and replace with a bool
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20241108.1
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2579832
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2579832
  • Move completion resolve code to common layer (Move completion resolve code to common layer #11156)
  • PR feedback
  • PR feedback
  • Add mapped edits helper (Add mapped edits helper #11146)
  • Add metadata (Add metadata #11199)
  • Yes, learn uses the US date format.
  • Only one format works for dates. (Only one format works for dates. #11202)
  • Fix request duration logging (Fix request duration logging #11198)
  • Remove GetTagHelpersSynchronously extension method
  • Move INamedPipeProjectInfoDriver to LanguageServier.Hosting namespace
  • Switch LogInformation to LogError
  • Move RazorNamedPipeConnectParams to MS.ANC.Razor.LanguageServer
  • Remove MS.ANC.Razor.LS.Extensions from RestrictedInternalsVisibleTo
  • Moved named pipe hosting files into Hosting.NamedPipes namespace
  • Use appropriate exception type
  • Don't overbuild when only project workspace state has changed
  • Update dependencies from https://github.com/dotnet/arcade build 20241112.12
  • PR Feedback
  • Update dependencies from https://github.com/dotnet/arcade build 20241112.13 ([main] Update dependencies from dotnet/arcade #11211)
  • Add schedule
  • Skip deploying in official builds
  • Handle skipped trivia in the C# tokenizer (Handle skipped trivia in the C# tokenizer #11207)
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20241111.2
  • [Fuse] bind-Value:attribute support ([Fuse] bind-Value:attribute support #11214)
  • Add mechanism to write JSON files when format changes
  • Revert "PR Feedback"
  • Revert "Don't overbuild when only project workspace state has changed"
  • Revert "PR feedback"
  • Revert "Remove unused enum, and replace with a bool"
  • Revert "Update ProjectWorkspaceState and HostProject at the same time"
  • Allow MS.ANC.Razor.Serialization.Json to compile differently
  • Expand JsonDataConvert APIs
  • Clean up several tests that use JsonDataConvert
  • Don't include TagHelperDescriptorJsonConverter in MS.VS.RazorExtension
  • Don't include unused TagHelperDescriptorJsonConverter in compiler tests
  • Update tooling benchmarks to use new JsonDataConvert APIs
  • Don't include TagHelperDescriptorJsonConverter in compiler benchmark
  • Remove TagHelperDescriptorJsonConverter and friends
  • Remove redundant mapping code, because GetPositionInfo already does this
  • grrrr
  • Publish package artifacts on PR builds (Publish package artifacts on PR builds #11223)
  • Remove unused __RemoveThisBitTo__GENERATE_BASELINES compilation symbol
  • Add GenerateBaselines comment to various project files
  • Fix unused using warning
  • Add GenerateJsonFiles in MS.ANC.Razor.Test.Common.Tooling
  • Move all "shared" test files to "src\Shared\files"
  • Add GenerateJsonFiles test class
  • Allow logging level to be changed in rzls (Allow logging level to be changed in rzls #11228)
  • Fire an ETW event when the background document generator queue is empty, after doing some work
  • Handle aliased usings in RazorEditHelper (Handle aliased usings in RazorEditHelper #11208)
  • PR Feedback
  • PR Feedback
  • Support FAR in cohosting
  • Adding a setting to .editorconfig to enforce formatting (Adding a setting to .editorconfig to enforce formatting #11236)
  • Update src/Shared/Microsoft.AspNetCore.Razor.Serialization.Json/ObjectReaders_ProjectSystem.cs
  • Forgot to turn off the old handler 🤦‍♂️
  • Update GenerateJsonFiles to skip test when ShouldGenerate = false
  • Add a code action to promote a using directive
  • docs: require enabled long-paths when contributing
  • Update data for snap 17.13P2 (Update data for snap 17.13P2 #11242)
  • [main] Update dependencies from dotnet/arcade ([main] Update dependencies from dotnet/arcade #11246)
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20241121.2
  • Tests should be well formatted too
  • Add back null check to allow merge editor to load
  • Move properties down a level
  • Remove Html fixture
  • Move all simple document formatting tests to a single file
  • Remove nullable
  • Simplify method signature
  • Share formatting tests with cohosting
  • Add range formatting support, and increase logging
  • Remove redundant tests
  • Bump Roslyn and handle null location
  • Update config data for 17.13P2 snap of VS (Update config data for 17.13P2 snap of VS #11257)
  • Nullability
  • Fix extract component whitespace handling (Fix extract component whitespace handling #11262)
  • PR Feedback
  • Add test for indented usings
  • Create xUnit infrastructure for formatting tests
  • Opt in to new formatting test infra
  • Update the rest of the tests
  • Opt more tests into the new structure, and ensure no future tests are missed
  • Run cohosting tests with FUSE, and use proper test skipping
  • Bring back the html formatting fixture
  • Consolidate all on type formatting tests into one file
  • Share on type formatting tests with cohosting
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20241126.2
  • Use correct serializer options when serializing and deserializing (Use correct serializer options when serializing and deserializing #11268)
  • Remove C#s using snippet from completion
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2594459
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2594459
  • refactor: more lightweight check for long-path support
  • Add more information to dynamic file publish (Add more information to dynamic file publish #11267)
  • 🎵 seal the world, make it a better place 🎵
  • Actually use FUSE for FUSE tests
  • Ensure this can't happen again
  • Enable long paths before building on test machines
  • Update eng/pipelines/test-integration-job.yml
  • Port inline completion to cohosting
  • Unused usings....
  • Improve Find All Refs results
  • PR Feedback
  • Create a failing test
  • Emit source mappings for blank C# code blocks
  • Add new tests and baselines for the new tests
  • Don't validate line pragmas for whitespace in design time
  • Re-generate baselines
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20241202.1
  • Only update razor dependencies coming from maintenance-packages when source build is true. Tracking issue: Follow-up on updating maintenance-packages dependencies conditioned to only DotNetBuildSourceOnly != true sdk#45155
  • Apply suggestions from code review
  • Add more test logging to the formatting engine
  • Guard against an empty blank line caused by runtime code gen differences
  • Guard against nulls
  • Allow for whitespace before code block directives
  • Rework ProjectChangeEventArgs
  • Simplify ProjectSnapshotManager.NotifyListeners(...)
  • ProjectSnapshotManager: Simplify adding project
  • ProjectSnapshotManager: Simplify removing project
  • ProjectSnapshotManager: Simplify updating document text
  • ProjectSnapshotManager: Simplify adding document
  • ProjectSnapshotManager: Introduce AddDocument overload for SourceText
  • ProjectSnapshotManager: Simplify removing document
  • ProjectSnapshotManager: Simplify updating ProjectWorkspaceState
  • ProjectSnapshotManager: Simplify updating ProjectConfiguration
  • ProjectSnapshotManager: Clean up and reorganize
  • Fix typo in assert message
  • Audit test names and clean up tests
  • Fix integration tests
  • Remove internal restriction for fuse (Remove internal restriction for fuse #11288)
  • Convert IProjectSnapshot.GetDocument to an extension method
  • Introduce IProjectSnapshot.GetRequiredDocument extension method
  • Rename IProjectSnapshotManager.TryGetLoadedProject to TryGetProject
  • Introduce GetProject and GetRequiredProject extension methods
  • Update callers of GetLoadedProject to GetRequiredProejct
  • Add TryGet, Get, and GetRequiredDocument for IProjectSnapshotManager**
  • Introduce IProjectSnapshotManager.ContainsProject
  • Introduce IProjectSnapshotManager.ContainsDocument extension method
  • Rename GetProjectKeys to GetProjectKeysWithFilePath
  • Rework MiscFilesHostProject
  • Add extension helper methods to MiscFilesProject
  • Add IFallbackProjectManager interface
  • Update BackgroundDocumentGenerator to use IFallbackProjectManager
  • Update EditorDocumentManagerListener to use IFallbackProjectManager
  • Update FallbackProjectMangerTests to avoid FallbackHostProject
  • Track fallback projects in a set, rather than by HostProject
  • Delete FallbackHostProject
  • Seal HostProject
  • Bump Roslyn
  • Make HostProject.DisplayName read-only
  • Bump dependencies
  • Fix formatting of explicit expressions on runtime code-gen
  • Support either runtime or desing time code-gen for section formatting
  • Update tests after absorbing Roslyn changes
  • Update language server tests after absorbing Roslyn changes
  • More logging tweaks
  • Fix formatting of the end brace of explicit statements with runtime codegen
  • Update dependencies from https://github.com/dotnet/arcade build 20241120.5 ([release/dev17.10] Update dependencies from dotnet/arcade #11247)
  • Use a marker for anything in trivia, not just whitespace
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20241210.1
  • Wait for server shut down before exiting test
  • Filter out CSS002 when it appears in an "@@"
  • Update term (Update term #11311)
  • Update telemetry to 17.13.28 (Update telemetry to 17.13.28 #11315)
  • MOAR PATTARN!
  • ProjectState: Replace LanguageServerFeatureOptions with enum
  • Improve ProjectState.Create(...) factory methods and constructors
  • Clean up TestProjectEngineFactoryProvider a bit
  • Seal DocumentState and ProjectState and make effectively immutable
  • Rework ProjectState.ImportsToRelatedDocuments map
  • Simplify DocumentState.Version tracking
  • Remove unused DocumentState property
  • Clean up DocumentState With methods*
  • Move DocumentState helper methods for computing imports
  • Clean up EmptyTextLoader (currently only used by tests)
  • Replace DocumentState.EmptyLoader with EmptyTextLoader.Instance
  • Replace CreateEmptyTextLoader with EmptyTextLoader.Instance
  • Clean up TestMocks.CreateTextLoader calls
  • Clean up calls to ProjectState.AddDocument with empty loaders
  • Augment Assumed class with new helpers and message parameters
  • Introduce AsyncLazy variation from Roslyn
  • Introduce ITextAndVersionSource to manage text loading in DocumentState
  • Don't update ProjectState when DocumentState doesn't
  • Move DocumentState helper methods for compilation
  • Remove DocumentState.ComputedStateTracker
  • Introduce legacy snapshot interfaces to support legacy editor
  • Remove IProjectSnapshot.Version
  • Remove ProjectState.DocumentCollectionVersion
  • Remove remaining version logic from ProjectState
  • Make IProjectSnapshot.GetProjectEngine() async
  • Remove IProjectSnapshotManager interface
  • Remove IProjectSnapshot.GetProjectEngineAsync
  • Remove IProjectSnapshot.ProjectWorkspaceState
  • Move IDocumentSnapshot and IProjectSnapshot to lower tooling layer
  • Remove IProjectSnapshot.Configuration
  • Don't use LINQ Count() method
  • Remove unused entries of MS.Extensions (Remove unused entries of MS.Extensions #11316)
  • Fix typo in preview feature description (Fix typo in preview feature description #11319)
  • Compute test span correctly
  • Double-checked lock
  • Fix comment
  • Remove unused method
  • Rename method to ProjectState.UpdateRelatedDocumentsIfNecessary
  • Delete unused ExtractToComponentResolverDocumentContextFactory
  • Remove all but one ProjectState.Create(...) factory method
  • RazorProjectService: Use TryGetDocument rather than pattern matching
  • Run on type formatting tests on fuse
  • RazorProjectService: Rename for consistency throughout
  • ProjectState: Don't perform string replacements unless necessary
  • Enable our custom theory discoverer in command line test runs (including CI)
  • Don't format collection expressions, because Roslyn doens't either
  • Create test infra for running all tests on fuse and non-fuse
  • Run all cohost tests with FUSE and non-FUSE
  • Automatically compile Razor files in tests.
  • Skip folding range tests due to whitespace differences
  • Skip semantic tokens test on FUSE due to differences
  • Fix ExtractToCodeBehind tests
  • Output semi-colon before switching back to hidden line directives
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20241220.1 ([main] Update dependencies from dotnet/source-build-reference-packages #11331)
  • Add a test to ensure collection expressions format, even if they don't indent
  • Add extra test to validate the things that don't need to get skipped at least
  • RazorProjectEngine: Use ArgHelper.ThrowIfNull throughout
  • RazorProjectEngine: Remove two unneeded wrapper methods
  • RazorProjectEngine: Remove a couple of unneeded ArgHelper.ThrowIfNull
  • RazorProjectEngine: Do not allow nullable file kind
  • RazorProjectEngine: Remove ArgumentNullExceptions in ctor
  • RazorProjectEngine: Clean up CreateCodeDocumentCore
  • Introduce FeatureCache helper class
  • RazorEngine: Use ArgHelper.ThrowIfNull
  • RazorEngine: Use FeatureCache
  • Use RazorEngine.GetFeatures() throughout
  • RazorProjectEngine: Use FeatureCache
  • Use RazorProjectEngine.GetFeatures() throughout
  • RazorProjectEngine: Don't expose EngineFeatures
  • RazorProjectEngine: Rename ProjectFeatures to Features
  • RazorProjectEngine: Pass PooledArrayBuilder to GetImportSourceDocuments
  • RazorProjectEngine: Extract imports logic to GetImportSources method
  • RazorEnginePhaseBase: Use ArgHelper.ThrowIfNull
  • Improvements to Assumed
  • Update AssumeNotNull extensions to include optional message
  • RazorEnginePhaseBase: Clean up and add Initialize method
  • RazorEngineFeatureBase: Clean up and add Initialize method
  • RazorProjectEngineFeatureBase: Clean up and add Initialize method
  • SourceGeneratorProjectEngine: Don't inherit from RazorProjectEngine
  • PR feedback
  • Thread CancellationToken into compile phases and cancel from tooling
  • Only show element hover information when hovering over an element in a Razor file
  • Detect an open start tag at the end of a document
  • Don't force tests to specify snippets
  • Add test to prove issue doesn't repro
  • Fix existing test (that was wrong)
  • Fix completion in an empty document
  • Make the Html snippets consts so they're shared
  • Remove TODO
  • Use a helper method instead of doing lots of Uri building
  • Fix using
  • Revert "Make the Html snippets consts so they're shared"
  • Revert "Don't force tests to specify snippets"
  • Force tests to express all of their expected inputs, and validate that no false positives exist from delegated items or snippets
  • Fix test that only passed because of a false positive
  • Fix tests after merge, and fix whitespace
  • Extract logic to a method, so we can add more methods
  • Pass event args type through to resolve
  • Clean up resolve class a bit
  • Support EventCallback methods in generate handler
  • Logging
  • Fix sole regression when doing on type formatting on runtime code
  • Allow opting in to using runtime code-gen in formatting
  • Remove unused property
  • Offer to generate handler for bind after and set
  • Change argument name to "args"
  • Stop doing so many string replaces
  • Update existing tests
  • Fix bug that I thought I was okay with because I moved some code, but it turned out the code was dead code anyway
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20241230.1
  • Port validate breakpoint endpoint to cohosting
  • Add cohost support to breakpoint span and proximity expression resolvers
  • Turn off old endpoints
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250106.1
  • Fix telemetry stack walking
  • PR Feedback
  • Move FORMAT_FUSE constant to Directory.Build.props
  • Update configs for 17.13 P3/17.14
  • Move ThrowIfCancellationRequested call
  • Remove RazorCompletionItem.Items property
  • RazorCompletionItem: A little clean up
  • RazorCompletionItem: Add CreateMarkupTransition factory method
  • RazorCompletionItem: Add CreateDirective factory method
  • RazorCompletionItem: Add CreateDirectiveAttribute factory method
  • RazorCompletionItem: Add CreateDirectiveAttributeParameter factory method
  • RazorCompletionItem: Add CreateTagHelperElement factory method
  • RazorCompletionItem: Add CreateTagHelperAttribute factory method
  • RazorCompletionItem: Make constructor private and clean up
  • MarkupTransitionCompletionItemProvider: Clean up
  • TagHelperCompletionProvider: Clean up
  • DirectiveAttributeCompletionItemProvider clean up
  • DirectiveAttributeCompletionItemProvider: clean up
  • DirectiveAttributeParameterCompletionItemProvider: clean up
  • DirectiveAttributeTransitionCompletionItemProvider: clean up
  • Remove unused fields
  • DirectiveCompletionItemProvider: clean up
  • RazorCommitCharacter: Pass ReadOnlySpan rather than string[]
  • still call GetServices method
  • Clean up completion tests
  • Remove unused field in RazorContentTypeChangeListener
  • Add backport github action
  • Remove using
  • Enforce IDE0052 across the repo
  • Add another test.
  • Add some useful directive extension methods
  • Add a helper method to calculate the indent level from an existing line
  • Fix tests that use tabs, or a custom tab size
  • Add or expand a few formatting tests
  • Add some helper utiltiies with basic test coverageMore hlper methods
  • Create a simple Html formatting pass
  • Add a new C# formatting pass
  • Expose Roslyn workspace helper
  • Dodgily hook up the new formatting engine
  • Slight tweaks to the RazorFormattingPass to make it not break the new formatter
  • Tweaks to formatting logic for explicit expressions
  • Format implicit or explicit expressions no matter where they are on a line, or how many of them there are
  • Add tests and coverage for the quirks of single line empty explicit statements
  • Little bit of code cleanup and sharing
  • Unskip a few tests
  • Update expected output to match the new formatter
  • Update expected output to match the new engine behaviour
  • Fix start position calculation to allow for whitespace differences between runtime and design time code gen
  • PR feedbacl
  • Fix build errors
  • Fix failing test
  • Add tests for lambda parameters, and relax an if statement so they're formatted correctly
  • Language server and cohost test runners have different using directives 🤦‍♂️
  • Remove ability to opt in to the old formatting engine
  • Remove old document formatting bits
  • Move new formatting engine, so there is only one
  • Remove ability to force design time code-gen in FUSE
  • RazorCompletionItem: Remove value equality
  • fix folder name
  • delete unused github actions
  • Fix 17.13 branch
  • Bump Roslyn to a real version
  • SyntaxNodeExtensions related PR feedback
  • Formatting utilities PR feedback
  • CSharpDocumentGenerator PR feedback and clean up
  • Run tests with FUSE and non
  • Whitespace🤦‍♂️
  • ...
  • Fix a couple of exceptions encountered when formatting documents with preprocessor directives
  • Replace ISolutionQueryOperations in hover with dedicated service
  • Add an easy way to enable binlogs in VS (Add an easy way to enable binlogs in VS #11375)
  • Add feature flag to allow opting in to the new formatting engine
  • Put back the old formatting engine, but opt to use the new one in code
  • Revert "Remove ability to force design time code-gen in FUSE"
  • Run all (most) tests with the new engine, and the existing one
  • ComponentImportProjectFeature: A bit of clean up
  • ComponentImportProjectFeature: Replace RazorProject reference
  • ComponentImportProjectFeature: Avoid allocating byte array over and over
  • Remove RazorProject and move members into RazorProjectFileSystem
  • RazorProjectFileSystem: Don't make subclasses override GetItem(string)
  • RazorProjectFileSystem: Clean up and use ArgHelper.ThrowIfNullOrEmpty
  • Nest EmptyProjectFileSystem in RazorProjectFileSystem
  • NotFoundProjectItem: Clean up and remove basePath parameter
  • ComponentImportProjectFeature: Introduce InMemoryFileContent helper
  • TestRazorProjectItem: Clean up and use InMemoryFileContent
  • MvcImportProjectFeature: Clean up and use InMemoryFileContent
  • AdditionalImportsProjectFeature: Clean up and use InMemoryFileContent
  • DefaultRazorProjectFileSystem: Clean up and use ArgHelper
  • VirtualRazorProjectFileSystem: Clean up
  • RemoteRazorProjectFileSystem: Clean up a bit
  • TestRazorProjectFileSystem: Clean up
  • RemoteProjectItem: Clean up
  • TextSnapshotProjectItem: Clean up a bit
  • PR Feedback
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2618759
  • Update configuration when updating project workspace state
  • Move CSharpLanguageVersion from ProjectWorkstateState to RazorConfiguration
  • Add tokenizer and parse options properties to RazorConfiguration
  • Get tokenizer and preprocessor symbols from Roslyn
  • Fix build
  • Remove old feature flag
  • Remove stale comment
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250110.4
  • Update PublishData.json after 17.13 snap
  • Expand serialization round-trip tests to full coverage
  • Fix a bug found by having full coverage in tests 😛
  • Add script for CIFeatureFlags and add schedule (Add script for CIFeatureFlags and add schedule #11297)
  • PR Feedback
  • Create some more formatting tests
  • Use xUnit Assert.Throws overload to test ArgumentException.ParamName
  • Update package versions (Update package versions #11378)
  • Use the overload that takes an immutable array in serailization
  • DefaultRazorProjectFileSystem: Don't do extra work to normalize "/"
  • TextMate bug: recognize codeblocks with curly braces in switch statements (TextMate bug: recognize codeblocks with curly braces in switch statements #11397)
  • RazorProjectItem: Introduce method that returns RazorSourceDocument
  • Use RazorProjectItem.GetSource() in tooling project system
  • DefaultRazorProjectFileSystem: Avoid string allocations
  • DefaultRazorProjectFileSystem: Don't create FileInfo in GetItem
  • DefaultRazorProjectFileSystem: Don't create DirectoryInfo
  • Introduce RazorCSharpDocument.Text property
  • Merge RazorHtmlDocument and DefaultRazorHtmlDocument
  • Introduce RazorHtmlDocument.Text property
  • Introduce IRazorGeneratedDocument.Text property
  • RazorSourceGenerator: Use Text instead of GeneratedCode
  • Improve RazorSourceGeneratorTests a bit
  • Update tooling's GetCSharpSourceText() and GetHtmlSourceText() helpers
  • GeneratedDocumentTextLoader: Don't create a new SourceText
  • Update Legacy Editor shim IRazorCodeDocument.GeneratedCode
  • Avoid using GeneratedCode to parse C# syntax tress
  • A few more updates to tooling code to avoid using GeneratedCode
  • Update test code to access Text rather than GeneratedCode
  • Remove GeneratedCode property altogether
  • CodeWriter: Move Dispose closer to the constructor
  • Stop calling CodeWriter.GenerateCode() in compiler tests
  • Fix ArrayExtensions AsSpan() and AsMemory() helpers
  • Replace CodeWriter.GenerateCode() with custom TextReader
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250115.1
  • Clarify comment
  • Improve RazorProjectItem.GetSource() implementations
  • Throw if RazorProjectItem.GetSource() returns null
  • DefaultRazorProjectFileSystem: Use CreateString() to avoid extra copying
  • IntegrationTestBase: Pass TextSpan to SourceText.ToString(...)
  • CodeWriter: Add missing nameofs to exception message
  • Fix bad completion commit in vs code (Fix bad completion commit in vs code #11398)
  • Provide debugger strings on default imports
  • Seal all IImportProjectFeature implementations
  • IImportProjectFeature: Change accessibility to internal
  • Share TestImportProjectFeature across compiler and tooling tests
  • IImportProjectFeature: Change GetImports to return ImmutableArray
  • IImportProjectFeature: Change GetImports to CollectiImports
  • Allow generate method to handle delegates (Allow generate method to handle delegates #11402)
  • RazorProjectEngine: Add CollectImports and GetImports methods
  • Consolidate RazorProjectItems for default imports
  • PooledArrayBuilder: Add ToImmutableReversed and DrainToImmutableReversed
  • Fix test output
  • RazorProjectFileSystem: Improve performance of FindHierarchicalItems
  • Synchronize razor compiler assembly loading (Synchronize razor compiler assembly loading #11394)
  • Don't create overlapping changes when doing additional formatting
  • Ensure there is a newline after the close brace of a code block
  • More explain more good
  • Language server tests are fussy
  • Remove depth check from RazorProjectFileSystem.FindHierarchicalItems
  • Revert "Fix test output"
  • Turn on the new formatting engine by default in VS
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250124.2
  • Fix test again
  • Update configs after 17.14 p1 snap
  • Offer to wrap Html attributes
  • Fix typo in setting description
  • Change recommended VS extension to ESLint (Change recommended VS extension to ESLint #11424)
  • fuse on by default ([Main branch] fuse on by default #11425)
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2631041
  • Fix issue where RemoteServiceInvoker never initializes
  • Simplify RemoteServiceInvoker implementation
  • Update PublishData.json after vs snap
  • Remove unnecessary Debug.Fail(...)
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2632461
  • Fix on type formatting line delta calculations
  • Make log levels match LogLevel.cs
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250130.4
  • Make sure we go through GetAbsolutePosition to handle LSP edge cases
  • Add test
  • Specify initial capacity
  • Move file
  • Break up tests across multiple files
  • Remove redundant test name prefixes
  • Update folding range
  • WorkspaceProjectStateChangeDetector: Small clean up and perf tweak
  • Don't hold onto snapshots in ProjectWorkspaceState detector/generator
  • Add ProjectKey helpers and to project where ProjectKey is defined
  • Fix vs-threading configuration file to point to correct type
  • Clean up code to enqueue workspace state generator update after build
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2635919
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2635919
  • Rename, move and reorganize all files related to updating tag helpers
  • Refactor, simplify, and optimize ProjectStateChangeDetector
  • Fix formatting of escaped at signs
  • Add button to view the formatting document to the syntax visualizer
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2637224
  • Enforcing accessibility modifiers (Enforcing accessibility modifiers #11466)
  • Update Telemetry package (Update Telemetry package #11468)
  • Don't skip a number
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250204.2
  • React to NuGet package pruning warnings (React to NuGet package pruning warnings #11471)
  • Remove accessibility modifiers from interface members
  • Fix another IDE0040 violation
  • Move naming
  • Fix build
  • Remove ProjectEngineHost project by moving things into MS.CA.Razor.Workspaces
  • Update resource files
  • Allow customizing which zip file we open
  • Allow opting out of Debug.Fail asserting
  • Add a new test project we can use that is a bit more complicated
  • Allow for tests that only can run in VS
  • Fix compilation
  • Add some basic stress tests
  • Try a different approach, since I forgot our CI does use VS
  • Update dependencies from https://github.com/dotnet/arcade build 20250211.5
  • Failed to perform coherency update for one or more dependencies.
  • 3rd times a charm!
  • Don't use Directory.Exists to check if a path is relative
  • Fix whitespace in tests
  • Don't set the override where it's not needed
  • Add some test coverage for this scenario
  • We have a test accessor, should probably use it
  • Remove unused property
  • Roslyn didn't like my nice layout :(
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2642577
  • Fix a couple of options in the old options screen
  • Bump local packages
  • React to NuGet package pruning warnings (React to NuGet package pruning warnings #11496)
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250212.3
  • Prevent warnings from new IVTs from Roslyn
  • Respond to changes in roslyn EA
  • Nullability and usings
  • Remove local nuget
  • Update AssemblyLoadingStrategy.md (Update AssemblyLoadingStrategy.md #11509)
  • Use different comletion trigger character set for VSCode (Use different comletion trigger character set for VSCode #11446)
  • RazorProjectEngineBuilderExtensions: Clean up
  • Merge RazorProjectEngineBuilderExtensions classes in compiler
  • Add ConfigureParserOptions and ConfigureCodeGenerationOptions helpers
  • Remove ConfigureRazorCodeGenerationOptions class
  • Remove ConfigureRazorParserOptions class
  • Remove most IConfigureRazorParserOptionsFeature implementations
  • Remove most IConfigureRazorCodeGenerationOptionsFeature implementations
  • Rewrite DefaultRazorDirectiveFeature as ConfigureDirectivesFeature
  • Rationalize RazorProjectEngineBuilder.AddDirective(...) extension method
  • Make RazorProejctEngineBuilder.AddDefaultImports(...) helper test-only
  • Remove or hide RazorProjectEngineBuilderExtensions methods
  • Ensure that options configuration features are always ordered
  • Remove redundant parameters from Default options features
  • Rationalize RazorCodeGenerationOptions and builder
  • Rationalize RazorParserOptions and builder
  • Update code unnecessarily passing CSharpParserOptions.Default
  • RazorParserOptions: Nest builder and flags
  • RazorCodeGenerationOptions: Nest builder and flags
  • Roll RazorParserFeatureFlags into RazorParserOptions
  • Remove project engine features for parse and code generation options
  • Add RazorLanguageVersion and FileKind to RazorCodeGenerationOptions
  • Move Get/Set Parser/CodeGenerationOptions methods to RazorCodeDocument
  • Remove TestRazorCodeDocument.Create(Source, Imports) test helper
  • Replace get/set parser and codegen options methods with readonly props
  • Fix DefaultRazorParsingPhaseTest
  • Ensure RazorProjectEngine.CreateCodeDocument is called within compiler passes
  • RazorProjectEngineTestBase: Remove CreateEngine()
  • ModelDirectiveTest: Update to create code document from project engine
  • ModelDirectiveTest: Fix incorrect test assertions
  • Refactor to share more test infrastructure
  • PageDirectiveTest: Move to new test infrastructure
  • Clean up Version1_X tests
  • Clean up Version2_X tests
  • Finish cleaning up MS.ANC.Mvc.Razor.Extensions.Test
  • Refactor and improve the testing API of RazorProjectEngineTestBase
  • Rename IntermediateNode test helpers and unneeded remove null assertions
  • Remove RazorCodeDocument.Create(...) calls from compiler tests
  • Remove RazorCodeDocument.Create(...) calls from tooling code
  • Remove unused RazorCodeDocument.Create(...) overloads
  • Make RazorCodeDocument.ParserOptions non-nullable
  • Make RazorCodeDocument.CodeGenerationOptions non--nullable
  • Clean up and document RazorProjectEngineTestBase
  • Rationalize RazorCodeDocument.Create(...) API
  • Enable nullability for IConfigureXXXOptions interfaces
  • Final changes
  • Emit the start of a multi-line expression so things format well in C#
  • The html formatter doesn't touch multi-line attributes, so we have to deal with that.
  • Tests!
  • Skip failing test
  • Extract method
  • Stop attribute name parsing at transition (Stop attribute name parsing at transition #11520)
  • Cohost wireup (Cohost wireup #11412)
  • Compiling and ready for testing. Still failing
  • Use SelectionRange to refine Range, not move it entirely
  • Get todo list descriptors from VS
  • Respond to task list item requests
  • Refactor a bit and add cohosting support
  • Add tests
  • Fix up existing tests
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250219.1
  • Add a test to ensure we get task list items from Roslyn too
  • Unskip tests
  • Don't use FilePathService in cohosting, it won't work
  • Prevent tests from doing bad things in cohosting
  • Clean up
  • Fix logic
  • Fix options equality
  • Fix test
  • update configs for 17.14p2 snap
  • Unify logic
  • Fix parsing of quotes in attribute names (Fix parsing of quotes in attribute names #11543)
  • Add cohost test
  • Improve build reliability by removing conversion to Windows PDB (Remove conversion to Windows PDB #11548)
  • Don't use compound null-coalescing assignment unnecessarily
  • Fix file path service
  • Update src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/AbstractFilePathService.cs
  • Unskip tests
  • Strongly type generated documents
  • Create reverse map in source generator outputs
  • Add some helpers for dealing with source generator documents
  • Update how the span mapper deals with generated document Uris
  • Roslyn changed their Uri scheme
  • Move static accessor into separate method so we don't JIT it unless we're turning it on (Fix extra JITing #11554)
  • Unskip diagnostics tests
  • Fix typo and whitepsace
  • Don't send invalid ranges for diagnostics if they do not map (Don't send invalid ranges for diagnostics if they do not map #11555)
  • Produce more symbols (Produce more symbols #11563)
  • Move cohost options to explicit class (Fix jitting when sg enabled #11564)
  • Revert symbol related changes (for now) (Revert symbol related changes (for now) #11568)
  • Update PublishData.json after VS Snap (Update PublishData.json after VS Snap #11576)
  • PR Feedback
  • Remote unused using
  • PR Feedback
  • Add integration test
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250228.4
  • Nit
  • Other PR feedback
  • Fix build
  • Fall into the pit of success
  • Remove unnecessary assert
  • Bump Roslyn and dependencies
  • Simplify code that deals with generated document Uris
  • Add override completion integration test
  • Remove references to old xliff-tasks repo from Version.Details.xml
  • Change symbol publishing for more reliable builds (Change symbol publishing for more reliable builds #11585)
  • Merge file detectors and listeners into WorkspaceRootPathWatcher
  • Add RazorProjectService.AddDocumentsToMiscProjectAsync for bulk adds
  • RazorProjectEngine: Don't load file from disk for open document
  • RazorProjectEngine: Don't create DocumentSnapshots unnecessarily
  • Remove some Newtonsoft.Json references and conversions
  • WorkspaceRootPathWatcher: Clean up a bit
  • Delete empty file
  • In VS, don't initialize misc files project with the workspace root path
  • Remove unused or invalid options in OOP
  • Remove FuseFast usage for cohosting tests, because they'll all fuse!
  • Unskip tests that are now stable
  • Update formatting tests to not vary by FUSE
  • WorkspaceRootPathWatcher: Fix extension comparison
  • RazorProjectService: Fix logic error in AddDocumentsToMiscProjectAsync
  • Rename and make InitializeMiscFilesProject option configurable
  • Prefer Debug.Assert over message logged at debug-time.
  • Swap things around so FUSE tests are run by the langauge server and cohost doesn't vary
  • Cohosting is always using the new formatting engine, since its always using FUSE
  • Get standard tag helpers from Basic.ReferenceAssemblies rather than a Json file
  • Generate design time and runtime documents in language server formatting tests
  • Remove FORMAT_FILE
  • Fix on type formatting test
  • Update component used in tests
  • Unskip partial component test
  • Remove code actions tests
  • Remove unused compilation and comment
  • [FUSE] Layout mapping ([FUSE] Layout mapping #11567)
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250306.1
  • Add constraints to CaptureParameters method (Add constraints to CaptureParameters method #11530)
  • CompletionTriggerAndCommitCharacters: Rename file to match type
  • Don't add CompletionTriggerAndCommitCharacters to VS MEF composition
  • Don't expose CSharpTriggerCharacters set
  • Don't expose RazorTriggerCharacters set
  • Don't expose RazorDelegationTriggerCharacters set
  • Don't expose AllDelegationTriggerCharacters set
  • Don't expose HtmlTriggerCharacters set
  • Refactor CompletionTriggerAndCommitCharacters
  • Return ImmutableArrays rather than mutable array copies
  • Upgrade to net9 (Upgrade to net9 #11535)
  • Move VS Code To Pull Diagnostics (Move VS Code To Pull Diagnostics #11602)
  • Remove unused property
  • Strongly type the completion resolve context object
  • Use a proper Try method with out parameters and clean up code as a result
  • Clean up and null enable tests
  • RazorCodeDocument: Convert Get/SetFileKind to instance methods
  • RazorParserOptions: Add convenience Create factory method
  • RazorCodeDocument: Remove SetFileKind
  • RazorCodeDocument: Convert GetFileKind to non-nullable property
  • RazorCodeGenerationOptions: Remove FileKind
  • Remove single use of RazorCodeGenerationOptions.Builder.LanguageVersion
  • RazorCodeGenerationOptions: Remove LanguageVersion
  • RazorCodeGenerationOptions: Add convenience Create factory method
  • Remove blank line
  • Don't export stateless service
  • Update dependencies from https://github.com/dotnet/arcade build 20250311.4 ([main] Update dependencies from dotnet/arcade #11613)
  • Make C# completion list rewriting synchronous
  • Make RewriteCSharpResponseAsync synchronously
  • Make TryGetProvisionalCompletionInfoAsync synchronous
  • Remove IDocumentMappingService.GetPositionInfoAsync extension method
  • Add back loop breaker
  • Audit GetCompletionListAsync methods
  • Update src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Completion/CompletionListCache.cs
  • Who keeps adding using directives to my code?!
  • Fix text area formatting in the new formatting engine
  • Remove using
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250314.1
  • Don't offer to extract to a component if the cursor is on an un-known component
  • Fix wrapping attributes on self-closing input tags
  • Who renames a field? I mean honestly!
  • Move DocumentKey and clean up a bit
  • Add and clean up ProjectKey and DocumentKey tests
  • Add a couple of GetMostRecentUniqueItems overloads
  • Add ProjectSnapshotManager extension methods that take DocumentKey
  • ProjectStateChangeDetector: Use HashSet for unique items
  • AbstractRazorProjectInfoDriver: Use HashSet for unique items
  • OpenDocumentGenerator: Use HashSet for unique items
  • Change IFallbackProjectManager.IsFallbackProject to take a ProjectKey
  • BackgroundDocumentGenerator: Use HashSet for unique items
  • Fix small typo in unit test name
  • ProjectSnapshotManager: Ensure that Open/CloseDocument always work
  • OutOfProcTagHelperResolver: Don't reorder tag helpers after fetching
  • Don't format if we didn't get a response from the Html formatter
  • BackgroundDocumentGenerator: Remove redundant calls
  • OpenDocumentGenerator: Move logging message to ProcessBatchAsync
  • Clean up OpenDocumentGenerator and BackgroundDocumentGeneator a bit
  • Fix build
  • Working...
  • Log warning if OOP doesn't return all of the requested tag helpers
  • Package the extension into a nupkg
  • Remove Nuget.config changes
  • Update layering doc and undo unnecessary changes
  • Remove file that was meant to be removed...
  • change to sealed class
  • Rename files
  • Remove file
  • Fix namespaces
  • Remove test project and merge into workspaces
  • Remove last references to Microsoft.CodeAnalysis.Razor.ProjectEngineHost
  • Restore PrivateAssets
  • Add back UrlDecoderTests
  • Use collection expressions
  • Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250320.2
  • Update dependencies coming from maintenance-packages (Update dependencies coming from maintenance-packages #11507)
  • Remove unused type
  • Remove duplicated types
  • Reuse types
  • Fix HashSet usage and null out when done
  • Update TSA settings main (Update TSA settings main #11636)
  • Emit pragmas for empty @ expressions in MVC (Emit pragmas for empty @ expressions in MVC #11653)
  • Allow multiple updates to be applied since we allow that in the vs code side
  • Consolidate code
  • Handle null response
  • Always specify a name for code actions, and verify the same
  • Add failing test to ensure add using is offered first
  • Order Razor code actions by the Order property
  • Offer extract to code behind at the start of an @code block
  • Update skipped tests
  • Update old tests to use names instead of titles
  • Use real versions
  • Update namespaces
  • Set PackageProjectUrl (Set PackageProjectUrl #11657)
  • Update Version.details.xml
  • Update with darc and fix source build
  • Add a suppressor for CS8618 (Add a suppressor for CS8618 #11601)
  • Skip failing test
  • Adjust ngen priorities
  • Unblock for now
  • Localized file check-in by OneLocBuild Task: Build definition ID 262: Build ID 2672960
  • Get rid of RazorNgendVSIXSourceItem

DustinCampbell and others added 30 commits February 20, 2025 13:47
Make MS.ANC.Mvc.Razor.Extensions.Test\PageDirectiveTest inherit from RazorProjectEngineTestBase and update tests to call CreateAndInitializeCodeDocument(...).
Update all "pass" tests in MS.ANC.Mvc.Razor.Extensions.Version1_X to create code documents from a project engine to ensure that options flow correctly.

Note: ModelDirectiveTest contains a tweak to a couple of test assertions to be correct, now that design-time code paths are taken.
Update all "pass" tests in MS.ANC.Mvc.Razor.Extensions.Version2_X to create code documents from a project engine to ensure that options flow correctly.

Note: ModelDirectiveTest contains a tweak to a couple of test assertions to be correct, now that design-time code paths are taken.
Update all "pass" tests in MS.ANC.Mvc.Razor.Extensions to create code documents from a project engine to ensure that options flow correctly.
Remove several helper methods from RazorProjectEngineTestBase and clean up the API.
These removes the remaining calls to RazorCodeDocument.Create(RazorSourceDocument) and RazorCodeDocument.Create(RazorSourceDocument, ImmutableArray<RazorSourceDocument>) from compiler test code. Each affected test or helper has either been updated to create RazorCodeDocuments through a RazorProjectEngine, or using the Create(...) overload that also takes options. (Currently, that overload allows null to be passed for the options, but that will change in a later commit.)
These removes the remaining calls to RazorCodeDocument.Create(RazorSourceDocument) and RazorCodeDocument.Create(RazorSourceDocument, ImmutableArray<RazorSourceDocument>) from tooling code and tests. Each call has been updated to use the Create(...) overload that also takes options. (Currently, that overload allows null to be passed for the options, but that will change in a later commit.)
This change ensures that RazorCodeDocument.ParserOptions is never null. This allows the legacy IRazorParserOptionsFeature to be completely removed. This was used as a fallback in some places in the compiler when a RazorCodeDocument didn't contain RazorParserOptions and is no longer needed.
This change ensures that RazorCodeDocument.CodeGenerationOptions is never null. This allows the legacy IRazorCodeGenerationOptionsFeature to be completely removed. This was used as a fallback in some places in the compiler when a RazorCodeDocument didn't contain RazorCodeGenerationOptions and is no longer needed.

This also means that it should now be an invariant in the compiler that DocumentIntermediateNode.Options is the same as the code-gen options from the RazorCodeDocument that produced it.

In addition, code that used DocumentIntermediateNode.Options as a fallback when RazorCodeDocument.CodeGenerationOptions was null can now be adjusted. This affects the TryComputeNamespace(...) method. That API has tests to verify the behavior when DocumentIntermediateNode.Options differs from RazorCodeDocument.CodeGenerationOptions. This change adjusts or removes those tests.
The primary goal of this change is to document RazorProjectEngineTestBase, now that is core test infrastructure used by many tests. In addition, RazorParserOptions.UseRoslynTokenizer to true by default. If needed, tests can provide configuration to set it to false.
RazorCodeDocument.Create(...) now has two overloads: One that takes the source, and one that takes the source + imports. Both overloads optionally take parser and codegen options. If options aren't provided, defaults will be used.
* Disable existing language server and project system if cohosting is on
* Configure source generator when in cohost mode
* Save razor documents to host outputs via a dedicated output object
* Extract the documents from the razor compiler instead of generating them directly.
* Update tests to use generator and skip failing tests

---------

Co-authored-by: David Wengier <[email protected]>
davidwengier and others added 20 commits March 26, 2025 11:46
Without this fix, depending on where in the line the cursor is, sometimes the first code action is "Extract to Code Behind", and sometimes its "Extract to New Component". The difference is pretty jarring. Before we had "Extract to New Component", there would simply be nothing offered sometimes, but now people see the lightbulb and muscle-memory their way to the wrong action.
Missed these on the first pass because they didn't fail. Hopefully I got the fixes right :D
There was some feedback on Reddit this morning about code action
ordering and Extract to Component being a little "in your face". See
https://www.reddit.com/r/Blazor/comments/1jjg3bh/am_i_doing_something_wrong_or_is_intellisense_and/mjq7jp3/?context=3
and the rest of the thread in general.

This PR:

* Makes sure Extract to Component always last, since it is offered
basically everywhere
* Makes sure Add Using and Fully Qualify are always first, since they're
the most likely code actions people want
* Ensures Extract to Code Behind is offered at `$$@code` since
previously there would be no light bulb in that situation, but now there
is and muscle-memory makes people hit it, which extract the code block
to a new component, which is not what they want.

Note that the ordering here is only among the Razor code actions. All C#
and Html code actions are always still after the Razor code actions,
even Extract to Component.
Avoids the SDK setting this to dotnet/dotnet automatically, which is generally not useful for customers.
* Add a suppressor for CS8618 on editor required component parameters
* Add suppressor tests

* Update to latest ms.cs.analyzer.testing:
- remove XunitVerifiers and use default verifier instead (see https://github.com/dotnet/roslyn-sdk/blob/main/src/Microsoft.CodeAnalysis.Testing/README.md#obsolete-packages)
- Remove unneeded .xunit package references

---------

Co-authored-by: Jan Jones <[email protected]>
Co-authored-by: Fred Silberberg <[email protected]>
Razor side of dotnet/roslyn#77715

* Remove `Microsoft.AspNetCore.Razor.ExternalAccess.RoslynWorkspace`, we
no longer ship an EA for Roslyn
* Add a new `Microsoft.VisualStudioCode.RazorExtension` and package that
will be put in `.razorExtension` in VS Code
* This will contain endpoints and LSP services that will be loaded in
the roslyn language server for VS Code.
* Remove `Microsoft.AspNetCore.Razor.ProjectEngineHost` as that layer of
separation is no longer needed

Copilot description below 

-----------------------------------------------------------------------------------
This pull request includes several changes to the `Razor` project,
focusing on project restructuring and dependency updates. The most
important changes include adding a new package version, renaming and
removing projects, and updating the `RazorWorkspaceListenerBase` class.

### Project restructuring:
*
[`Razor.sln`](diffhunk://#diff-2561476bb155e6bc1eba8028e5a49517b814ef36031e472459611e82a894b7baL109-R111):
Renamed `Microsoft.AspNetCore.Razor.ExternalAccess.RoslynWorkspace` to
`Microsoft.VisualStudioCode.RazorExtension` and removed
`Microsoft.AspNetCore.Razor.ProjectEngineHost` and its test project.
[[1]](diffhunk://#diff-2561476bb155e6bc1eba8028e5a49517b814ef36031e472459611e82a894b7baL109-R111)
[[2]](diffhunk://#diff-2561476bb155e6bc1eba8028e5a49517b814ef36031e472459611e82a894b7baL421-L428)
[[3]](diffhunk://#diff-2561476bb155e6bc1eba8028e5a49517b814ef36031e472459611e82a894b7baL594)
*
[`docs/ProjectsAndLayering.md`](diffhunk://#diff-719f03eb5eb40ba6369e5c7987571576b6a119f40667a0fffc63667c55f2928cL108-R108):
Updated documentation to reflect the new project name.

### Code updates:
*
[`RazorWorkspaceListenerBase.cs`](diffhunk://#diff-30acd8a866ed49034848667c8d9bc0def03390f1ffe494fae192cb667028b497R45-L60):
Replaced `_disposed` with `_disposeTokenSource.IsCancellationRequested`
for better disposal handling and added `_tagHelperResolver` and
`_projectChecksums` fields.
[[1]](diffhunk://#diff-30acd8a866ed49034848667c8d9bc0def03390f1ffe494fae192cb667028b497R45-L60)
[[2]](diffhunk://#diff-30acd8a866ed49034848667c8d9bc0def03390f1ffe494fae192cb667028b497L96-R95)
[[3]](diffhunk://#diff-30acd8a866ed49034848667c8d9bc0def03390f1ffe494fae192cb667028b497L176-R175)
[[4]](diffhunk://#diff-30acd8a866ed49034848667c8d9bc0def03390f1ffe494fae192cb667028b497L238-R267)

### Project removals:
* Removed `Microsoft.AspNetCore.Razor.ExternalAccess.RoslynWorkspace`
project and its related files.
[[1]](diffhunk://#diff-0accfb04f401ca4d46e88623878593903f55f5dd25885a95668f3f6d0dc98da9L1-L46)
[[2]](diffhunk://#diff-9ef9168b7e136073656fa86159c46abf47a068f616c37046de8facd164c10c64L1-L6)
[[3]](diffhunk://#diff-30acd8a866ed49034848667c8d9bc0def03390f1ffe494fae192cb667028b497R6-L30)
@ryzngard ryzngard enabled auto-merge April 11, 2025 20:46
@ryzngard ryzngard merged commit bb34eb8 into dotnet:release/vscode Apr 11, 2025
11 checks passed
@ryzngard ryzngard deleted the 2_72_27 branch April 11, 2025 22:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.