* convert to contravariant logging style part 1, uses additional hardcoded log file to see it side by side with original logging
* convert Session to contravariant logging style
* convert Plugin/HLS and FireStore to contravariant logging style
* convert Rules (and most of the universe) to contravariant logging style
* fix tests, allow old style logging and contravariant logging to write to same log file
* fix import inside wrong CPP
* add CPP for LogTactic constructor
* remove redundant import
* fix ghcide tests
* remove unused import
* fix plugin tests
* LSP_TEST_STDERR should apply to contra logger as well
* fix tactic plugin test
* use CPP for Log datatype plugin constructors, remove unused imports
* add a few Pretty instances, add prettyprinter to haskell-language-sever and hls-plugin-api dependencies
* add Pretty Log instances for Session, FileStore, Notifications
* add remaining Pretty Log instances
* add logToPriorities
* fix slight interleaving issue with hslogger and logger both logging, have default logger be mutex stderr or file handle, use stderr if failing to open log file
* forgot to add .cabal files with hslogger dep
* dont use UnliftIO file IO helpers because they are too new
* remove log helper comments, use Doc instead of Text as final console/file logger input, renaming, export Log constructors
* remove accidentally added useless file, removed prettyprinter dep from hls-plugin-api because stack ghc8.6.5 doesnt have it?
* use deprecated prettyprint modules import for the sake of circleci ghc-8.6.5
* use dummy stderr logger for plugin cli commands, use priorityToHsLoggerPriority function instead of manual mapping
* remove old plugin detritus that somehow got committed
* fix prettyprinter imports for 8.6.5
* try enforcing prettyprinter bounds?
* enforcing bound makes no sense
* maybe changing stack yamls does trick
* filter out warnings when their diags are empty to more closely match original
* add ability to select wanted logging columns, match prev ghcide exe logging behaviour
* dont log anything when diags are empty in some defineEarlyCutoff versions
* use non-deprecated prettyprinter imports
* fix ghcide test module
* change logWith to accept priority at call site, remove all logToPriority functions, add cmapWithPrio that contramaps through WithPriority
* remove useless hiding import list, add comments to default recorder makers
* make cradleToOptsAndLibDir take concrete cradle to remove existential type var in Log constructor
* Types.Logger now re-exports prettyprinter, remove unused dependencies on prettyprinter and hslogger
* existential type var to remove boilerplate in Plugins.hs, remove a few Show instances
* add SourceLoc logging column, inline logToDoc functions, add comment explaining hslogger setup existence
* qualify a name to match original source
* fix -WError
* Get rid of come head usages
* Fix typo
* Use pattern guard, move util to hls-test-utils
* Revert the change in ghcide tests
* Fix nonexaustive pattern warning
* 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>
* WIP
* progress
* enable 9.2 in CI
* Sort out some compatibility issues (#2511)
* fix mkPrintUnqualifiedDefault
* fix qualified idents
* Fix a few more ghc compats
* Add new orphans
* Fix runtime APIs
* HsParsedModule
* export GHC.Hs.Utils
* 9.2 compat for unloading and hie file generation
* hlint fix
* Remove 'setupFinderCache' as its never actually used
* 9.2 compat for Development.IDE.Core.Compile
* Stub out 'getDocumentation' on GHC 9.2 (Requires a reimplementation in terms of in-tree annotations)
* Expose binds
* Remove a bit of CPP by refactoring it into Compat layer
* Progress on ghc-exactprint stuff
The Exactprint module compiles, but code actions are the next focus.
* Fix compile on 8.10
* 9.2 compat for CodeAction Exactprint
* 9.2 compat for Outline
* 9.2 compat for Pragmas plugin
* Get the rest compiling with 9.2
* WIP: PLEASE, DROP THIS COMMIT BEFORE MERGE
This hook starts caching pipeline inside of the PR.
If this got merged - all PRs would start to run caching workflow (which is
undesirable, because of platform limitations)
* disabling {test,bench} to properly heat-up the cache
`index-state` change means nothing, but allow to run increment action on
dependency cache pile (as otherwise cache stays idempotent to its key id).
* CI: index-state: +1s refresh
Somehow previous run got early termination. Seems like some GitHub bug, since
cache-hit promises to True only on direct key hit (& we had indirect).
Maybe second time the charm.
* CI: fix early termination
GitHub accepted previous code, & did passed the steps, but somehow ... long
story short, it was pretending to have early termination working, while it just
was always skipping those steps silently.
So, `index-state` needs another +1s.
* WIP: PLEASE, DROP BEFORE MERGE
* WIP: PLEASE, DROP BEFORE MERGE
This reverts commit 064a9b7995.
* WIP: PLEASE, DROP THIS COMMIT BEFORE MERGE
This reverts commit 208f4844f4.
* WIP: PLEASE, DROP THIS COMMIT BEFORE MERGE
This reverts commit ba4d618ba5.
* CI: index-state advance to save cache anew
* CI: apparently GitHub uses alias cp='cp -i'
Another day, another bug.
* WIP: PLESE, REVERT TO TEST ALL GHCs
* CI: index-state +1s
* WIP: PLESE, REVERT TO TEST ALL GHCs
* CI: index-state +1s
* WIP: PLESE, REVERT TO PASS HLINT CI REQUIREMENTS
* Enable tests for ghc-9.2.1
* Use cabal-ghc921.project
* Enable tests for all ghcs
To check changes for ghc-9.2.1 do not break other ghcs
* Address or skip hlint
* Last hlint fixes
* Fix loop when setting DynFlags
* Filter out evidence variables in documentHighlight
* Fix getFlds
* fix GRE
* fix formatting
* fix Compat build in 9.0
* fix collectHsBindsBinders
* remove redundant WarnMsg local typedef
* showSDocForUser
* redundant import
* HsLet
* LetStmt
* fix Completions build
* bump cabal index state
* Literals: replace argument patterns by field patterns
Sadly this is not enough to fix the build
* QualifyImportedNames: fix build with ghc <9.2
* fix <9.2 build Splice plugin
* fix <9.2 build QualifyImportedNames plugin
* Fix <9.2 build Wingman
* fix build example
* Disable a whole bunch of plugins
* Move windows test into the matrix
* Make consistent plugin handling
package commented out <-> flags <-> test suite
* Add a not working stack.yaml for ghc-9.2.1
It starts to build though
* Remove wrong comma
* Restore primitive allow-*
* Use correct UnitId when constructing InstalledModules
* Fix 8.8 build
* Fix hls-test-utils
* Build explicit imports plugin
* Drop Windows build blocked on unix-compat
* bump Cabal index and simplify constraints
* Add comment
* Use GhcSessionDeps in getHieAst
* Use hsConDeclsBinders in Outline generation
* Use the right session in typecheckModule
* Restore some cases in Outline
* Fix Outline build with GHC <9.2
* Remove noisy logMessage notifications in tests
I have never found these useful and they make it much harder to read logs. If there is a test that needs them, please use a custom logger instead of forcing this madness on everyone.
* Build ghcide test and bench suites with 9.2
* Revert "Merge branch 'master' into ghc-9.2"
This reverts commit daf43c86e8, reversing
changes made to f951004021.
* The redundant constraints warning has changed in 9.2
* Fix code action regression
* fix 9.2 ghcide build
* Fix completion snippets
* Fix mismerge
* Bifunctor instance for GenLocated
* Build rename plugin with GHC 9.2
* Helpers for tracing ExactPrint ASTs
* Fix exactprint code actions
* Enable import lens plugin
* WIP test run changes
* Fix GHC 9 build
* Undo WIP test changes
* Fix GHC 8.8 build
* Fix 8.6 build
* Fix another exactprint regression
* Add source repository with ghc-exactprint fixes
* Add source repository for retrie (needed for fixed ghc-exactprint)
* fix ghc <9.2 build
* Another exactprint fix
* Fix benchmarks
* Another exactprint fix
* Disable a plugin test (plugin not compatible anymore)
* Enable windows build
* Fix multiple components by using consistent UnitIds
There are multiple sources of truth for the home unit id now, in the DynFlags and in the hsc_units
* Improve error handling for initPlugins
* Fix two hover tests
* Remove retrie and ghc-exactprint source repos
* Fix version of direct-sqlite
Not sure why this is needed, but without it Cabal is selecting an older version
which fails to build with 9.2
* Fix ci update hackage index
* This test is broken because GHC 9.2 built-in libraries lack docs
The interface files have no docs, checked via:
ghc --show-iface ~/.ghcup/ghc/9.2.1/lib/ghc-9.2.1/lib/x86_64-osx-ghc-9.2.1/base-4.16.0.0/Data/Functor.hi
* Sanitize hiding tests
These tests are reimplementing runWithExtraFiles - let's just use it
* Disable another test
* Fix outline
* Revert "Sanitize hiding tests"
This reverts commit 4f016ddca2.
* Extract out ci build setup
* Correct action path
* Add required shell property
* Remove unused cabal version
* Update .github/actions/setup-build/action.yml
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
* Update .github/actions/setup-build/action.yml
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
* Update .github/actions/setup-build/action.yml
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
* Fix remaining tests and some warnings
* Update .github/actions/setup-build/action.yml
Co-Authored-By: @michaelpj
* Copy alt project file unconditionally
* Make freeze strict
* Actually fix tests
* remove unnecessary? allow-newer
* Drop no longer needed source repo for th-extras
* Add module header comments
* Fix or remove commented out code
* more commented out code
* Disable a couple of func-test tests
* All func-test tests passing now
* fix test matrix
* Update cabal-ghc921.project
* do not test class plugin
* Mark hover test broken in Windows and Mac
* Fix hls-pragmas-plugin test suite
* disable testing of refine imports plugin
* disable rename plugin
* Do not test qualify imported names plugin
* addressing hlint suggestions
* Revert hlint change that breaks due to CPP
Co-authored-by: Alan Zimmerman <alan.zimm@gmail.com>
Co-authored-by: Zubin Duggal <zubin.duggal@gmail.com>
Co-authored-by: Anton Latukha <anton.latukha@gmail.com>
Co-authored-by: jneira <atreyu.bbb@gmail.com>
Co-authored-by: Junyoung "Clare" Jang <jjc9310@gmail.com>
Co-authored-by: Matthew Pickering <matthewtpickering@gmail.com>
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
* Update to latest version of lsp libraries
* Compute completions on kick
This is not only for faster completions.
It's also needed to have semi-fresh completions after editing.
This is specially important for the first completion request of a file - without this change there are no completions available at all
* Emit LSP custom messages on kick start/finish
useful to synchonize on these events in tests
* Fix completions tests after https://github.com/haskell/lsp/pull/376
* Restore cabal update with comments
* Use new lsp in stack 9.0.1
Co-authored-by: Pepe Iborra <pepeiborra@gmail.com>
Co-authored-by: jneira <atreyu.bbb@gmail.com>
* Rerun tests between run attempts
* without quotes
* Bump up versions for hackage
* Add support for auth github requests
As anonymous ones reach the api limit quickly
Via a unique argument with a github oauth token
* Add changelog for 1.5.1
* Fix makrdownlint warnings
* Bump up index state
* Bump up plugin version
* build with -v3 on error
* More backjumps for tests and benchs
* Add last prs
* eval plugin needs ghcide>=1.5.0.1
* Include #2395 in the changelog
* Ignore deferred tests for win and 9.0.1
* Ignore tactics tests for ubuntu+8.6.5
* hls-class-plugin: Update ghcide dependency
`hls-class-plugin-1.0.1.1` imports `Development.IDE.GHC.Compat.Util`, which doesn't exist until version `1.5.0`
```
Building library for hls-class-plugin-1.0.1.1..
[1 of 1] Compiling Ide.Plugin.Class ( src/Ide/Plugin/Class.hs, dist/build/Ide/Plugin/Class.o, dist/build/Ide/Plugin/Class.dyn_o )
src/Ide/Plugin/Class.hs:27:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Util’
Perhaps you meant
Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Development.IDE.GHC.Util (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
27 | import Development.IDE.GHC.Compat.Util
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
* hls-fourmolu-plugin: Update ghcide dependency
```
src/Ide/Plugin/Fourmolu.hs:18:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Util’
Perhaps you meant
Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Development.IDE.GHC.Util (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
18 | import qualified Development.IDE.GHC.Compat.Util as S
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
* hls-hlint-plugin: Update ghcide dependency
```
src/Ide/Plugin/Hlint.hs:79:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Core’
Perhaps you meant Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
79 | import Development.IDE.GHC.Compat.Core hiding
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
```
* hls-ormolu-plugin: Update ghcide dependency
```
src/Ide/Plugin/Ormolu.hs:14:69: error:
Module ‘Development.IDE.GHC.Compat’ does not export ‘hsc_dflags’
|
14 | import Development.IDE.GHC.Compat (moduleNameString, hsc_dflags)
| ^^^^^^^^^^
src/Ide/Plugin/Ormolu.hs:16:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Util’
Perhaps you meant
Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Development.IDE.GHC.Util (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
16 | import qualified Development.IDE.GHC.Compat.Util as S
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
* hls-retrie-plugin: Update ghcide dependency
```
src/Ide/Plugin/Retrie.hs:60:56: error:
Module ‘Development.IDE.GHC.Compat’ does not export ‘Outputable’
|
60 | Outputable,
| ^^^^^^^^^^
src/Ide/Plugin/Retrie.hs:64:56: error:
Module
‘Development.IDE.GHC.Compat’
does not export
‘SourceText(..)’
|
64 | SourceText (..),
| ^^^^^^^^^^^^^^^
src/Ide/Plugin/Retrie.hs:68:56: error:
Module ‘Development.IDE.GHC.Compat’ does not export ‘hm_iface’
|
68 | hm_iface, isQual,
| ^^^^^^^^
src/Ide/Plugin/Retrie.hs:68:66: error:
Module ‘Development.IDE.GHC.Compat’ does not export ‘isQual’
|
68 | hm_iface, isQual,
| ^^^^^^
src/Ide/Plugin/Retrie.hs:69:56: error:
Module ‘Development.IDE.GHC.Compat’ does not export ‘isQual_maybe’
|
69 | isQual_maybe,
| ^^^^^^^^^^^^
src/Ide/Plugin/Retrie.hs:72:56: error:
Module
‘Development.IDE.GHC.Compat’
does not export
‘nameModule_maybe’
|
72 | nameModule_maybe,
| ^^^^^^^^^^^^^^^^
src/Ide/Plugin/Retrie.hs:73:56: error:
Module ‘Development.IDE.GHC.Compat’ does not export ‘nameRdrName’
|
73 | nameRdrName, occNameFS,
| ^^^^^^^^^^^
src/Ide/Plugin/Retrie.hs:73:69: error:
Module ‘Development.IDE.GHC.Compat’ does not export ‘occNameFS’
|
73 | nameRdrName, occNameFS,
| ^^^^^^^^^
src/Ide/Plugin/Retrie.hs:74:56: error:
Module ‘Development.IDE.GHC.Compat’ does not export ‘occNameString’
|
74 | occNameString,
| ^^^^^^^^^^^^^
src/Ide/Plugin/Retrie.hs:79:56: error:
Module ‘Development.IDE.GHC.Compat’ does not export ‘rdrNameOcc’
|
79 | rdrNameOcc, rds_rules,
| ^^^^^^^^^^
src/Ide/Plugin/Retrie.hs:81:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Util’
Perhaps you meant
Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Development.IDE.GHC.Util (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
81 | import Development.IDE.GHC.Compat.Util hiding (catch, try)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
* hls-retrie-plugin: Update ghcide dependency
```
src/Ide/Plugin/Splice.hs:48:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Util’
Perhaps you meant
Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Development.IDE.GHC.Util (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
48 | import qualified Development.IDE.GHC.Compat.Util as Util
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
* hls-stylish-haskell-plugin: Update ghcide dependency
```
src/Ide/Plugin/StylishHaskell.hs:13:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Util’
Perhaps you meant
Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Development.IDE.GHC.Util (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
13 | import qualified Development.IDE.GHC.Compat.Util as Util
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
* hls-tactics-plugin: Update ghcide dependency
```
src/Wingman/Metaprogramming/Lexer.hs:14:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Core’
Perhaps you meant Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
14 | import Development.IDE.GHC.Compat.Core (OccName, mkVarOcc)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/Wingman/Range.hs:7:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Core’
Perhaps you meant Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
7 | import Development.IDE.GHC.Compat.Core
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/Wingman/Range.hs:8:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Util’
Perhaps you meant
Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Development.IDE.GHC.Util (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
8 | import Development.IDE.GHC.Compat.Util as FS
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/Wingman/StaticPlugin.hs:12:1: error:
Could not find module ‘Development.IDE.GHC.Compat.Util’
Perhaps you meant
Development.IDE.GHC.Compat (from ghcide-1.4.2.2)
Development.IDE.GHC.Util (from ghcide-1.4.2.2)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
12 | import Development.IDE.GHC.Compat.Util
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
* hls-test-utils: Update ghcide dependency
```
src/Test/Hls.hs:52:51: error:
Module
‘Development.IDE.Plugin.Test’
does not export
‘TestRequest(GetBuildKeysBuilt)’
|
52 | import Development.IDE.Plugin.Test (TestRequest (GetBuildKeysBuilt, WaitForIdeRule, WaitForShakeQueue),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/Test/Hls.hs:57:51: error:
Module ‘Ide.PluginUtils’ does not export ‘idePluginsToPluginDesc’
|
57 | import Ide.PluginUtils (idePluginsToPluginDesc,
| ^^^^^^^^^^^^^^^^^^^^^^
```
Co-authored-by: Javier Neira <atreyu.bbb@gmail.com>
* Use hackage version of czipwith
* Update stack.yaml's
* Remove source czipwith
* Update index and clean cabal-ghc921.project
* extra-1.7.9 has a breaking change so no way
* Increase resources for circleci
As for November 16, circleci has set a timeout of 1 hour for jobs in free plans
Trying to increase resources to make the build faster as suggested by its support center
* Use more threads reduce build times
* Correct runs-on field
* Update stack.yaml's
* Dont fail fast if we are checking
* Use ref_name to check it is a check
* Bump patch version of brittany plugin
* Allow newer base/th for czipwith
* Add enough allow-newers to allow build the project
Having all subpackages included in the `packages` field
* Correct allow-newer's
* Add missing cd's
* Bump up ghcide to 1.5.0
* Exclude pkgs not buildable with 9.0.1
* Bum up plugins with changes versions
* Bum up subpackages with changes versions
* Bum up hls version to 1.5.0
* Bump up haddock plugin version
* Allow ghcide 1.5
* Use ghcide 1.5.0 in the rest of plugins
* Use ghcide 1.5.0 for pragmas
* Allow tactics 1.5.0 for hls
* Remove czipwith in hackage ci script
* Disable 9.0.1 for hackage ci
* Use bounds operator consistently
* Build formatters with newer ghc-lib-parser
* Only stylish-haskell needs newer ghc-lib
* Avoid ghc-9.0.1 in other way
* Script needs a min time version
* First draft of 1.5.0 changelog
* Comment out hackage for 9.0.1
* allow newer ghc-lib-parser
* Remove redundant entry
* Correct condition
* Cancel previous hackage jobs
* Add link to pepe's talk slides
* Use th-extras master
* Use th-extras master and uncomment packages
* add extra-1.7.9
* Add required extra-deps
* Comment unbuildable packages again
* Add ignore-plugins-ghc-bounds
* Add #2354
* Complete ghc deprecation notice
* Add extra-1.7.9
* Add #2346 to Changelog
* Show build graph statistics in ghcide-bench
This adds 5 new columns to the benchmark outputs:
- buildRulesBuilt - for which the value didn't change
- buildRulesChanged - for which the value did change
- buildRulesVisited - for which the value was not even recomputed
- buildRulesTotal - including the rules that were not visited in the last build
- buildEdges - total number of edges in the build graph
* Fix build
* backwards compat.
* trace rule diagnostics
* disable checkProject in HLS test suite
We already disable this in ghcide tests
It introduces noise (traces are harder to read),
and can potentially break tests too (e.g. eval plugin)
* Undo breaking auto-format
* fix missing import
* Fix splice plugin tests
* Fix test
Co-authored-by: Javier Neira <atreyu.bbb@gmail.com>
* Rename test data files
* Add regression tests
* Add regression test for #1279
* Use timeout
* Correct waitForProgressDone in ghcide
* Remove unnecessary waitForDiagnostics
* Mark test broken for hlint on ghclib
* Add test over unused extensions
* Add test for #2042
* Add data for #2280
* Use waitForAllProgressDone
* Add test for #2280
* correct module name
* Add reproduction for #2290
* Correct test case
* Comment about knownBrokenForHlint*
* Correction
* [hls-graph] clean up databaseDirtySet
When I ported https://github.com/ndmitchell/shake/pull/802/files to hls-graph, I changed the encoding of the dirty set. Instead, Dirty became a constructor in the Status union. But the databaseDirtySet stayed around accidentally, leading to some confusion.
* extract GetEvalComments rule
* override NeedsCompilation rule in eval plugin to generate linkables when Evaluating
In addition, we tune the newness check of the redefined NeedsCompilation rule so that the generated linkables are not thrown away unnecessarily, as described in:
https://github.com/ndmitchell/shake/issues/794
* getLastBuildKeys
* Test that the linkables are being produced
* honor LSP_TEST_LOG_STDERR
* add comments and use custom newness check in ghcide too
* fix build
* fix 9.0 build
* Move hlint tests to its package
* Move hlint config tests to its package
* Update extra-source-files
* Remove unused cabal-helper test data
* Add hlint test suite
* Make diganostic tests work without hlint
* Make progressCap test work without hlint files
* No cabal files in hlint test data
* Fix progress test
* Fix parent folder name
* Correct test data dir
* Correct extra-source dir and update maintainer
* Use sendConfigurationChanged everywhere
* convert to HLS plugin
* remove unnecessary check
* use waitForBUildQueue in the Tactics test suite
* use waitForBuildQueue in the splice test suite
* use waitForBuildQueue in golden test helpers
* really enable Test plugin
* silenceStdErr to honor LSP_TEST_LOG_STDERR
* Disable timeout in tactics testsuite
* no longer silence stderr
Instead, send all ghcide output through the logger and keep stderr open for fatals
* silence the tactics plugin
* fix ModLocation for nameless modules
* Rewrite hls-graph to not use the Shake code
* redundant import
* Fix the bug
* add comments and format imports
* Fix another bug
* fix locking in incDatabase
* avoid calling withNumCapabilities on every build
* faster cleanup
* implement reverse deps
* --conservative-change-tracking
* Avoid grabbing the db lock when updating reverse deps
* update reverse deps asynchronously
* Profiling graph builds
* extend up profiling to record visiting steps
The main benefit of reverse dependency tracking is that we avoid unnecessary node lookups. However, these lookups were not shown in hls-graph profiles, hiding their real cost.
Concretely, if the number of lookups per build is proportional to the number of transitive dependencies of a node, which in turn is proportional to the number of transitive imports of a module, then we have an O(edges) complexity instead of an O(nodes) complexity, which is really bad for large projects.
This Diff extends the recorded data and the profiling UI to keep track
of visited nodes and to show them in a new column "Visited" of the "Rules" tab. The cost of doing this is storing an additional Int per node at runtime.
While I was editing the profiling UI, I took the chance to remove the command tabs, update the README and add some missing files
* include dirty set in profiles
* actionFork
* avoid spawning threads for simple lookups
* Fix a flaky test
* record changes to GetKnownTargets
* Readme for hls-graph
* Bump version numbers
* Drop dependency on Shake
* explain why we restart a Shake session
* clean up Internal.Database
* add a new benchmark example cabal-1module
* Fix masking and further reduce threading
* Trace aborted rule evaluations
* Fix code actions after cradle edit experiment
* Avoid spawning threads for build rules with 1 or fewer deps
* simplify a test
* hlint
* Add a test for off-editor changes
* Fix flaky tests
* fix incomplete pattern match in Tactics test suite
* Fix flaky tests
* attempt to fix tactics test suite in Windows
Co-authored-by: Neil Mitchell <ndmitchell@gmail.com>
* Disable hole fit suggestions for EXTREME SPEED
* Note the new behavior in the README
* Disable the tests
* Update documentation
* Fix tests properly
* Tests that code actions don't appear when Wingman is enabled
* Unset dynflags rather than change their values
* Fix error message
* Revert "Unset dynflags rather than change their values"
This reverts commit 940c535ab9.
* Maybe try unsetting it too?
* Maybe this will elucidate the error
* Disable tests on GHC9 because tactics doesn't build on GHC9
* Revert "Maybe this will elucidate the error"
This reverts commit 6c5b8356a3.
Co-authored-by: Javier Neira <atreyu.bbb@gmail.com>
* Test 9.0.1 for windows and macOS
* Refactorize ghc checking in tests
* Replace CPP checks with ghcVersion
* Use GHC cpp and remove 8.4
* Use the ghc version runtime checker
* HLINT ann ignored for ghc-9 too
* Mark test as broken for win and ghc-9
* Use GHC90 in eval tests
* Disable tests for macos and ghc-9.0.1
* Test 9.0.1 for windows and macOS
* Refactorize ghc checking in tests
* Correct imports/exports
* Replace CPP checks with ghcVersion
* Use GHC cpp and remove 8.4
* Use the ghc version runtime checker
* HLINT ann ignored for ghc-9 too
* Mark test as broken for win and ghc-9
* Use GHC90 in eval tests
* Avoid reformatting code
* Remove not supported ghc-8.4
* Disable tests for macos and ghc-9.0.1
* Ignore hlint+cpp tests for win and ghc-9.0.
* Eval plugin: support ghc 9.0.1
* Update CI and stack
* Use pprTypeForUser for printing kinds
* test: remove forall
* test: [Char] -> String
* test: update forall
* Keep tests only for GHC 9
* Update nix and CI
* Mark one hlint test as known broken
* Re-enable tests for other ghc versions
* Update test
* Unify session loading using implicit-hie
Make Wrapper and Session loader use the same logic to avoid
loading logic divergence.
Cleans up existing usages to use infrastructure in place.
* Add major CLI mode for printing the cradle type
Adds test-case for proving that wrapper and hls report the
same cradle type for a project.
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Add a new project hls-graph, shadowing Shake and reexporting it
* Make hls-graph use explicit exports rather than module-level exports
* Cut down on what hls-graph exports
Delete unnecesssary hiding
* Run plugins' test suites with server in the same process
* Use async
* Update CI
* Add rts options
* Sleep 0.5s after running a session
* Update CI
* Don't use withAsync
* Add timeout
* Cancel the server action when timeout
* Fix cwd
* Close input stream manually, add a lock
* cleanup
* tactics plugin
* Remove sleep
Co-authored-by: Javier Neira <atreyu.bbb@gmail.com>
* Class plugin
* Splice plugin, extract hlsCommand from hls-test-utils
* Haddock comments plugin
* Update github actions
* Remove invalid import
* Bump up specification version of package description to 2.4
* Fix hls.cabal
* Remove the build of eval plugin's testdata from circle ci
* Limit the parallelism of building test suites in circle ci
Co-authored-by: Pepe Iborra <pepeiborra@gmail.com>
* Extract hls-test-utils
* Use test utils in brittany plugin and stylish haskell plugin
* stack
* Set locale encoding to utf8 in defaultMain
* Remove with-utf8