Commit Graph

3633 Commits

Author SHA1 Message Date
Jan Hrček
bd29bc52fb Use newer cabal-fmt, partially lift ghc version restriction 2024-06-20 09:03:31 +01:00
Jan Hrček
e4128a4458 stylish 2024-06-20 09:03:31 +01:00
Jan Hrček
3b24251536 Cleanup CI configs and cabal files 2024-06-20 09:03:31 +01:00
Jan Hrček
cd44ab0ee3 More no-op code cleanup 2024-06-20 09:03:31 +01:00
Jan Hrček
06920497b7 Remove no-longer-needed compat code, remove unused stuff 2024-06-20 09:03:31 +01:00
Zubin Duggal
9d3480a9bc Remove pre-multi component junk for GHC <= 9.2 2024-06-20 09:03:31 +01:00
Michael Peyton Jones
617542dc9c Fix stylish 2024-06-20 09:03:31 +01:00
Michael Peyton Jones
65391062a0 Fix a few things 2024-06-20 09:03:31 +01:00
Michael Peyton Jones
a37a4565e9 Remove from CI 2024-06-20 09:03:31 +01:00
Michael Peyton Jones
e5f3455b95 Update docs 2024-06-20 09:03:31 +01:00
Michael Peyton Jones
e217112604 Fix loss of 9.2 GHC version 2024-06-20 09:03:31 +01:00
Michael Peyton Jones
512fa5c305 More CPP 2024-06-20 09:03:31 +01:00
Michael Peyton Jones
a478a75c29 WIP evaluate CPP 2024-06-20 09:03:31 +01:00
fendor
287ee42ab5
Prepare release 2.9.0.0 (#4319)
* Prepare release 2.9.0.0

* Bump 'bytestring' version for release CI test scripts

The older 'bytestring-0.11.1.0' version doesn't compile with the recent
GHC 9.10.1 release. Bump the version to '0.12.1.0' which can be
successfully compiled on all supported GHC versions.

* Update supported GHC version table

* Move plugin ghc support conditionals into .cabal file

Having them in the cabal.project file is a very neat way to
enable/disable a plugin, but it negatively affects Hackage users as they
can no longer trivially install HLS from Hackage.

This discussion might be revisited in the future, but not during a
release process.

* Disable tests and benchmarks in release test pipeline

On some platforms, building bytestring-0.12.1.0 is not fully supported
yet. Hence, we disable tests and benchmarks, to allow building on the
platform Windows with GHC 9.10.1.

* Always show debug output in release test ci

* Upgrade cabal version in the release pipeline

* Switch to `text` for release test package

---------

Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
2024-06-19 10:35:14 +02:00
VeryMilkyJoe
62892ae546
Add completion for import fields in cabal files (#4305)
At the moment import fields always suggest any common stanza names
occuring in the file, while it should be only the ones defined before
the cursor position.

Also moves all CabalFields utility into a separate module

Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
2024-06-16 21:15:50 +00:00
Julian Ospald
da3d7f27ea
Refine GHC deprecation policy (#3438)
* Refine GHC deprecation policy

* Update docs/support/ghc-version-support.md

Co-authored-by: Michael Peyton Jones <me@michaelpj.com>

* Update docs/support/ghc-version-support.md

Co-authored-by: Michael Peyton Jones <me@michaelpj.com>

* Reword to support status, as this is mentioned above

* Include ghcup recommended version in support discussion

* reword

* Reword

---------

Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
Co-authored-by: Fendor <fendor@posteo.de>
Co-authored-by: soulomoon <fwy996602672@gmail.com>
2024-06-15 12:11:18 +01:00
Michael Peyton Jones
792fb064a0
Bump nix shells
- Remove shell definitions for old versions
- Add GHC 9.10
- Bump to new nixpkgs-unstable
2024-06-14 14:17:49 +01:00
Jan Hrcek
cde9d78bea
Cleanup allow-newer for ghc 9.10 (#4320) 2024-06-14 10:15:00 +02:00
Brandon Chinn
4b344d3346
Add support for Fourmolu 0.16 (#4314) 2024-06-14 07:26:59 +02:00
Matthew Pickering
426b068f52
Fix quadratic memory usage in GetLocatedImports (#4318)
At startup `GetLocatedImports` is called on all known files. Say you
have 10000 modules in your project then this leads to 10000 calls to
GetLocatedImports running concurrently.

In `GetLocatedImports` the known targets are consulted and the
targetsMap is created by mapping the known targets. This map is used for
introducing sharing amongst filepaths.  This operation copies a local
copy of the `target` map which is local to the rule.

```
let targetsMap = HMap.mapWithKey const targets
```

So now each rule has a hashmap of size 10000 held locally to it and
depending on how the threads are scheduled there will be 10000^2
elements in total allocated in hashmaps. This used a lot of memory.

Solution: Return the normalising map in the result of the
`GetKnownTargets` rule so it is shared across threads.

Fixes #4317
2024-06-13 17:32:03 +00:00
wz1000
3009a45c74
Support for 9.10 (#4233)
* Support for 9.10

This includes supports for all plugins, other than formatters and hlint.

We need ghc-exactprint and retrie release before merging this.

* Remove indexed-traversable allow-newer

* Fix couple of warnings

* Fix flags job for hls-graph

* foldl' exposed from Prelude since base 4.20

* Fix flags job for hls-plugin-api

* Fix ghcide hover test

* Fix flags job for hls-eval-plugin

* unzip since 4.19

* More pedantic fixes

* Don't CPP in tests, fix another test

* Switch to ghc-exactprint and witherable from hackage

* Fix all warnings in hls-refactor-plugin

* Remove more no longer necessary allow newers

* Fix all warnings in hls-gadp-plugin and hls-qualify-imported-names-plugin

* Remove allow-newer for boring

* Bump to lsp 2.6, remove more allow-newers

* outline tests

* disable simple plugin on 9.10

* Remove allow-newer for ghc-trace-events

* fix appendConstraint

* stylish

* Remove commutative-semigroups and monoid-subclasses from allow-newer

* Remove free from allow-newer

* Fix 'type wilcard actions' tests

* Remove hie-bios from allow-newer

* Fix suggestNewDefinition tests

* Revert "Fix suggestNewDefinition tests"

This reverts commit 2f3300e964.

* Remove makeDeltaAst breaking tests unrelated to addArgument

* Fix 79 code action tests

* Fix 12 more tests

* Remove co-log-core from allow-newer

* Fix 21 more tests

* Fix 8 import disambiguation tests

* fix windows ghcide tests

* Fix adding argument to function body

* update retrie commit, progress in add argument tests

* Fix few stylish-haskell parse errors

* Fix remaining redundant constraint tests

* Remove allow-newer for constraint-extras

* Fix warnings after master merge

* Fix most add argument tests except for one

* Remove dependent-map from allow-newer

* Try removing some allow-newers from lsp

* Ormolu is updated, add links for other tool dependencies

* Revert "Try removing some allow-newers from lsp"

This reverts commit 6f60029ff2.

* Try this

* Fix all gadt plugin and most class plugin tests, enable 2 tests for ghc 9.4+

* Undo spurious changes

* Update eval plugin tests

* Disable broken refactor plugin test for now

* Fix warnings

* Add source-repository-package to unblock floskell

* Make call hierarchy plugin tests green

* fix semantic tokens 9.10

* Fix remaining class plugin test

* Update hls-change-type tests

* Make class plugin more robust

* Fix stylish parse errors, simplify CPP

* Cleanups

* Remove retrie dep from hls-refactor-plugin

* More retrie fixes

* Fix cabal-plugin-tests by respecting maxCompletions client cfg + a bit of CPP

* Fixup ghcide-tests

* disable retrie, splice and floskell plugins for 9.10

* Update tested-with + fix import warning

* Fix stylish

* Fix compilation with 9.2.8, fix stack jobs

* Remove no longer relevant :type +v test

* Disable tests of disabled plugins in CI

* Try a better broken specifier?

* Fix invalid CI config

* Use getClientConfigAction instead of introducing new HandlerM action

* Move CPPd imports to prevent stylish from evaluating CPP

* Disable stan tests with ghc 9.10 in CI

* attempt fixing exactprint <9.10

* Try enabling fourmolu now

* Revert "Try enabling fourmolu now"

This reverts commit 7142686f62.

* Update code-range-plugin tests

* Fix No newline at the end of file

* Use more recent cabal-gild

* Try setting some linker flags for macos

* Ignore non-local variable completion test on windows for GHC 9.8

---------

Co-authored-by: Jan Hrček <honza.hrk@gmail.com>
Co-authored-by: Patrick <fwy996602672@gmail.com>
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
Co-authored-by: Fendor <fendor@posteo.de>
2024-06-13 14:45:57 +00:00
Jan Hrcek
c11f32b62a
Bump stack configs + CI to 9.6.5 and 9.8.2 (#4316) 2024-06-12 19:37:52 +02:00
Leif Battermann
597da9d5c1
Code action to remove redundant record field import (fixes #4220) (#4308) 2024-06-11 07:03:42 +02:00
awjchen
cebd641d06
Use restricted monad for plugins (#4057) (#4304)
* Use restricted monad for plugins (#4057)

* Renaming: PluginM -> HandlerM

* Explain intent for HandlerM

* Fix comment

* Apply stylish-haskell
2024-06-10 10:02:58 +00:00
VeryMilkyJoe
59abb96283
Call useWithStale instead of useWithStaleFast when calling ParseCabalFields (#4294)
Add documentation about this choice

Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
2024-06-09 16:15:07 +00:00
soulomoon
e9c2f55201
4301 we need to implement utility to wait for all runnning keys in hls graph done (#4302)
* wait for database running keys

* add `waitForDatabaseRunningKeysAction`

* add comments
2024-06-09 14:49:14 +01:00
VeryMilkyJoe
efe89133b1
Add common stanza to completion data (#4286)
This allows fields and values to be completed correctly inside common
stanzas

Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
2024-06-09 10:34:35 +00:00
wz1000
c3236eb4d1
ghcide: drop ghc-check and ghc-paths dependency (#4291)
* ghcide: drop ghc-check and ghc-paths dependency

We don't really need these, as we don't use any of the fancy abi-hash
checking features in ghc-check and instead rely on a wrapper script
to do this.

* Fix stylish

---------

Co-authored-by: soulomoon <fwy996602672@gmail.com>
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
2024-06-09 09:45:40 +00:00
Akshay Mankar
7b8e2e5045
Limit number of valid hole fits to 10 (#4288)
* ghcide: Pass -fmax-valid-hole-fits=10 to GHC

In cases where GHC doesn't know anything about the type of a hole, it suggests
every available symbol as a hole fit, which can cause editors to crash or at
least be very slow. 10 seems to be a fair number to limit hole fits to.

* hls-refactor-plugin: Ignore "Some hole fits suppressed" message when valid hole fits are limited

* hls-refactor-plugin: More predictable hole fit for test

Now that we limit number of hole fits recommended by GHC, the test that
hopes to find `+` being recommended for `Int -> Int -> Int` becomes
unpredictable because there are too many symbols which match that type
and the sorting has little control over which symbols get recommended.

There are way fewer matches for `(Int -> Maybe Int) -> Maybe Int ->
Maybe Int`, so it makes the test consistently succeed.

---------

Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
2024-06-09 08:52:44 +00:00
wz1000
026d0cef5a
FindImports: ThisPkg means some home unit, not "this" unit (#4284)
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
2024-06-09 08:00:54 +00:00
Andrei Dziahel
52c953c802
test: add test documenting #806 (#4292)
Co-authored-by: soulomoon <fwy996602672@gmail.com>
2024-06-09 14:47:55 +08:00
soulomoon
82da33707f
Unify critical session running in hls (#4256)
* add thread to do shake restart
* run session loader in thread

---------

Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
2024-06-08 19:18:59 +00:00
dependabot[bot]
75634393d5
Bump cachix/cachix-action from 14 to 15 (#4255)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 14 to 15.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v14...v15)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
2024-06-06 16:15:03 +00:00
soulomoon
8271db467e
Remove redudant absolutization in session loader (#4280) 2024-06-06 14:51:32 +00:00
Michael Peyton Jones
71aa2d38e0
Bump to new lsp versions (#4279) 2024-06-06 13:19:32 +00:00
soulomoon
322ac3505c
Fix resultBuilt(dirty mechanism) in hls-graph (#4238)
* clarify dirty in hls-graph

* fix comment

* hls-graph add `compute` test

* move test to better place

* add detailed test

* fix comment

---------

Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
2024-06-03 15:37:53 +00:00
soulomoon
d839b78551
add more code into pre-commit (#4275) 2024-06-03 10:39:16 +00:00
soulomoon
246e131770
Delete library ghcide test utils (#4274)
* cleanup

* cleanup

* stylish

* remove library ghcide-test-utils entirely

* fix

* fix

* stylish
2024-06-03 09:40:08 +00:00
soulomoon
9f3e274cc7
Delete testUtil from ghcide-tests (#4272) 2024-06-02 20:37:52 +08:00
soulomoon
00b6d3681f
CI change, only run bench on performance label (#4271) 2024-06-01 15:13:21 +08:00
Fendor
013fefe578 Refactor context search to use readFields
Instead of custom parsing of the cabal file, we use `readFields` to parse
the cabal file, as accurately as cabal supports. This allows us to
additionally benefit from future improvements to the cabal lexer.

Then, we traverse the fields and find the most likely location of the
cursor in the cabal file.
Based on these results, we can then establish the context accurately.

Further, we extend the known rules for the cabal plugin, to avoid
expensive reparsing using `readFields`.

Co-authored-by: VeryMilkyJoe <jana.chadt@nets.at>
2024-05-31 18:08:26 +02:00
Fendor
ce2435d620 hls-test-utils: Add parameterised cursor test utils
Add utils that allows to define parameterised tests for files that
require cursor positions.
This enables us to define run the same tests for multiple inputs
efficiently, and with readable error messages.

The main advantage is the improved specification of the test cases, as
we allow to specify the cursor position directly in the source of the
test files.
2024-05-31 18:08:26 +02:00
soulomoon
3979b27ab2
Migrate UnitTests (#4268)
* Migrate UnitTests
2024-05-29 18:38:13 +00:00
soulomoon
52d7423b19
Migrate SafeTests (#4267) 2024-05-29 17:49:42 +00:00
soulomoon
e40bd2e0bd
Migrate WatchedFileTests (#4269) 2024-05-29 15:54:35 +00:00
soulomoon
764f8fb637
Migrate SymlinkTests (#4266) 2024-05-29 21:32:26 +08:00
fendor
52b885a10e
Remove unused and outdated CHANGELOG files (#4264)
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
Co-authored-by: soulomoon <fwy996602672@gmail.com>
2024-05-29 07:45:02 +00:00
soulomoon
496f3137f5
Migrate PluginSimpleTests (#4259) 2024-05-29 11:57:17 +08:00
soulomoon
4f7a0fcd50
Migrate RootUriTests (#4261)
* Migrate RootUriTests
2024-05-28 15:36:20 +00:00
soulomoon
57f7b3f7ba
Migrate PreprocessorTests (#4260) 2024-05-28 11:54:27 +00:00