Skip to content

Commit

Permalink
Changed hyphen and underscore ordering
Browse files Browse the repository at this point in the history
  • Loading branch information
skprabhanjan committed Oct 1, 2019
1 parent 27d7141 commit 011186e
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 9 deletions.
17 changes: 8 additions & 9 deletions src/vs/base/common/search.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,19 @@ import * as strings from './strings';

export function buildReplaceStringWithCasePreserved(matches: string[] | null, pattern: string): string {
if (matches && (matches[0] !== '')) {
const containsHyphens = validateSpecificSpecialCharacter(matches, pattern, '-');
const containsUnderscores = validateSpecificSpecialCharacter(matches, pattern, '_');
if (containsHyphens && !containsUnderscores) {
return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '-');
} else if (!containsHyphens && containsUnderscores) {
return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '_');
}
if (matches[0].toUpperCase() === matches[0]) {
return pattern.toUpperCase();
} else if (matches[0].toLowerCase() === matches[0]) {
return pattern.toLowerCase();
} else if (strings.containsUppercaseCharacter(matches[0][0])) {
const containsHyphens = validateSpecificSpecialCharacter(matches, pattern, '-');
const containsUnderscores = validateSpecificSpecialCharacter(matches, pattern, '_');
if (containsHyphens && !containsUnderscores) {
return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '-');
} else if (!containsHyphens && containsUnderscores) {
return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '_');
} else {
return pattern[0].toUpperCase() + pattern.substr(1);
}
return pattern[0].toUpperCase() + pattern.substr(1);
} else {
// we don't understand its pattern yet.
return pattern;
Expand Down
24 changes: 24 additions & 0 deletions src/vs/editor/contrib/find/test/replacePattern.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,10 @@ suite('Replace Pattern test', () => {
assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo-newbar-newabc'), 'Newfoo-Newbar-Newabc');
actual = ['Foo-Bar-abc'];
assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo-newbar'), 'Newfoo-newbar');
actual = ['foo-Bar'];
assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo-newbar'), 'newfoo-Newbar');
actual = ['foo-BAR'];
assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo-newbar'), 'newfoo-NEWBAR');

actual = ['Foo_Bar'];
assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar'), 'Newfoo_Newbar');
Expand All @@ -192,6 +196,10 @@ suite('Replace Pattern test', () => {
assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar'), 'Newfoo_newbar');
actual = ['Foo_Bar-abc'];
assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar-abc'), 'Newfoo_newbar-abc');
actual = ['foo_Bar'];
assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar'), 'newfoo_Newbar');
actual = ['Foo_BAR'];
assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar'), 'Newfoo_NEWBAR');
});

test('preserve case', () => {
Expand Down Expand Up @@ -227,6 +235,14 @@ suite('Replace Pattern test', () => {
actual = replacePattern.buildReplaceString(['Foo-Bar-abc'], true);
assert.equal(actual, 'Newfoo-newbar');

replacePattern = parseReplaceString('newfoo-newbar');
actual = replacePattern.buildReplaceString(['foo-Bar'], true);
assert.equal(actual, 'newfoo-Newbar');

replacePattern = parseReplaceString('newfoo-newbar');
actual = replacePattern.buildReplaceString(['foo-BAR'], true);
assert.equal(actual, 'newfoo-NEWBAR');

replacePattern = parseReplaceString('newfoo_newbar');
actual = replacePattern.buildReplaceString(['Foo_Bar'], true);
assert.equal(actual, 'Newfoo_Newbar');
Expand All @@ -242,5 +258,13 @@ suite('Replace Pattern test', () => {
replacePattern = parseReplaceString('newfoo_newbar-abc');
actual = replacePattern.buildReplaceString(['Foo_Bar-abc'], true);
assert.equal(actual, 'Newfoo_newbar-abc');

replacePattern = parseReplaceString('newfoo_newbar');
actual = replacePattern.buildReplaceString(['foo_Bar'], true);
assert.equal(actual, 'newfoo_Newbar');

replacePattern = parseReplaceString('newfoo_newbar');
actual = replacePattern.buildReplaceString(['foo_BAR'], true);
assert.equal(actual, 'newfoo_NEWBAR');
});
});

0 comments on commit 011186e

Please sign in to comment.