Visual studio code 如何在VSCode扩展中获取当前装饰列表或处理装饰位置的更改?
让我们考虑一下这个例子。Visual studio code 如何在VSCode扩展中获取当前装饰列表或处理装饰位置的更改?,visual-studio-code,vscode-extensions,text-decorations,gutter,Visual Studio Code,Vscode Extensions,Text Decorations,Gutter,让我们考虑一下这个例子。 我有一个包含以下内容的文件: 1: one 2: two 3: three 我为第二行创建了一个线条装饰: 这给了我 1: one * 2: two 3: three 下一步: 我通过在第“2”行之前添加新行来更改文件内容。 之后,该文件如下所示: 1: one 2: * 3: two 4: three 正如您所看到的,VSCode已经更新了我的线条装饰,现在它被定位在第3行(而不是第2行),这是完全正确的,我也希望如此 现在是问
我有一个包含以下内容的文件:
1: one
2: two
3: three
我为第二行创建了一个线条装饰:
这给了我
1: one
* 2: two
3: three
下一步:
我通过在第“2”行之前添加新行来更改文件内容。之后,该文件如下所示:
1: one
2:
* 3: two
4: three
正如您所看到的,VSCode已经更新了我的线条装饰,现在它被定位在第3行(而不是第2行),这是完全正确的,我也希望如此
现在是问题:
如何获取我的线路装饰的当前更新位置?
如果我保持范围
参考-它仍然指向第2行
处理这种装饰变化的正确方法是什么
这两个选项中的任何一个都能满足我的要求:
装饰
/范围
更改的方法,以便我可以手动处理这些更改请告知 因此,显然无法在VSCode中获取打开文件的所有当前装饰。这是一个没有明确计划要解决的老问题 我找到了一个内部方法
getLineDecorations
——我试图通过
vscode.window.activeTextEditor?._proxy
vscode.window.activeTextEditor?._runOnProxy
但我没有成功
因此,目前我们在这里提到的唯一选择可能是:
- 保存所有装饰位置的副本
- 通过
处理程序在每次文本更新时手动更新vscode.workspace.onDidChangeTextDocument
(也非常容易出错)
vscode.window.activeTextEditor?._proxy
vscode.window.activeTextEditor?._runOnProxy