Comments (2)
It is possible to write code which makes it impossible to satisfy both rules.
Yes, it is a bug when rules are conflicting.
But you can also see it as a sign that the code is not clear. The combination of a method chain with range operator is not very readable. I don't like any of the alternatives below.
println(list.count { it }..1)
Due to space before '{ it }there is a disconnect between the method chain
list.count { it }` and the range operator.
println(list.count { it } ..1)
This does not seem to be consistent. Why is space used before the range operator and not after it.
println(list.count { it } .. 1)
This looks consistent for this particular line. But it will not be consistent with other lines in which the range operator is used with integer constants in left and right hand side of operator.
In case that a variable is used like in code below, ktlint will not report any violations. So, the best approach to resolve th conflict seems to be that the curly-spacing
rule should ignore the space after the }
when followed by a range operator.
val bar = 0
println(bar..1)
For now, you can just suppress this specific example.
from ktlint.
But you can also see it as a sign that the code is not clear. The combination of a method chain with range operator is not very readable
I completely agree. I'd even favor a rule that disallows braces or other complex expressions from being part of a range.
from ktlint.
Related Issues (20)
- Method Signature forcing multiline despite unset [`function_signature_rule_force_multiline`] HOT 1
- parameter-list-wrapping disable is not respected HOT 2
- Import incorrectly dropped when correcting string template expression with redundant braces HOT 1
- [Question] Why max_line_length contains number of indent white space? HOT 1
- Apply the `function-naming` exception for backticked test functions to apply to Test classes extending an org.junit Test class HOT 2
- Test was not passed when Default language is not English
- Ktlint Issue: Variable Declaration Format Inconsistency Despite Disabled Max-Line-Length Constraint HOT 4
- False positive for indentation in a nested lamba HOT 2
- Configuration setting confusing HOT 1
- Suport partial formatting of code
- long type parameter cause `Expected a single space` HOT 1
- Do not report PascalCase top-level constants in property-naming rule HOT 3
- Separate constant naming rule from property-naming HOT 1
- Suggest IntelliJ config of wildcard import HOT 1
- Split `multiline-if-else` into two rules HOT 2
- Prevent possible conflict between `multiline-expression-wrapping` and `function-signature` body wrapping
- Binary operators in `!(...)` not checked for missing horizontal whitespace
- disabling rule 'no-empty-first-line-in-method-block' does not work HOT 1
- standard:kdoc - A KDoc is not allowed inside 'value_argument_list' HOT 2
- Add support for formatting a specific violation in a piece of code containing multiple violations
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 ktlint.