Comments (4)
There are some built-in assertions that formatting only changes whitespace, and doesn't add or remove tokens, because it helps guarantee that reformatting will never affect semantics.
There are some similar things we'd like to do for Java, but so far I haven't had great ideas for supporting non-whitespace fixes without adding complexity or regressing guarantees around not making semantic changes.
Another option would be do to this is a separate pass, similar to how import fixes are handled.
from ktfmt.
I'm leaning towards adding an extra pass that would be more aggressive and modify the tree. This will also let us supply a flag for it. I'm against configurations, but removing symbols might be too aggressive for people that call this when they save a file, so it might be useful to support.
@cgrushko, @cushon, how does that sound? We could experiment with ; removal first.
from ktfmt.
I was surprised to find out that it wasn't simple to do :)
The underlying engine (google-java-format's) makes some assumptions about tokens not changing. @cushon might be able to provide more details (I forgot the explanation he previously gave me :|)
(Maybe if we modified the tokenizer to not emit ;
tokens at all? might be an interesting idea.)
from ktfmt.
Sounds good.
I think we can go ahead with removing ;
without a flag.
If we have luck, kotlin-compiler will just tell us that a symbol is redundant.
from ktfmt.
Related Issues (20)
- add trailing comma support to other non-google styles HOT 10
- Indentation level should be a command-line argument HOT 2
- Android Studio / IDEA plugin yields different results than running ktfmt HOT 11
- Treat trailing Elvis operator as part of a call chain HOT 2
- Adding target jar to releases HOT 2
- Weird lambda formatting when wrapping long line HOT 3
- Intellij Plugin set to Google (internal) always removes trailing commas HOT 1
- Lambdas following a statement can be treated as lambda arguments, breaking syntax HOT 1
- No artifacts were released for v0.48 and v0.49 HOT 4
- Trailing comma gets removed if there is only one parameter and it is formatted to be on its own line HOT 2
- ktfmt doesn't seem to work in IJ 2024.1.1 HOT 6
- Is ktfmt used on itself? HOT 5
- Misspelled flags in CLI can cause user data loss HOT 1
- How can I config Intellij plugin? HOT 2
- error: did not generate token "context" HOT 3
- Google style with trailing comma does not use maxWidth correctly HOT 1
- Nested function calls with named parameters is incredibly difficult to read and results in unnecessary nesting HOT 8
- ktfmt 0.51 incompatible with Spotless Gradle plugin HOT 2
- Consider providing a binary jar HOT 7
- ver 1.1.0.51 update breaks ktfmt intellij plugin setting screen if style is "Dropbox" HOT 2
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.