Skip to content

Commit fc1b074

Browse files
authored
Merge branch 'master' into relative-runsettings
2 parents 9b740bd + 93be0a7 commit fc1b074

File tree

11 files changed

+242
-84
lines changed

11 files changed

+242
-84
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ jobs:
3535
- name: Compile
3636
run: npm run compile
3737

38-
- name: Build extension package
39-
run: gulp 'vsix:release:package'
38+
- name: Build platform-neutral extension package
39+
run: gulp 'vsix:release:package:platform-neutral'
4040

4141
- name: Run unit and integration tests
4242
run: |
@@ -45,3 +45,6 @@ jobs:
4545
env:
4646
CODE_VERSION: 1.45.0
4747
DISPLAY: :99.0
48+
49+
- name: Build platform-specific extension package
50+
run: gulp 'vsix:release:package:platform-specific'

.github/workflows/release-ci.yml

Lines changed: 60 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,76 @@ jobs:
2222
npm i -g gulp
2323
2424
- name: Build extension package
25-
run: gulp 'vsix:release:package'
25+
run: gulp 'vsix:release:package:platform-specific'
2626

2727
- name: Run release tests
2828
run: npm run test:release
2929

3030
- name: Get package version
3131
run: node -e "console.log('VERSION=' + require('./package.json').version)" >> $GITHUB_ENV
3232

33-
- name: Upload release build
34-
id: upload-release-asset
33+
- name: Upload release build (darwin-arm64)
34+
id: upload-release-asset-darwin-arm64
3535
uses: actions/upload-release-asset@v1
3636
env:
3737
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3838
with:
3939
upload_url: ${{ github.event.release.upload_url }}
40-
asset_path: ./csharp-${{ env.VERSION }}.vsix
41-
asset_name: csharp-${{ env.VERSION }}.vsix
40+
asset_path: ./csharp-${{ env.VERSION }}-darwin-arm64.vsix
41+
asset_name: csharp-${{ env.VERSION }}-darwin-arm64.vsix
42+
asset_content_type: application/zip
43+
44+
- name: Upload release build (darwin-x64)
45+
id: upload-release-asset-darwin-x64
46+
uses: actions/upload-release-asset@v1
47+
env:
48+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49+
with:
50+
upload_url: ${{ github.event.release.upload_url }}
51+
asset_path: ./csharp-${{ env.VERSION }}-darwin-x64.vsix
52+
asset_name: csharp-${{ env.VERSION }}-darwin-x64.vsix
53+
asset_content_type: application/zip
54+
55+
- name: Upload release build (linux-x64)
56+
id: upload-release-asset-linux-x64
57+
uses: actions/upload-release-asset@v1
58+
env:
59+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
60+
with:
61+
upload_url: ${{ github.event.release.upload_url }}
62+
asset_path: ./csharp-${{ env.VERSION }}-linux-x64.vsix
63+
asset_name: csharp-${{ env.VERSION }}-linux-x64.vsix
64+
asset_content_type: application/zip
65+
66+
- name: Upload release build (win32-arm64)
67+
id: upload-release-asset-win32-arm64
68+
uses: actions/upload-release-asset@v1
69+
env:
70+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71+
with:
72+
upload_url: ${{ github.event.release.upload_url }}
73+
asset_path: ./csharp-${{ env.VERSION }}-win32-arm64.vsix
74+
asset_name: csharp-${{ env.VERSION }}-win32-arm64.vsix
75+
asset_content_type: application/zip
76+
77+
- name: Upload release build (win32-ia32)
78+
id: upload-release-asset-win32-ia32
79+
uses: actions/upload-release-asset@v1
80+
env:
81+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
82+
with:
83+
upload_url: ${{ github.event.release.upload_url }}
84+
asset_path: ./csharp-${{ env.VERSION }}-win32-ia32.vsix
85+
asset_name: csharp-${{ env.VERSION }}-win32-ia32.vsix
86+
asset_content_type: application/zip
87+
88+
- name: Upload release build (win32-x64)
89+
id: upload-release-asset-win32-x64
90+
uses: actions/upload-release-asset@v1
91+
env:
92+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
93+
with:
94+
upload_url: ${{ github.event.release.upload_url }}
95+
asset_path: ./csharp-${{ env.VERSION }}-win32-x64.vsix
96+
asset_name: csharp-${{ env.VERSION }}-win32-x64.vsix
4297
asset_content_type: application/zip

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,13 @@
1212
* As a workaround, make an edit within the file before using Rename Symbol.
1313

1414
## 1.23.17 (Not released yet)
15+
* Greatly improved download experience: when the C# extension is downloaded from the VS Code Marketplace, it will include all of its dependencies already ([#4775](https://github.com/OmniSharp/omnisharp-vscode/issues/4775))
1516
* Fix decompilation authorization check ([#4817](https://github.com/OmniSharp/omnisharp-vscode/issues/4817), PR: [#4821](https://github.com/OmniSharp/omnisharp-vscode/pull/4821))
1617
* Fix typo in Readme.md (PR: [#4819](https://github.com/OmniSharp/omnisharp-vscode/pull/4819))
18+
* Debugger changes:
19+
* The debugger itself runs on .NET 6 RC2
20+
* Enhanced support for launchSettings.json ([#3121](https://github.com/OmniSharp/omnisharp-vscode/issues/3121))
21+
* Fixed process listing on Windows 11 (PR: [#4848](https://github.com/OmniSharp/omnisharp-vscode/pull/4848)) _(Many thanks to [@eternalphane](https://github.com/eternalphane))_
1722

1823
## 1.23.16 (Oct 12th, 2021)
1924
* Show decompilation authorization once per install. ([#3982](https://github.com/OmniSharp/omnisharp-vscode/issues/3982), PR: [#4760](https://github.com/OmniSharp/omnisharp-vscode/pull/4760))

debugger-launchjson.md

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,26 @@ Environment variables may be passed to your program using this schema:
108108
"myVariableName":"theValueGoesHere"
109109
}
110110

111-
NOTE: Environment variables can also be configured through a `${cwd}/Properties/launchSettings.json` file, which is useful for environment variables that should be set in all development scenarios -- when the project is started from the command line (`dotnet run`), from Visual Studio Code, or Visual Studio.
111+
## Console (terminal) window
112+
113+
The `"console"` setting controls what console (terminal) window the target app is launched into. It can be set to any of these values --
114+
115+
`"internalConsole"` (default) : the target process's console output (stdout/stderr) goes to the VS Code Debug Console. This is useful for executables that take their input from the network, files, etc. But this does **NOT** work for applications that want to read from the console (ex: `Console.ReadLine`).
116+
117+
`"integratedTerminal"` : the target process will run inside [VS Code's integrated terminal](https://code.visualstudio.com/docs/editor/integrated-terminal). Click the 'Terminal' tab in the tab group beneath the editor to interact with your application. Alternatively add `"internalConsoleOptions": "neverOpen"` to make it so that the default foreground tab is the terminal tab.
118+
119+
`"externalTerminal"`: the target process will run inside its own external terminal.
120+
121+
## launchSettings.json support
112122

113-
Example Properties/launchSettings.json file:
123+
In addition to launch.json, launch options can be configured through a {cwd}/Properties/launchSettings.json file. The advantage of
124+
launchSettings.json is that it allows settings to be shared between Visual Studio Code, full Visual Studio, and `dotnet run`.
125+
126+
To configure which launchSettings.json profile to use (or to prevent it from being used), set the `launchSettingsProfile` option:
127+
128+
"launchSettingsProfile": "ProfileNameGoesHere"
129+
130+
Which would then, for example, use `myVariableName` from this example launchSettings.json file:
114131

115132
```json
116133
{
@@ -125,15 +142,17 @@ Example Properties/launchSettings.json file:
125142
}
126143
```
127144

128-
## Console (terminal) window
129-
130-
The `"console"` setting controls what console (terminal) window the target app is launched into. It can be set to any of these values --
145+
If `launchSettingsProfile` is NOT specified, the first profile with `"commandName": "Project"` will be used.
131146

132-
`"internalConsole"` (default) : the target process's console output (stdout/stderr) goes to the VS Code Debug Console. This is useful for executables that take their input from the network, files, etc. But this does **NOT** work for applications that want to read from the console (ex: `Console.ReadLine`).
147+
If `launchSettingsProfile` is set to null/an empty string, then Properties/launchSettings.json will be ignored.
133148

134-
`"integratedTerminal"` : the target process will run inside [VS Code's integrated terminal](https://code.visualstudio.com/docs/editor/integrated-terminal). Click the 'Terminal' tab in the tab group beneath the editor to interact with your application. Alternatively add `"internalConsoleOptions": "neverOpen"` to make it so that the default foreground tab is the terminal tab.
135-
136-
`"externalTerminal"`: the target process will run inside its own external terminal.
149+
Restrictions:
150+
1. The launchSettings.json file must be in {cwd}/Properties/launchSettings.json
151+
2. Only profiles with `"commandName": "Project"` are supported.
152+
3. Only `environmentVariables`, `applicationUrl` and `commandLineArgs` properties are supported
153+
4. Settings in launch.json will take precedence over settings in launchSettings.json, so for example, if `args`
154+
is already set to something other than an empty string/array in `launch.json` then the launchSettings.json
155+
content will be ignored.
137156

138157
## Source File Map
139158
You can optionally configure how source files are opened by providing a map using this form:

package.json

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,7 @@
217217
{
218218
"id": "Debugger",
219219
"description": ".NET Core Debugger (Windows / x64)",
220-
"url": "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/b490d6a6de4ec50e2bd22f690489ef6c/coreclr-debug-win7-x64.zip",
221-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-win7-x64.zip",
220+
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-23-17/coreclr-debug-win7-x64.zip",
222221
"installPath": ".debugger",
223222
"platforms": [
224223
"win32"
@@ -227,13 +226,12 @@
227226
"x86_64"
228227
],
229228
"installTestPath": "./.debugger/vsdbg-ui.exe",
230-
"integrity": "9EA16813520F5E74535739DAD1E9E72465D7F496A6C8465AEA3EF57C86CF320C"
229+
"integrity": "DEE5667896B7399AB0AAA1A1CC10C6FB2B7D8F47AB17C12E40ABA97677AB90D3"
231230
},
232231
{
233232
"id": "Debugger",
234233
"description": ".NET Core Debugger (Windows / ARM64)",
235-
"url": "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/82a75a9c89a2e5087908651b602d7d01/coreclr-debug-win10-arm64.zip",
236-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-win10-arm64.zip",
234+
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-23-17/coreclr-debug-win10-arm64.zip",
237235
"installPath": ".debugger",
238236
"platforms": [
239237
"win32"
@@ -242,13 +240,12 @@
242240
"arm64"
243241
],
244242
"installTestPath": "./.debugger/vsdbg-ui.exe",
245-
"integrity": "FD9A1B46DA9C7226828595826F6CE215DF769C5111D02DB567494A1EB095E155"
243+
"integrity": "30BF86A94A1362465B539DC42995BF2E066F0656B2FF53D259B9ADB2A50DBF3E"
246244
},
247245
{
248246
"id": "Debugger",
249247
"description": ".NET Core Debugger (macOS / x64)",
250-
"url": "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/c1122f7141735472d9583c1124024c55/coreclr-debug-osx-x64.zip",
251-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-osx-x64.zip",
248+
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-23-17/coreclr-debug-osx-x64.zip",
252249
"installPath": ".debugger/x86_64",
253250
"platforms": [
254251
"darwin"
@@ -262,13 +259,12 @@
262259
"./vsdbg"
263260
],
264261
"installTestPath": "./.debugger/x86_64/vsdbg-ui",
265-
"integrity": "554436E48F02C994BD05AD365EFFF9E242710C49CD2BDE695DBABD222098E323"
262+
"integrity": "EAFB7B0F3489B9F2D89C2BC4CB855729398D25D6F2A6587913732018B9BBB362"
266263
},
267264
{
268265
"id": "Debugger",
269266
"description": ".NET Core Debugger (macOS / arm64)",
270-
"url": "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/96a88189c7904a517f3bb59b2dba8bd1/coreclr-debug-osx-arm64.zip",
271-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-osx-arm64.zip",
267+
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-23-17/coreclr-debug-osx-arm64.zip",
272268
"installPath": ".debugger/arm64",
273269
"platforms": [
274270
"darwin"
@@ -281,13 +277,12 @@
281277
"./vsdbg"
282278
],
283279
"installTestPath": "./.debugger/arm64/vsdbg-ui",
284-
"integrity": "40395770CDBA25FD67D2A5B8630F16146B293EAE8A07205DF1646D1805F87384"
280+
"integrity": "AB272AD7F519FA1564A3C9AA7052D5ADD972A6DDAD7A2B6CA0DF775A7F83704C"
285281
},
286282
{
287283
"id": "Debugger",
288284
"description": ".NET Core Debugger (linux / ARM)",
289-
"url": "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/f346e34bb51c0595cf7f4727cac76907/coreclr-debug-linux-arm.zip",
290-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-linux-arm.zip",
285+
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-23-17/coreclr-debug-linux-arm.zip",
291286
"installPath": ".debugger",
292287
"platforms": [
293288
"linux"
@@ -300,13 +295,12 @@
300295
"./vsdbg"
301296
],
302297
"installTestPath": "./.debugger/vsdbg-ui",
303-
"integrity": "4283432742665B400B1807A76770475B2CA43895C7E7870D85E34C3ADF4D1B3F"
298+
"integrity": "C03F6DBE1F84717483C016F67AC92C56391798BAB4EE41D58521588D5EDF1ED0"
304299
},
305300
{
306301
"id": "Debugger",
307302
"description": ".NET Core Debugger (linux / ARM64)",
308-
"url": "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/7a723bfbda6d196c52084226b6835b36/coreclr-debug-linux-arm64.zip",
309-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-linux-arm64.zip",
303+
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-23-17/coreclr-debug-linux-arm64.zip",
310304
"installPath": ".debugger",
311305
"platforms": [
312306
"linux"
@@ -319,13 +313,12 @@
319313
"./vsdbg"
320314
],
321315
"installTestPath": "./.debugger/vsdbg-ui",
322-
"integrity": "7C266186F481159BFC40406BF4CE479FC4144179C69128B01CD3E1E3062E8AB4"
316+
"integrity": "4C3564FE7FBD7403E7B987C44FC4B6E532D177BF179321595D892D7239D1293D"
323317
},
324318
{
325319
"id": "Debugger",
326320
"description": ".NET Core Debugger (linux / x64)",
327-
"url": "https://download.visualstudio.microsoft.com/download/pr/49f44239-bd47-4fb5-91be-4c91d7638fff/dd019b4c839f458596e26bfcfe6a3e7f/coreclr-debug-linux-x64.zip",
328-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-23-14/coreclr-debug-linux-x64.zip",
321+
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-23-17/coreclr-debug-linux-x64.zip",
329322
"installPath": ".debugger",
330323
"platforms": [
331324
"linux"
@@ -338,7 +331,7 @@
338331
"./vsdbg"
339332
],
340333
"installTestPath": "./.debugger/vsdbg-ui",
341-
"integrity": "F389283020F345DA4BAC1067E9D8E5B28BD4306338C651075D07285D0600BE30"
334+
"integrity": "3CF4619DB967FA71FE04615D1A171B9C03E6CA97335BAC3C0E04116490B73336"
342335
},
343336
{
344337
"id": "Razor",
@@ -1246,6 +1239,18 @@
12461239
"description": "Attribute 'externalConsole' is deprecated, use 'console' instead.",
12471240
"default": false
12481241
},
1242+
"launchSettingsProfile": {
1243+
"anyOf": [
1244+
{
1245+
"type": "string"
1246+
},
1247+
{
1248+
"type": "null"
1249+
}
1250+
],
1251+
"description": "If specified, indicates the name of the profile in {cwd}/Properties/launchSettings.json to use. This is ignored if launchSettings.json is not found. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.",
1252+
"default": "<insert-profile-name>"
1253+
},
12491254
"sourceFileMap": {
12501255
"type": "object",
12511256
"description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'",
@@ -2352,6 +2357,18 @@
23522357
"description": "Attribute 'externalConsole' is deprecated, use 'console' instead.",
23532358
"default": false
23542359
},
2360+
"launchSettingsProfile": {
2361+
"anyOf": [
2362+
{
2363+
"type": "string"
2364+
},
2365+
{
2366+
"type": "null"
2367+
}
2368+
],
2369+
"description": "If specified, indicates the name of the profile in {cwd}/Properties/launchSettings.json to use. This is ignored if launchSettings.json is not found. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.",
2370+
"default": "<insert-profile-name>"
2371+
},
23552372
"sourceFileMap": {
23562373
"type": "object",
23572374
"description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'",

snippets/csharp.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@
2929
],
3030
"description": "Attribute using recommended pattern"
3131
},
32+
"Disable format": {
33+
"prefix": "disableformat",
34+
"body": [
35+
"#pragma warning disable format",
36+
"$0${TM_SELECTED_TEXT}",
37+
"#pragma warning restore format"
38+
],
39+
"description": "disable format of dotnet code"
40+
},
3241
"Checked block": {
3342
"prefix": "checked",
3443
"body": [

src/tools/OptionsSchema.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,18 @@
323323
"description": "Attribute 'externalConsole' is deprecated, use 'console' instead.",
324324
"default": false
325325
},
326+
"launchSettingsProfile": {
327+
"anyOf": [
328+
{
329+
"type": "string"
330+
},
331+
{
332+
"type": "null"
333+
}
334+
],
335+
"description": "If specified, indicates the name of the profile in {cwd}/Properties/launchSettings.json to use. This is ignored if launchSettings.json is not found. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.",
336+
"default": "<insert-profile-name>"
337+
},
326338
"sourceFileMap": {
327339
"type": "object",
328340
"description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'",

0 commit comments

Comments
 (0)