haskell-language-server/stack-9.2.1.yaml
Nick Suchecki 911fe59d7f
Change Type Signature Plugin (#2660)
* First go

* Match against specific error message.

* Basic Change Type Signature implementation.

This implementation only matches a single GHC Error message:

```
    • Couldn't match type ‘Int’
                     with ‘Data.HashSet.Internal.HashSet Int’
      Expected type: Int -> Int
        Actual type: Data.HashSet.Internal.HashSet Int -> Int
    • In the expression: head . toList
      In an equation for ‘test’: test = head . toList
```

Specifically on `Expected type: ...`, `Actual type:...` and `In an equation ...`.

There are plenty of error messages that match this format but aren't actually valid.

* GHC 9.2.0 compat change

* Lift expectedError message into a separate binding

* Move ChangeTypeAction into it's own plugin

* Add New Error Message parsing.

- Add new regex for matching extra errors message types

- Revamp original regex to match more.

- Add basic test suite.

- Begin adding `tidyActualType` semantics to provide slightly prettier
TyVars

* Added Error Message Validation to ignore bad Messages.

- Add Pretty Printing for Types
- Added a few test scenarios

* Miscellaneous Cleanup.

* Update Tide Type Signature logic.

- Be able to tidy signatures with operators in it
- Use T.words instead of regex matching to split tyVars

* Remove locA (defaults to id in 8.10) to satisfy 9.0+

* Touch up 9.2.1

* Clean up review notes

* Update stack.yamls

* Fix copy-paste error

* Fix Local Signature resolution

* Improve logging (#2558)

* 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

* Delete the Telemetry log level (#2727)

It's a bit non-standard, and moreover it's entirely dead.

* Wall and 9.2 fix

* Remove unneeded comments/code

Co-authored-by: J. S <shenjonathan0@gmail.com>
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
Co-authored-by: Pepe Iborra <pepeiborra@me.com>
2022-03-03 23:08:42 +00:00

140 lines
3.2 KiB
YAML

resolver: nightly-2022-01-14
compiler: ghc-9.2.1
packages:
- .
- ./hie-compat
- ./hls-graph
- ./ghcide/
- ./hls-plugin-api
- ./hls-test-utils
- ./shake-bench
- ./plugins/hls-call-hierarchy-plugin
# - ./plugins/hls-class-plugin
# - ./plugins/hls-haddock-comments-plugin
# - ./plugins/hls-eval-plugin
- ./plugins/hls-explicit-imports-plugin
- ./plugins/hls-qualify-imported-names-plugin
- ./plugins/hls-refine-imports-plugin
# - ./plugins/hls-hlint-plugin
- ./plugins/hls-rename-plugin
# - ./plugins/hls-retrie-plugin
# - ./plugins/hls-splice-plugin
# - ./plugins/hls-tactics-plugin
# - ./plugins/hls-brittany-plugin
# - ./plugins/hls-stylish-haskell-plugin
- ./plugins/hls-floskell-plugin
- ./plugins/hls-fourmolu-plugin
- ./plugins/hls-pragmas-plugin
- ./plugins/hls-module-name-plugin
- ./plugins/hls-ormolu-plugin
- ./plugins/hls-alternate-number-format-plugin
- ./plugins/hls-selection-range-plugin
- ./plugins/hls-change-type-signature-plugin
extra-deps:
- aeson-2.0.3.0
- base-compat-0.12.1
- base-compat-batteries-0.12.1
- brittany-0.14.0.0
- butcher-1.3.3.2
- bytestring-encoding-0.1.1.0
- data-tree-print-0.1.0.2
- dependent-map-0.4.0.0
- dependent-sum-0.7.1.0
- extra-1.7.10
- floskell-0.10.6
- fourmolu-0.5.0.0
- ghc-exactprint-1.4.1
- ghc-lib-9.2.1.20220109
- ghc-lib-parser-9.2.1.20220109
- ghc-lib-parser-ex-9.2.0.1
- heapsize-0.3.0.1
- hiedb-0.4.1.0
- hie-bios-0.9.0
- hspec-2.7.10 # for hls-test-utils
- hspec-core-2.7.10 # for hls-test-utils
- implicit-hie-0.1.2.6
- implicit-hie-cradle-0.5.0.0
- lens-5.1
- monad-dijkstra-0.1.1.3
- multistate-0.8.0.3
- ormolu-0.4.0.0
- refinery-0.4.0.0
- retrie-1.2.0.1
- some-1.0.2 # for dependent-sum, https://github.com/obsidiansystems/dependent-sum/issues/66
- unix-compat-0.5.4
# shake-bench dependencies
- Chart-1.9.3
- Chart-diagrams-1.9.3
- SVGFonts-1.7.0.1 # for Chart-diagrams, https://github.com/timbod7/haskell-chart/issues/232
- diagrams-postscript-1.5
- statestack-0.3
- operational-0.2.4.1
# hls-graph dependencies
- stm-containers-1.2
- stm-hamt-1.2.0.7
# primitive-unlifted-1.0.0 is not buildable with ghc-9.0.2
# see https://gitlab.haskell.org/ghc/ghc/-/issues/20908
- primitive-unlifted-0.1.3.1
- primitive-extras-0.10.1.4
# for ghcide test suite
- ghc-typelits-knownnat-0.7.6
- ghc-typelits-natnormalise-0.7.6
# boot libraries
- Cabal-3.6.0.0
- directory-1.3.6.2
- ghc-boot-9.2.1
- process-1.6.13.2
- time-1.11.1.1
- unix-2.7.2.2
- Win32-2.12.0.1
# currently needed for ghcide>extra, etc.
allow-newer: true
ghc-options:
"$everything": -haddock
configure-options:
ghcide:
- --disable-library-for-ghci
haskell-language-server:
- --disable-library-for-ghci
heapsize:
- --disable-library-for-ghci
flags:
haskell-language-server:
pedantic: true
ignore-plugins-ghc-bounds: true
alternateNumberFormat: false
brittany: false
class: false
eval: false
haddockComments: false
hlint: false
retrie: false
splice: false
stylishhaskell: false
tactic: false
retrie:
BuildExecutable: false
# Stack doesn't support automatic flags.
# hls-hlint-plugin:
# hlint33: true
hyphenation:
embed: true
nix:
packages: [ icu libcxx zlib ]
concurrent-tests: false