swarm/cabal.haskell-ci
Brent Yorgey c4a6e273c1
Update to depend on lsp-2.4.0.0 (#1762)
Update to use the `lsp-2.4` API.  Closes #1350.

Initially I hoped that any `lsp-2.x` would work.  However, the `SeverDefinition` record changed in `2.2` so I initially set that as a lower bound.  But then it turns out that `2.4` changed which module it is importing `Rope` from; since we work with ropes in the `Hover` module it matters since we have to import the matching module.  Updating to the new `Rope` type also required some changes as the API provided by the new `Rope.Mixed` module is a bit different than the old module, so we would not even be able to easily put in CPP to conditionally depend on the right rope module depending on the `lsp` version.  Finally, this means dropping support for GHC 9.0 since `lsp-2.4` does not support it.

Along the way I also fixed a minor issue related to showing type information returned by the LSP server, so that it uses `prettyTypeLine` to display the type on a single line (in my editor, when the type does not use a single line it gets cut off).  For comparison see also #1610. 

This refactoring was a big pain because a lot of things (names of types and constructors, locations of exports, etc...) changed from 1.x to 2.x, but there was not much in the way of documenting what had changed. =(   I am pretty sure that all functionality has been preserved but I would appreciate independent confirmation.

This is also a prerequisite for updating other dependencies such as the `base` version (I will open a follow-up PR soon) since the old `lsp-1.x` versions do not allow many newer versions of various dependencies.
2024-02-12 11:05:39 -06:00

28 lines
763 B
Plaintext

-- See cabal.haskell-ci in the tool repository for all field explanations
-- https://github.com/haskell-CI/haskell-ci/blob/master/cabal.haskell-ci
-- --no-tests --no-benchmarks build is useful to verify that package
-- builds when less constrained
-- But Swarm constrains all library dependencies and tests almost not at all
no-tests-no-benchmarks: False
unconstrained: False
-- Run cabal-docspec
docspec: True
-- Build haddocks. Accepts booleans or version range.
haddock: True
-- Build benchmarks. There are no way to run benchmarks. Accepts booleans or version range.
-- Swarm has benchmarks so at least build them :)
benchmarks: True
-- Run HLint
hlint: True
hlint-job: 9.4.8
hlint-yaml: .hlint.yaml
hlint-download-binary: True
raw-project
flags: +ci