Scala,Sublime Text 3 - 停止在文本后面跳动时关闭大括号

标签 scala sublimetext3

每当我在 Scala 中输入多 block 代码结构时(例如 if..else..for..yield..),如果我在后面写了文本在没有先填充正文的情况下,第一个闭合花括号,Sublime“有用地”缩进了花括号。当我在同一行中写多个右括号/大括号/圆括号时也会发生这种情况。示例:

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>

(或者 your-subl-config-folder-here../Packages/Scala/Indentation Rules.tmPreferences 如果您的配置保存在别处。Packages 的结构> 目录应该相同。)

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

关于Scala,Sublime Text 3 - 停止在文本后面跳动时关闭大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29158509/

相关文章:

scala - 在这种情况下,_参数表示什么?

scala - ActorSelection 与 ActorRef - 从 actorFor 迁移到 actorSelection

orm - 使用 Squeryl 持久化集合

python - 为什么当我将 wholeTextFiles() 与 pyspark 一起使用时 AWS 拒绝我的连接?

sublimetext2 - sublime 文本编辑器中的 "overlay"是什么?

sublimetext3 - 在 Sublime Text 3 代码片段中访问项目根路径

scala - 如何计算多重映射的逆

sublimetext3 - 如何缩小 Sublime Text 3 中的 html、css、js/jquery 和 ruby​​ 代码?

python - 如何将命令的结果存储到变量中?

sublimetext - Sublime Text 3 Windows列选择与Alt?