Skip to content

haskell-cabal-add-dependency messes up cabal file if tabs are not turned off. #474

Closed
@rabipelais

Description

@rabipelais

I am attempting to add a dependency automatically to a cabal file. However, after the insertion, the cabal file is completely broken. This happens if indent-tabs-mode is set to true, even if it is set to false for haskell-cabal mode.

Steps to reproduce

Start with default auto-generated minimal cabal file.
With that file in the current buffer run:
(setq-default indent-tabs-mode t)
(haskell-cabal-add-dependency "foo" "3" nil nil)
Answer yes to prompts

Expected result

name:                test
version:             0.1.0.0
license-file:        LICENSE
build-type:          Simple
cabal-version:       >=1.10

executable test
  main-is:             Main.hs
  build-depends:  foo >= 3
                 , base >=4.7 && <4.8
  default-language:    Haskell2010

Actual result

name:                test
version:             0.1.0.0
license-file:        LICENSE
build-type:          Simple
cabal-version:       >=1.10

executable test
  main-is:             Main.hs
  build-depends:                           foo >= 3
                     , 4.8
  default-language:    Haskell2010

Note that the weird indentation and lack of base is verbatim copied from my editor. The whitespace between build-depends: and foo is tabs, not spaces.

Notes

As mentioned above, this happens if tabs are turned on, even if they are turned off for all haskell related modes. Adding more dependencies after this only makes the file wonkier.
If I undo the (haskell-cabal-add-dependency "foo" "3" nil nil) command, set indent-tabs-mode to nil, and re-add the dependency, it is inserted correctly this time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions