Scala,升华文本3-当后跟文本时,停止关闭大括号以防止跳跃

Scala,升华文本3-当后跟文本时,停止关闭大括号以防止跳跃,scala,sublimetext3,Scala,Sublimetext3,每当我在Scala中键入多块代码构造时(例如,if..else..,for..yield..),如果我在第一个结束大括号后写入文本而没有首先填充正文,升华“helply”缩进大括号。当我在同一行中写入多个右括号/大括号/圆括号时,也会发生这种情况。示例: if (condition) { } else { } for { } yield { } list.map(x => { }) 我怎么才能强迫收尾的卷发支架保持不动呢?我感觉到了你的痛苦,但不知怎么的

每当我在Scala中键入多块代码构造时(例如,
if..else..
for..yield..
),如果我在第一个结束大括号后写入文本而没有首先填充正文,升华“helply”缩进大括号。当我在同一行中写入多个右括号/大括号/圆括号时,也会发生这种情况。示例:

if (condition) {

  } else {

  }

for {

  } yield {

  }

list.map(x => {

  })

我怎么才能强迫收尾的卷发支架保持不动呢?

我感觉到了你的痛苦,但不知怎么的,我已经忍受了这么多年了。当然,直到现在。我仔细查看了用户和语言偏好,把所有东西都翻了出来,直到什么都没有了。那时我才意识到问题的根源不是首选项或语言文件中的内容,而是不存在的内容。因为许多其他语言都有相同的if/else语法,所以我尝试了许多if/else语句。C、C++和java没有这个问题,但是C是这样的。少了什么缩进规则。

我只是从Java包中复制了缩进规则,因为它在语法上非常相似,并将扩展更改为scala。我在linux上工作,所以我不确定在其他操作系统上的确切路径应该是什么,但我想在
${HOME}
之后会类似

${HOME}/.config/sublime-text-3/Packages/Scala/Indentation Rules.tmPreferences

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>name</key>
    <string>Indentation Rules</string>
    <key>scope</key>
    <string>source.scala - comment</string>
    <key>settings</key>
    <dict>
        <key>decreaseIndentPattern</key>
        <string>^(.*\*/)?\s*\}.*$|^\s*(public|private|protected):\s*$</string>
        <key>increaseIndentPattern</key>
        <string>^.*\{[^}"']*$|^\s*(public|private|protected):\s*$</string>

        <key>bracketIndentNextLinePattern</key>
        <string>(?x)
        ^ \s* \b(if|while|else)\b [^;]* $
        | ^ \s* \b(for)\b .* $
        </string>

    </dict>
    <key>uuid</key>
    <string>20E93106-18CF-4BA3-9DA3-8F0C955DB774</string>
</dict>
</plist>

名称
缩进规则
范围
source.scala-注释
设置
递减模式
^(.*\*/)?\s*\}.$| ^\s*(公共|私有|保护):\s*$
递增缩进模式
^.*{[^}']*$|^\s*(公共|私有|保护):\s*$
括号缩进下一行模式
(?x)
^\s*\b(如果| while | else)\b[^;]*$
|^\s*\b(用于)\b.*$
uuid
20E93106-18CF-4BA3-9DA3-8F0C955DB774
(或
此处的subl config文件夹../Packages/Scala/Indentation Rules.tmPreferences
,如果您的配置保存在其他位置。
Packages
目录的结构应相同。)


您很可能需要在sublime
Packages
目录中创建
Scala
目录。对于sublime Text 2,解决方案完全相同,只是包含所有语言文件的Scala目录已经存在。我已经用我能想到的所有语法进行了尝试,但似乎没有任何错误。这是可能的不过,这可能需要一些调整。

我的天啊,谢谢你提出这个问题。非常欢迎你——挫折已经发展到了需要问的程度。但是@m-z确实得到了答案。