This commit is contained in:
Mike Phares 2023-08-18 12:42:46 -07:00
parent bf07ffc3b8
commit 9ee21dbe30
4 changed files with 46 additions and 3 deletions

View File

@ -99,3 +99,8 @@ None
- Moved Insert date time
- Transform to Popper Case
## 1.4.4
-----------------------------------------------------------------------------------------------------------
- Transform to Param Case

View File

@ -4,7 +4,7 @@
"description": "Helper for VS Code in TypeScript",
"publisher": "IFX",
"repository": "https://github.com/mikepharesjr/YO-VSCode/tree/master/type-script-helper",
"version": "1.4.3",
"version": "1.4.4",
"engines": {
"vscode": "^1.79.0"
},
@ -31,6 +31,10 @@
"command": "promiseLinesHelper.transformToPopperCase",
"title": "Transform to Popper Case"
},
{
"command": "promiseLinesHelper.transformToParamCase",
"title": "Transform to Param Case"
},
{
"command": "readOnlyLinesHelper.searchGoogle",
"title": "Search Google"

View File

@ -28,6 +28,7 @@ export function activate(context: vscode.ExtensionContext) {
vscode.commands.registerCommand('promiseLinesHelper.codeGeneratorQuickPick', promiseLinesHelper.codeGeneratorQuickPick),
vscode.commands.registerCommand('promiseLinesHelper.insertDateTime', promiseLinesHelper.insertDateTime),
vscode.commands.registerCommand('promiseLinesHelper.transformToPopperCase', promiseLinesHelper.transformToPopperCase),
vscode.commands.registerCommand('promiseLinesHelper.transformToParamCase', promiseLinesHelper.transformToParamCase),
vscode.commands.registerCommand('readOnlyLinesHelper.searchGoogle', readOnlyLinesHelper.searchGoogle),
vscode.commands.registerCommand('replaceLinesHelper.addCSharpComment', replaceLinesHelper.addCSharpComment),
vscode.commands.registerCommand('replaceLinesHelper.addVBComment', replaceLinesHelper.addVBComment),

View File

@ -177,6 +177,39 @@ function transformToPopperCaseLogic(): undefined {
return undefined;
}
function paramCase(str: string) {
return str
.replace(
/([A-Z]+(.))/g,
(_, separator, letter, offset) => (offset ? "-" + separator : separator).toLowerCase()
)
.split(/[\s!?.,@:;|\\/"'`£$%\^&*{}[\]()<>~#+\-=_¬]+/g)
.join('-')
.replace(/(^-|-$)/g, '');
};
function transformToParamCaseLogic(): undefined {
const textEditor = vscode.window.activeTextEditor;
if (!textEditor) {
return undefined;
}
const selection = textEditor.selection;
textEditor.edit(editBuilder => {
var range;
if (selection.isEmpty) {
return undefined;
}
else {
range = new vscode.Range(selection.start.line, selection.start.character, selection.end.line, selection.end.character);
const highlighted = textEditor.document.getText(range);
let paramCased = paramCase(highlighted);
editBuilder.replace(range, paramCased);
}
});
return undefined;
}
export const codeGeneratorQuickPick = () => codeGeneratorQuickPickLogic();
export const insertDateTime = () => insertDateTimeLogic();
export const transformToPopperCase = () => transformToPopperCaseLogic();
export const transformToParamCase = () => transformToParamCaseLogic();