mirror of
https://github.com/haskell/haskell-language-server.git
synced 2024-09-11 08:45:35 +03:00
* 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>
140 lines
3.2 KiB
YAML
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
|