VS Расширение кода: как добавить что-то после курсора? - PullRequest
0 голосов
/ 22 февраля 2020

например, пользовательские типы $someObject-, затем расширение добавляет > (так же, как это делает популярный плагин для Netbeans). Какие виды вкладов / возможностей я должен использовать? Есть хороший пример расширения?

1 Ответ

0 голосов
/ 22 февраля 2020

Найдены ответы после поиска и некоторых экспериментов:

пакет. json:

...
"contributes": {
        "languages": [
            {
              "id": "php",
              "extensions": [".php"],
              "aliases": ["PHP", "php"]
            }
        ]
    },
...

И все самое интересное вокруг события vscode.workspace.onDidChangeTextDocument. Я должен сделать что-то вроде этого:

export function activate(context: vscode.ExtensionContext) {
    registration = vscode.workspace.onDidChangeTextDocument(event => {
        const doc = event.document;
        const changes = event.contentChanges[0];
        const { line, character } = changes.range.start;
        const prevPosition = new vscode.Position(line, character - 1);
        const position = new vscode.Position(line, character);
        const newPosition = new vscode.Position(line, character+1);
        const editor = vscode.window.activeTextEditor;
        const prevText = doc.getText(new vscode.Range(prevPosition, position));
        if (prevText === "-") {
                editor?.edit(TextEditorEdit => {
                    TextEditorEdit.insert(newPosition, ">");
                });
        }
    });
}

Этот пример просто всегда вставляйте > после -.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...