tcoopman
Mix format doesn't format docs
It looks like mix format doesn’t format documentation, for example a very long line is not splitted over a new line. Is this a bug, or is documentation formating out of scope for format?
Thanks.
Most Liked
mudasobwa
OvermindDL1
The AST of those are different though, which the formatter absolutely, positively, should NOT ever change:
iex> a1 = quote do """
This is a very long explanation of a function that is longer than the default length of 98 characters and so I would have expected it to be split on different lines like the same sentence below this one.
""" end
"This is a very long explanation of a function that is longer than the default length of 98 characters and so I would have expected it to be split on different lines like the same sentence below this one."
iex> a2 = quote do """
This is a very long explanation of a function that is longer than the default length of 98 characters and
so I would have expected it to be split on different lines like this example.
""" end
"This is a very long explanation of a function that is longer than the default length of 98 characters and \nso I would have expected it to be split on different lines like the same sentence below this one."
iex> a1 == a2
false
Not only is the AST different, the string itself is different! A formatter should not change user specified strings! It could easily break things, say like documentation, or an embedded macro language. I’d argue it’s the job of the IDE to wrap long strings visually.
NobbZ
The formatter is dumb, it does not know if the string it sees is ordinary code or documentation. Changing it in any way might result in broken output if it is regular code, therefore string literals are not touched.
Last Post!
raulrpearson
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #hex
- #security









