用于在编辑器中转换值的自定义脚本

时间:2017-11-09 22:14:49

标签: sass visual-studio-code

有没有办法编写一个自定义VSCode脚本,允许在编辑器本身内进行值转换?

例如,在.css文件中,我有以下内容:

section {
  position: absolute:
  top: 114px;
  left: 72px;
}

我希望轻松将px值(114px72px)转换为vw视口的视口宽度单位(1200px)。

目前,我手动计算(114 * 100) / 1200,它会给我vw值。

VSCode是否允许将px值转换为相应的vw值?

1 个答案:

答案 0 :(得分:1)

不确定这是否是您要找的,但您可以编写扩展程序来执行此操作。有关入门的帮助,请参阅our extension authoring documentation

基本理念如下:

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
    const disposable = vscode.commands.registerCommand('do.convert', () => {
        const activeEditor = vscode.window.activeTextEditor;
        if (!activeEditor) 
            return;

        const range = activeEditor.document.getWordRangeAtPosition(activeEditor.selection.start, /a-z0-9%/i);
        const line = activeEditor.document.getText(range);
        const pxMatch = line.match(/(\d+)px/);
        if (!pxMatch)
            return;

        const px = + pxMatch[1];
        const edit = new vscode.WorkspaceEdit();
        edit.replace(activeEditor.document.uri, range, `${(px * 100) / 1200}vw`);
        vscode.workspace.applyEdit(edit);
    });

    context.subscriptions.push(disposable);
}