Date: Monday, December 26, 2022 @ 09:47:34 Author: felixonmars Revision: 1367594
archrelease: copy trunk to community-staging-x86_64 Added: haskell-language-server/repos/community-staging-x86_64/ haskell-language-server/repos/community-staging-x86_64/PKGBUILD (from rev 1367593, haskell-language-server/trunk/PKGBUILD) haskell-language-server/repos/community-staging-x86_64/haskell-language-server-aeson-2.patch (from rev 1367593, haskell-language-server/trunk/haskell-language-server-aeson-2.patch) ---------------------------------------+ PKGBUILD | 70 ++++++++++++++ haskell-language-server-aeson-2.patch | 153 ++++++++++++++++++++++++++++++++ 2 files changed, 223 insertions(+) Copied: haskell-language-server/repos/community-staging-x86_64/PKGBUILD (from rev 1367593, haskell-language-server/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2022-12-26 09:47:34 UTC (rev 1367594) @@ -0,0 +1,70 @@ +# Maintainer: Felix Yan <felixonm...@archlinux.org> + +pkgname=haskell-language-server +pkgver=1.5.1.0 +pkgrel=24 +pkgdesc="LSP server for GHC" +url="https://github.com/haskell/haskell-language-server#readme" +license=("Apache") +arch=('x86_64') +depends=('ghc-libs' 'haskell-aeson' 'haskell-aeson-pretty' 'haskell-async' + 'haskell-base16-bytestring' 'haskell-cryptohash-sha1' 'haskell-data-default' + 'haskell-extra' 'haskell-ghc' 'haskell-ghc-api-compat' 'haskell-ghc-paths' 'haskell-gitrev' + 'haskell-hashable' 'haskell-hie-bios' 'haskell-hiedb' 'haskell-hls-call-hierarchy-plugin' + 'haskell-hls-eval-plugin' 'haskell-hls-explicit-imports-plugin' + 'haskell-hls-floskell-plugin' 'haskell-hls-fourmolu-plugin' 'haskell-hls-ormolu-plugin' + 'haskell-hls-graph' 'haskell-hls-haddock-comments-plugin' 'haskell-hls-hlint-plugin' + 'haskell-hls-module-name-plugin' 'haskell-hls-ormolu-plugin' 'haskell-hls-plugin-api' + 'haskell-hls-pragmas-plugin' 'haskell-hls-retrie-plugin' + 'haskell-hls-stylish-haskell-plugin' 'haskell-hslogger' 'haskell-lens' 'haskell-lens-aeson' + 'haskell-lsp' 'haskell-optparse-applicative' 'haskell-optparse-simple' 'haskell-regex-tdfa' + 'haskell-safe-exceptions' 'haskell-sqlite-simple' 'haskell-temporary' + 'haskell-unordered-containers') +# Disabled due to not compatible with GHC 9: +# 'haskell-hls-brittany-plugin' 'haskell-hls-class-plugin' 'haskell-hls-splice-plugin' 'haskell-hls-tactics-plugin' 'haskell-hls-refine-imports-plugin' +makedepends=('ghc' 'uusi' 'haskell-hls-test-utils' 'haskell-hspec-expectations' 'haskell-lsp-test' + 'haskell-lsp-types') +checkdepends=('cabal-install') +source=("https://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz" + haskell-language-server-aeson-2.patch) +sha512sums=('555a2940ed1107bf8b3c1ad5c0b6fd71b3998173b18fdace1b1fdca110d8b445b223bb3c312621cd5fe1735302480c86d957df9e086e380855bcea6df11a13a0' + 'ef13dbef55343271d4bd5bd8ae3150597113c5b6503fb6bb39544e11345172f38798b1d9bb131c5734bce366a59d98387ae288c2d5b5a3f3740ee135b48bbf8f') + +prepare() { + cd $pkgname-$pkgver + patch -p1 -i ../haskell-language-server-aeson-2.patch + find test/testdata -name \*.cabal -exec uusi --add-options-all=-dynamic {} \; + uusi -u ghc-api-compat $pkgname.cabal +} + +build() { + cd $pkgname-$pkgver + + runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \ + --prefix=/usr --docdir=/usr/share/doc/$pkgname --datasubdir=$pkgname --enable-tests \ + --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid --ghc-option=-fllvm \ + --ghc-option=-optl-Wl\,-z\,relro\,-z\,now \ + --ghc-option='-pie' \ + -fignore-plugins-ghc-bounds -f-brittany -f-class -f-refineImports -f-tactic -f-splice + + runhaskell Setup build $MAKEFLAGS + runhaskell Setup register --gen-script + runhaskell Setup unregister --gen-script + sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh + sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh +} + +check() { + cd $pkgname-$pkgver + PATH="$PWD/dist/build/haskell-language-server:$PWD/dist/build/haskell-language-server-wrapper:$PATH" LD_LIBRARY_PATH="$PWD/dist/build" runhaskell Setup test || echo "Tests failed" +} + +package() { + cd $pkgname-$pkgver + + install -D -m744 register.sh "$pkgdir"/usr/share/haskell/register/$pkgname.sh + install -D -m744 unregister.sh "$pkgdir"/usr/share/haskell/unregister/$pkgname.sh + runhaskell Setup copy --destdir="$pkgdir" + install -D -m644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/ + rm -f "$pkgdir"/usr/share/doc/$pkgname/LICENSE +} Copied: haskell-language-server/repos/community-staging-x86_64/haskell-language-server-aeson-2.patch (from rev 1367593, haskell-language-server/trunk/haskell-language-server-aeson-2.patch) =================================================================== --- community-staging-x86_64/haskell-language-server-aeson-2.patch (rev 0) +++ community-staging-x86_64/haskell-language-server-aeson-2.patch 2022-12-26 09:47:34 UTC (rev 1367594) @@ -0,0 +1,153 @@ +From 2625689ad4308f5ca207b24fbec2a569ed229347 Mon Sep 17 00:00:00 2001 +From: Javier Neira <atreyu....@gmail.com> +Date: Wed, 12 Jan 2022 17:24:53 +0100 +Subject: [PATCH] Add support for brittany (needs aeson-2) and floskell with + ghc-9.0.1 (#2551) + +* Enable tests for brittany and 9.0.2 + +* Enable tests for floskell plugin + +* cabal-ghc901.project: naively enable brittany + +* haskell-language-server.cabal: bump brittany flag <(9.0.1->9.2.1) + +* Trying to add support for brittany + +* Use last hackage floskell version + +* Activate floskell in func-test suite + +* Restrict brittany in hackage for ghc<9.0.1 + +* Adapt to Aeson.Key + +* Update lsp source repo package + +* Refer pr for butcher + +* Add missing prefix + +* Adapt to aeson-2 (incomplete) + +* Use compat module + +* Support for aeson-2 and extra-1.7.10 + +* Remove lsp + +* Allow newer aeson for stylish-haskell + +* Add needed import for non windows + +* Remove insertJson and toJsonKey + +* Update cabal-ghc901.project + +* Missing import + +* Avoid CPP by using lens-aeson + +* Update hls-plugin-api/src/Ide/Plugin/ConfigUtils.hs + +* Use ghcide compat module + +* Use type alias in cpp + +* Fix stack build for ghc-8.6.5 + +* Use lens-aeson key + +* Use lens-aeson in func-test + +* Fixup shake-bench + +* Update docs + +* Switch to lens ix + +* Try this + +Co-authored-by: Anton-Latukha <anton.latu...@gmail.com> +Co-authored-by: Michael Peyton Jones <m...@michaelpj.com> +Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> +--- + .github/workflows/test.yml | 2 +- + cabal-ghc901.project | 15 ++++--- + ghcide/ghcide.cabal | 3 +- + ghcide/src/Control/Concurrent/Strict.hs | 11 +++--- + ghcide/src/Development/IDE/GHC/Orphans.hs | 23 ++++++----- + haskell-language-server.cabal | 5 ++- + hls-plugin-api/hls-plugin-api.cabal | 1 + + hls-plugin-api/src/Ide/Plugin/ConfigUtils.hs | 39 +++++++++---------- + hls-plugin-api/src/Ide/Plugin/Properties.hs | 27 ++++++------- + hls-plugin-api/src/Ide/Types.hs | 2 +- + .../hls-brittany-plugin.cabal | 1 - + .../src/Ide/Plugin/Brittany.hs | 32 ++++++++------- + shake-bench/shake-bench.cabal | 2 + + .../src/Development/Benchmark/Rules.hs | 31 ++++++++------- + stack-8.10.6.yaml | 2 + + stack-8.10.7.yaml | 2 + + stack-8.6.5.yaml | 5 ++- + stack-8.8.4.yaml | 3 +- + stack-9.0.1.yaml | 12 ++++-- + stack.yaml | 2 + + test/functional/FunctionalCodeAction.hs | 20 +++++----- + 21 files changed, 134 insertions(+), 106 deletions(-) + +diff --git a/haskell-language-server.cabal b/haskell-language-server.cabal +index c35e8c0a37..e5898b8d1e 100644 +--- a/haskell-language-server.cabal ++++ b/haskell-language-server.cabal +@@ -433,6 +433,7 @@ test-suite func-test + , data-default + , hspec-expectations + , lens ++ , lens-aeson + , ghcide + , hls-test-utils ^>= 1.1.0.0 + , lsp-types +diff --git a/test/functional/FunctionalCodeAction.hs b/test/functional/FunctionalCodeAction.hs +index cf368b0613..3d160931b7 100644 +--- a/test/functional/FunctionalCodeAction.hs ++++ b/test/functional/FunctionalCodeAction.hs +@@ -4,17 +4,17 @@ + + module FunctionalCodeAction (tests) where + +-import Control.Lens hiding (List) ++import Control.Lens hiding (List) + import Control.Monad + import Data.Aeson +-import qualified Data.HashMap.Strict as HM ++import Data.Aeson.Lens (_Object) + import Data.List +-import qualified Data.Map as M ++import qualified Data.Map as M + import Data.Maybe +-import qualified Data.Text as T ++import qualified Data.Text as T + import Ide.Plugin.Config +-import Language.LSP.Test as Test +-import qualified Language.LSP.Types.Lens as L ++import Language.LSP.Test as Test ++import qualified Language.LSP.Types.Lens as L + import Test.Hls + import Test.Hspec.Expectations + +@@ -56,11 +56,11 @@ renameTests = testGroup "rename suggestions" [ + + cars <- getAllCodeActions doc + cmd <- liftIO $ inspectCommand cars ["Replace with", "putStrLn"] +- let Just (List [Object args]) = cmd ^. L.arguments +- Object editParams = args HM.! "fallbackWorkspaceEdit" ++ let Just (List [args]) = cmd ^. L.arguments ++ editParams = args ^. ix "fallbackWorkspaceEdit" . _Object + liftIO $ do +- "changes" `HM.member` editParams @? "Contains changes" +- not ("documentChanges" `HM.member` editParams) @? "Doesn't contain documentChanges" ++ (editParams & has (ix "changes")) @? "Contains changes" ++ not (editParams & has (ix "documentChanges")) @? "Doesn't contain documentChanges" + + executeCommand cmd + _ <- anyRequest