Comments (6)
heh :) well, the first and third are "expected", right? the first one is a continuation indent, whereas the third one is a block indent.
The second is clearly a bug. Should be, at the minimum, a continuation indent.
What do you think?
from ktfmt.
Yeah, that's better now. I would personally prefer block indent for single-statement when
branches so the indentation doesn't change if you add braces and is consistent when you have a mix of block and single-statement branches, but I am completely on board with the idea that ktfmt should be opinionated even if I don't agree with 100% of its opinions. I agree that only the second case was clearly a bug. Thanks!
from ktfmt.
Yeah, that's fair; the lack of distinction between continuation and block indent makes their intent ambiguous. My preference is for block indent but like I said, I totally acknowledge I'm bikeshedding at the moment and am happy with the fix for the second case.
from ktfmt.
I'm going to close the issue since the 2nd case is now fixed. The others are problematic to change without introducing inconsistencies into the formatter. Let me know what you think.
from ktfmt.
I guess a stronger argument is that the Kotlin style guide uses block indent for the single-statement when
branch case. https://kotlinlang.org/docs/reference/coding-conventions.html#formatting-control-flow-statements
from ktfmt.
The Kotlin style guide uses indentation of continuation == block == 4, whereas ktfmt uses 4 and 2 respectively; so, the Kotlin style guide gets away with it because there's no difference. (unless I was looking at the wrong place?)
from ktfmt.
Related Issues (20)
- Feature request: ability to specify file of files to format HOT 4
- Comments after assignment prevents ktfmt indentation HOT 1
- Different behavior with IntelliJ plugin and Maven plugin with same config HOT 5
- Q: any option to align `->` in `when`? HOT 2
- String templates formatting with comments HOT 2
- Apparent inconsistencies in which lines are or aren't reformatted within a statement HOT 3
- Special-case `trimIndent`? HOT 5
- Unicode characters through stdin not handled properly with non-standard UTF setting HOT 1
- Document @file CLI arguments
- Incorrect indentation with multiple elvis operators and multiline statements HOT 1
- Annotations get collapsed to the same line as code it affects HOT 5
- Context receivers give `ParseError` HOT 2
- IDEA plugin is not published since 0.43 HOT 9
- Unstable formatting of file with a set of comments HOT 3
- @sample tags should not be moved within kdoc HOT 9
- Formatting creating lines longer than 100 characters HOT 5
- Unexpected removal of space after a comment HOT 2
- Annotation location on properties HOT 1
- Incorrect detection of unused import in Gradle Kotlin DSLs using new assignment operator HOT 1
- Update the pics in [demo](https://github.com/facebook/ktfmt#demo) HOT 4
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 ktfmt.