ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

ScalaFormat

timonwong 全部

Sublime Text的另一个Scala代码格式化工具。

标签 scala, 格式化

详情

安装次数

  • 总数 9K
  • Win 3K
  • Mac 4K
  • Linux 2K
2022年8月6日 2022年8月5日 2022年8月4日 2022年8月3日 2022年8月2日 2022年8月1日 2022年7月31日 2022年7月30日 2022年7月29日 2022年7月28日 2022年7月27日 2022年7月26日 2022年7月25日 2022年7月24日 2022年7月23日 2022年7月22日 2022年7月21日 2022年7月20日 2022年7月19日 2022年7月18日 2022年7月17日 2022年7月16日 2022年7月15日 2022年7月14日 2022年7月13日 2022年7月12日 2022年7月11日 2022年7月10日 2022年7月9日 2022年7月8日 2022年7月7日 2022年7月6日 2022年7月5日 2022年7月4日 2022年7月3日 2022年7月2日 2022年7月1日 2022年6月30日 2022年6月29日 2022年6月28日 2022年6月27日 2022年6月26日 2022年6月25日 2022年6月24日 2022年6月23日
Windows 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0
Mac 1 2 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

README

源代码
raw.​githubusercontent.​com

ScalaFormat

摘要

ScalaFormat是一个针对Sublime Text的Scala代码格式化插件。它基于Ikeda Takafumi的Sublime Scalariform插件重构,并增加了以下功能:

  • 直接对缓冲区进行格式化,而不是直接对源文件进行格式化。
  • 支持文件保存时的自动格式化(默认禁止)。
  • 支持Sublime Text 3。

先决条件

  • Java™ 5或更高版本。
  • 耐心 :) - scalariform可能会需要几秒钟才能完成。

安装

通过Package Control插件

安装ScalaFormat最简单的方法是通过Package Control

在安装Package Control后,重新启动Sublime Text。

  1. 呼出命令面板(在Windows和Linux下为 Ctrl+Shift+P,在OS X下为 ++P)。
  2. 输入“Install”并选择“Package Control: Install Package”。
  3. 从列表中选择“ScalaFormat”。

使用Package Control的优势在于,它将自动使ScalaFormat保持最新状态。

手动安装

没有Git: 下载最新源代码,并将其解压缩到“Packages”目录。

带有Git: 在您的Sublime Text 2“Packages”目录中键入以下命令

git clone git://github.com/timonwong/ScalaFormat.git

“Packages”目录位于

  • Windows: %APPDATA%\Sublime Text 2\Packages\
  • Linux: ~/.config/sublime-text-2/Packages/
  • OS X: ~/Library/Application Support/Sublime Text 2/Packages/

使用方法

快捷键

此插件的默认快捷键

  • Ctrl+Alt+F: 格式化当前文件。

命令面板

打开命令面板,它看起来像 ScalaFormat: 格式化当前文件

设置

{
    // If the executable is not in the system path, you may have to set the java executable manually
    "java_executable": "java",
    // Absolute path to your scalariform binary, leave null to use the one shipped with this plugin
    "scalariform_jar": null,
    // Auto format on file save
    "autoformat_on_save": false,
    // scalariform command line options - preferences
    // https://github.com/mdr/scalariform/wiki/Command-line-tool
    "scalariform": {
        // Enable/disable Align parameters on different lines in the same column
        "alignParameters": false,
        // Enable/disable Align the arrows of consecutive single-line case statements
        "alignSingleLineCaseStatements": false,
        // Set Maximum number of spaces inserted before an arrow to align case statements: [1-100]
        "alignSingleLineCaseStatements.maxArrowIndent": 40,
        // Enable/disable Compact Control Readability style
        "compactControlReadability": false,
        // Enable/disable Omit spaces when formatting a '+' operator on String literals
        "compactStringConcatenation": false,
        // Enable/disable Double indent either a class's parameters or its inheritance list
        "doubleIndentClassDeclaration": false,
        // Enable/disable Format XML literals
        "formatXml": true,
        // Enable/disable Indent local defs an extra level
        "indentLocalDefs": false,
        // Enable/disable Indent package blocks
        "indentPackageBlocks": true,
        // Set Number of spaces to use for indentation: [1-10]
        "indentSpaces": 2,
        // Enable/disable Use a tab character for indentation
        "indentWithTabs": false,
        // Enable/disable Start multiline Scaladoc comment body on same line as the opening '/**'
        "multilineScaladocCommentsStartOnFirstLine": false,
        // Enable/disable Allow a newline before a ')' in an argument expression
        "preserveDanglingCloseParenthesis": false,
        // Enable/disable Place Scaladoc asterisks beneath the second asterisk in the opening '/**', as opposed to the first
        "placeScaladocAsterisksBeneathSecondAsterisk": false,
        // Enable/disable Preserve a space before a parenthesis argument
        "preserveSpaceBeforeArguments": false,
        // Enable/disable Replace arrow tokens with unicode, equivalents: => with ⇒, and <- with ←
        "rewriteArrowSymbols": false,
        // Enable/disable Add a space before colons
        "spaceBeforeColon": false,
        // Enable/disable Require a space after '[' and before ']'
        "spaceInsideBrackets": false,
        // Enable/disable Require a space after '(' and before ')'
        "spaceInsideParentheses": false,
        // Enable/disable Add a space around the @ token in pattern binders
        "spacesWithinPatternBinders": true
    }
}

项目设置

在开始之前,您可能想看看 ScalaFormat.sublime-settings。

要编辑您的项目设置,请从主菜单选择“项目/编辑项目”。ScalaFormat的项目设置应如下所示

{
    // project folders, etc
    // ...
    // project settings
    "settings":
    {
        "ScalaFormat":
        {
            "autoformat_on_save": true,
            "scalariform": {
                "alignParameters": true,
                "rewriteArrowSymbols": true
            }
        }
    }
}

新增功能

v1.2.0 (2013年7月19日)

  • 修正了完全不工作的自定义设置。
  • 减少了错误提示:默认选项重写(现在您不需要在自定义之前复制整个“scalariform”部分,'scalariform'部分的默认选项将自动检索)。
  • 添加了对项目设置的每个项目的支持。

v1.1.1 (2013年7月15日)

  • 修正了与Sublime Text 3和包管理的兼容性问题。

v1.1 (2013年6月3日)

  • 添加了对Sublime Text 3的支持。
  • 更新了scalariform可执行文件。

v1.0

  • 首次发布。

许可证

本插件采用MIT许可证发布

Copyright (c) 2012-2013 Timon Wong
Portions Copyright (c) 2012 Takafumi Ikeda

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.