Comments (3)
Yeah, I also find it quite hard to debug interactions between the rules. Though, I am not sure if just somehow showing matching rules would help: it seems like it would produce way to much information to be useful.
At the moment, I just comment out some rules to minimize the example. I imagine that could be automated: formatting could print a series of diffs, starting with "zero rules applied", and ending with "all rules applied". Still not sure if that would be more effective than just manually commenting out specifc things
from nixpkgs-fmt.
The difference would mainly be that as a user it would be possible to understand what is going on without toughing the code (assuming that the output is helpful). I think rules would also have to have names attached to them so they could be distinguished one from another.
Brainstorming a bit more, another approach might be to attach some assertions onto a node, asserting that rule X is going to be applied to it.
from nixpkgs-fmt.
This is implemented as --explain
flag in #79!
from nixpkgs-fmt.
Related Issues (20)
- "#dontformat" directive HOT 4
- sample: list of floats formatted surpised me HOT 3
- improve CLI ergonomics when parsing errors occur when using parse flag HOT 1
- [Security] Make formatted expression free from CVE-2021-42574 (Trojan Source) HOT 5
- Misaligned lists of attribute sets HOT 1
- sample: List after in has no indentation
- Second comment line is indented after let … in
- Multi-line strings in let/in-expressions are wrongly indented
- Add a binary to Releases
- Re-release for security updates HOT 2
- Wrong indention for attr set as parameter
- Space removed before comments in multi-line inherit expressions HOT 1
- Add option to choose indention style HOT 2
- Confusing attset merging
- Shell completions HOT 1
- Pre-Commit fails sporadically with `failed to compile nixpkgs-fmt`
- sample: HOT 1
- attrsets as function arguments do not get properly indented
- Comments indented wrong in if statements
- multiline string content gets modified, altering outputs 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 nixpkgs-fmt.