Comments (8)
FWIW it's also a supported as an opt-in in IntelliJ's code style formatting.
from scalafmt.
Please also, and from my POV with greater urgency, spaces inside import selectors. Curly braces without whitespace induce claustrophobia.
Currently:
-import scala.{ Any, Long, Nothing, StringContext, Unit }
-import scala.annotation.unchecked.{ uncheckedVariance => uV }
-import java.{ lang => jl }
-import java.{ util => ju }
-import java.{ io => jio }
-import java.util.{ function => juf }
-import java.nio.{ file => jnf }
+import scala.{Any, Long, Nothing, StringContext, Unit}
+import scala.annotation.unchecked.{uncheckedVariance => uV}
+import java.{lang => jl}
+import java.{util => ju}
+import java.{io => jio}
+import java.util.{function => juf}
+import java.nio.{file => jnf}
from scalafmt.
Out of curiosity, is there any well documented Scala style guide that supports adding spaces like this? I know it's supported in scalariform and clang-format but I don't see it in the official Scala, Scala.js, Spark or Twitter style guides.
It's straightforward to fix this issue but each new configuration option adds a burden on scalafmt developers and users. I like clang-format's approach for this http://clang.llvm.org/docs/ClangFormatStyleOptions.html#adding-additional-style-options
cc/ @cvogt
from scalafmt.
I've added 3 flags for 0.2.2
--spacesInParentheses
--spacesInSquareBrackets
--spacesInImportCurlyBraces
following clang-format naming convention.
from scalafmt.
I changed my mind and decided to only add --spacesInImportCurlyBraces
. I would hate it if scalafmt induces claustrophobia on @paulp 😜
The other two have not been properly followed up on since I was asked to support them. It's possible to revert f10ee86 in case we later decide to support those styles.
from scalafmt.
@olafurpg our internal coding style for a significantly sized code base at @xdotai would require both --spacesInParentheses
and --spacesInImportCurlyBraces
. And personally, I find method calls with spaces inside of parens much more readable.
from scalafmt.
So +1 for bringing --spacesInParentheses back. However you may want to distinguish calls from signatures.
from scalafmt.
@olafurpg Just trying scalafmt for a project. Not having spacesInParentheses
is a blocker for me. Could we bring this back pretty please :)?
from scalafmt.
Related Issues (20)
- 3.8.0 regression: tuple expression at the start of a line are moved to prior line (inside of match cases) HOT 2
- Scalafmt 3.8.0 update: suspicous reformatting HOT 3
- More newlines in unit tests after updating to 3.8.0 HOT 6
- Exception in scalafmt HOT 1
- Code no longer compiles after formatting HOT 1
- Implement fewer-braces rewrite
- Scalafmt in scala 3 dialect adds a new line after a `'` expression which changes behaviour of program HOT 6
- Properly formatted code using zio method `*>` is formatted so the code is no longer valid
- Wrong formatting of code blocks with partial functions returning tuples HOT 2
- apply more stringent scalafmt formatting
- `org.scalafmt.cli.FaliedToFormat` regression with `scala-xml` code on `RedundantBraces` rewrite rule HOT 4
- With `newlines.source = keep` linebreaks are not preserved in lists with non-numeric entries HOT 2
- With `newlines.source = keep` linebreaks are not preserved in function parameter lists HOT 3
- Preserve newlines more strictly HOT 12
- RedundantParens removes too much parens HOT 2
- `PositionExceptionImpl` complaining about expected `)` when encountering valid `<-` in for comprehension HOT 2
- Annotation argument is not a constant
- Feature request: code style for `match` dot-notation HOT 5
- Error with `RedundantBraces` and XML attribute in v3.8.1 HOT 1
- `if` + `then` rejected with significant indentation off HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scalafmt.