* 9.6 support
Fixes
hls-refactor-plugin 9.6 support
hls-gadt-plugin
Fix 9.4 build
Fixes
hls-gadt-plugin fixes
WIP 9.6 patches
fixes
fixes
fixes
fixes
fixes
Fixes and add CI
CI
CI fixes
patch haskell/actions for https://github.com/haskell/ghcup-hs/issues/783
CI fixes
CI fixes
CI fixes
CI
CI
CI
CI
CI
Fix build on 9.0
Fix build on 9.0
hls-splice-plugin 9.6 compat
fixes
fixes
fixes
fixes
Fix benchmark build errors
9.2.5 and 8.10.7 had build errors when running benchmarks due to `mfsolve`
test suite having duplicate instances, so stop building tests for
mfsolve (see: https://github.com/kuribas/mfsolve/issues/8). Also,
`http2-4.0.0` has a parse error due to a misplaced haddock comment that
causes build failure with `-haddock`. It is fixed in the latest commit
of the source repo, so use that in the `cabal.project` for now.
Checkout correct commit on `pull_request` in CI
By default, the `pull_request` event has a `GITHUB_SHA` env variable set to the
"last merge commit on the GITHUB_REF branch"
(see https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request).
But we want to check out the latest commit on the branch whether or not it is a
merge commit. This commit changes the CI actions to do just that.
fixes
Use head.hackage for 9.4
Only use head.hackage for 9.5 and up
Reverts the change that caused head.hackage to be used for 9.4 as
well
Reintroduce source-repo-package for ekg-json
Fix refactor plugin tests
Fix missing constraint detection in refactor plugin
ghc 9.6+ allow newer unordered-containers:template-haskell
Some refactor tests no longer broken for 9.2
Fix simple-multi-test on 9.6
Mark simple-plugin as broken on 9.6
func-test fixes
Disable unsupported plugins on 9.6
Eval plugin fixes
Eval plugin test fixes, debug output in CI script
Restore 'working' setup/actions
WIP Fix GHC prerelease windows install
Fix eval plugin T11
fixes
Eval plugin fixes
Fix splice plugin test
Mark `simple plugin` ghcide test broken on 9.6
fixes
fixes
Use GHC 9.6-rc1 in CI
Try using 9.6.1 for CI
* 9.6 nix
* Remove head.hackage
* fixes
* fixes
* fixes
* fixes
* fixes
* fixes
* configuration-ghc-94.nix: Don't yolo anymore since packages work now
* Stop doing an extremely slow fetch of all-cabal-hashes
* Export an overlay that does not override the package set
* At least it works in nix on 9.4
* Allow ormolu-0.5.3
* Update flake to GHC 9.2.6 and 9.4.4
---------
Co-authored-by: Jade Lovelace <software@lfcode.ca>
* Set buildable on GHC 9.4
* Start work on GHC 9.4 compat
* Use patched `retrie`
* update retrie with github address. circumvent nix-prefetch-url.
* handle ExactPrint
* fix ghc 9.0 env.
* unwrap big CPP conditional for GHC 9.4
* GHC 9.4 buildable by disabling a few suggest.. functions
* enable disabled suggest...!
* hls-fourmolu-plugin is buildable
* hls-splice-plugin is buildable
* hls-hlint-plugin is buildable
* Enable plugins on GHC 9.4
* Add fourmolu for GHC 9.4
* fourmolu tweawk
* Fix `hls-hlint-plugin` build
- Build against GHC 9.4 API
- Increase upper bound on `hlint`
* Fix build of `hls-splice-plugin`
* annotation on close parenthesis. still need more work.
* found where closing parenthesis were missing
* examine internal annotation information.
* make use of makeDeltaAst. This fixes most of test failures in GHC 9.4
* remove dead code
* update apply-refact and hlint deps
* temporarily comment out hls-fourmolu-plugin.
* comment out build-tool-depends. then hls-fourmolu-plugin build succeeds with cabal v2-build
* remove unused fourmolu flake inputs
* fix ghc 9.0 build again.
* hlint and fourmolu for GHC 9.2!
* fix mistakenly overriden nix exp.
* remove unused hlint-3.3.6
* Fix CPP in hls-refactor-plugin
* Fix build error in hls-refactor-plugin
* Fix import
* Use `showErrors` instead of `showBag`
* fix initialization test error in refactor plugin.
* alternateNumberFormat and explicitFixity don't build on GHC 9.4
* force demoteIfDefer = id in typecheckModule for GHC 9.4.
* ignore tests which were already ignored with GHC 9.2
* fix extractDoesNotExportModuleName for GHC 9.4 by adjusting regex match
* use makeDeltaAst in removeRedundantConstraints
* fix addTypeAnnotationsToLiteralsTest
* Revert "alternateNumberFormat and explicitFixity don't build on GHC 9.4"
This reverts commit 4903092780031fb400b28f1e9ce696f1057855d8.
* Update flake lockfile
* Use upstream `retrie`
* Use upstream `retrie`
* Update lockfile
* Use upstream fourmolu
* fix arrow annotation on ghc 9.4
* fix flake.nix issue
* revert demoteIfDefer change for GHC 9.4.
* fix hls-splice-plugin build on GHC 9.0.2
* disable tracy on darwin.
* disable fourmolu plugin and ekg-json for now.
* fourmolu update to 0.10.1.0
* build fix for hls-refactor-plugin after merge
* update index-state.
* downgrade fourmolu to 0.9 for ghc 9.2 and 9.0
* remove unnecessary problematic Cabal-syntax dependency.
* update Cabal for ormolu in ghc 9.0 nix env.
* use custom apply-refact for now for both ghc 9.2 and 9.4
* added ghc >= 9.2 condition
* fix fourmolu with -f-fixity-th in nix env
* limit implicit-hie < 0.1.3
* add fourmolu back to build-tools-depends
* mark GHC92-failing tests to be failed on GHC 9.4
* ci failure test
* bump nix file.
* disable cachix action
* further comment out
* revive cachix action.
* remove commented-out
* fix hls-cabal-plugin by removing Cabal-syntax.
note that this is an opposite to #3383, to prioritize CI fix first.
* limit implicit-hie < 0.1.3
* added a small comment and link to the issue.
* put implicit-hie to ghcide dep
* update apply-refact rev
* use apply-refact-0.11.0.0 on hackage.
* 9.4 support for gadt and retrie plugins
Co-authored-by: Ian-Woo Kim <ianwookim@gmail.com>
Co-authored-by: Gabriella Gonzalez <gabriella@mercury.com>
Co-authored-by: Zubin Duggal <zubin.duggal@gmail.com>
* fix fourmolu with -f-fixity-th in nix env
* ci failure test
* bump nix file.
* disable cachix action
* further comment out
* revive cachix action.
* remove commented-out
* fix hls-cabal-plugin by removing Cabal-syntax.
note that this is an opposite to #3383, to prioritize CI fix first.
* limit implicit-hie < 0.1.3
* added a small comment and link to the issue.
* put implicit-hie to ghcide dep
* bump CI
* Initial working version
* Auto-add puns pragma, fix behavior with Hs98 fields
* Patch pragma so it adds NamedFieldPuns instead of RecordPuns
* Refactor big do block
* Make it work with record construction
* Convert to a rule based approach
* Cleanup, remove dead code
* Make it compile with all supported GHC versions
* Add tests
* Minor code reorganization
* Move common pragma logic to same file
* Remove strictness annotations
* Improve documentation
* Use interval map for efficient range filtering
* Add external documentation
* Add tests to GitHub CI
* Add debug log for collected records
* Add `getExtensions` to ghcide
* Indicate that it doesn't work with GHC 9.4
https://github.com/haskell/haskell-language-server/pull/3304#discussion_r1008034647
* Relax version bounds on base
* Add plugin to stack packages
* Add GHC 8.10 support
* Fix GHC 9.4 build failure
* Make `conPatDetails` total
* Revert "Indicate that it doesn't work with GHC 9.4"
This reverts commit 57646d35ad.
* Fix unused import caused by new compat exports
* Fix ConPat construction in GHC 8.10
* Rename test-suite to make it shorter
* Fix nix build by collecting latest hw-prim from Hackage
Co-authored-by: Pepe Iborra <pepeiborra@gmail.com>
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
The main motivation for this change is to enable development
of HLS plugins by generating a `.env` shell for every package in
this repository.
Example usage:
```ShellSession
$ nix develop .#haskell-language-server-dev-env.hls-fourmolu-plugin
```
This is a plain shell, though, without any tooling installed, identical
to the one that Nixpkgs provides by default.
This commit replaces manually specified `myst-parser` and `sphinx_rtd_theme`
packages with their counterparts already packaged on nixpkgs. With this
change, `poetry2nix` is no more used, therefore that is removed as well.
- Bumped nixpkgs, so that's a true GHC 9.4.2 and not 9.4.0, which was
failing in cabal which because it was detecting <=9.4.1.
- Fixed GHC 9.4 overrides for dependencies
- Use the "default" GHC environment for tooling in the shell. Hence it
rebuilds less.
- I introduced a flake for cabal-hashes, hence it can be updated
automatically (with `nix flake update`) and hence we can use
`callHackage` for any hackage package.
* upgrade lsp to 1.5
* fix stack.yaml
* try fix tests
* disable verbose logging in ghcide
* fix more tests in ghcide
* fix floskell test
* disable debug log in func-test
* disable debug log in lsp itself
* Revert "disable debug log in func-test"
This reverts commit 1fd6658c77.
* remove unused import
* fix hls test utils
* upgrade lsp in nix
* fix func-tests
* Revert "fix func-tests"
This reverts commit 2ecd76d0ba.
* fix waitForDiagnosticsFromSourceWithTimeout
* use Null as dummy message in waitForDiagnosticsFromSourceWithTimeout
* simplify a test case
* add comment about lsp bad logs
* build(nix): ghc922 -> ghc923
bumped nixpkgs and add support for ghc923 (replacing ghc922)
* fixes
* fixing for ghc90?
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
* nix: ghc92: ignore broken plugins
* nix: use current ghc for tools in the shell
Theses tools are pulled in the shell, but we don't need them to match
the GHC version used for development. Said otherwise, as long as we use
a working `cabal-install` to build with GHC 9.2, we don't care if that
cabal-install was built with GHC 8.10.
This gives more chance for theses tools to work and be in the binary
cache of nixpkgs.
* nix: disable shake-bench for ghc921
* nix: fix ghc 9.2 shell
* nix: explicit cabal project in devShell
Using alias, we get the "correct" behavior when typing `cabal build` in
the nix-shell, it points to the current cabal-project file.
* nix: remove special case for different ghc versions
* nix: move implicit-hie-cradle as a flake input
* nix: restore dev shell
This commit restores a working behavior for `nix-shell` or `nix
develop`, for all supported GHC versions.
When entering a `nix-shell`, or `nix develop
.#haskell-language-server-ghcXxX-dev` you will get an environment with
all the dependencies needed to run `cabal build`.
Haskell dependencies will be built by cabal instead of nix. This may be
more robust compared to a shell where dependencies are built by nix:
- It won't try to build any dependency with nix. This mean that it won't
benefit from nix caching, but on the other hand, it will perfectly
match the cabal plan.
- The nix shell may fail to start if an (possibly unneeded) dependency
was failing to build.
Entering nix-shell also generates an alias command `cabal_project` which
runs cabal with the correct project file if needed (e.g. for GHC 9.0 and
9.2). Users are notified with a message when entering the shell.
The old behavior (i.e. where dependencies are built with nix) is still
available with `nix develop .#haskell-language-server-xxx-dev-nix` (i.e.
suffix the name of the shell with `-nix`).
* nix: New entries which build all target at once
All HLS version can be built with `nix build
.#all-haskell-language-server`, and all development shells with `nix
build .#all-dev-shells`.
I had to workaround a limitation in `nix build` which is not able to
build multiples targets, instead I used linkFarmFromDrvs.
All packages and shells are now named with a unique package name
containing the GHC version.
* nix: Build all devShells and all binaries in CI
* nix: build HLS with dynamic linking
Related to #2668.
This fixs the build, however, because now HLS is dynamicly linked, it
pulls GHC as a dependency. The uncompressed closure size is now `~6GiB`.
* nix; fix CI command
* nix: only build dev shell with nix packages for current GHC version
* Another tentative to fix the build
* fix: Eval and alternate number format works with ghc 9.2
* fix CI build
* ANother tentative fix
Apparently `flake-compat` does not work correctly with local flake.
Reported by @teto and @smunix in 2621.
Co-authored-by: Javier Neira <atreyu.bbb@gmail.com>
* add selection range support
* add the whole import area as a selection step
* add selection range plugin to all project files
* merge type signature with value definition
* support ghc 9
* fix it for ghc-9.0
* remove unnecessary import
* reformat GhcIde.hs
* selection range: make it easier to understand
* selection range: improve error handling
* update lsp-types to 1.4.0.1
* add selection range to doc
* fix comment for findSelectionRangesByPositions
* remove a use of partial function
* update author & maintainer
* use foldlM1 instead of foldl1
* add testdata to cabal file
* update performace tips and log level
* update lsp-types in nix
Co-authored-by: Pepe Iborra <pepeiborra@gmail.com>
* refactor(flake): Use a separate flake for hackage sources
This will be easier to update, and pass them as one dictionary.
* flake: support for GHC 9.2
I've naively copied most of the special cases for `GHC 9.0.1`.
- `nix develop .\#haskell-language-server-921` gives me a shell in
which I'm able to `cabal build`
- `nix build .#haskell-language-server-921` builds HLS binary. I was
able to use it in a proprietary codebase (by importing the flake) and
it works fine.
- some plugins are disabled, `brittany`, `stylishhaskell`, `hlint`,
`haddockComments`, `alternateNumberFormat`. I didn't fight too much to
fix this because I'm not using them. I'll do an effort in the future
to fix them.
- `nix develop .\#haskell-language-server-921-dev` does not starts, I
need to investigate.
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Javier Neira <atreyu.bbb@gmail.com>
The nix flake was failing:
```
nix build .#haskell-language-server
```
Was failing because of bounds issue related to hackage `lsp`,
`lsp-types` and `lsp-test` projects.
I've bump theses version, introducing new flake input (so they can be
changed easily in the future) and now the build works.
* Update nix flake
Doing a nixpkgs update gains ghc 8.10.6 support.
lsp-types needed updating to satisfy bounds so I did that.
* Add ghc-lib-parser override required for ormolu
* Put the override in the right spot, oopsie
* Pass --print-build-logs to nix commands
* Fix tracy on darwin
* Remove the macOS hack since it got merged
* It appears this is actually ghc8107 by now
Co-authored-by: Javier Neira <atreyu.bbb@gmail.com>
Co-authored-by: Potato Hatsue <1793913507@qq.com>