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

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 transformToPopperCase = () => transformToPopperCaseLogic();
export const transformToParamCase = () => transformToParamCaseLogic();