Comments (3)
What do you think the expected output should be?
How would you describe the rule? Bare in mind that there are module attributes in Elixir core such as @doc
, @spec
, @tag
and spec that are expected to sit on the line above the def.
Other similar module attributes are used in libraries and tools on hex.pm (such as Credo) too.
Perhaps we could insert a space between a module attribute followed by a comment.
from exfmt.
I was thinking that it's hard to do this in a general way.
Types that I see:
- known elixir attributes that "attach" to a function (
@doc
,@spec
) - known elixir attributes that don't attach (
@type
,@opaque
,@before_compile
and such) - application-specific module attributes that "attach" to a function tightly (from your code)
- module-wide "constants" (like what I have above, or more complex ones like this from your code)
I imagine you can have specific rules for those first 2. But I'm not sure a generalized rule for the ones that people come up with themselves.
from exfmt.
New thought- we could use the line numbers in AST node metadata to detect when a user has deliberately left blank spaces. Blank spaces could then be preserved.
from exfmt.
Related Issues (20)
- Render parens on zero arity fun definitions HOT 5
- Semantic violation HOT 2
- Any Elixir warnings will be inserted into the file via Neoformat HOT 12
- Align closing 'end' of anonymous functions in argument list with top-level call HOT 1
- Render parens on qualified zero arity function calls HOT 10
- @moduledoc multi-line formatting HOT 14
- Multi line `@moduledoc` formatted to one line HOT 1
- [Discussion] Group multiple use, import, alias, require calls HOT 4
- Indent assignment expressions with multi-line pipelines HOT 1
- Global install via an escript HOT 8
- [Discussion] Function argument nesting HOT 2
- SublimeText Support HOT 2
- Inconsistent spacing HOT 1
- CoC is missing a contact to report stuff HOT 1
- Installation documentation HOT 2
- Allow for single line function definitions HOT 1
- Future of ExFmt HOT 2
- mix test failed using the current master branch of elixir
- (FunctionClauseError) no function clause matching in Access.get/3 HOT 1
- Stable release ETA HOT 10
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 exfmt.