mirror of
https://github.com/swarm-game/swarm.git
synced 2024-08-17 10:30:31 +03:00
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.
28 lines
763 B
Plaintext
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
|