Commit Graph

71 Commits

Author SHA1 Message Date
jneira
6394dbc7b5 Use ghc-lib-8.10.3 2021-01-01 21:52:03 +01:00
Pasqualino Titto Assini
edb150ac52 moved eval plugin to hls-eval-plugin (rebased and fixed) 2020-12-29 18:38:27 +01:00
Pepe Iborra
abb3953396 Disable ghci objects in all the stack descriptors
This is needed to build with Cabal v1 if ghc is built with
DYNAMIC_GHC_PROGRAMS=NO which is the case e.g. in Windows
2020-12-29 13:22:04 +00:00
Pepe Iborra
763108cd48 hie-compat and shake-bench are now top-level projects 2020-12-29 13:22:03 +00:00
Junyoung Clare Jang
044259521d
Implements basic Class plugin 2020-12-26 02:23:29 -05:00
jneira
4d5253725b Use brittany last released version 2020-12-14 19:59:01 +01:00
jneira
ea14692259 Use brittany version compat with ghc-8.10 2020-12-14 19:58:58 +01:00
jneira
00db35153e Update stack config to use ghcide-0.6 2020-12-14 19:58:56 +01:00
Pepe Iborra
7f6080ed91
Split the Imports and Retrie plugins (#647)
* Split out the explicit imports plugin

* Split out the retrie plugin

* Avoid test-breaking plugin descriptor change

It changes the order in which code actions get listed.
Some of the code action tests are not very smart and break.

* Fix stack descriptors

* Add ghc-api-version.h

* add LICENSE
2020-12-05 19:33:09 +00:00
Avi Dessauer
2be75a1a7a Simplify and Bump implicit-hie version constraints 2020-12-02 23:03:38 -05:00
Javier Neira
56ff141fb1
Merge pull request #624 from gwils/update-fourmolu
Update fourmolu to 0.3.0.0
2020-11-25 07:28:23 +01:00
George Wilson
0c1607f28e Update fourmolu to 0.3.0.0 2020-11-25 10:22:39 +10:00
Alistair Burrowes
cafb33d462 Bump ormolu to 0.1.4.1 2020-11-23 08:47:37 +11:00
Avi Dessauer
4855ae6714 Update implicit-hie 2020-11-12 02:02:28 -05:00
jneira
c67de5a968 Use last ghcide 2020-11-01 23:51:55 +01:00
jneira
f1751b710a Use hlint-3.2 2020-10-28 07:36:50 +01:00
jneira
89c4851ec1 Use latest ghc-lib version 2020-10-28 07:36:35 +01:00
jneira
706dfcc880 Fix and clean stack extra-deps 2020-10-28 07:36:28 +01:00
jneira
a99912f563 Rename to hls-hlint-plugin 2020-10-28 07:36:26 +01:00
jneira
3a46078e15 Convert hlint-hls-plugin in a package
Include resolver bumps for stack-8.8.3, 8.8.4, 8.10.1 and 8.10.2
2020-10-28 07:36:24 +01:00
jneira
9be128f3a7 Use implicit-hie-0.1.2.0 2020-10-22 11:10:22 +02:00
Sandy Maguire
1be17d4b9e
Separate tactics into its own package (#516)
Move the tactics plugin into a separate package, completely distinct form the hls exe which previously hosted this code. This is the first step towards moving tactics out of hls proper entirely.
2020-10-19 11:44:58 -07:00
Sandy Maguire
2533574a7f
Allow hole filling to deal with recursion (#472)
This PR enhances the "attempt to fill hole" code action, allowing it to implement self-recursive functions. The generated code ensures recursion occurs only on structurally-smaller values, and preserves the positional ordering of homomorphically destructed arguments.

It's clever enough to implement foldr and nontrivial functor instances.

Co-authored-by: TOTBWF <reed.mullanix@calabrio.com>
2020-10-19 09:51:23 -07:00
Kamil Dworakowski
c3c7755e4e Fix stack build for ghc-8.8.3 failing on some machines
Bump the lts version to resolve an issue with these-1.1.1

these-1.1.1 fails to build on some machine due to a bug in gcc. This
was worked around in these-1.1.1.1
2020-10-14 13:11:39 +02:00
Maxim Koltsov
e3abcfc5c4
Bump stylish-haskell to 0.12.2.0 2020-10-09 11:34:52 +02:00
Alistair Burrowes
63ce444396 Bump ormolu to 0.1.3.0 2020-10-04 07:38:09 +11:00
Luke Lau
e4bb856741
Merge branch 'master' into fourmolu-3 2020-10-03 14:41:02 +01:00
Reed Mullanix
2be03cc9ab
Implement 'Attempt to fill hole' code action (#431)
* [WIP] Start work on 'auto'

* Get current binding

* Fix currentBindingName for class methods

* Proper impl of getDefiningBindings

* Forgot to checkin bindsites

* [WIP] Update version of refinery

* Bind all tyvars if possible

* WIP: Instantiate polymorphic functions

* Split out fresh type variables when instantiating

* Make everything compile

* Separate out tactics

* oneWayUnifyRule

* [WIP] Add 'TacticState'

* [WIP] Tweak 'unify' and 'unifyOneWayRule'

* [WIP] Start work on skolem tracking

* [WIP] Fix 'checkSkolemUnification'

* Update judgement type

* Add a Context to TacticM

* Don't destruct already destructed

* Remove the internal lib

* Cleanup warnings

* Move debug machinery into *.Debug

* Rip types out of machinery

* Cleanup warnings

* Continue splitting Machinery

* Rip out GHC and Naming

* Get it all compiling

* Stop re-exporting from Machinery

* Split out codegen/rules

* Remove gross/unused tactics

* Make newSubgoal derive from an existing judgement

* remove newJudgement

* Disallow current function from auto

* Cleanup auto

* Stop using the Judgement ctor

* Track pattern value

* Better showAstData

* Get module-scoped funcs

* Split all data constructors

* assumption -> assume

* Don't destruct if there are zero datacons

* Lambda case destruct tactics

* Fix the tests

* Rip out debug stuff since it fails CI

* Tests for lambda case actions

* Golden testing machinery

* Attempt to fill hole

* [WIP] Use 'refinery-0.2.0.0'

* [WIP] Update refinery in all stack.yaml files

* Bump version in cabal file

* Bump cabal index state

* Sort goals by heuristic

* Naming for unit types

* Heuristic for auto

* Penalize holes more

* Naming for unit types

* Give the name "unit" to units

* Fallback names for symbols and punctuation

* Get "good" name for symbolic names

* Update plugins/tactics/src/Ide/Plugin/Tactic/CodeGen.hs

Co-authored-by: wz1000 <zubin@cmi.ac.in>

* Make the TacticState strict

* Make the judgement strict

* Simplify when we use position mapping

* Move bindsites to ghcide

Co-authored-by: Sandy Maguire <sandy@sandymaguire.me>
Co-authored-by: wz1000 <zubin@cmi.ac.in>
2020-10-03 07:53:59 +01:00
George Thomas
9835061291 Update Fourmolu in stack configs 2020-10-03 01:43:58 +01:00
jneira
ab4bec5241 Use implicit-hie-cradle-0.2.0.1
Wit the fix for #417
2020-09-24 06:26:44 +02:00
Sandy Maguire
b43a8cd78d
Case splitting and lambda introduction (#391)
Case split and tactics via refinery

Bump ghcide submodule to get completion for local variables.

Co-authored-by: Zubin Duggal <zubin@cmi.ac.in>
2020-09-17 00:57:57 +05:30
wz1000
3815d24e05
bump ghcide submodule (#396)
* Bump ghcide submodule

* Update stack descriptors

Co-authored-by: Pepe Iborra <pepeiborra@gmail.com>
2020-09-13 22:31:50 +05:30
jneira
1c163ebd53 Create hls-plugin-api and move plugins to exe 2020-09-08 22:33:02 +02:00
Luke Lau
3df2bbc704 Update lsp-test to 0.11.0.4
Fixes bug with document versions in testing
2020-08-07 12:52:39 +01:00
Luke Lau
ceb92b9434 Use vendored Brittany which builds on ghc-8.10.1 2020-08-06 19:04:15 +01:00
George Thomas
ca111c420b Vendor brittany via Github 2020-08-06 17:08:25 +01:00
George Thomas
e3b8889775 Bump dependencies, remove allow-newer 2020-08-06 12:42:35 +01:00
George Thomas
b0f652698c Use allow-newer with stack 2020-08-06 12:42:35 +01:00
George Thomas
1abc7fbf2f Add newer aeson to stack extra-deps 2020-08-06 12:42:35 +01:00
George Thomas
d5e256a746 Add fourmolu plugin 2020-08-06 12:42:35 +01:00
Pepe Iborra
b8627c2254 Add retrie to all? the stack.yaml descriptors 2020-08-01 16:28:27 +01:00
Luke Lau
9d3d0e6f13 Accept the legacy "languageServerHaskell" config name
This also requires a bump to lsp-test to fix a test, and drops the
trick that the wrapper tests used to find the wrapper executable since
it was just confusing
2020-07-27 15:11:10 +01:00
jneira
8d84e9ceb3 Remove leading white space 2020-07-23 11:09:53 +02:00
jneira
e82848006f Use -haddock for cabal and stack 2020-07-23 11:09:52 +02: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
jneira
bb68cdea58 Use lts-16.5 resolver 2020-07-17 05:51:35 +02:00
Fendor
9bfaca83aa Upgrade to hie-bios 0.6.1 2020-07-13 16:27:03 +02:00
Alistair Burrowes
a91ca757b2 Bump ormolu to 0.1.2.0 2020-07-07 08:58:52 +10:00
Alan Zimmerman
3436f6afe6 Bump ghcide to wz1000 hls-2 branch
At 747ec1401c62257ec849319eb2dda966a8008b09

Also bump cabal-project index-state to 2020-07-01T16:33:28Z

stack 8.10.1 to nightly-2020-06-29
stack 8.8.3  to lts-16.3
2020-07-01 19:49:26 +01:00
Alan Zimmerman
d9f15d29e4 Fix compile with multiple GHCs 2020-06-24 20:59:15 +01:00