Найдены ответы после поиска и некоторых экспериментов:
пакет. 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, ">");
});
}
});
}
Этот пример просто всегда вставляйте >
после -
.