{"id":32136970,"url":"https://github.com/scala-ide/scalariform","last_synced_at":"2025-10-21T04:54:33.018Z","repository":{"id":50259448,"uuid":"604416","full_name":"scala-ide/scalariform","owner":"scala-ide","description":"Scala source code formatter","archived":false,"fork":false,"pushed_at":"2024-05-11T00:35:23.000Z","size":11389,"stargazers_count":523,"open_issues_count":67,"forks_count":147,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-09-21T20:16:07.488Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://scala-ide.github.com/scalariform/","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scala-ide.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-04-10T22:24:20.000Z","updated_at":"2025-09-21T12:39:17.000Z","dependencies_parsed_at":"2024-06-21T02:37:15.843Z","dependency_job_id":null,"html_url":"https://github.com/scala-ide/scalariform","commit_stats":null,"previous_names":["mdr/scalariform"],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/scala-ide/scalariform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scala-ide%2Fscalariform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scala-ide%2Fscalariform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scala-ide%2Fscalariform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scala-ide%2Fscalariform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scala-ide","download_url":"https://codeload.github.com/scala-ide/scalariform/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scala-ide%2Fscalariform/sbom","scorecard":{"id":803126,"data":{"date":"2025-08-11","repo":{"name":"github.com/scala-ide/scalariform","commit":"8cf96a69d7a87a4b4d31a4061b8eb1ca615fd896"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Code-Review","score":5,"reason":"Found 7/12 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENCE:0","Info: FSF or OSI recognized license: MIT License: LICENCE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 0.2.10 not signed: https://api.github.com/repos/scala-ide/scalariform/releases/17903572","Warn: release artifact 0.2.9 not signed: https://api.github.com/repos/scala-ide/scalariform/releases/17725359","Warn: release artifact 0.2.8 not signed: https://api.github.com/repos/scala-ide/scalariform/releases/16431846","Warn: release artifact 0.2.7 not signed: https://api.github.com/repos/scala-ide/scalariform/releases/15439075","Warn: release artifact 0.2.6 not signed: https://api.github.com/repos/scala-ide/scalariform/releases/8301930","Warn: release artifact 0.2.10 does not have provenance: https://api.github.com/repos/scala-ide/scalariform/releases/17903572","Warn: release artifact 0.2.9 does not have provenance: https://api.github.com/repos/scala-ide/scalariform/releases/17725359","Warn: release artifact 0.2.8 does not have provenance: https://api.github.com/repos/scala-ide/scalariform/releases/16431846","Warn: release artifact 0.2.7 does not have provenance: https://api.github.com/repos/scala-ide/scalariform/releases/15439075","Warn: release artifact 0.2.6 does not have provenance: https://api.github.com/repos/scala-ide/scalariform/releases/8301930"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T11:02:41.996Z","repository_id":50259448,"created_at":"2025-08-23T11:02:41.996Z","updated_at":"2025-08-23T11:02:41.996Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280207203,"owners_count":26290616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-21T04:54:31.833Z","updated_at":"2025-10-21T04:54:33.012Z","avatar_url":"https://github.com/scala-ide.png","language":"Scala","funding_links":[],"categories":["Table of Contents"],"sub_categories":["Tools"],"readme":"Scalariform\n===========\n\nScalariform is a code formatter for Scala. It's available as a\nlibrary, a stand-alone command line tool, or via integrations with\nvarious editors and build tools (listed below).\n\nThe plan is to add preferences and features as and when people ask for\nthem, so please do raise a Github issue if it doesn't format your code\nthe way you'd like it, and I'll see what I can do.\n\nScalariform is licenced under `The MIT Licence`_.\n\n.. _Scala Style Guide: http://docs.scala-lang.org/style/\n.. _The MIT Licence: http://opensource.org/licenses/mit-license.php\n\nInstalling with Homebrew (for OS X users)\n-----------------------------------------\n\nMac OS X users can install the scalariform CLI tool using the `Homebrew`_ package manager. ::\n\n    brew install scalariform\n\nOr, if you would like to install the latest development release: ::\n\n    brew install --HEAD scalariform\n\n.. _Homebrew: https://github.com/Homebrew/homebrew\n\nPackaging an executable JAR\n---------------------------\n\nIf you would like to package scalariform for use on the command line with java -jar, clone the repo and perform the following simple steps: ::\n\n    sbt \"project cli\" \"assembly\"\n\nsbt will build one jar with all the dependencies and put it in ::\n\n    cli/target/scala-$your_scala_version/cli-assembly-$scalariform_version.jar\n\nYou can copy this to a location in your path and execute it as follows: ::\n\n   java -jar /home/me/bin/cli-assembly-$scalariform_version.jar -f -q +compactControlReadability +alignParameters +alignSingleLineCaseStatements +doubleIndentConstructorArguments +rewriteArrowSymbols +preserveSpaceBeforeArguments --stdout ~/myproject/src/main/scala/Stuff.scala \u003e Stuff.scala\n\nIntegration with sbt\n--------------------\n\nA plugin for SBT is available at https://github.com/sbt/sbt-scalariform.\n\nUsage within a project\n----------------------\n\nHave a use for the scalariform source code directly? You can use it as a build dependency: ::\n\n    \"org.scalariform\" %% \"scalariform\" % \"0.2.10\"\n\nIntegration with Eclipse\n------------------------\n\nScala IDE for Eclipse uses Scalariform for code formatting:\n\n- Right click in the editor -\u003e Source -\u003e Format\n- Press Ctrl-Shift-F\n\nIf you select some lines, only those will be formatted.\n\nYou can also configure formatting to be run as a save action (Window -\u003e Preferences -\u003e Java -\u003e Editor -\u003e Save Actions).\n\nTo set preferences, go to either\n\n- Window -\u003e Preferences -\u003e Scala -\u003e Editor -\u003e Formatter\n- Project -\u003e Properties -\u003e Scala Formatter\n\nFrom the formatter preference window you can import/export existing preferences.\nSee the `reference.conf`_ for a listing of all available preferences and their defaults.\n\n.. _reference.conf: https://github.com/scala-ide/scalariform/blob/master/formatterPreferences.properties\n\nIntegration with Emacs/ENSIME\n-----------------------------\n\n\"`ENSIME`_ uses the Scalariform library to format Scala sources. Type C-c C-v f to format the current buffer.\"\n\n.. _ENSIME: https://github.com/ensime/ensime-server\n\nIntegration with jEdit\n----------------------\n\nSee `ScalaSidekick`_ by Stefan Ettrup:\n\n.. _ScalaSidekick: https://github.com/StefanE/ScalaSidekick\n\nRun Plugins -\u003e scalaSidekickPlugin -\u003e Format Scala File\n\nIntegration with Maven\n----------------------\n\nThere is `scalariform-maven-plugin`_ compatible with Scalariform 0.2.x.\n\n.. _scalariform-maven-plugin: https://github.com/tashoyan/scalariform-maven-plugin\n\nIntegration with Gradle\n-----------------------\n\nThere is a `Gradle plugin`_ to run Scalariform contributed by Jeroen van Erp.\n\n.. _Gradle plugin: https://github.com/hierynomus/scalariform-gradle-plugin\n\nUsage (Gradle 2.1 and above)::\n\n  plugins {\n    id \"com.github.hierynomus.scalariform\" version \"0.1.0\"\n  }\n\n  // optionally, configure Scalariform settings\n  scalariform {\n    alignParameters = true\n    alignSingleLineCaseStatements = true\n  }\n\n  formatAllScala\n\nSee `the documentation`_ for further usage examples.\n\n.. _the documentation: https://github.com/hierynomus/scalariform-gradle-plugin/blob/master/README.adoc\n\nIntegration with TextMate\n-------------------------\n\nSee Mads Jensen's Scala TextMate bundle:\n\n  http://github.com/mads379/scala.tmbundle\n\nReformat using Ctrl-Shift-H.\n\nUse with Vim\n------------\n\nWhile there is no specific Vim integration at present, you can use\nScalariform as an external formatter for the ``gg=G`` command by adding\nthe following to ``.vimrc`` ::\n\n  au BufEnter *.scala setl formatprg=java\\ -jar\\ /home/me/bin/scalariform.jar\\ -f\\ -q\\ +compactControlReadability\\ +alignParameters\\ +alignSingleLineCaseStatements\\ +doubleIndentConstructorArguments\\ +rewriteArrowSymbols\\ +preserveSpaceBeforeArguments\\ --stdin\\ --stdout\n  au BufEnter *.scala setl equalprg=java\\ -jar\\ /home/me/bin/scalariform.jar\\ -f\\ -q\\ +compactControlReadability\\ +alignParameters\\ +alignSingleLineCaseStatements\\ +doubleIndentConstructorArguments\\ +rewriteArrowSymbols\\ +preserveSpaceBeforeArguments\\ --stdin\\ --stdout\n\n\nDownload scalariform.jar from the `latest release`_\n\n.. _latest release: https://github.com/scala-ide/scalariform/releases/latest\n\nCommand line tool\n-----------------\n\n  https://github.com/scala-ide/scalariform/wiki/Command-line-tool\n\nLibrary\n-------\n\n  https://github.com/scala-ide/scalariform/wiki/Library\n\nPreferences\n-----------\n\nalignArguments\n~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nAligns multi-line arguments\n\nFor example, if ``false``, then:\n\n.. code:: scala\n\n  Cake(candles = 10,\n    frostingFlavor = Vanilla,\n    layerFlavor = Chocolate,\n    iceCream = true\n  )\n\nIf ``true``, then:\n\n.. code:: scala\n\n  Cake(candles        = 10,\n       frostingFlavor = Vanilla,\n       layerFlavor    = Chocolate,\n       iceCream       = true\n  )\n\nThis option is disabled if ``indentWithTabs`` is ``true``.\n\nalignParameters\n~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nAlign class/function parameters (modifiers and name, type, and defaults) in three columns.\n\nFor example, if ``false``, then:\n\n.. code:: scala\n\n  class Person(name: String,\n    age: Int = 24,\n    birthdate: Date,\n    astrologicalSign: String = \"libra\",\n    shoeSize: Int,\n    favoriteColor: java.awt.Color\n  )\n\nIf ``true``, then:\n\n.. code:: scala\n\n  class Person(name:             String,\n               age:              Int            = 24,\n               birthdate:        Date,\n               astrologicalSign: String         = \"libra\",\n               shoeSize:         Int,\n               favoriteColor:    java.awt.Color\n  )\n\nThis will also place the \"implicit\" keyword in parameters on its own line, whenever\nthe parameter being formatted contains a newline::\n\nFor example, if ``false``, then:\n\n.. code:: scala\n\n  def formatBirthDate(\n    implicit birthdate: Date = Date(\"11/11/11\"),\n    birthtime: Time\n  ): DateTime\n\nIf ``true``, then:\n\n.. code:: scala\n\n  def formatBirthDate(\n    implicit\n    birthdate: Date = Date(\"11/11/11\"),\n    birthtime: Time\n  ): DateTime\n\nThis option is disabled if ``indentWithTabs`` is ``true``.\n\nalignSingleLineCaseStatements\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nAlign the arrows of consecutive single-line case statements. For example, if ``true``, then:\n\n.. code:: scala\n\n  a match {\n    case b =\u003e 1\n    case ccc =\u003e 2\n    case dd =\u003e 3\n  }\n\nIs reformatted as:\n\n.. code:: scala\n\n  a match {\n    case b   =\u003e 1\n    case ccc =\u003e 2\n    case dd  =\u003e 3\n  }\n\nThis option is disabled if ``indentWithTabs`` is ``true``.\n\nalignSingleLineCaseStatements.maxArrowIndent\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``40``\n\nWhen ``alignSingleLineCaseStatements`` is ``true`` there is a limit on\nthe number of spaces that can be inserted before an arrow to align it\nwith other case statements. This can be used to avoid very large gaps,\ne.g.:\n\n.. code:: scala\n\n  a match {\n    case Some(wibble, wobble) if wibble + wibble \u003e wobble * wibble =\u003e 1\n    case ccc                                                       =\u003e 2\n  }\n\nallowParamGroupsOnNewlines\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nWhen ``allowParamGroupsOnNewlines`` is ``true`` the default behavior of collapsing\nparam groups into a single line is disabled. This allows for the following formatting style:\n\n.. code:: scala\n\n  def foo[T]\n    (a: A)\n    (b: B)\n    (implicit t: T)\n\ncompactControlReadability\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nWhen ``compactControlReadability`` is ``true``, then ``if``/``else`` and\n``try``/``catch``/``finally`` control structures will be formatted\nusing `Compact Control Readability`_ style\n\n.. _Compact Control Readability: https://en.wikipedia.org/wiki/Indent_style#Variant:_Stroustrup\n\n.. code:: scala\n\n  if (x == y) {\n    foo()\n  }\n  else if (y == z) {\n    bar()\n  }\n  else {\n    baz()\n  }\n\n  try {\n    foo()\n  }\n  catch {\n    case _ =\u003e bar()\n  }\n  finally {\n    baz()\n  }\n\n\ncompactStringConcatenation\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nOmit spaces when formatting a '+' operator on String literals. For example, if ``false``, then:\n\n.. code:: scala\n\n  \"Hello \" + name + \"!\"\n\nIf ``true``, then:\n\n.. code:: scala\n\n  \"Hello \"+name+\"!\"\n\nThe Scala Style Guide recommends_ that operators, \"should `always` be\ninvoked using infix notation with spaces separated the target\".\n\n.. _recommends: http://docs.scala-lang.org/style/method-invocation.html#symbolic-methodsoperators\n\ndanglingCloseParenthesis\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``Prevent``\n\nIf ``Force``, any closing parentheses will be set to dangle. For example:\n\n.. code:: scala\n\n   Box(\n     contents: List[Thing])\n\nbecomes:\n\n.. code:: scala\n\n   Box(\n     contents: List[Thing]\n   )\n\nIf ``Prevent``, all dangling parenthesis are collapsed. For example:\n\n.. code:: scala\n\n   Box(\n     contents: List[Thing]\n   )\n\nbecomes:\n\n.. code:: scala\n\n   Box(\n     contents: List[Thing])\n\nIf ``Preserve``, scalariform will try to match what unformatted source code is already doing per parenthesis,\neither forcing or preventing.\n\n~~doubleIndentClassDeclaration~~ (Deprecated, use `doubleIndentConstructorArguments`)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nWith this set to ``true`` and ``doubleIndentConstructorArguments`` set to ``false``,\nclass (and trait / object) declarations that span multiple lines will be formatted so\nthat the inheritance section is doubly indented. This provides a visual distinction\nfrom the members of the class. For example:\n\n.. code:: scala\n\n  class Person(\n    name: String,\n    age: Int,\n    birthdate: Date,\n    astrologicalSign: String,\n    shoeSize: Int,\n    favoriteColor: java.awt.Color)\n      extends Entity\n      with Logging\n      with Identifiable\n      with Serializable {\n    def firstMethod = ...\n  }\n\nNote: ``doubleIndentConstructorArguments`` style formatting is recommended_ by the Scala Style Guide.\n\ndoubleIndentConstructorArguments\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nWith this set to ``true``, class (and trait / object) declarations\nwill be formatted as recommended_ by the Scala Style Guide. That is,\nif the declaration section spans multiple lines, it will be formatted\nso that the parameter section is doubly indented. This provides a visual\ndistinction between the constructor arguments \u0026 the extensions. For example:\n\n.. code:: scala\n\n  class Person(\n      name: String,\n      age: Int,\n      birthdate: Date,\n      astrologicalSign: String,\n      shoeSize: Int,\n      favoriteColor: java.awt.Color)\n    extends Entity\n    with Logging\n    with Identifiable\n    with Serializable {\n  }\n\nOr:\n\n.. code:: scala\n\n  class Person(\n      name: String,\n      age: Int,\n      birthdate: Date,\n      astrologicalSign: String,\n      shoeSize: Int,\n      favoriteColor: java.awt.Color) {\n    def firstMethod = ...\n  }\n\n.. _recommended: http://docs.scala-lang.org/style/declarations.html#classes\n\n.. _recommended: http://docs.scala-lang.org/style/declarations.html#classes\n\ndoubleIndentMethodDeclaration\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nWith this set to ``true``, method declarations will have an extra indentation\nadded to their parameter list, if it spans multiple lines.\nThis provides a visual distinction from the method body. For example::\n\n  def longMethodNameIsLong(paramOneNameIsLong: String, paramTwo: String,\n      paramThreeNameIsReallyLong): Unit = {\n    val startOfMethod = ...\n  }\n\nOr::\n\n  def longMethodNameIsLong(\n      paramOneNameIsLong: String,\n      paramTwoNameIsLong: String,\n      paramThreeNameIsLong): Unit = {\n    val startOfMethod = ...\n  }\n\nfirstArgumentOnNewline\n~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``Force``\n\nWhether or not to place the first argument of multi-line function calls on its own line.\n\nIf ``Force``, first arguments will be on a new line:\n\n.. code:: scala\n\n  foo(\n    1,\n    2\n  )\n\n  bar(\n    3,\n    4\n  )\n\nIf ``Prevent``, first arguments will be on function call line:\n\n.. code:: scala\n\n  foo(1,\n    2\n  )\n\n  bar(3,\n    4\n  )\n\nIf ``Preserve``, first arguments will stay where they are:\n\n.. code:: scala\n\n  foo(\n    1,\n    2\n  )\n\n  bar(3,\n    4\n  )\n\nfirstParameterOnNewline\n~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``Force``\n\nWhether or not to place the first parameter for multi-line method or constructor definition on its own line.\n\nIf ``Force``, first parameters will be on a new line:\n\n.. code:: scala\n\n  abstract class Person(\n    name: Int,\n    age: String\n  ) {\n    def livesIn(\n      city: String,\n      state: String\n    ): Boolean\n  }\n\nIf ``Prevent``, first parameters will be on the definition line:\n\n.. code:: scala\n\n  abstract class Person(name: Int,\n    age: String\n  ) {\n    def livesIn(city: String,\n      state: String\n    ): Boolean\n  }\n\nIf ``Preserve``, first parameters will stay where they are:\n\n.. code:: scala\n\n  abstract class Person(name: Int,\n    age: String\n  ) {\n    def livesIn(\n      city: String,\n      state: String\n    ): Boolean\n  }\n\nformatXml\n~~~~~~~~~\n\nDefault: ``true``\n\nFormat embedded XML literals; if ``false`` they will be left untouched.\n\nindentLocalDefs\n~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nIf ``true``, indent local methods an extra level, with the intention of distinguishing them from other statements. For example,:\n\n.. code:: scala\n\n  class A {\n    def find(...) = {\n      val x = ...\n        def find0() = {\n          ...\n        }\n      find0(...)\n    }\n  }\n\n\nindentPackageBlocks\n~~~~~~~~~~~~~~~~~~~\n\nDefault: ``true``\n\nWhether to indent package blocks. For example, if ``true``:\n\n.. code:: scala\n\n  package foo {\n    package bar {\n      class Baz\n    }\n  }\n\nElse if ``false``:\n\n.. code:: scala\n\n  package foo {\n  package bar {\n  class Baz\n  }\n  }\n\nindentSpaces\n~~~~~~~~~~~~\n\nDefault: ``2``\n\nThe number of spaces to use for each level of indentation.\n\nThis option is ignored if ``indentWithTabs`` is ``true``.\n\nindentWithTabs\n~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nUse a tab for each level of indentation. When set to ``true``, this\nignores any setting given for ``indentSpaces``. In addition, for the\nmoment, ``alignSingleLineCaseStatements``, ``alignArguments``, and ``alignParameters``\noptions are not supported when indenting with tabs, and XML\nindentation is handled differently.\n\nmultilineScaladocCommentsStartOnFirstLine\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nIf ``true``, start a multi-line Scaladoc comment body on same line as the opening comment delimiter:\n\n.. code:: scala\n\n  /** This method applies f to each\n   *  element of the given list.\n   */\n\nIf ``false``, start the comment body on a separate line below the opening delimiter:\n\n.. code:: scala\n\n  /**\n   * This method applies f to each\n   * element of the given list.\n   */\n\nnewlineAtEndOfFile\n~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nIf ``true``, newlines will be added at the end of all formatted files.\n\nplaceScaladocAsterisksBeneathSecondAsterisk\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nIf ``true``, Scaladoc asterisks will be placed beneath the second asterisk:\n\n.. code:: scala\n\n  /** Wibble\n    * wobble\n    */\n  class A\n\nOtherwise, if ``false``, beneath the first asterisk:\n\n.. code:: scala\n\n  /** Wibble\n   *  wobble\n   */\n  class A\n\npreserveSpaceBeforeArguments\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nIf ``true``, the formatter will keep an existing space before a parenthesis argument. For example:\n\n.. code:: scala\n\n  stack.pop() should equal (2)\n\nOtherwise, if ``false``, spaces before arguments will always be removed.\n\nrewriteArrowSymbols\n~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nReplace arrow tokens uniformly, either as Unicode symbols or as ASCII, depending on the setting of\n``useUnicodeArrows``. Starting from Scala 2.13, unicode arrows are deprecated.\n\nFor example, if ``useUnicodeArrows == true``:\n\n.. code:: scala\n\n  for (n \u003c- 1 to 10) n % 2 match {\n    case 0 =\u003e println(\"even\")\n    case 1 =\u003e println(\"odd\")\n  }\n\nis formatted as:\n\n.. code:: scala\n\n  for (n ← 1 to 10) n % 2 match {\n    case 0 ⇒ println(\"even\")\n    case 1 ⇒ println(\"odd\")\n  }\n\nsingleCasePatternOnNewline\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``true``\n\nWhen ``singleCasePatternOnNewline`` is ``false`` the default behavior of forcing\na single case pattern onto a newline is disabled. This allows for the following formatting style:\n\n.. code:: scala\n\n  items.map { case (key, value) =\u003e\n    (key, transform(value))\n  }\n\nspaceBeforeColon\n~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nWhether to ensure a space before all single colons. For example, if ``false``, then:\n\n.. code:: scala\n\n  def add[T: Numeric](a: T, b: T): Int = implictly[Numeric[T]].plus(a, b)\n\nIf ``true``, then:\n\n.. code:: scala\n\n  def add[T : Numeric](a : T, b : T): Int = implictly[Numeric[T]].plus(a, b)\n\nspaceBeforeContextColon\n~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nWhether to ensure a space before colons in context bounds (the typeclass pattern). For example, if ``false``, then:\n\n.. code:: scala\n\n  def newArray[T: ClassManifest](n: Int) = new Array[T](n)\n\nIf ``true``, then:\n\n.. code:: scala\n\n  def newArray[T : ClassManifest](n: Int) = new Array[T](n)\n\nspaceInsideBrackets\n~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nWhether to use a space inside type brackets. For example, if ``true``, then:\n\n.. code:: scala\n\n  Array[ String ]\n\nIf ``false``, then:\n\n.. code:: scala\n\n  Array[String]\n\nspaceInsideParentheses\n~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``false``\n\nWhether to use a space inside non-empty parentheses. For example, if ``true``, then:\n\n.. code:: scala\n\n  def main( args : Array[String] )\n\nIf ``false``, then:\n\n.. code:: scala\n\n  def main(args : Array[String])\n\nspacesAroundMultiImports\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``true``\n\nWhether or not to add spaces around multi-imports.\nFor example, if ``false``, then:\n\n.. code:: scala\n\n  import a.{b,c,d}\n  import foo.{bar =\u003e baz}\n\nIf ``true``, then:\n\n.. code:: scala\n\n  import a.{ b, c, d }\n  import foo.{ bar =\u003e baz }\n\nCompatibility note: Versions 0.1.6 \u0026 0.1.7 of `Scalariform` used ``false``.\n\nspacesWithinPatternBinders\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDefault: ``true``\n\nWhether to add a space around the @ token in pattern binders. For example, if ``true``,:\n\n.. code:: scala\n\n  case elem @ Multi(values @ _*) =\u003e\n\nIf ``false``,:\n\n.. code:: scala\n\n  case elem@Multi(values@_*) =\u003e\n\nuseUnicodeArrows\n~~~~~~~~~~~~~~~~\n\nDefault: ``true``\n\nControls the replacement of arrows if ``rewriteArrowSymbols == true``. To use unicode arrows in your codebase\nset to `true`, otherwise, set to false. For example, if ``useUnicodeArrows == false`` (and ``rewriteArrowSymbols == true``):\n\n.. code:: scala\n\n  for (n ← 1 to 10) n % 2 match {\n    case 0 ⇒ println(\"even\")\n    case 1 ⇒ println(\"odd\")\n  }\n\nis formatted as:\n\n.. code:: scala\n\n  for (n \u003c- 1 to 10) n % 2 match {\n    case 0 =\u003e println(\"even\")\n    case 1 =\u003e println(\"odd\")\n  }\n\nScala Style Guide\n~~~~~~~~~~~~~~~~~\n\nScalariform is compatible with the `Scala Style Guide`_ in the sense\nthat, given the right preference settings, source code that is\ninitially compliant with the Style Guide will not become uncompliant\nafter formatting. In a number of cases, running the formatter will\nmake uncompliant source more compliant.\n\n=========================================== ========= =========\nPreference                                  Value     Default?\n=========================================== ========= =========\nalignParameters                             ``false``\ncompactStringConcatenation                  ``false``\ndoubleIndentConstructorArguments            ``true``    No\nindentSpaces                                ``2``\nplaceScaladocAsterisksBeneathSecondAsterisk ``true``    No\npreserveSpaceBeforeArguments                ``false``\nrewriteArrowSymbols                         ``false``\nspaceBeforeColon                            ``false``\nspaceInsideBrackets                         ``false``\nspaceInsideParentheses                      ``false``\nspacesAroundMultiImports                    ``false``\nuseUnicodeArrows                            ``true``\n=========================================== ========= =========\n\nSource Directives\n-----------------\n\nAs well as global preferences, formatting can be tweaked at the source level through comments.\n\nformat: [ON|OFF]\n~~~~~~~~~~~~~~~~\n\nDisables the formatter for selective portions of a source file:\n\n.. code:: scala\n\n  // format: OFF    \u003c-- this directive disables formatting from this point\n  class AsciiDSL {\n    n ¦- \"1\" -+ { n: Node =\u003e\n            n ¦- \"i\"\n            n ¦- \"ii\"\n            n ¦- \"iii\"\n            n ¦- \"iv\"\n            n ¦- \"v\"\n    }\n    n ¦- \"2\"\n    n ¦- \"3\" -+ { n: Node =\u003e\n            n ¦- \"i\"\n            n ¦- \"ii\" -+ { n: Node =\u003e\n                     n ¦- \"a\"\n                     n ¦- \"b\"\n                     n ¦- \"c\"\n            }\n            n ¦- \"iii\"\n            n ¦- \"iv\"\n            n ¦- \"v\"\n    }\n    // format: ON   \u003c-- formatter resumes from this point\n    ...\n  }\n  // (see: http://dev.day.com/microsling/content/blogs/main/scalajcr2.html)\n\nformat: [+|-]\u003cpreferenceName\u003e\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSets a preference for the entirety of the source file, overriding the global formatting settings:\n\n.. code:: scala\n\n  // format: +preserveSpaceBeforeArguments\n  class StackSpec extends FlatSpec with ShouldMatchers {\n    // ...\n    stack.pop() should equal (2)\n  }\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscala-ide%2Fscalariform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscala-ide%2Fscalariform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscala-ide%2Fscalariform/lists"}