Commit Graph

16 Commits

Author SHA1 Message Date
Pepe Iborra
5f0e7aa15b Remove the ghcide submodule 2020-12-29 13:17:40 +00:00
Alan Zimmerman
023eb06a5d
Update .gitmodules
Co-authored-by: Pepe Iborra <pepeiborra@me.com>
2020-09-02 19:38:09 +01:00
Alan Zimmerman
fe447f467f Update the ghcide upstream to be in haskell/ghcide
No other change
2020-09-02 19:16:49 +01:00
Alan Zimmerman
e9de74621d Trying new hls-3 branch 2020-08-09 15:57:01 +01:00
Luke Lau
839461a63a Bring in doc URL fix for Windows
Cherry-pick of the ghcide commits in https://github.com/digital-asset/ghcide/pull/721/files

Co-authored-by: Nick Dunets <DunetsNM@gmail.com>
2020-08-05 14:53:16 +01:00
Alan Zimmerman
4564196b4f Use wz1000/hls-3 ghcide branch
At b7de7ae89469693b76d92ca433119d91d3a9aac0
2020-08-03 20:56:07 +01:00
Luke Lau
0c99ce0411
Distributable binaries (#165)
Update ghcide to obtain the GHC lib dir at runtime, rather than at compile time with ghc-paths. This means that the binaries can be moved about since the lib dir is obtained on the fly
Share the exe/main.hs logic between ghcide and hls: the session setup logic which previously took up most of exe/main.hs now resides inside the ghcide library, and is used by both ghcide and hls's executables
Add a --project-ghc-version option to the wrapper which spits out the project's ghc version to stdout. This is useful for the vscode extension which can then use it to download the corresponding version of binary that the wrapper would have otherwise attempted to launch
Make the wrapper check to see if the correct tool is installed beforehand. For example, if it detects a stack project but stack isn't on the path, it will report an error then and there, rather than having hls/ghcide confusingly fail later on. The vscode extension uses this new error message as well to provide a pop up message linking the user to a website to install the missing tool
Remove cabal-helper from the wrapper, so that the implicit cradle logic is the same between ghcide/hls/hls-wrapper
And of course, add a GitHub action workflow that runs whenever a release is created on GitHub that builds static binaries on Linux, and distributable enough binaries on macOS and windows. This is documented a bit more in docs/releases.md

* WIP

* WIP 2

* WIP 3

* WIP 4

* WIP 5

* WIP 6

* WIP 7

* WIP 8

* WIP 9 Use patched hie-bios to get libdir dynamically

* Try building the wrapper

* Try to fix build_wrapper env variable not being picked up

* Try again

* Give up on the env var idea

* Try out static optimised builds?

* Try squashing the working dir

* Woops

* Try squashing the builddir

* Try going into the parent directory

* Radical approach - don't use such a long name for the wrapper

* Use dist-binary flag

* Debug why floskell fails to build on windows

* haskell-language-server => hls on CI

I hate that I have to do this

* Employ extreme path saving measures

* sed time :(

* Try making sed command portable

* Compress artefacts

* Tidy up wrapper logging

* Use version checking logic in hie-bios

* Add documentation on the releases process

* Remove unused code

* Append .exe to windows binaries

* Try out building remaining supported ghc configurations

* Add wrapper tests and update hie-bios

* Use index timestamp that exists on hackage

Fixes warning

* Update hie-bios

* Update hie-bios

* Try building windows jobs on -j1

* Skip windows 8.8.2

* Update ghc-check to use hie-bios runtime ghc libdir

* Upload binaries as an artifact too

* Try flicking on enable-executable-static

I don't expect this to work, puffnfresh has already tried this and had
to fork ghcup

* Fix artifact upload

* Update to latest ghcide and reuse loadSession

* Check if the tool is installed in --project-ghc-version in the wrapper

* Fix wrapper tests by copying to temporary directory

* Try caching

* Tidy up and switch back to cabal helper implicit cradle

* use split sections

* Remove cabal-helper and replace it with hie-bios implicit logic

The cabal-helper cradle was only used by the wrapper for detecting the
project GHC version in the absence of an explicit hie.yaml file, whilst
ghcide itself used the hie-bios implicit cradle logic. This brings the
two in sync so the wrapper should behave more predictably now.

* Undo agpl common stanza change

* Add release number

Co-authored-by: amesgen <amesgen@amesgen.de>
2020-07-20 20:28:52 +01:00
Fendor
9bfaca83aa Upgrade to hie-bios 0.6.1 2020-07-13 16:27:03 +02:00
Alan Zimmerman
b673f0b682 Use updated wz1000 hls-2 branch for ghcide
Compiles now with GHC 8.6.5, tests do not all pass though
2020-06-14 12:47:21 +01:00
Alan Zimmerman
08435a7409 Experimental multi-component support
Based on ghcide with

    mpickering/wip/multi-rebase

rebased onto

    pepeiborra/interface-files-0.1.0.0-rebased-once-more
2020-03-21 21:01:01 +00:00
Alan Zimmerman
543d2bcf78 Revert to digital-asset for submodule 2020-02-17 19:40:51 +00:00
Alan Zimmerman
ab1ef255e5 Choose formatter based on config.
Requires https://github.com/digital-asset/ghcide/pull/416
2020-02-09 21:11:51 +00:00
Alan Zimmerman
f18d916bee Formatting via Ormolu plugin
Supports whole module and range formatting.

Does not yet extract options from the hie-bios cradle.

Closes #30
2020-02-04 20:48:50 +00:00
Thomas M. DuBuisson
d22c2c426a The @alanz repo fails to clone, use digital-assets
N.B. The below git error when doing a submodule init or recursive clone
with the alanz repo as the submodule.

```
error: Server does not allow request for unadvertised object 956e11dff8
Fetched in submodule path 'ghcide', but it did not contain 956e11dff8. D
irect fetching of that commit failed.
```
2020-01-28 20:53:38 -08:00
Alan Zimmerman
c986165317 Add trivial diagnostic generation to the Example 2020-01-26 12:30:41 +00:00
Pepe Iborra
f012fd0e81 Embed ghcide as a git submodule 2020-01-26 09:05:39 +00:00