haskell / haskell/haskell-mode

haskell-cabal-subsection-arrange-lines should take in account comments

Open
#1,097 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Emacs Lisp
Stars
1.4k
Forks
354
Avg merge
5d 10h
Merged PRs (30d)
2

Description

This is a tricky case I want to discuss. Consider following dependencies list of scaffolded Yesod application with three extra dependencies I've added manually at the end:

``` cabal
build-depends: base >= 4 && < 5
, yesod >= 1.4.1 && < 1.5

, classy-prelude >= 0.10.2

, template-haskell

, unordered-containers
, containers
, vector
, time
-- extra
, lambdacms-core
, blaze-html
, wai
```

Now if I run `haskell-cabal-subsection-arrange-lines` it becomes:

``` cabal
build-depends: aeson >= 0.6 && < 0.10
, base >= 4 && < 5

, yesod-static >= 1.4.0.3 && < 1.6
-- extra
, lambdacms-core
, blaze-html
, wai
```

So, as you can see, everything till comment is rearranged as expected, but lines after comment leaved untouched. It is not matter where the point stands when re-arrange command is executed, the result is the same. In my current case I used comment to split dependency list into sections, but others can place comments for other needs. So, in my current case I expect the second section would be sorted independently of first one leaving comment as section separator (there is an easy way — wrap second section by region and call `sort-lines`).

Definitely it would be better if `haskell-cabal-subsection-arrange-lines` to sort whole list, but it's not clear how to deal with comments. I can think of few scenarios:
- leave current behaviour: sort list until first comment
- sort everything, move comments at the end of the list
- sort comment lines with dependencies, there are at least two options:
- assume comments are related to previous lines
- assume comments are related to following lines
- sort whole list by subsecions, where comment are assumed as subsection delimiters

I think all this scenarios could be covered by some optional parameter, defaulting to current behaviour.

What do you think?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.