The ExDoc part of the story is already covered by @doc group I think:
https://hexdocs.pm/ex_doc/Mix.Tasks.Docs.html#module-grouping-functions-types-and-callbacks

Given @doc group matches the idea of indicating the logical grouping of
functions, introducing something else for a similar purpose at the language
level might be redundant?
I'm not sure if IDEs could leverage them somehow to achieve what you have
in mind.

Cheers,
Jean

Le mar. 18 mars 2025 à 05:38, 'Mark Madsen' via elixir-lang-core <
elixir-lang-core@googlegroups.com> a écrit :

> Has there been any discussion around adding a module attribute @mark to
> Elixir that would function as a code organization tool similar to Swift's //
> MARK: or Objective-C's #pragma mark?
>
> -- WHY --
> As an example I've found that when developing Phoenix LiveView
> applications, modules often accumulate numerous handle_event/3 and
> handle_info/2 callback functions and it would be nice to have a way to
> organize things.
>
> I understand that right now we can add comments, and we have compiler
> warnings. But nothing official an editor can support. Given that we want
> all the handle_event and handle_info functions together this seems like the
> way.
>
> Clearly it would be optional. But it would be beneficial.
>
> My proposal would:
>
>    1. Introduce @mark as a special module attribute recognized by the
>    Elixir compiler
>    2. Enable IDE/editor integration for code navigation and folding based
>    on these marks
>    3. Potentially allow documentation tools like ExDoc to use these marks
>    in module documentation
>
> The primary benefit would be improved code organization and readability in
> larger modules where related functions need to stay together but would
> benefit from visual separation and navigation support.
> Thoughts?
>
> I'm not asking someone to write this for me... but would like to
> understand if something like this would be accepted before working on it.
>
> Thanks,
>
> Mark
>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elixir-lang-core+unsubscr...@googlegroups.com.
> To view this discussion visit
> https://groups.google.com/d/msgid/elixir-lang-core/ebb12c67-1e90-430b-89c6-c78702e4c1d7n%40googlegroups.com
> <https://groups.google.com/d/msgid/elixir-lang-core/ebb12c67-1e90-430b-89c6-c78702e4c1d7n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/elixir-lang-core/CANnyohazJAaHk3DxrPgkrbT4x%3DPPE06KZcK-XkiL178XuXnvrQ%40mail.gmail.com.

Reply via email to