-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathextension.js
More file actions
34 lines (30 loc) · 984 Bytes
/
extension.js
File metadata and controls
34 lines (30 loc) · 984 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const vscode = require('vscode');
const slugify = require("@sindresorhus/slugify");
/**
* @param {vscode.ExtensionContext} context
*/
function activate(context) {
context.subscriptions.push(vscode.commands.registerCommand('vs-slug.slugify', slugifySelection));
}
exports.activate = activate;
function slugifySelection() {
if (vscode.window.activeTextEditor) {
vscode.window.activeTextEditor.edit(function (editBuilder) {
vscode.window.activeTextEditor.selections.forEach(function(element) {
let config = vscode.workspace.getConfiguration('vs-slug');
let selectedText = vscode.window.activeTextEditor.document.getText(element);
editBuilder.replace(element, slugify(selectedText, {
customReplacements: config.get('customReplacements'),
decamelize: config.get('decamelize'),
lowercase: config.get('lowercase'),
separator: config.get('separator')
}));
});
});
}
}
function deactivate() {}
module.exports = {
activate,
deactivate
}