【问题标题】:Scala, Sublime Text 3 - Stop closing curly brace from jumping when followed by textScala,Sublime Text 3 - 后跟文本时停止关闭大括号跳跃
【发布时间】:2015-05-23 09:20:04
【问题描述】:

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

if (condition) {

  } else {

  }

for {

  } yield {

  }

list.map(x => {

  })

如何强制右花括号保持原样?

【问题讨论】:

  • 天哪,谢谢你提出这个问题。
  • 不客气 - 挫败感已经到了真正需要询问的地步。但@m-z 确实得到了答案。

标签: scala sublimetext3


【解决方案1】:

我在这里感受到了你的痛苦,但不知怎的,我多年来一直在忍受这种行为。当然,直到现在。我浏览了用户和语言偏好,把东西撕掉,直到什么都没有。那时我意识到不是首选项或语言文件中的内容导致了问题,而是不存在的内容。由于许多其他语言具有相同的 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 目录已经存在。我已经用我能想到的所有语法进行了尝试,但似乎没有任何问题。不过,这可能需要一些调整。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 2021-03-26
    • 2019-05-23
    • 2014-05-18
    • 2021-05-01
    • 2015-05-02
    相关资源
    最近更新 更多