从 PsiWhiteSpace 获取缩进和对齐信息

dir*_*lik 7 java intellij-idea intellij-plugin kotlin

考虑具有以下代码的 Java 文件(它可以是任何其他语言,我们以 Java 为例):

public class Foo {

    void foo(int x,
             int y) {}  // line 4

}
Run Code Online (Sandbox Code Playgroud)

如果 IntelliJ 被配置为使用智能制表符,那么第 4 行将以一个制表符(称为缩进)开始,并以 9 个空格(称为对齐)开始:

如果 IntelliJ 配置为使用空格,则第 4 行将以 13 个空格开头(前四个空格是缩进,接下来的九个空格是对齐):

我有一个类型的对象PsiWhiteSpace(对应于第 4 行中的缩进和对齐)。如何检索有关缩进和对齐的信息,即缩进中的字符数和对齐中的字符数?


更具体地说,这里是测试用例,它(希望)显示了我需要的内容:

public class Foo {

    void foo(int x,
             int y) {}  // line 4

}
Run Code Online (Sandbox Code Playgroud)