VSCode扩展如何获取行的最后一个字符的位置 [英] VSCode Extenstion how to get Position of last character of line

查看:18
本文介绍了VSCode扩展如何获取行的最后一个字符的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个VSCode插件,现在想要获得一行最后一个字符的位置。现在我想使用"with"方法通过一个已知的Position对象获取它。

官方参考资料如下:https://code.visualstudio.com/api/references/vscode-api#Position

您可以看到,"with"方法有两个重载。现在我想使用"with(change:{line:number,character:number})"方法:

 const endPos = startPos.with({ line: 1, character: -1 });

startPos是"Position"对象。

但是这个代码是错误的。看来我误解了这种方法。它只是用给定值设置位置,而不是在上面加"差"。那么如何获取从给定位置派生的一行最后一个字符的位置?🙂

推荐答案

获取startPos的行,并使用其长度获取最后一个字符

let curLineText = editor.document.lineAt(startPos);
let lastCharPos = new vscode.Position(curLinePos.line, Math.max(curLineText.text.length-1, 0));

如果要在最后一个字符之后放置位置,请删除-1

这篇关于VSCode扩展如何获取行的最后一个字符的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆