* update Gitpod config
* update nix shellHook & docs
* install pre-commit hook
* add kokobd as code owner to .gitpod.*
* add gen-hie to Gitpod
* add tools for doc
* remove .pre-commit-config.yaml from .gitignore
* set vscode formatter to stylish-haskell in Gitpod
* refactor selection range plugin
* refine selection range
* add CodeKind to CodeRange
* rename hls-selection-range-plugin to hls-code-range-plugin
* update docs about selection range
* cleanup RuleTypes.hs
* add the missing bang pattern
* fix subRange
* add some unit tests to CodeRange.Rules
* add tests for removeInterleaving
* add even more tests
* fix extra sources
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* HLint partial functions
* Delete commented out stuff
* Delete flag-based warnings, unclear they add much
* Delete DA-specific hints
* Delete extra cpp args
* Delete extension options relating to dead build system
* Don't bother trying to restrict CPP for now, it's everywhere
* Make the hlint job fail if there are any errors
* Fix for rebase, add unsafePerformIO and fold1 variants
* Add some more indexing functions
* Try turning off hlint on this test file
* Add .hlint.yaml file for hls-hlint-plugin
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Collect metrics and expose an EKG server
* register gc metrics locally
* getDatabaseKeys
* fixups
* Abstract monitoring and put EKG behind a Cabal flag
* Add CI for the new flag
* fix double ifdef
* link to GHC docs for eventlogs
* log when stopping the EKG server
* Allow CPP in modules
* Add doc comments
* Apply suggestions from code review
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
* Compat. with ghc 9.2
* use an ekg-json snapshot that preserves compat. with ghc 8.x
* confine CPP to the EKG module
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
* Add change-type-signature test suite and enable alternate-number-format for 9.2
* Revert 9.2.1 enable tests for alternate-number-format
* Clean up test file
* GHC 9.2.1 test fixes
* -Wall fixes
* Add to fix test failures
* Bump Version
* Fix codeAction on 9.2
* Enable test
* pointCommand: MIN_VERSION_ghc to 9.2
* Specify version
* Fix edit command
* Enable class plugin in cabal
* Comment addWhere
* Unify the method of obtaining identifiers
* Remove CPP
* Remove compile flag
* Rewrite filter with more restricts
Co-authored-by: Pepe Iborra <pepeiborra@gmail.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
* Disable -dynamic for all workflows
* Remove quotes
* Bump version to 1.6.1.1
* Update changelog for 1.6.1.1
* Correct flag set
* add comment to ci step
* Restore header and link
* Reverse condition to upload candidates
As github.event.inputs.upload-candidates has no value when
the workflow is triggered via a -hackage branch
* Remove parenthesis
* Remove unused rerun by comment
* Remove install zip (again)
* Ignore gitlab ci in github
* Update release instructions
* Correct hls version
* Use name schema of github release
* Apply markdown-lint
* Complete th workarounds
* Bum up hls version
* Fix bug hls-wrapper non static
* Update dynamic build instructions
* Bump up wingman due to the last fix
* Correct grammar
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Add list of merged prs
* Remove branch trigger
* Update release instructions
* Include 9.2.1 in the current release
* Bump up hls version
* remove duplicate mention
* Remove references to branch name
* Fix cabal.project gen
* Correct fail-fast condition
* Bump up minor version
* Bump up major version
* Bump up major version
* Allow brittany only for 9.0.1
* brittany not supported in hackage and 9.0.2
* Not short hls for hackage
* Bump up versions everywhere
* Update hackage index
* Add ghcide in rename plugin
* Apply linter and add selection demo
* Add header linkable
* Add first version of release description
* Add last prs
* Mention wingman
* Grammar corrections
Co-authored-by: Jan Hrcek <2716069+jhrcek@users.noreply.github.com>
* Correct mention
Co-authored-by: Pepe Iborra <pepeiborra@me.com>
* Warn about th in docs
* Remove reference to install doc
* Rephrasing
Co-authored-by: J. S. <document_done@hotmail.com>
* Better style
Co-authored-by: Junyoung "Clare" Jang <jjc9310@gmail.com>
* Use could to stress it likely will not work
* REmove reliable from the warning
* Reorder comments
* Rephrasing
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
* Update docs/supported-versions.md
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
* Use last version of internal deps
* Restore original wording
* One more pr
* One more pr
Co-authored-by: Jan Hrcek <2716069+jhrcek@users.noreply.github.com>
Co-authored-by: Pepe Iborra <pepeiborra@me.com>
Co-authored-by: J. S. <document_done@hotmail.com>
Co-authored-by: Junyoung "Clare" Jang <jjc9310@gmail.com>
Co-authored-by: Michael Peyton Jones <me@michaelpj.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>
* add a failing test case for positionInRange
* fix positionInRange in PluginUtils
* add hls-plugin-api to CI
* fix ci
Co-authored-by: Javier Neira <atreyu.bbb@gmail.com>
* Remove integer-simple workaround
* Skip upload to the release
* Fix echo cabal.project
* Echo PATH
* Use specific cache for build
* runner not allowed out of steps
* Use common cache
* Use raw ubuntu for ghc-9.2.1
* Enable alpine for ghc-9.2.1
* Replace gitrev with githash
* Handle GitInfo exception
As it breaks `cabal install`
* Clean up build workflow
* Enable brittany for ghc-9.0.2
* Make works using cabal freeze
* Add stack 9.2.1 to ci
* Use new *molu versions
* Enable rename for stack 9.2.1
* Use last ghc-lib
* Use correct boot pkgs
* Use last ghc-exactprint
* Reorganize and use lens-5.1
* update retrie
* Comment class plugin package
* Handle Nothing case
* Restore ghc-typelits deps
* More non-exhaustive patterns
* More non-exhaustive patterns
* Set pedantic (-WError) true for cabal
* Remove pedantic as we set it out in cabal.project
* Not set pedantic for ghc-9.2.1
* Set pedantic in cabal.project's
* More non-exhaustive patterns
* Not set pedantic for ghc-9.0.1
* More incomplete patterns
* Fix WErrors
* Dodgy import
* Correct CPP conditions
* Not MonadFail in Prelude
* Fix more warnings
* Restore missing fun
* unused imports
* Enable refine imports
* more fixes
* Enable brittany in nix for 9.0.1
* Use newer prettyprinter
* Return to master
* Enable tactics in stack-9.2.1.yaml
* Enable pedantic in ci
* Avoid deprecation warning with CPP �
* Use default prettyprinter
* Update refinery for ghc-9.2.1
* Ignore deprecations
* Use dev version of ghc-source-gen
* disable wingman for 9.2.1
* Enable wingman for 9.0.2
* disable tactic with flag
* yaml grammar
* Use setup-build action
* Correct workflow
* Build flags for al major os's
* The integer twaek is needed for the solver
* Disable tests beforehand
* flags only affect local packages
* Exclude 8.6.5
* Exclude 8.8.4
* Initial partially broken ghc9 support for tactics
It compiles and most tests succeed, but some fail.
In particular, the ones where it should suggest `show` fails to find
that as a possible solution and fails to find evidence for `Show a`.
* Enable tactics plugin for nix as well
* Wingman does support ghc9 now
* Fix stack support for tactics ghc-9.0.1
* Enable tests for tactics on ghc-9 on ci
* Actually enable tactics for ghc-9 on nix
* Wingman: Improve test failure messages
Previously when wingman fails to find a solution, the test failure
would say "Timed out when waiting for a message".
Now it instead prints the error message from wingman.
* Get theta
* Make wrapper theta discovery more reliable
* Fix AutoThetaRankN
* Fix FmapJoin and FmapJoinInLet
* Fix MetaBegin
* Cleanup
* Fix merge
More fixing the merge
No, seriously fix the merge
Fix a broken merge
* Need a comma
* Try a better ConPatIn
* Oops
* its a nightmare
* i hate ci
* ok that fixes the conpat
* Maybe this is the end of it
* ci
* refinery
* undo some changes
* no more tctypes?
* maybe it builds now
* omg
* om F g
* expect fail on 9.2
* fix
* fix again
Co-authored-by: Andreas Källberg <anka.213@gmail.com>
Co-authored-by: Javier Neira <atreyu.bbb@gmail.com>
* Extract out ci build setup
* Add required shell property
* Add support for ghc-9.0.2
* Test ghc 9.0.2
* Add unix boot package
* Use primitive-unlifted < 1.0
* Use primitive-unlifted < 1.0 for stack
* Ude 9.0.1 for hackage
We cant use 9.0.2 until all deps do not need allow-newer
* Use a unified cabal-ghc90.project
And bump up index state to get lastest hie-bios
* Use last snapshot with ghc-9.0.2 support
* Use new cabal-ghc90.project in build
* Add stm-containers
* Add specific tweaks for ghc-9.0.2
* Use the las ghc-boot-9.0
* Fix test adding allow-newer
Co-Authored-By: @michaelpj
* Use unix-compat from hackage
* Use unix-compat from hackage
* Make consistent lastest stack.yamls
* Clean up cabal.project
* more cleanups
* Update tweaks in hackage ci
* Correct comment
* Correct fourmolu condition
* Correct fourmolu condition in tests
* Removing the all target from caching
It builds all project packages even if we they are not buildables
(and are not included in hls due to flags)
Its goal was build all tests and benchmarks but --enable-tests
ans --enable-benchmarks should work
Last one does not: https://github.com/haskell/cabal/issues/6259
* exclude Brittany 0.14.0.1
* Update snapshot to get new lsp
* document flag
* Document and build ghcide benchmark
* Doc and use ghc-9.0.2 in hackage
* Add ghc-9.2.1 to tested-with
* Use 9.0.2 in gitlab
* Use last *molus
* Use same versions as cabal build
* Use cabal freeze versions
* Add dep for ghcide tests
* one by one
* Unnecessary change
* Remove unnecessary flag
* Corrections
* Move blocks
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Introduce a Compat layer for retrie Annotated type
* Use GetAnnotatedParsedSource in rename plugin
We already have a cached delta AST at hand
* fix build issues
* remove debugging traces
* Fix hlint