diff --git a/extension.js b/extension.js index 4c60f00..70fd376 100644 --- a/extension.js +++ b/extension.js @@ -43,6 +43,10 @@ function activate(context) { utils.applyToAllSelections(operations.titleToKebab); }) + let titleToDotDisposable = vscode.commands.registerCommand('extension.titleToDot', function() { + utils.applyToAllSelections(operations.titleToDot); + }) + let snakeToCamelDisposable = vscode.commands.registerCommand('extension.snakeToCamel', function() { utils.applyToAllSelections(operations.snakeToCamel); }) @@ -73,6 +77,7 @@ function activate(context) { titleToCamelDisposable, titleToSnakeDisposable, titleToKebabDisposable, + titleToDotDisposable, snakeToCamelDisposable, snakeToTitleDisposable, snakeToKebabDisposable, diff --git a/lib/stringOperations.js b/lib/stringOperations.js index 893ea99..677b042 100644 --- a/lib/stringOperations.js +++ b/lib/stringOperations.js @@ -47,6 +47,10 @@ function titleToKebab(string) { return string.trim().split(' ').map(substring => substring.toLowerCase()).join('-'); } +function titleToDot(string) { + return string.trim().split(' ').map(substring => substring.toLowerCase()).join('.'); +} + function snakeToCamel(string) { return string.trim().split('_').map((substring, index) => { if (index === 0) { @@ -114,6 +118,7 @@ module.exports = { titleToCamel, titleToSnake, titleToKebab, + titleToDot, snakeToCamel, snakeToKebab, snakeToTitle, diff --git a/package.json b/package.json index 475e26e..d20709e 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "onCommand:extension.titleToCamel", "onCommand:extension.titleToSnake", "onCommand:extension.titleToKebab", + "onCommand:extension.titleToDot", "onCommand:extension.toLower", "onCommand:extension.toUpper" ], @@ -72,6 +73,10 @@ "command": "extension.titleToKebab", "title": "Title to Kebab" }, + { + "command": "extension.titleToDot", + "title": "Title to Dot" + }, { "command": "extension.snakeToCamel", "title": "Snake to Camel" diff --git a/test/suite/stringOperations.test.js b/test/suite/stringOperations.test.js index b942afe..fc7d6a7 100644 --- a/test/suite/stringOperations.test.js +++ b/test/suite/stringOperations.test.js @@ -9,6 +9,7 @@ const { titleToCamel, titleToSnake, titleToKebab, + titleToDot, snakeToCamel, snakeToKebab, snakeToTitle, @@ -72,6 +73,12 @@ suite('String Operations Suite', () => { assert.strictEqual(titleToKebab(' Hello World '), 'hello-world'); }) + test('Title to Dot test', () => { + assert.strictEqual(titleToKebab('My New String'), 'my.new.string'); + assert.strictEqual(titleToKebab('Hello world'), 'hello.world'); + assert.strictEqual(titleToKebab(' Hello World '), 'hello.world'); + }) + test('Snake to Camel test', () => { assert.strictEqual(snakeToCamel('my_new_string'), 'myNewString'); assert.strictEqual(snakeToCamel('hello_world'), 'helloWorld');