From a7ee3b0538a383b6982847644245452fbc73b3a5 Mon Sep 17 00:00:00 2001 From: David Munoz Date: Tue, 14 May 2019 23:07:04 -0500 Subject: [PATCH 1/4] "Changed the regexp to take numbers into account when removing the dot separator for the setting key --- .../workbench/contrib/preferences/browser/settingsTreeModels.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts b/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts index ad081f0b797..dd9de62f162 100644 --- a/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts +++ b/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts @@ -405,7 +405,7 @@ export function settingKeyToDisplayFormat(key: string, groupId = ''): { category function wordifyKey(key: string): string { return key - .replace(/\.([a-z])/g, (match, p1) => ` › ${p1.toUpperCase()}`) + .replace(/\.([a-z0-9])/g, (match, p1) => ` › ${p1.toUpperCase()}`) .replace(/([a-z])([A-Z])/g, '$1 $2') // fooBar => foo Bar .replace(/^[a-z]/g, match => match.toUpperCase()) // foo => Foo .replace(/\b\w+\b/g, match => { From f74249a147579fb46d479ba049e6def5941f0c18 Mon Sep 17 00:00:00 2001 From: David Munoz Date: Thu, 16 May 2019 22:46:32 -0500 Subject: [PATCH 2/4] Handing numbers in settings keys to display format --- .../contrib/preferences/browser/settingsTreeModels.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts b/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts index dd9de62f162..9444e859426 100644 --- a/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts +++ b/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts @@ -405,10 +405,10 @@ export function settingKeyToDisplayFormat(key: string, groupId = ''): { category function wordifyKey(key: string): string { return key - .replace(/\.([a-z0-9])/g, (match, p1) => ` › ${p1.toUpperCase()}`) - .replace(/([a-z])([A-Z])/g, '$1 $2') // fooBar => foo Bar - .replace(/^[a-z]/g, match => match.toUpperCase()) // foo => Foo - .replace(/\b\w+\b/g, match => { + .replace(/\.([a-z0-9])/g, (match, p1) => ` › ${p1.toUpperCase()}`) // Replace dot with spaced '>' + .replace(/([a-z0-9])([A-Z])/g, '$1 $2') // Camel case to spacing, fooBar => foo Bar + .replace(/^[a-z]/g, match => match.toUpperCase()) // Upper casing all first letters, foo => Foo + .replace(/\b\w+\b/g, match => { // Uper casing kown acronyms return knownAcronyms.has(match.toLowerCase()) ? match.toUpperCase() : match; From fbb6cc9e1dc2d1f170141749d28f23a2c97d3548 Mon Sep 17 00:00:00 2001 From: David Munoz Date: Fri, 17 May 2019 01:45:00 -0500 Subject: [PATCH 3/4] Fixing typos --- .../workbench/contrib/preferences/browser/settingsTreeModels.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts b/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts index 9444e859426..8e51995e8aa 100644 --- a/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts +++ b/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.ts @@ -408,7 +408,7 @@ function wordifyKey(key: string): string { .replace(/\.([a-z0-9])/g, (match, p1) => ` › ${p1.toUpperCase()}`) // Replace dot with spaced '>' .replace(/([a-z0-9])([A-Z])/g, '$1 $2') // Camel case to spacing, fooBar => foo Bar .replace(/^[a-z]/g, match => match.toUpperCase()) // Upper casing all first letters, foo => Foo - .replace(/\b\w+\b/g, match => { // Uper casing kown acronyms + .replace(/\b\w+\b/g, match => { // Upper casing known acronyms return knownAcronyms.has(match.toLowerCase()) ? match.toUpperCase() : match; From 21b00e796e8f90b7a5bf11afa3b3f943a04175b6 Mon Sep 17 00:00:00 2001 From: David Munoz Date: Fri, 17 May 2019 18:25:58 -0500 Subject: [PATCH 4/4] Added two more tests for settings key to display format cases --- .../test/browser/settingsTreeModels.test.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/vs/workbench/contrib/preferences/test/browser/settingsTreeModels.test.ts b/src/vs/workbench/contrib/preferences/test/browser/settingsTreeModels.test.ts index 2b7c77431c9..35b36215171 100644 --- a/src/vs/workbench/contrib/preferences/test/browser/settingsTreeModels.test.ts +++ b/src/vs/workbench/contrib/preferences/test/browser/settingsTreeModels.test.ts @@ -101,6 +101,20 @@ suite('SettingsTree', () => { category: 'Something Else', label: 'Etc' }); + + assert.deepEqual( + settingKeyToDisplayFormat('foo.1leading.number'), + { + category: 'Foo › 1leading', + label: 'Number' + }); + + assert.deepEqual( + settingKeyToDisplayFormat('foo.1Leading.number'), + { + category: 'Foo › 1 Leading', + label: 'Number' + }); }); test('parseQuery', () => {