vscode插件获取当前激活的编辑器及其信息详解

39次阅读

共计 872 个字符,预计需要花费 3 分钟才能阅读完成。

vscode.TextEditor

这就是 vscode 的文本编辑器对象

官方相关文档:https://code.visualstudio.com…

一般来说看官方文档也能看懂了,但是有个别属性还要自己实验才理解具体意思

获取当前激活的编辑器对象方法:

import * as vscode from 'vscode'
const editor: vscode.TextEditor | undefined = vscode.window.activeTextEditor

vscode.TextEditor 有以下属性:

selection 当前选中的文本

selection.active 当前光标位置
Position 类型
如果有选中的文本,这里是被选择文本的最后,细心的你会发现,选择了文本后,光标也是会存在的。

如果只需要知道当前光标在哪,获取这个就对了

selection.anchor 选择开始的位置
Position 类型
如果没有选中的文本,这个值与 selection.active 完全一致,但如果选中了文本,这里就是被选中文本的开始位置

selection.start 靠前的位置
Position 类型
这个值应该是以上两值的副本,Postion 会计算出以上两值中,靠前一值放到这来。line 越小越前,line 相同 character 越小越前

selection.end 靠后的位置
Position 类型
同上,两值中靠后一值放到这来

selections

Array<Position>类型
vscode 有个方便的功能,选中一处代码之后,按 ctrl+ d 可以把当前编辑器中相同的代码一起选中,这就会出现多个选中区域,所以这个属性是把所有选中区域都记录上了。并且它的第一个子项,肯定是用户一开始选中的那个区域

vscode.Position

这是 vscode 的位置类型,用于表达文本编辑器里的位置,一般有两个属性:linecharacter

关注过 vscode 下面信息栏的下面这个信息,就知道这两个属性表达的意思了。

但是这两个属性与上图有一个不一致的,上图是从 1 开始计数,而 position 的两个属性是从 0 开始计数

正文完
 0