any-rule/src/useCommand.ts

24 lines
1.0 KiB
TypeScript
Raw Normal View History

2020-02-21 01:17:23 +08:00
import * as vscode from "vscode";
import { Rule } from './interface';
export default function (context: vscode.ExtensionContext, RULES: Rule[]) {
RULES.forEach(({ title, rule }, index) => {
let disposable = vscode.commands.registerCommand(`extension.rule${index}`, () => {
const editor = vscode.window.activeTextEditor;
if (editor) {
const { selections } = editor;
editor.edit(editBuilder => {
selections.forEach(selection => {
const { start, end } = selection;
const range = new vscode.Range(start, end);
editBuilder.replace(range, String(rule));
});
});
vscode.window.showInformationMessage(`已插入正则: ${title}`);
} else {
vscode.window.showWarningMessage('any-rule: 只有在编辑文本的时候才可以使用!');
}
});
context.subscriptions.push(disposable);
});
}