Skip to content

Commit 6d57f57

Browse files
authored
Fix issue with settings not being respected in release notes (microsoft#205852)
Settings with values separated are not respected in release notes Fixes microsoft#205678 Also fixes microsoft#205742
1 parent 414f2cd commit 6d57f57

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

src/vs/workbench/contrib/markdown/browser/markdownSettingRenderer.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ import { IContextMenuService } from 'vs/platform/contextview/browser/contextView
1414
import { ActionViewItem } from 'vs/base/browser/ui/actionbar/actionViewItems';
1515
import { IAction } from 'vs/base/common/actions';
1616
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
17+
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
1718

18-
const codeSettingRegex = /^<code (codesetting)="([^\s"\:]+)(?::([^\s"]+))?">/;
19-
const codeFeatureRegex = /^<span (codefeature)="([^\s"\:]+)(?::([^\s"]+))?">/;
19+
const codeSettingRegex = /^<code (codesetting)="([^\s"\:]+)(?::([^"]+))?">/;
20+
const codeFeatureRegex = /^<span (codefeature)="([^\s"\:]+)(?::([^"]+))?">/;
2021

2122
export class SimpleSettingRenderer {
2223
private _defaultSettings: DefaultSettings;
@@ -28,7 +29,8 @@ export class SimpleSettingRenderer {
2829
@IConfigurationService private readonly _configurationService: IConfigurationService,
2930
@IContextMenuService private readonly _contextMenuService: IContextMenuService,
3031
@IPreferencesService private readonly _preferencesService: IPreferencesService,
31-
@ITelemetryService private readonly _telemetryService: ITelemetryService
32+
@ITelemetryService private readonly _telemetryService: ITelemetryService,
33+
@IClipboardService private readonly _clipboardService: IClipboardService
3234
) {
3335
this._defaultSettings = new DefaultSettings([], ConfigurationTarget.USER);
3436
}
@@ -258,6 +260,17 @@ export class SimpleSettingRenderer {
258260
}
259261
});
260262

263+
actions.push({
264+
class: undefined,
265+
enabled: true,
266+
id: 'copySettingId',
267+
tooltip: nls.localize('copySettingId', "Copy Setting ID"),
268+
label: nls.localize('copySettingId', "Copy Setting ID"),
269+
run: () => {
270+
this._clipboardService.writeText(settingId);
271+
}
272+
});
273+
261274
return actions;
262275
}
263276

src/vs/workbench/contrib/markdown/test/browser/markdownSettingRenderer.test.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ suite('Markdown Setting Renderer Test', () => {
6161
preferencesService = <IPreferencesService>{};
6262
contextMenuService = <IContextMenuService>{};
6363
Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration(configuration);
64-
settingRenderer = new SimpleSettingRenderer(configurationService, contextMenuService, preferencesService, { publicLog2: () => { } } as any);
64+
settingRenderer = new SimpleSettingRenderer(configurationService, contextMenuService, preferencesService, { publicLog2: () => { } } as any, { writeText: async () => { } } as any);
6565
});
6666

6767
suiteTeardown(() => {
@@ -82,7 +82,7 @@ suite('Markdown Setting Renderer Test', () => {
8282
test('actions with no value', () => {
8383
const uri = URI.parse(settingRenderer.settingToUriString('example.booleanSetting'));
8484
const actions = settingRenderer.getActions(uri);
85-
assert.strictEqual(actions?.length, 1);
85+
assert.strictEqual(actions?.length, 2);
8686
assert.strictEqual(actions[0].label, 'View "Example: Boolean Setting" in Settings');
8787
});
8888

@@ -91,7 +91,7 @@ suite('Markdown Setting Renderer Test', () => {
9191
const uri = URI.parse(settingRenderer.settingToUriString('example.stringSetting', 'three'));
9292

9393
const verifyOriginalState = (actions: IAction[] | undefined): actions is IAction[] => {
94-
assert.strictEqual(actions?.length, 2);
94+
assert.strictEqual(actions?.length, 3);
9595
assert.strictEqual(actions[0].label, 'Set "Example: String Setting" to "three"');
9696
assert.strictEqual(actions[1].label, 'View in Settings');
9797
assert.strictEqual(configurationService.getValue('example.stringSetting'), 'two');
@@ -104,9 +104,10 @@ suite('Markdown Setting Renderer Test', () => {
104104
await actions[0].run();
105105
assert.strictEqual(configurationService.getValue('example.stringSetting'), 'three');
106106
const actionsUpdated = settingRenderer.getActions(uri);
107-
assert.strictEqual(actionsUpdated?.length, 2);
107+
assert.strictEqual(actionsUpdated?.length, 3);
108108
assert.strictEqual(actionsUpdated[0].label, 'Restore value of "Example: String Setting"');
109109
assert.strictEqual(actions[1].label, 'View in Settings');
110+
assert.strictEqual(actions[2].label, 'Copy Setting ID');
110111
assert.strictEqual(configurationService.getValue('example.stringSetting'), 'three');
111112

112113
// Restore the value

0 commit comments

Comments
 (0)