Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
19a8b22
Update main version
siramvikram Sep 24, 2025
3a99bc7
[automated] Update main version (#8651)
dotnet-policy-service[bot] Sep 24, 2025
bed5320
Update RoslynCopilot version to 18.0.797-alpha
dotnet-maestro-bot Sep 25, 2025
2c07c93
Update third party notices for currently shipped version
dibarbet Sep 25, 2025
85ac047
Update pipeline and packaging excludes
dibarbet Sep 25, 2025
0073d71
Add copilot setup steps
dibarbet Sep 25, 2025
43f9e66
Do not run legacy Razor tests in CI
dibarbet Sep 26, 2025
42328d0
Add additional commands
dibarbet Sep 26, 2025
386b5b9
Update third party notices for currently shipped version (#8653)
dibarbet Sep 26, 2025
4a93b55
Localization result of 386b5b92aa0a815a21323c3ab03fe3f4dc525a58.
dotnet-bot Sep 26, 2025
8d8bdcb
Localization result based on 386b5b92aa0a815a21323c3ab03fe3f4dc525a58…
dotnet-policy-service[bot] Sep 26, 2025
db2301b
Adds a new GH action to update the changelog
JoeRobich Sep 26, 2025
d6006e5
Simplify
JoeRobich Sep 26, 2025
6a817fc
Fix up logging
JoeRobich Sep 26, 2025
693b457
Update pipeline and packaging excludes (#8654)
dibarbet Sep 26, 2025
e09227b
Do not run legacy Razor tests in CI (#8656)
dibarbet Sep 26, 2025
faecd87
Localization result of 693b45765158dfb0373fe62be4911eea5dbf3224.
dotnet-bot Sep 26, 2025
9b7c853
Localization result based on 693b45765158dfb0373fe62be4911eea5dbf3224…
dotnet-policy-service[bot] Sep 26, 2025
97605c0
Add schedule triger
JoeRobich Sep 26, 2025
c8f1088
Localization result of e09227b2fa8b60bc12c6cfe0eb9806b356fef577.
dotnet-bot Sep 26, 2025
a221b5e
Localization result based on e09227b2fa8b60bc12c6cfe0eb9806b356fef577…
dotnet-policy-service[bot] Sep 26, 2025
84826a6
Add copilot setup steps (#8655)
dibarbet Sep 26, 2025
b18d601
Bump tar-fs from 2.1.3 to 2.1.4
dependabot[bot] Sep 26, 2025
a22ec37
Adds a new GH action to update the CHANGELOG (#8658)
JoeRobich Sep 26, 2025
2caaa18
Bump tar-fs from 2.1.3 to 2.1.4 (#8661)
dibarbet Sep 26, 2025
1acc61d
Fix GH action
JoeRobich Sep 26, 2025
7796a51
fetch tags
JoeRobich Sep 26, 2025
566fc0b
Fetch history
JoeRobich Sep 26, 2025
ce55aae
Fix GH action (#8662)
JoeRobich Sep 26, 2025
cc442ed
Install roslyn-tools
JoeRobich Sep 26, 2025
d78667e
Merge branch 'main' into dev/jorobich/update-changelog
JoeRobich Sep 26, 2025
045f77e
Install roslyn-tools (#8663)
JoeRobich Sep 26, 2025
cbb08d8
Update main CHANGELOG
JoeRobich Sep 26, 2025
6add789
[automated] Update main CHANGELOG (#8664)
JoeRobich Sep 26, 2025
f2a0fec
Bump xamlTools to 18.0.11016.94 and roslyn to 5.1.0-1.25477
Sep 29, 2025
c3dddc7
Update CHANGELOG.md
noiseonwires Sep 30, 2025
7f80de3
Update RoslynCopilot url to 18.0.797-alpha (#8652)
dibarbet Sep 30, 2025
3190fb8
Update xamlTools to 18.0.11016.94 and roslyn to 5.1.0-1.25477 (#8665)
dibarbet Sep 30, 2025
c737766
Bump xamlTools to 18.0.11023.10
Oct 1, 2025
fa9431c
Update xamlTools to 18.0.11023.10 (#8669)
JoeRobich Oct 1, 2025
7828c9d
Fix update changelog script
JoeRobich Oct 1, 2025
9f72bec
Merge branch 'main' into dev/jorobich/fix-changelog
JoeRobich Oct 1, 2025
8e2aa04
Fix update changelog script (#8671)
JoeRobich Oct 1, 2025
0edc544
Update main CHANGELOG
JoeRobich Oct 1, 2025
f050601
[automated] Update main CHANGELOG (#8672)
JoeRobich Oct 1, 2025
336e472
Add generated copilot instructions
dibarbet Oct 2, 2025
75ad9fb
add some additional notes
dibarbet Oct 2, 2025
963ce38
Fix up changelog
JoeRobich Oct 3, 2025
f97de5c
Fix up changelog (#8677)
JoeRobich Oct 3, 2025
7fa8fe5
Add copilot instructions (#8676)
dibarbet Oct 3, 2025
e2b7ae7
Bump Razor to 10.0.0-preview.25503.1
davidwengier Oct 6, 2025
144da8b
Add new telemetry fields (#8673)
RikkiGibson Oct 6, 2025
848e3a1
Add package.json completion for razor components
dibarbet Oct 6, 2025
1edab1f
Add completion for razor components in settings (#8680)
dibarbet Oct 6, 2025
985e4a6
Localization result of 1edab1f825ac6661b6afaad61c87c1259b9516a7.
dotnet-bot Oct 6, 2025
7bee9ed
Localization result based on 1edab1f825ac6661b6afaad61c87c1259b9516a7…
dotnet-policy-service[bot] Oct 6, 2025
1f110aa
Update CHANGELOG.md
davidwengier Oct 6, 2025
061a124
Update CHANGELOG.md
davidwengier Oct 6, 2025
c5eb404
Bump Razor to 10.0.0-preview.25503.1 (#8679)
davidwengier Oct 6, 2025
562d1d0
Update main CHANGELOG
JoeRobich Oct 8, 2025
c28be78
[automated] Update main CHANGELOG (#8683)
JoeRobich Oct 8, 2025
6c5b5f8
Localization result of c28be783482a70eaeafdfd5c1bc49cf1355d570c.
dotnet-bot Oct 8, 2025
4b0c8ac
Initial plan
Copilot Oct 8, 2025
da339ef
Rename create-pull-request job to bump-main-version in branch-snap wo…
Copilot Oct 8, 2025
fd32f01
Display a better name for the version bump step in the snap action (#…
dibarbet Oct 8, 2025
31b4b9f
Localization result of fd32f01ae7d984a1ba58ecf57a670496754fa685.
dotnet-bot Oct 8, 2025
b152761
Update main version
siramvikram Oct 8, 2025
5d7fb32
[automated] Update main version (#8690)
dotnet-policy-service[bot] Oct 8, 2025
a2463ec
Localization result based on c28be783482a70eaeafdfd5c1bc49cf1355d570c…
dotnet-policy-service[bot] Oct 8, 2025
aeaf328
Localization result of 5d7fb3215f261315d2155610b2433f41332572df.
dotnet-bot Oct 8, 2025
9be81f4
Merge branch 'main' into localization/fd32f01ae7d984a1ba58ecf57a67049…
JoeRobich Oct 8, 2025
bfc856f
Localization result based on fd32f01ae7d984a1ba58ecf57a670496754fa685…
dotnet-policy-service[bot] Oct 8, 2025
a0d2928
Merge branch 'main' into localization/5d7fb3215f261315d2155610b2433f4…
JoeRobich Oct 8, 2025
4ada4e3
Localization result based on 5d7fb3215f261315d2155610b2433f41332572df…
dotnet-policy-service[bot] Oct 8, 2025
0f0fcb0
[automated] Merge branch 'main' => 'prerelease' (#8689)
dotnet-policy-service[bot] Oct 8, 2025
68860e0
Localization result of 4ada4e385cbbe57dc48513ef2800d0fba4d07a79.
dotnet-bot Oct 12, 2025
ec9e7a0
Localization result based on 4ada4e385cbbe57dc48513ef2800d0fba4d07a79…
dotnet-policy-service[bot] Oct 12, 2025
33de9a4
Bump Razor to 10.0.0-preview.25512.6
davidwengier Oct 13, 2025
f7a6641
Update RoslynCopilot version to 18.0.898-alpha
dotnet-maestro-bot Oct 13, 2025
205937c
Update RoslynCopilot url to 18.0.898-alpha (#8696)
dibarbet Oct 13, 2025
a8f376a
Bump Razor to 10.0.0-preview.25512.6 (#8694)
dibarbet Oct 13, 2025
35fe1e0
Update Roslyn to 5.3.0-1.25513.2
dibarbet Oct 13, 2025
a15a562
Update Roslyn to 5.3.0-1.25513.2 (#8697)
dibarbet Oct 13, 2025
c08e7a2
Update roslyn
dibarbet Oct 14, 2025
9f4aabf
Update roslyn (#8700)
dibarbet Oct 15, 2025
aae85f8
Update main CHANGELOG
JoeRobich Oct 15, 2025
8848f19
Update changelog
JoeRobich Oct 15, 2025
95072b1
Update RoslynCopilot url to 18.0.904-alpha (#8699)
dotnet-maestro-bot Oct 15, 2025
28b16ed
Initial plan
Copilot Oct 15, 2025
1e178d6
Add isOptional field to packages and handle optional package failures
Copilot Oct 15, 2025
1ffa0e0
Fix linting formatting
Copilot Oct 15, 2025
66e15dd
[automated] Update main CHANGELOG (#8701)
dibarbet Oct 15, 2025
e0152c9
Add telemetry reporting for optional package installation failures
Copilot Oct 15, 2025
9c0d446
Handle optional components gracefully when files don't exist
Copilot Oct 15, 2025
f611c8a
Refactor isOptional to be part of ComponentInfo interface
Copilot Oct 15, 2025
bd12e03
Revert .gitignore change that added *.bak
Copilot Oct 15, 2025
60894e9
Thread ITelemetryReporter through OmniSharp components
Copilot Oct 15, 2025
e13d0b9
Refactor telemetry and make reporter parameters optional
Copilot Oct 15, 2025
bf75f6e
Mark the roslynCopilot dependency as optional
JoeRobich Oct 15, 2025
bd3a498
PR feedback
JoeRobich Oct 15, 2025
b4b22c1
Add logging for missing optional components and restore isOptional pr…
Copilot Oct 15, 2025
5f0208d
Remove isOptional from IPackage
JoeRobich Oct 15, 2025
74c8073
Remove isOptional from IPackage
JoeRobich Oct 15, 2025
504f412
Report more granular dependency installation results
JoeRobich Oct 15, 2025
2f7cebe
Fix up tests
JoeRobich Oct 15, 2025
6f63cf6
Fixup remaining usage of downloadAndInstallPackages
JoeRobich Oct 16, 2025
ef03174
Return installation status for already installed dependencies
JoeRobich Oct 16, 2025
bcc4d29
Support optional components (#8703)
JoeRobich Oct 16, 2025
97a37df
Bump Razor to 10.0.0-preview.25517.9
davidwengier Oct 20, 2025
2567c3a
Update CHANGELOG.md
davidwengier Oct 20, 2025
3a0c3f8
Bump Razor to 10.0.0-preview.25517.9 (#8706)
dibarbet Oct 20, 2025
04319cd
Initial plan
Copilot Oct 21, 2025
b7f42e2
Remove editor.formatOnType default configuration for C#
Copilot Oct 21, 2025
d387c3f
Remove default editor.formatOnType configuration for C# (#8709)
dibarbet Oct 21, 2025
bf6cba3
Update Debugger to v2.95.0 (#8710)
WardenGnaw Oct 21, 2025
9b40017
Update main version
siramvikram Oct 22, 2025
95547ee
[automated] Update main version (#8712)
dotnet-policy-service[bot] Oct 22, 2025
c32ee9a
[automated] Merge branch 'main' => 'prerelease' (#8713)
dotnet-policy-service[bot] Oct 22, 2025
8d1f05d
Update CHANGELOG for versions 2.95.x and 2.96.x
JoeRobich Oct 23, 2025
a70082f
Update CHANGELOG for version 2.97.x
JoeRobich Oct 23, 2025
1361426
Update version
JoeRobich Oct 23, 2025
c6cf97a
Initial plan
Copilot Oct 23, 2025
0724333
Update CHANGELOG for version 2.97.x (#8716)
JoeRobich Oct 23, 2025
6542196
Update CHANGELOG for versions 2.95.x and 2.96.x (#8715)
JoeRobich Oct 23, 2025
f6c1a6d
Add job dependency to ensure bump-main-version runs after check-script
Copilot Oct 23, 2025
59e2e0f
[WIP] Update job execution order for bump-main-version (#8717)
dibarbet Oct 23, 2025
5ea8d49
Add group ids to configuration groups
dibarbet Oct 24, 2025
fc30092
Add group ids to configuration groups (#8720)
dibarbet Oct 25, 2025
17c1662
Bump Razor to 10.0.0-preview.25524.10
davidwengier Oct 26, 2025
1f325d7
Bump Razor to 10.0.0-preview.25524.10 (#8721)
dibarbet Oct 27, 2025
f62153e
Use global.json with rollforward instead of pipeline versions
dibarbet Oct 27, 2025
cc1b26d
Update Roslyn to 5.3.0-1.25524.13
dibarbet Oct 27, 2025
a8a29fd
Update RoslynCopilot version to 18.3.72-alpha
dotnet-maestro-bot Oct 28, 2025
fe1e2ea
Update Roslyn to 5.3.0-1.25524.13 (#8723)
dibarbet Oct 28, 2025
16baa90
Update RoslynCopilot url to 18.3.72-alpha (#8726)
dibarbet Oct 28, 2025
7e40fad
Use global.json with rollforward instead of pipeline versions (#8722)
dibarbet Oct 28, 2025
c01fc83
Initial plan
Copilot Oct 28, 2025
38e9e76
Add version helper and update snap tasks for new versioning scheme
Copilot Oct 28, 2025
5d4858e
Update GitHub workflow and documentation for new versioning scheme
Copilot Oct 28, 2025
10b97f0
Update checkout action to v4 based on code review
Copilot Oct 28, 2025
10cdbbd
Address code review feedback: refactor version helpers and workflow
Copilot Oct 28, 2025
1c8a0b8
Simplify incrementVersion logic and remove workflow title
Copilot Oct 28, 2025
1a3eae2
Update target framework in Razor integration test (#8729)
RikkiGibson Oct 28, 2025
a485451
Update main CHANGELOG
JoeRobich Oct 29, 2025
f3e76d0
[automated] Update main CHANGELOG (#8730)
dibarbet Oct 29, 2025
981b1fe
Extract changelog helper and add stable release changelog entry
Copilot Oct 29, 2025
29c1583
Implement tiered versioning scheme for branch snapping workflow (#8728)
dibarbet Oct 30, 2025
a9a1b2d
Add instructions for creating private feedback
dibarbet Oct 30, 2025
65e5e08
Add instructions for creating private feedback (#8732)
dibarbet Oct 30, 2025
32287bd
Bump Razor to 10.0.0-preview.25552.2
davidwengier Nov 3, 2025
4d1d426
Revert "Update Debugger to v2.95.0" (#8736)
WardenGnaw Nov 4, 2025
0471839
Bump Razor to 10.0.0-preview.25552.2 (#8734)
dibarbet Nov 4, 2025
e33f757
Update VM image to macOS-15 in pipeline
JoeRobich Nov 4, 2025
6df3a51
Update VM image to macOS-15 in pipeline (#8741)
JoeRobich Nov 4, 2025
8f4dd87
Bump xamlTools to fix "Color" auto-completion and code navigation
Nov 4, 2025
1dec96f
Update CHANGELOG.md
Nov 4, 2025
e31551e
Update setting documentation for on auto insert
dibarbet Nov 4, 2025
5bfa79b
Update roslyn to 5.3.0-2.25553.6
dibarbet Nov 4, 2025
76aac85
Bump xamlTools to fix "Color" auto-completion and code navigation (#…
dibarbet Nov 4, 2025
ac57445
Update setting documentation for on auto insert (#8742)
dibarbet Nov 4, 2025
01dd584
Add integration test for restore of file-based programs (#8470)
RikkiGibson Nov 4, 2025
cc8b154
Update roslyn to 5.3.0-2.25553.6 (#8743)
dibarbet Nov 4, 2025
da6098b
Localization result of cc8b154b75b39c30a73e2053e31561dd63b6d4eb.
dotnet-bot Nov 4, 2025
0e111a2
Localization result based on cc8b154b75b39c30a73e2053e31561dd63b6d4eb…
dotnet-policy-service[bot] Nov 5, 2025
82366a5
Update main CHANGELOG
JoeRobich Nov 5, 2025
0f7243f
Update CHANGELOG.md
JoeRobich Nov 5, 2025
7e8cf5f
[automated] Update main CHANGELOG (#8747)
JoeRobich Nov 5, 2025
dfc4dcd
Merge branch 'prerelease' into merge/main-to-prerelease
dibarbet Nov 5, 2025
66d78cc
[automated] Merge branch 'main' => 'prerelease' (#8750)
dotnet-policy-service[bot] Nov 5, 2025
6849808
Merge remote-tracking branch 'upstream/prerelease' into merge_prerelease
dibarbet Nov 12, 2025
b1e174e
fix fbp tests
dibarbet Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Copilot Coding Agent Instructions for `vscode-csharp`

## Project Overview
- This is the official C# extension for Visual Studio Code, supporting C# development via OmniSharp and Roslyn-based language servers.
- The codebase is TypeScript/JavaScript, with some JSON and configuration files. It integrates with .NET components and external language servers.

## Architecture & Key Components
- **src/**: Main extension source. Key subfolders:
- `lsptoolshost/`: Hosts LSP (Language Server Protocol) logic, including Copilot integration (`copilot/`), Roslyn, and Razor support.
- `omnisharp/`: Protocols and logic for OmniSharp-based language server.
- `razor/`: Razor language support and configuration.
- **Copilot Integration**:
- `src/lsptoolshost/copilot/contextProviders.ts` and `relatedFilesProvider.ts` register C# context and related files providers for GitHub Copilot and Copilot Chat extensions.
- The Roslyn Copilot language server is managed as a downloadable component (see `package.json` and `CONTRIBUTING.md`).

## Developer Workflows
- **Build**: `npm run compile` (or use VS Code build task)
- **Test**: `npm test` (runs Jest tests)
- **Package**: `npm run package` (creates VSIX)
- **Dependencies**: Use `gulp installDependencies` to fetch .NET/LS components
- **Debugging**: See `docs/debugger/` for advanced .NET debugging, including runtime and external library debugging.
- **Roslyn Copilot Language Server**: To update/test, see instructions in `CONTRIBUTING.md` (triggers pipeline, checks logs for install, etc.)

## Infrastructure Tasks
- **Tasks Directory**: Build automation is in `tasks/` using Gulp. Key modules:
- `testTasks.ts`: Test orchestration for unit/integration tests across components
- `offlinePackagingTasks.ts`: VSIX packaging for different platforms (`vsix:release:package:*`)
- `componentUpdateTasks.ts`: Automated updates for Roslyn Copilot components
- `snapTasks.ts`: Version bumping and changelog management for releases
- `gitTasks.ts`: Git operations for automated PR creation and branch management
- **Adding New Tasks**: Create `.ts` file in `tasks/`, define `gulp.task()` functions, require in `gulpfile.ts`
- **Task Patterns**: Use `projectPaths.ts` for consistent path references, follow existing naming conventions (`test:integration:*`, `vsix:*`, etc.)

## Project Conventions & Patterns
- **TypeScript**: Follows strict linting (`.eslintrc.js`), including header/license blocks and camelCase filenames (except for interfaces and special files).
- **Component Downloads**: Language servers and debuggers are downloaded at runtime; see `package.json` for URLs and install logic.
- **Copilot Providers**: Use `registerCopilotContextProviders` and `registerCopilotRelatedFilesProvider` to extend Copilot context for C#.
- **Testing**: Prefer integration tests over unit tests for features. Structure follows:
- `test/lsptoolshost/integrationTests/` for Roslyn/LSP features
- `test/omnisharp/omnisharpIntegrationTests/` for OmniSharp features
- `test/razor/razorIntegrationTests/` for Razor features
- Use `test/*/integrationTests/integrationHelpers.ts` for test setup utilities
- Tests use Jest with VS Code test environment and require workspace test assets
- Run with `npm run test:integration:*` commands (e.g., `npm run test:integration:csharp`)

## Integration Points
- **GitHub Copilot**: Extension registers C# context and related files providers if Copilot/Copilot Chat extensions are present.
- **Roslyn Language Server**: Managed as a downloadable component, versioned in `package.json` and updated via pipeline.
- **OmniSharp**: Legacy support, also downloaded as a component.

## Examples
- To add a new Copilot context provider: see `src/lsptoolshost/copilot/contextProviders.ts`.
- To update Roslyn Copilot server: follow `CONTRIBUTING.md` > "Updating the Roslyn Copilot Language Server version".

## References
- [README.md](../README.md): User-facing overview and features
- [CONTRIBUTING.md](../CONTRIBUTING.md): Dev setup, packaging, and advanced workflows
- [package.json](../package.json): Component download logic, scripts
- [src/lsptoolshost/copilot/](../src/lsptoolshost/copilot/): Copilot integration logic

---
For any unclear or incomplete sections, please provide feedback to improve these instructions.
46 changes: 42 additions & 4 deletions .github/workflows/branch-snap.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
name: Branch snap
on:
workflow_dispatch
workflow_dispatch:
inputs:
releaseCandidate:
description: 'Is this a release candidate snap from main? (Will increment main version to be higher than next stable release)'
required: false
default: 'false'
type: boolean

permissions:
contents: write
Expand All @@ -12,24 +18,56 @@ jobs:
with:
configuration_file_path: '.config/snap-flow.json'

create-pull-request:
bump-main-version:
needs: check-script
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install dependencies
run: npm ci
- name: Update version.json
run: npx gulp incrementVersion
run: |
if [ "${{ github.event.inputs.releaseCandidate }}" = "true" ]; then
npx gulp incrementVersion --releaseCandidate=true
else
npx gulp incrementVersion
fi
- name: Create version update PR
uses: peter-evans/create-pull-request@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Update main version
title: '[automated] Update main version'
branch: merge/update-main-version

update-release-version:
needs: check-script
if: github.ref == 'refs/heads/prerelease'
runs-on: ubuntu-latest
steps:
- name: Check out merge branch
uses: actions/checkout@v4
with:
ref: merge/prerelease-to-release
fetch-depth: 0
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install dependencies
run: npm ci
- name: Update version.json for release
run: npx gulp updateVersionForStableRelease
- name: Create PR with version update
uses: peter-evans/create-pull-request@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Update version for stable release
branch: merge/prerelease-to-release
base: release
55 changes: 55 additions & 0 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# GitHub Copilot setup steps for the C# VS Code extension
# This file configures the environment for the GitHub Copilot coding agent

name: "Copilot Setup Steps"

# Automatically run the setup steps when they are changed to allow for easy validation, and
# allow manual testing through the repository's "Actions" tab
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml

jobs:
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read # Read access to the repository contents (required for checkout)

steps:
- name: Checkout code
uses: actions/checkout@v5

# Install Node.js (required for TypeScript compilation and npm packages)
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'

# Install .NET SDK (required for some build components and MSBuild tasks)
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'

# Install npm dependencies
- name: Install dependencies
run: npm ci

# Install gulp globally (required for build tasks)
- name: Install gulp
run: npm install -g gulp

# Install vsce (needed for packaging tasks)
- name: Install vsce
run: npm install -g vsce

# Install server dependencies (needed for integration tests and running)
- name: Install dependencies
run: gulp installDependencies


36 changes: 36 additions & 0 deletions .github/workflows/update-changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Update CHANGELOG
on:
workflow_dispatch:
schedule:
# Runs every Tuesday at 9 PM Pacific Time (5 AM UTC Wednesday)
- cron: '0 5 * * 3'

permissions:
contents: write
pull-requests: write

jobs:
update-changelog:
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install roslyn-tools
run: dotnet tool install -g Microsoft.RoslynTools --prerelease --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '20.x'
- name: Install dependencies
run: npm ci
- name: Update CHANGELOG
run: npx gulp updateChangelog
- name: Create update PR
uses: peter-evans/create-pull-request@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Update ${{ github.ref_name }} CHANGELOG
title: '[automated] Update ${{ github.ref_name }} CHANGELOG'
branch: merge/update-${{ github.ref_name }}-changelog
9 changes: 2 additions & 7 deletions .vscodeignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
!.razorDevKit/**
!.razoromnisharp/**
!.razorExtension/**
.rpt2_cache/**
.azuredevops/**
.config/**
.devcontainer/**
.github/**
Expand All @@ -22,8 +22,7 @@ src/**
tasks/**
test/**
__mocks__/**
jest.config.ts
baseJestConfig.ts
**/*.ts
.prettierignore
typings/**
vsix/**
Expand All @@ -40,17 +39,13 @@ CODEOWNERS
Directory.Build.props
global.json
NuGet.config
gulpfile.ts
!install.Lock
ISSUE_TEMPLATE
!README.md
!CHANGELOG.md
*.md
CONTRIBUTING.md
*.vscodeignore
*.yml
package-lock.json
package.json
tsconfig.json
version.json
wallaby.js
Expand Down
20 changes: 10 additions & 10 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,13 @@

# 2.93.x
* Bump Roslyn to 5.0.0-2.25472.11 (PR: [#8646](https://github.com/dotnet/vscode-csharp/pull/8646))
* Fix handling edits in types nested in reloadable types(PR: [#80360](https://github.com/dotnet/roslyn/pull/80360))
* Remove CS1998 warning entirely and remove dependent C# code fix providers(PR: [#80144](https://github.com/dotnet/roslyn/pull/80144))
* Only restore based on assets file changes if the actual content changed(PR: [#80341](https://github.com/dotnet/roslyn/pull/80341))
* Fix handling edits in types nested in reloadable types (PR: [#80360](https://github.com/dotnet/roslyn/pull/80360))
* Remove CS1998 warning entirely and remove dependent C# code fix providers (PR: [#80144](https://github.com/dotnet/roslyn/pull/80144))
* Only restore based on assets file changes if the actual content changed (PR: [#80341](https://github.com/dotnet/roslyn/pull/80341))
* Fix issue where build artifacts were added in source tree (PR: [#80324](https://github.com/dotnet/roslyn/pull/80324))
* Allow clients to send range ending at the line after the last line in the document(PR: [#80310](https://github.com/dotnet/roslyn/pull/80310))
* Don't show Razor diagnostics in Full Solution Analysis(PR: [#80296](https://github.com/dotnet/roslyn/pull/80296))
* Log project context in which document was found(PR: [#80202](https://github.com/dotnet/roslyn/pull/80202))
* Allow clients to send range ending at the line after the last line in the document (PR: [#80310](https://github.com/dotnet/roslyn/pull/80310))
* Don't show Razor diagnostics in Full Solution Analysis (PR: [#80296](https://github.com/dotnet/roslyn/pull/80296))
* Log project context in which document was found (PR: [#80202](https://github.com/dotnet/roslyn/pull/80202))
* Bump Razor to 10.0.0-preview.25472.6 (PR: [#8639](https://github.com/dotnet/vscode-csharp/pull/8639))
* Support view components in Go To Def (PR: [#12222](https://github.com/dotnet/razor/pull/12222))
* Redirect the older named assembly too (PR: [#12239](https://github.com/dotnet/razor/pull/12239))
Expand All @@ -126,10 +126,10 @@

# 2.91.x
* Bump Roslyn to 5.0.0-2.25458.10 (PR: [#8588](https://github.com/dotnet/vscode-csharp/pull/8588))
* Move brace adjustment on enter to on auto insert in LSP(PR: [#80075](https://github.com/dotnet/roslyn/pull/80075))
* Avoid throwing when obsolete overload of GetUpdatesAsync is invoked with empty array(PR: [#80161](https://github.com/dotnet/roslyn/pull/80161))
* Bump patch version of MSBuild packages(PR: [#80156](https://github.com/dotnet/roslyn/pull/80156))
* Include category in Hot Reload log messages(PR: [#80160](https://github.com/dotnet/roslyn/pull/80160))
* Move brace adjustment on enter to on auto insert in LSP (PR: [#80075](https://github.com/dotnet/roslyn/pull/80075))
* Avoid throwing when obsolete overload of GetUpdatesAsync is invoked with empty array (PR: [#80161](https://github.com/dotnet/roslyn/pull/80161))
* Bump patch version of MSBuild packages (PR: [#80156](https://github.com/dotnet/roslyn/pull/80156))
* Include category in Hot Reload log messages (PR: [#80160](https://github.com/dotnet/roslyn/pull/80160))
* Store client's version for open docs (PR: [#80064](https://github.com/dotnet/roslyn/pull/80064))
* Pass global properties and the binary log path via RPC to BuildHost (PR: [#80094](https://github.com/dotnet/roslyn/pull/80094))
* Don't switch runtime / design time solutions if cohosting is on (PR: [#80065](https://github.com/dotnet/roslyn/pull/80065))
Expand Down
16 changes: 13 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ To debug unit tests locally, press <kbd>F5</kbd> in VS Code with the "Launch Tes
To debug integration tests
1. Import the `csharp-test-profile.code-profile` in VSCode to setup a clean profile in which to run integration tests. This must be imported at least once to use the launch configurations (ensure the extensions are updated in the profile).
2. Open any integration test file and <kbd>F5</kbd> launch with the correct launch configuration selected.
- For integration tests inside `test/lsptoolshost`, use either `Launch Current File slnWithCsproj Integration Tests` or `[DevKit] Launch Current File slnWithCsproj Integration Tests` (to run tests using C# + C# Dev Kit)
- For integration tests inside `test/lsptoolshost`, use either `[Roslyn] Run Current File Integration Test` or `[DevKit] Launch Current File Integration Tests` (to run tests using C# + C# Dev Kit)
- For integration tests inside `test/razor`, use `[Razor] Run Current File Integration Test`
- For integration tests inside `test/omnisharp`, use one of the `Omnisharp:` current file profiles
- For integration tests inside `test/omnisharp`, use one of the `[O#] Run Current File Integration Test` current file profiles

These will allow you to actually debug the test, but the 'Razor integration tests' configuration does not.

Expand Down Expand Up @@ -196,15 +196,25 @@ More details for this are [here] (https://devdiv.visualstudio.com/DevDiv/_git/Vi
## Snapping for releases
Extension releases on the marketplace are done from the prerelease and release branches (corresponding to the prerelease or release version of the extension). Code flows from main -> prerelease -> release. Every week we snap main -> prerelease. Monthly, we snap prerelease -> release.

### Versioning Scheme
The extension follows a specific versioning scheme for releases:
- **Prerelease versions**: Use standard minor version increments (e.g., 2.74, 2.75, 2.76...)
- **Stable release versions**: Use the next tens version (e.g., 2.74 prerelease becomes 2.80 stable)
- **Main branch after RC snap**: Jumps to one above the next stable version (e.g., if snapping 2.74 as RC, main becomes 2.81)

### Snap main -> prerelease
The snap is done via the "Branch snap" github action. To run the snap from main -> prerelease, run the action via "Run workflow" and choose main as the base branch.
![branch snap action](./docs/images/main_snap.png)

When running the snap action, you can optionally check the "Is this a release candidate snap" checkbox. If checked:
- The prerelease branch will receive the snapped code with the current version (e.g., 2.74)
- The main branch version will be updated to be higher than the next stable release (e.g., 2.81, since the next stable would be 2.80)

This will generate two PRs that must be merged. One merging the main branch into prerelease, and the other bumps the version in main.
![generated prs](./docs/images/generated_prs.png)

### Snap prerelease -> release
To snap from prerelease to release, run the same action but use **prerelease** as the workflow branch. This will generate a single PR merging from prerelease to release.
To snap from prerelease to release, run the same action but use **prerelease** as the workflow branch. This will generate a PR merging from prerelease to release, and automatically update the version to the next stable release version (e.g., 2.74 -> 2.80) on the merge branch before the PR is merged.

### Marketplace release
The marketplace release is managed by an internal AzDo pipeline. On the pipeline page, hit run pipeline. This will bring up the pipeline parameters to fill out:
Expand Down
14 changes: 12 additions & 2 deletions SUPPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ If you encounter issues with document classification (e.g., incorrect syntax hig
For issues with diagnostics, please provide values of the background analysis scope options, `dotnet.backgroundAnalysis.analyzerDiagnosticsScope` and `dotnet.backgroundAnalysis.compilerDiagnosticsScope`
![background analysis settings](./docs/images/background_analysis.png)

#### Language server crashing
### Language server crashing

If the language server crashes, general logs are often helpful for diagnosing the issue. However, in some cases, logs alone may not provide enough information and we may need a crash dump. Follow these steps to collect a crash dump:
- Set the `dotnet.server.crashDumpPath` setting in VSCode to a user-writable folder where crash dumps can be saved.
Expand All @@ -117,7 +117,7 @@ If the language server crashes, general logs are often helpful for diagnosing th
> [!WARNING]
> The dump can contain detailed information on the project - generally we will provide an email so that it can be shared privately

#### Recording a language server trace
### Recording a language server trace

When investigating performance issues, we may request a performance trace of the language server to diagnose what is causing the problem. These are typically taken via [dotnet-trace](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-trace) (a cross platform tool to collect performance traces of .NET processes)

Expand All @@ -132,6 +132,16 @@ The C# extension has a built in command, `csharp.recordLanguageServerTrace` to h
![alt text](docs/images/recordTraceTerminal.png)
5. Share the trace. Note that the trace may contain PII, so generally we will provide an email or other confidential way to share the trace with us.

### Sharing information privately
Detailed logs, dumps, traces, and other information can sometimes contain private information that you do not wish to share publicly. Instead, you can utilize the Developer Community page to share these privately to Microsoft.

1. Go to https://developercommunity.visualstudio.com/dotnet/report
2. Fill in the issue title, reference the GitHub issue in the description, and upload the attachments
![developer community feedback page](docs/images/developer_community_feedback.png)
3. Once created, a comment on the GitHub issue a link to the new Developer Community ticket.



## Microsoft Support Policy

Support for this project is limited to the resources listed above.
Loading
Loading