Intellij Idea 自定义语言插件-返回对象时大括号对齐

ltskdhd1  于 2023-01-29  发布在  其他
关注(0)|答案(1)|浏览(124)

我正在为IntelliJ IDEA开发一个插件,它支持我自定义的基于Lua的语言格式。
我期望得到如下结果

func () {
    //do something
    return {
        data = {
            v1 = "some value",
            v2 = 123
        }
    }
}

但我得到了这个:

func () {
    //do something
    return {
            data = {
                       v1 = "some value",
                       v2 = 123
                   }
            }
}

问题是return语句后面的右大括号与左大括号对齐了。为了以Java风格对齐大括号,我尝试了缩进和 Package 的最明显组合,但没有成功。
我尚未为我的语言实现任何代码样式设置,但在调试时,我看到CommonSettings包含HTML、XML、JAVA和JSON CommonCodeStyleSettings。在bebugger中清除myCommonSettingsMap和myCustomSettingsMap没有解决此问题。
我想可能涉及到一些默认设置,但我不知道该检查什么。有人能帮我吗?

vohkndzv

vohkndzv1#

我在IntelliJ论坛找到了答案:How to make the Indent relative to direct parent's parents?
在我的代码中,我总是使用默认的对齐方式:

Block block = new Simplek(child, Wrap.createWrap(WrapType.NONE, false), 
                  Alignment.createAlignment(), spacingBuilder);

解决方案是在不需要对齐时传递null。

相关问题