【问题标题】:VSCode Extenstion how to get Position of last character of lineVSCode Extension如何获取行的最后一个字符的位置
【发布时间】:2019-07-18 16:52:16
【问题描述】:

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

官方参考在这里:https://code.visualstudio.com/api/references/vscode-api#Position

您看到“with”方法有 2 个重载。现在我想使用“with(change: {line: number, character:number})”方法:

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

startPos 是一个“位置”对象。

但是这段代码是错误的。看来我误解了这种方法。它只是使用给定值设置位置,而不是在其上添加“差异”。 那么如何从给定的Position中得到一行最后一个字符的Position呢? ????

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 2021-02-10
    • 2021-02-07
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 2011-08-17
    相关资源
    最近更新 更多