我不是在谈论当前的选择,vscode.window.activeTextEditor.selection
可以访问该选择。
当光标位于标识符,变量名等内部时,它将变为突出显示,如以下屏幕截图所示:
此高亮对象叫什么?如何访问?
答案 0 :(得分:1)
搜索从“突出显示”到“标识符”的所有内容,以及其他任何内容,答案都更加明显。 TextDocument
有一个getWordRangeAtPosition
方法,该方法占据一个位置并返回单词的范围。
const editor = vscode.window.activeTextEditor;
let cursorPosition = editor.selection.start;
let wordRange = editor.document.getWordRangeAtPosition(cursorPosition);
let highlight = editor.document.getText(wordRange);
// highlight will now contain the currently highlighted word
答案 1 :(得分:0)
您显示的内容称为 Document Highlight 。其他实例(在这种情况下为colorData
)也将突出显示。 @Rene Roth的答案可能是回答您想要的。正如@ Gama11所写,在不使用第二个参数的情况下使用getWordRangeAtPosition会使用语言的“单词模式”。但是,文档突出显示不必是一个单词。
据我所知,您无法获得所有亮点的列表? (我只是想出了要在我的第一个扩展程序中使用它们的方法。)
要突出显示,您需要使用registerDocumentHighlightProvider
和provideDocumentHighlights
。 DocumentHighlightKind
可用于提供不同的突出显示颜色(例如,突出显示的变量的实例在等号的右侧或左侧,即,读或写,或出于某些其他区分原因)。我已经成功地使用了DocumentHighlightKind来显示另一个中包含的突出显示。