Мне не удалось найти решение для щелчка мышью. В другом вопросе SO было упомянуто, что предоставление событий мыши является маловероятным дополнением к API: (
Что я смог сделать:
- Добавитьдобавить очки:
- команды
- меню
- редактор / контекст
- commandPalette
- зарегистрируйте команду в js и получите местоположение из
textEditor
В package.json
Я настраиваю свою команду так, чтобы она отображалась в контекстном меню только при условии title
, когдафайл открывается в .log
файле.
"contributes": {
"commands": [
{
"command": "gd.my-ext.myCommand",
"title": "My Command"
}
],
"menus": {
"commandPalette": [
{
"command": "gd.me-ext.myCommand",
"when": "false"
}
],
"editor/context": [
{
"command": "gd.me-ext.myCommand",
"group": "navigation",
"when": "resourceExtname == .log"
},
]
},
Затем в extension.ts
я регистрирую команду текстового редактора и использую textEditor
's selection
и document
.
const disposable = vscode.commands.registerTextEditorCommand(
'gd.me-ext.myCommand',
(textEditor, edit, ...rest): void => {
const { selection, document } = textEditor;
console.log(selection.start.line);
const line: vscode.TextLine = document.lineAt(selection.start.line);
// The selection will tell me where the cursor is and I can find a line
// in which I can use the regex I've used to apply decoration and compare if it was selection I wanted :)
}
);
context.subscriptions.push(disposable);