Skip to content

Latest commit

 

History

History
3084 lines (2914 loc) · 182 KB

ChangeLog.md

File metadata and controls

3084 lines (2914 loc) · 182 KB

Changelog for haskell-language-server

1.9.0.0

  • Binaries for GHC 9.4.3, GHC 9.4.4 and GHC 9.2.5.

  • Dropped support for GHC 8.8 and GHC 8.10.

  • New plugins including:

    • Expanding record wild cards using hls-explicit-record-fields-plugin (#3304).
    • Formatting cabal fields using cabal-fmt via hls-cabal-fmt-plugin (#2047).
    • Warnings and errors for cabal files using hls-cabal-plugin (#2954).
    • Folding ranges using hls-code-range-plugin (#3058).
  • Support for many plugins like the refactor, splice, retrie, gadt, hlint, fourmolu and class plugins.

  • Completion for record dot fields (#3080).

  • Performance and memory usage improvements.

  • And many more bug fixes and improvements!

  • Enable plugin tests in CI for GHC 9.4 (#3420) by @wz1000

  • Add a mergify action to update PRs (#3418) by @michaelpj

  • GHC 9.4: Compute the source hash before the preprocessor (#3415) by @wz1000

  • Clear the mi_globals field when generating an iface (#3414) by @wz1000

  • Various strictness improvements (#3413) by @wz1000

  • Remove unused GHC compat code (#3412) by @fendor

  • Bump shake-bench to v0.2.0.0 (#3411) by @pepeiborra

  • Support fourmolu 0.10 (#3410) by @brandonchinn178

  • Fix nix build CI (#3404) by @wavewave

  • Fix fourmolu with -f-fixity-th in nix env (#3400) by @wavewave

  • Correct list of GHC versions in caching.yml to match test.yml (#3397) by @fendor

  • Add CI flows for 9.4.3 (#3396) by @pepeiborra

  • Bump technote-space/get-diff-action from 6.1.1 to 6.1.2 (#3392) by @dependabot[bot]

  • Unload once per linkable instead of once per splice (#3390) by @wz1000

  • Fix table in ghc-version-support.md (#3389) by @k4z4n0v4

  • Fix Nix CI, probably (#3388) by @lf-

  • [hls-explicit-record-fields-plugin] Expand used fields only (#3386) by @ozkutuk

  • Bump hlint version CI flow (#3384) by @fendor

  • Bump fkirc/skip-duplicate-actions from 5.2.0 to 5.3.0 (#3381) by @dependabot[bot]

  • Reword intro section in releases.md (#3378) by @fendor

  • Make redundant import removal work on PatSyn imports (#3377) by @ozkutuk

  • Add CI flows for GHC 9.2.5 (#3376) by @fendor

  • Delete dead code in hls-test-utils (#3368) by @fendor

  • Bump gha versions in setup-build/action.yml (#3366) by @fendor

  • Wingman copy old to new (#3363) by @santiweight

  • Cleanup Development.IDE.CodeAction (#3360) by @santiweight

  • Use latest GHC 9.2 and 9.4 in flake.nix (#3354) by @cydparser

  • wingman: move wingman to new directory (#3352) by @santiweight

  • Introduce common code for Recorders in Plugin Tests (#3347) by @fendor

  • Add RangeMap for unified "in-range" filtering (#3343) by @ozkutuk

  • Docs: update and split neovim/vim configurations (#3342) by @MrcJkb

  • Extract AddArgument modules (#3339) by @santiweight

  • Add hls-cabal-fmt-plugin to hackage release CI script and HLS library (#3335) by @fendor

  • Ensure at least 1 capability (#3334) by @pepeiborra

  • Add support for Fourmolu 0.9 (#3331) by @brandonchinn178

  • [skip ci] Add myself to CODEOWNERS (#3329) by @ozkutuk

  • Typo fixes (#3325) by @Deltaspace0

  • Gitlab CI improvements (#3324) by @wz1000

  • Refactor overlay composition (#3323) by @Gabriella439

  • Add support for .env shells to flake.nix (#3322) by @Gabriella439

  • feat: update type signature during add argument action (#3321) by @santiweight

  • Update refactor/splice/hlint/fourmolu/retrie/gadt plugin for GHC 9.4 (#3317) by @9999years

  • Remove stack from installation docs since it is not supported anymore (#3314) by @fendor

  • Bump cachix/cachix-action from 11 to 12 (#3310) by @dependabot[bot]

  • Restore ability to run source plugins (#3309) by @JakobBruenker

  • New plugin: Explicit record fields (#3304) by @ozkutuk

  • support haddock-library 1.11 (#3303) by @kokobd

  • Record diagnostics source rule when testing (#3301) by @pepeiborra

  • Make a test more reliable (#3300) by @pepeiborra

  • Change default cabal install target name on docs/installation.md (#3298) by @caiquefigueiredo

  • Bump technote-space/get-diff-action from 6.1.0 to 6.1.1 (#3293) by @dependabot[bot]

  • Bump cachix/install-nix-action from 17 to 18 (#3292) by @dependabot[bot]

  • Bump cachix/cachix-action from 10 to 11 (#3291) by @dependabot[bot]

  • Purge GHC 8.8 (#3287) by @michaelpj

  • Bump partial ghc support warning to 9.4 (#3286) by @andys8

  • Improved message for missing command or plugin (#3285) by @andys8

  • Register Fourmolu plugin properties (#3284) by @georgefst

  • Cleanup GHC macros (because min version is 8.8.4) (#3281) by @andys8

  • Remove unlawful Ord instance and replace it by a compare function (#3279) by @ChristophHochrainer

  • Exclude the implicit prelude import (#2798) (#3277) by @ChristophHochrainer

  • Fix typos in documentation (#3274) by @bendo

  • Use an importance score to order the suggested import code action (#3271) by @ChristophHochrainer

  • Update plugin tutorial (#3266) by @dyniec

  • configuration-ghc-94.nix: Fix references to lsp and lsp-types source (#3265) by @akshaymankar

  • Add suggestions about licenses in cabal file (#3261) by @dyniec

  • Fix action removes ticks from TemplateHaskellQuotes (#628) (#3260) by @bendo

  • Hlint: A handful of fixes to hints (#3259) by @andys8

  • Support ghc 9.4 for hls-class-plugin (#3258) by @July541

  • Fix nix developement shell (#3257) by @akshaymankar

  • GCH -> GHC (#3252) by @michaelpj

  • Docs: Plugin Support hls-explicit-fixity-plugin (#3251) by @andys8

  • Fix dead link to supported GHC versions (#3244) by @buggymcbugfix

  • Update link to supported versions in README (#3242) by @citrusmunch

  • Bump fkirc/skip-duplicate-actions from 5.1.0 to 5.2.0 (#3239) by @dependabot[bot]

  • Move new imports down the code action list (#3235) by @kokobd

  • Improve memory characteristics of ExportsMap (#3231) by @wz1000

  • [skip ci] Remove myself from codeowners (#3230) by @jneira

  • Fix error in code range (#3229) by @kokobd

  • Use nixpkgs variants of Sphinx packages (#3227) by @ozkutuk

  • Bump fkirc/skip-duplicate-actions from 4.0.0 to 5.1.0 (#3226) by @dependabot[bot]

  • Add source-repository to all cabal files (#3219) by @hololeap

  • hls-hlint-plugin: Update README.md (#3216) by @hololeap

  • wrapper.in: Require runtime ghc-pkgs to be an abi compatible superset of bootpkgs (#3214) by @maralorn

  • Add diagnostics to Stan descriptor (#3213) by @pepeiborra

  • Document the stack requirement in wrapper tests (#3212) by @ozkutuk

  • Improve haddock comments (#3207) by @kokobd

  • Implement sharing for hls-graph Keys (#3206) by @wz1000

  • Improve hls-fixity-plugin (#3205) by @wz1000

  • Implement completionItem/resolve (#3204) by @wz1000

  • Sort vscode extension schema json by keys (#3203) by @fendor

  • docs/supported-versions: Fix typo and more precise brittany support (#3201) by @maralorn

  • Stylish Haskell: CPP parse issues (#3199) by @andys8

  • Bump technote-space/get-diff-action from 4.0.1 to 6.1.0 (#3198) by @dependabot[bot]

  • Log plugin name and attribute errors to plugins (#3194) by @pepeiborra

  • Support optional plugins (#3193) by @pepeiborra

  • Add policy on plugin support tiers (#3189) by @michaelpj

  • Fix broken call-hierarchy-plugin-tests for type signatures (#3188) by @July541

  • Update supported GHC versions doc (#3186) by @michaelpj

  • Docs: Fix checkParents documentation (#3184) by @andys8

  • Configuration: more advanced Vim / Coc example (suggestion) (#3181) by @andys8

  • Docs: List stan plugin (#3180) by @andys8

  • Stan: Respect plugin configuration globalOn (#3179) by @andys8

  • Solve formatting issues (stylish-haskell, pre-commit CI) (#3171) by @andys8

  • remove manual heap profiling from ghcide (#3168) by @pepeiborra

  • Refactor plugin: Prefer code action (#3167) by @andys8

  • Fixes the flake deps to align with cabal bounds (#3163) by @mjrussell

  • Remove unused build-depends and install warnings (#3155) by @pepeiborra

  • Release script fixes (#3154) by @wz1000

  • Allow hackage upload (#3153) by @wz1000

  • support add-argument action (#3149) by @santiweight

  • Only run the pre-commit hook on changed files (#3145) by @drsooch

  • unescape printable characters (#3140) by @kokobd

  • nix: fix nix environment for GHC 9.4 (#3133) by @guibou

  • Drop compatibility with GHC 8.6.5 (#3101) by @pepeiborra

  • Feat: basic record dot completions (#3080) by @coltenwebb

  • Feat: Folding Ranges (#3058) by @sloorush

  • Parse .cabal files; show error and warning diagnostics (#2954) by @runeksvendsen

  • Make splice plugin compatible with GHC 9.2 (#2816) by @eddiejessup

  • Add formatting plugin for cabal files which uses cabal-fmt (#2047) by @VeryMilkyJoe

1.8.0.0

  • Binaries for GHC 9.2.3 and GHC 9.2.4
  • Initial support for GHC 9.4 with binaries for GHC 9.4.1 and GHC 9.4.2
  • Startup time and performance improvements on projects using Template Haskell by serializing intermediate core (#2813)
  • Memory usage improvements due to using a packed representation for filepaths (#3067, @kokobd)
  • Improvements for hls-class-plugin (#2920, @July541)
  • The new hls-gadt-plugin (#2899, @July541)
  • Moving code actions from ghcide to the new hls-refactor-plugin (#3091, @wz1000)
  • Many more improvements and bug fixes thanks to our contributors!

Pull requests merged for 1.8.0.0

  • Alternate Number Format Plugin buildable with GHC 9.4 (#3138) by @drsooch
  • Enable a bunch of plugins that build with ghc 9.4 (#3136) by @pepeiborra
  • Enable support for 9.4 on windows (#3132) by @wz1000
  • flake.nix Add ghcide-bench to sourceDirs (#3125) by @akshaymankar
  • Update hls-retrie-plugin to be usable with 9.2.4. (#3120) by @drsooch
  • Add link to homepage and issues for hie-compat (#3119) by @parsonsmatt
  • Remove pluginId from getNormalizedFilePath error message (#3118) by @drsooch
  • HLS benchmarks (#3117) by @pepeiborra
  • Fix --testing (#3113) by @pepeiborra
  • Deduplicate HLS plugins (#3112) by @pepeiborra
  • Do not send Heap Stats to the LSP log (#3111) by @pepeiborra
  • Send begin progress message synchronously (#3110) by @pepeiborra
  • Remove unused config in hls-class-plugin (#3107) by @July541
  • Support fourmolu-0.8.1.0 (#3103) by @brandonchinn178
  • Probe-tools: Print stack ghc version (#3093) by @andys8
  • Fix #3047 (#3092) by @July541
  • Remove exactprint dependencies from ghcide by introducing hls-refactor-plugin. (#3091) by @wz1000
  • Stan: Avoid terminal colors in messages (#3090) by @andys8
  • Support ghc-9.2.4 (#3085) by @July541
  • Bump Nix flake GHC 9.2.3 to 9.2.4 (#3081) by @cydparser
  • fix lsp-types benchmark (#3079) by @pepeiborra
  • Add support for Fourmolu 0.8 (#3078) by @brandonchinn178
  • upgrade lsp to 1.5 (#3072) by @kokobd
  • Bump actions/cache from 2 to 3 (#3071) by @dependabot[bot]
  • Bump actions/setup-python from 3 to 4 (#3070) by @dependabot[bot]
  • Run the benchmark suite on GHC 9.2.3 (#3069) by @pepeiborra
  • Simplify instructions about 'ghcup compile hls' (#3068) by @hasufell
  • Improve performance of NormalizedFilePath (#3067) by @kokobd
  • add a prefix to plugin CPP definitions (#3065) by @kokobd
  • Add Github precommit workflow (#3060) by @lunaticare
  • Run pre-commit hooks (#3059) by @lunaticare
  • Fix grammar and spelling errors in configuration.md (#3056) by @arsenkhy
  • Remove redundant WARNING prefix (#3055) by @michaelpj
  • fix a typo in src/Ide/Plugin/Class/CodeLens.hs (#3053) by @tensorknower69
  • fix record-dot-syntax test (#3051) by @coltenwebb
  • build(nix): ghc922 -> ghc923 (#3049) by @teto
  • build(nix): bumped gitignore dependency (#3048) by @teto
  • Update issue templates (#3044) by @michaelpj
  • Simplify hlint config (#3038) by @michaelpj
  • handle trailing comma in import list properly (#3035) by @kokobd
  • upgrade ghc-check to fix #3002 (#3034) by @kokobd
  • Fix Stack build with Nix on macOS (#3031) by @lunaticare
  • haskell-language-server: add lower bound for githash (#3030) by @Bodigrim
  • hls-eval-plugin: add lower bound for parser-combinators (#3029) by @Bodigrim
  • hls-fourmolu-plugin: add lower bound for process-extras (#3028) by @Bodigrim
  • ghcide: lower bounds (#3025) by @Bodigrim
  • remove all usages of pre-commit-check in nix (#3024) by @kokobd
  • hls-plugin-api: add lower bounds (#3022) by @Bodigrim
  • hls-graph: add lower bound for async (#3021) by @Bodigrim
  • Hlint: CodeAction with isPreferred (#3018) by @andys8
  • Record Dot Hover Types (#3016) by @coltenwebb
  • re-enable haddock (#3015) by @kokobd
  • add Helix to configuration.md (#3014) by @0rphee
  • Renaming of indirect references (RecordFieldPuns) (#3013) by @OliverMadine
  • Revert back to Warning not Error in Logging ResponseErrors (#3009) by @drsooch
  • Disable flaky test on Windows (#3008) by @michaelpj
  • Improve troubleshooting and installation docs a bit (#3004) by @michaelpj
  • refactor selection range plugin (#3003) by @kokobd
  • Hlint more partial functions, and Debug.Trace (#3000) by @michaelpj
  • Don't use typecheck rule for non FOIs in refine imports plugin (#2995) by @wz1000
  • GHC 9.4 compatibility + Multiple Home Units (#2994) by @wz1000
  • unify pre-commit hook & update Gitpod config (#2991) by @kokobd
  • Log response errors returned from Plugins (#2988) by @drsooch
  • Add associated type families to local completions (#2987) by @gasparattila
  • Remove some partial functions from Shake.hs (#2986) by @michaelpj
  • Clean up ghc-9.0 partial support contents (#2983) by @July541
  • fix new import position (#2981) by @kokobd
  • Implement PluginMethod for hard-wired in handlers (#2977) by @fendor
  • Set up partial functions ratchet (#2974) by @michaelpj
  • Turn HLS-wrapper into an LSP Server (#2960) by @smatting
  • More Fourmolu improvements (#2959) by @georgefst
  • hls-class-plugin: Only create placeholders for unimplemented methods (#2956) by @akshaymankar
  • Fix Fourmolu 0.7 support (#2950) by @georgefst
  • Teach HLS about different file extensions (#2945) by @fendor
  • Support fourmolu ^>= 0.7 (#2944) by @parsonsmatt
  • hls-explicit-fixity-plugin (#2941) by @July541
  • chore(nix): bump nixpkgs to prevent glibc issues (#2937) by @teto
  • Support ghc-9.2.3 (#2936) by @July541
  • Typo fix, dependecies -> dependencies (#2934) by @vikrem
  • Update Archlinux installation section (#2933) by @marcin-rzeznicki
  • docs/installation: Remove unused clone with submodule command (#2930) by @sloorush
  • Omit more parens for wildcard type signature (#2929) by @sergv
  • Add throwPluginError to Plugin Utilities (#2924) by @drsooch
  • hls-class-plugin enhancement (#2920) by @July541
  • Bump documentation requirements (#2918) by @xsebek
  • Document eval plugin limitations (#2917) by @xsebek
  • Replace TextDocumentIdentifier with Uri in getNormalizedFilePath (#2912) by @July541
  • Fix hover format (#2911) by @July541
  • Fix multiline eval plugin padding (#2910) by @xsebek
  • Stan integration #258 (#2908) by @uhbif19
  • A plugin for GADT syntax converter (#2899) by @July541
  • Fix DisplayTHWarning error (#2895) by @pepeiborra
  • Enable hls-eval-plugin test on ghc-9.2.2 (#2893) by @July541
  • nix update (#2892) by @michaelpj
  • Build hls-alternate-number-format-plugin with stack.yaml (#2891) by @July541
  • Modify ghcide requirements of hls-change-type-signature-plugin (#2889) by @July541
  • Fix hls-call-hierarchy-plugin tests (#2888) by @July541
  • Add .txt files as extra-source-files for hls-change-type-signature-plugin (#2887) by @cdepillabout
  • Prefer Data.HashSet.member to Data.Foldable.elem (#2886) by @sergv
  • no longer disable -dynamic in CI (#2885) by @pepeiborra
  • hls-pragmas-plugin requires ghcide >= 1.7 (#2884) by @Bodigrim
  • Make iface-error-test-1 less flaky (#2882) by @pepeiborra
  • hls-haddock-comments does not support ghc-exactprint >= 1.0 (#2878) by @Bodigrim
  • Restore compat. with prettyprinter 1.6 (#2877) by @pepeiborra
  • ghcide requires ghc-exactprint >= 1.4 (#2876) by @Bodigrim
  • ghcide needs prettyprinter-1.7 to build (#2875) by @juhp
  • Review project stack descriptors according to #2533 (#2874) by @pepeiborra
  • hls-call-hierarchy-plugin Patch release (#2873) by @pepeiborra
  • Expand input to pragma if available (#2871) by @July541
  • Fix hanging redundant import on Unicode function (#2870) by @drsooch
  • Compatibility with older aeson releases (#2868) by @pepeiborra
  • simplify hlint plugin Cabal descriptor (#2867) by @pepeiborra
  • Consolidate all cabal.project files (#2866) by @pepeiborra
  • release script fixes (#2861) by @wz1000
  • Support hls-hlint-plugin and hls-stylish-plugin for ghc9.0 and ghc9.2 (#2854) by @July541
  • Bump haskell/actions from 1 to 2 (#2852) by @dependabot[bot]
  • Add scripts for releases and final 1.7 tweaks (#2850) by @wz1000
  • Fix Completion document format (#2848) by @July541
  • Improve name export code action (#2847) by @sergv
  • Update plugin support table (#2840) by @michaelpj
  • Unify showSDocUnsafe (#2830) by @July541
  • ghcide: remove redundant env NIX_GHC_LIBDIR (#2819) by @sloorush
  • Serialize Core (#2813) by @wz1000
  • Expose runtime metrics via EKG (#2267) by @pepeiborra

1.7.0.0

  • Distribute dynamically linked binaries for HLS to avoid statically linking against GLIBC and system libraries, and to avoid unpredictable failures due to subtle differences between the GHC used to compile HLS and the GHC installed on the users machine (@hasufell, #2675, #2431)

  • Improved recompilation avoidance in projects that make use of Template Haskell (#2316). See the blog post for more details. This release includes the avoid-recompile set of commits described in the blog post.

  • Support for GHC 9.2.2

  • Removal of HLS installer scripts as mentioned by the deprecation notice last release (#2773)

  • Many more improvements and bug fixed thanks to our contributors!

Pull requests merged for 1.6.1.1

  • Restore concise type variables in ghc-9.2 (#2828) by @July541
  • Should no related code lens if the module name is correct (#2826) by @July541
  • Bump cachix/install-nix-action from 16 to 17 (#2823) by @dependabot[bot]
  • Bump actions/upload-artifact from 2 to 3 (#2822) by @dependabot[bot]
  • Bump actions/download-artifact from 2 to 3 (#2821) by @dependabot[bot]
  • bench: Add more metrics (#2814) by @wz1000
  • Enable rename plugin (#2809) by @OliverMadine
  • Fix cabal install commands for local HLS build in docs (#2807) by @9999years
  • Bump actions/cache from 2 to 3 (#2806) by @dependabot[bot]
  • [hls-graph] Optimise waitConcurrently (#2805) by @pepeiborra
  • [bench] track changes to hls-* projects (#2803) by @pepeiborra
  • Fix Show instance (#2802) by @pepeiborra
  • Provide all format suggestions in AlternatFormat Code Action (#2790) by @drsooch
  • Avoid race conditions with VFS and VFS versions (#2789) by @wz1000
  • Don't show the redundant space (#2788) by @July541
  • Target GHC 9.2.2 (#2787) by @pepeiborra
  • Allow import all constructors (#2782) by @July541
  • Customizable TH warning (#2781) by @pepeiborra
  • Fix #2693 (#2780) by @wz1000
  • Add Gentoo installation details (#2778) by @paul-jewell
  • Eval plugin: mark exceptions (#2775) by @xsebek
  • Fix 2 space leaks (#2774) by @pepeiborra
  • Delete HLS installer scripts (#2773) by @fendor
  • Purge some more hslogger (#2770) by @michaelpj
  • Abbreviate explicit import code lenses (#2769) by @michaelpj
  • Review masking and add traces when things don't cancel timely (#2768) by @pepeiborra
  • Upgrade to hie-bios 0.9.1 (#2766) by @fendor
  • Avoid extra parens for wildcard type signature (#2764) by @xsebek
  • Add an option to run Fourmolu via the CLI interface of a separate binary, rather than the bundled library (#2763) by @georgefst
  • Fix Change Type Signature Plugin test suite for 9.2.1 (#2761) by @drsooch
  • Bump actions/checkout from 2 to 3 (#2759) by @dependabot[bot]
  • Refactor LSP logger and log via window/logMessage also (#2758) by @michaelpj
  • Fix the tower of Babel (#2757) by @hasufell
  • Implement cycle detection in hls-graph (#2756) by @pepeiborra
  • Adjust rendering of error logs and drop unneeded MonadUnliftIO instance (#2755) by @pepeiborra
  • Estimate file versions safely (#2753) by @pepeiborra
  • Fix test failure for AlternateNumberFormat (#2752) by @drsooch
  • LSP window message log recorder (#2750) by @pepeiborra
  • Fix FreeBSD bindist build (#2748) by @hasufell
  • Improve bindist makefile (#2746) by @hasufell
  • Fix flake.lock (#2743) by @michaelpj
  • Add failing test for variables in hovers (#2742) by @michaelpj
  • Update Define Function Code Action to have knowledge of comments (#2740) by @drsooch
  • Upgrade to hie-bios 0.9.0 (#2738) by @fendor
  • Track file versions accurately. (#2735) by @wz1000
  • Fix hls-class-plugin on ghc-9.2 (#2733) by @July541
  • Bump actions/github-script from 2 to 6 (#2730) by @dependabot[bot]
  • Delete the Telemetry log level (#2727) by @michaelpj
  • Tone down logging of plugin rules (#2723) by @pepeiborra
  • Troubleshooting: GHC 9.2 partial support (#2722) by @andys8
  • Remove getHspecFormattedConfig which is no longer used (#2721) by @hololeap
  • Fix crash for non-LSP modes wrt #2627 (#2719) by @hasufell
  • Wingman: Don't use keywords for variable names (#2717) by @isovector
  • Expose DisplayTHWarning (backport #2712) (#2714) by @mergify[bot]
  • Send LSP error when GHC cannot be found (#2713) by @hasufell
  • Expose DisplayTHWarning (#2712) by @pepeiborra
  • Improve wrapper cradle errors (#2711) by @hasufell
  • Fix min bound for ghc-exactprint dependency in hls-class-plugin (#2710) by @pepeiborra
  • Remove duplicate help messages & format CRLF to LF (#2709) by @July541
  • Add @July541 for call-hierarchy-plugin (#2708) by @July541
  • Fix releasing (#2707) by @hasufell
  • Print info message when ignoring a file due to a none cradle (#2701) by @ThomasCrevoisier
  • fix: handle comma in extend import list with ghc 9.2 (#2697) by @guibou
  • Build Alternate Number Format Plugin with GHC 9.2 (#2696) by @drsooch
  • Optionally publish packages definitely in the hackage workflow (#2689) by @jneira
  • Set -dynamic in cabal.project (#2688) by @jneira
  • Multi component issues in GHC 9.2 (#2687) by @pepeiborra
  • Fix flaky boot def test (#2686) by @eddiemundo
  • Fix typos in troubleshooting.md (#2680) by @visortelle
  • Add pre-commit hook for cleaning up mixed-line endings (#2679) by @drsooch
  • Add a test for #2673 (#2676) by @pepeiborra
  • Implement distribution of dynamic builds (#2675) by @hasufell
  • Restore eval plugin build for GHC 9.2 (#2669) by @guibou
  • Change Type Signature Plugin (#2660) by @drsooch
  • Nix flake fix dev shells (#2655) by @guibou
  • Speed up fuzzy search (#2639) by @Bodigrim
  • Improve logging (#2558) by @eddiemundo
  • Improve recompilation avoidance in the presence of TH (#2316) by @wz1000

1.6.1.1 (only hackage release)

  • Release to update haskell-language-server.cabal in hackage, setting the build for the executable component as dynamically linked
    • The motivation is build by default a hls executable which works for Template Haskell
    • This doesn't need a full release cause it does not affect release executables which continue being fully static

Pull requests merged for 1.6.1.1

  • Prepare 1.6.1.1 (only hackage release) (#2681) by @jneira
  • Add the -dynamic flag and update build instructions (#2668) by @pepeiborra

1.6.1.0

This is a bug fix release to restore a fully statically linked haskell-language-server-wrapper executable.

  • It has been reported here
    • Thanks all reporters for the fast feedback
  • The bug has been traced here
  • And the fix is in this pr

Pull requests merged for 1.6.1.0

  • Post 1.6.0.0 fixes and prepare 1.6.1.0 bug fix release (#2647) by @jneira
  • Move hackage back to flake.nix (#2652) by @guibou
  • Wingman: Fix #1879 (#2644) by @MorrowM

1.6.0.0

Time for a new and exciting hls release:

  • It includes three brand new plugins:
  • Finally hls supports ghc 9.2.1
    • Including core features and many plugins
    • Thanks to a great collective effort coordinated by @pepeiborra and with the help of @wz1000, @mpickering and @alanz among others
  • Hls now also supports ghc 9.0.2 with all plugins but the stylish-haskell formatter
  • And many many fixes and performance improvements, thanks to all contributors!

Deprecation notice for 1.6.0

  • As we noted in the previous release we have dropped support for ghc versions 8.10.5 and 8.8.3 in this release
    • We recommend upgrading ghc to the last minor version: 8.8.4 or 8.10.7
    • You can read more about ghc deprecation policy and schedule here
  • After this release:
    • We will remove all project stack.yaml's but two: one for last lts and other for nightly. Temporary we could keep one more stack yaml when nightly upgrades the ghc version, to help in the transition
    • We will remove the install script which lives here
      • If you want to install hls from source we recommend using ghcup. Download it and run ghcup compile hls --help to get more info about.

Pull requests merged for 1.6.0

  • Prepare 1.6.0 release (#2642) by @jneira
  • Implement stripPrefix via T.stripPrefix (#2645) by @Bodigrim
  • Change Type Family Export pattern (#2643) by @drsooch
  • Disable alpine build by default (#2638) by @jneira
  • Use T.decodeUtf8 + BS.readFile instead of T.readFile (#2637) by @Bodigrim
  • Add ghc 9.2.1 to gitlab ci (#2636) by @jneira
  • Specialize ghcide indent style to .hs (#2631) by @mrgutkun
  • Fix off by one indexing error in openingBacktick (#2629) by @pepeiborra
  • Drop bytestring-encoding (#2628) by @pepeiborra
  • fix positionInRange (#2625) by @kokobd
  • Fix #2612 - hlint plugin - Apply fixities to parsed source before sending to apply-refact (#2624) by @eddiemundo
  • Flake ghc 92 (#2621) by @guibou
  • Use ghc+integer-gmp for alpine linux build release (#2615) by @jneira
  • Use helpers from lsp to do code action prefixing (#2614) by @michaelpj
  • Wingman: Fix fundeps (#2611) by @isovector
  • Wingman idioms (#2607) by @isovector
  • Make work stack-9.2.1.yaml and enable pedantic (-WError) for cabal (#2606) by @jneira
  • Improve qualified import plugin readme (#2605) by @eddiemundo
  • Correct typo in Ide.Arguments:listPluginsParser (#2604) by @tombusby
  • Rework features documentation (#2603) by @michaelpj
  • [ghc-9.2] Fix refine-imports plugin (#2601) by @mrgutkun
  • [ghc-9.2] Fix qualify-imported-names plugin (#2600) by @mrgutkun
  • Correct issues with pre-commit hook (#2597) by @bradrn
  • Fix some import module completions being dropped (and fix flaky test too) (#2595) by @eddiemundo
  • Fix module-name plugin on ghc-9.2.1 (#2594) by @mrgutkun
  • [ghc-9.2] Fix rename plugin (#2593) by @pepeiborra
  • Fix progress eval test randomly failing (#2590) by @eddiemundo
  • More work around next ghc-9.2.1 support (#2587) by @jneira
  • Post ghc-9.2.1 config cleanup (#2582) by @jneira
  • GHC-9.0 support for hls-tactics-plugin (#2581) by @isovector
  • Wingman: Fix TODO(sandy) when performing subsequent actions (#2580) by @isovector
  • Bump Ormolu and Fourmolu to GHC-9.2-compatible versions (#2579) by @georgefst
  • test: Add regression tests for #2403 (#2576) by @guibou
  • Fix crash on completion with type family (#2569) by @guibou
  • Add support for ghc 9.0.2 (#2567) by @jneira
  • support selection range lsp feature (#2565) by @kokobd
  • Reuse build setup using a dedicated github action (#2563) by @jneira
  • Fix ci update hackage index (#2562) by @jneira
  • Enable aarch64-darwin in flake.nix (#2561) by @Gabriel439
  • Fix freeze cache key correctly (#2560) by @jneira
  • Fix nix flake by explicit version for lsp-xxx packages (#2557) by @guibou
  • Apply missing update for stack-9.0.1.yaml (#2556) by @Ailrun
  • doc: Enable relative links with anchors (#2555) by @sir4ur0n
  • Fix space leak where EPS retained HPTs from old HscEnv (#2553) by @mpickering
  • Remove cabal.project.freeze files in workflows after computing the cache key (#2552) by @jneira
  • Add support for brittany (needs aeson-2) and floskell with ghc-9.0.1 (#2551) by @jneira
  • Restore TemplateHaskell pragma in hls-graph (#2549) by @pepeiborra
  • Add space after comma when exporting a name (#2547) by @sergv
  • Set an unique name for Hlint job (#2544) by @jneira
  • Fix ghcide handling project root (#2543) by @drsooch
  • CI: linting (#2538) by @Anton-Latukha
  • CI: add hlint workflow (#2537) by @Anton-Latukha
  • CI: caching: closer match work/CI guarantees (#2536) by @Anton-Latukha
  • CI: caching: keep-going (#2535) by @Anton-Latukha
  • CI: {caching,test,bench}: mk cache aware of package dep versions (#2532) by @Anton-Latukha
  • Test hls-pragmas-plugin in ci (#2530) by @jneira
  • Enable manual run for caching, hackage and build workflows (#2528) by @jneira
  • Fix random SQLite busy database is locked errors (#2527) by @eddiemundo
  • Fix some hlint warnings (#2523) by @jhrcek
  • Improve action for fixing import typo (#2522) by @jhrcek
  • CI: caching: fix early termination expression check & cabal.project replacement (#2520) by @Anton-Latukha
  • Solve crash with module name plugin under certain circumstances (#2518) by @ttylec
  • Rework troubleshooting section, add basic explainer (#2517) by @michaelpj
  • Refactor collectLiterals in AlternateNumberFormat. (#2516) by @drsooch
  • cabal-*.project: index-state +1s (#2515) by @Anton-Latukha
  • Bump up retrie (#2513) by @jneira
  • Sort out some compatibility issues (#2511) by @alanz
  • Fix ci cache for windows (#2507) by @jneira
  • CI: caching: add early termination & run check on schedule (#2506) by @Anton-Latukha
  • Fix tracing of recordDirtyKeys (#2505) by @pepeiborra
  • Unhandled exceptions fixed (#2504) by @pepeiborra
  • Build with GHC 9.2 (#2503) by @pepeiborra
  • Ignore stack.yamls in test cabal workflow (#2502) by @jneira
  • small stack yaml updates to ease maintenance (#2501) by @simonmichael
  • Automatically read in the doc version from the cabal file (#2500) by @michaelpj
  • Disable alternate numbers format plugin temporary (#2498) by @jneira
  • Revert "Send unhandled exceptions to the user (#2484)" (#2497) by @jneira
  • Upgrade to new version of lsp libraries (#2494) by @michaelpj
  • Fail if main or pre jobs are cancelled (#2493) by @jneira
  • stack-9.0.1: update/cleanup (#2489) by @simonmichael
  • Correctly handle LSP shutdown/exit (#2486) by @pepeiborra
  • Fix hls-graph ide build with embed-files (#2485) by @pepeiborra
  • Send unhandled exceptions to the user (#2484) by @pepeiborra
  • Fix redundant import actions for names starting with _ (#2483) by @Ailrun
  • Update flake to use fourmolu plugin in GHC 9 (#2482) by @Ailrun
  • Delete some dead or deprecated settings (#2481) by @michaelpj
  • Class plugin bump up (#2475) by @Ailrun
  • Fix some pragma completion cases (#2474) by @Ailrun
  • Minor org to contribution doc (#2472) by @Anton-Latukha
  • Warn if TH and Mac and static binary (#2470) by @pepeiborra
  • Lock-less debouncer (minimal change) (#2469) by @pepeiborra
  • Handle re-exported modules when constructing ExportsMap (#2468) by @jhrcek
  • Caching process update (#2467) by @Anton-Latukha
  • #2418 Also use .hlint.yaml fixity rules when HLINT_ON_LIB_GHC not defined (#2464) by @eddiemundo
  • Build linux binaries in alpine container (#2463) by @pepeiborra
  • Lockless iorefs (#2460) by @pepeiborra
  • Join nested IO actions of the form IO (IO ()) (#2459) by @fendor
  • #600 Code action to ignore hlint hints module wide (#2458) by @eddiemundo
  • lock-less progress-reporting (#2453) by @pepeiborra
  • Fix the nix build (#2452) by @michaelpj
  • Fix rerun log cache handling (#2450) by @jneira
  • Make heavy use of common sections (#2447) by @fendor
  • CI: organizing bootstraping (#2446) by @Anton-Latukha
  • Describe hls installed binaries (#2445) by @jneira
  • Remove support for ghc 8.8.3/8.10.5 (#2444) by @jneira
  • CI: cabal 3.6 use & clean-up 8.10.5 builds (#2443) by @Anton-Latukha
  • Lockless FileExistsMap and position mapping (#2442) by @pepeiborra
  • Fix regression in Eval plugin and add test (#2441) by @pepeiborra
  • Makes local record field completion respects the fields sharing one single type signature (#2439) by @konn
  • Enable top-level hover signature test (#2435) by @jneira
  • Lockless diagnostics (#2434) by @pepeiborra
  • Move Common Plugin Functions into PluginUtils (#2433) by @drsooch
  • lock-less Values state (#2429) by @pepeiborra
  • Extract the pre-decl pragma parsing to its own module (#2428) by @eddiemundo
  • CI: cache-deps: rm pull request hook (#2426) by @Anton-Latukha
  • Add known broken tests for import placement (#2425) by @nini-faroux
  • Use stm-stats to reduce contention in hls-graph (#2421) by @pepeiborra
  • Build on FreeBSD12 only (#2420) by @hasufell
  • Centralized caching workflow (#2419) by @Anton-Latukha
  • Configuration docs: Typo (#2417) by @andys8
  • Use dependent-sum from hackage (#2412) by @jneira
  • Lock-less hls-graph (#2411) by @pepeiborra
  • hls-graph.cabal: link to actual readme (#2404) by @juhp
  • Disable check project in the ghcide test suite (#2397) by @pepeiborra
  • Add modern issue templates (#2394) by @jneira
  • Fix extension pragma inserted below ghc options pragma #2364 (#2392) by @eddiemundo
  • Avoid unnecessary Target canonicalisation in Session setup (#2359) by @fendor
  • Decrease contention in Progress reporting (#2357) by @pepeiborra
  • Qualify imported names plugin (#2355) by @eddiemundo
  • HLS Plugin to provide Alternate Literal Formats. (#2350) by @drsooch
  • Log live_bytes and heap_size as reported by GHC.Stats (#1508) by @mpickering

1.5.1

This is a bug fix release for two regressions found after releasing 1.5.0:

  • #2365: hs-boot files not handled correctly, discovered in the ghc codebase and fixed with #2377
  • #2379: tried to look at linkable for GetModIfaceWithoutLinkable for NormalizedFilePath... error handling template haskell, fixed with #2380

Both quick fixes thanks to @pepeiborra

Also it fixes some long standing bugs in the hlint plugin due to comments being ignored (see #2366)

Pull requests merged for 1.5.1

  • Fix hls-graph build with embed-files flag (#2395) by @pepeiborra
  • Prepare 1.5.1 (#2393) by @jneira
  • Revert "Update to latest prettyprinter API (#2352)" (#2389) by @pepeiborra
  • Add extra logging around build queue (#2388) by @pepeiborra
  • docs: Fix typo (#2386) by @nh2
  • Update release instructions (#2384) by @jneira
  • ghcide: Update dependency on hls-plugin-api (#2382) by @hololeap
  • Fix regression in GhcSessionDeps (#2380) by @pepeiborra
  • Boot files (#2377) by @pepeiborra
  • hls-module-name-plugin: Add missing golden file to hackage tarball (#2374) by @maralorn
  • hls-explicit-imports-plugin: Add golden files to hackage tarball (#2373) by @maralorn
  • Update ghcide dependency for various plugins (#2368) by @hololeap
  • Fix several hlint issues related with the use of parsed module without comments (#2366) by @jneira

1.5.0

Time for another hls release:

  • @pepeiborra has done an epic work to improve performance, redefining some of the core pieces of HLS
    • You can take an overall look to improvements in these slides
  • We have fourmolu support for ghc-9.0.1 thanks to @georgefst
  • We have got improvements over import suggestions thanks to @yoshitsugu and @alexnaspo
  • Completions also has been improved in general thanks to @pepeiborra
  • There have been lot of documentation updates by several contributors, thanks also to all of you
  • In this release we still don't have full support for all plugins and ghc-9.0.1
    • Missing plugins for ghc-9.0.1 are: hls-class-plugin, hls-tactics-plugin (wingman), hls-brittany-plugin and hls-stylish-haskell-plugin

Deprecation notice for 1.5.0

  • As we noted in the previous release we have dropped support for ghc versions 8.6.4, 8.10.2, 8.10.3, 8.10.4 in this release
  • We will drop support for ghc versions 8.10.5 and 8.8.3 after this release
  • The advise is upgrade ghc to the last minor version: 8.6.5, 8.8.4 or 8.10.7
  • You can read more about ghc deprecation policy and schedule here

Pull requests merged for 1.5.0

  • Prepare 1.5.0 (#2361) by @jneira
  • More completion fixes (#2354) by @pepeiborra
  • Update to latest prettyprinter API (#2352) by @fendor
  • Use hackage version of czipwith (#2346) by @jneira
  • Show build graph statistics in ghcide-bench (#2343) by @pepeiborra
  • contributing: add implicit-hie gen-hie > hie.yaml note (#2341) by @Anton-Latukha
  • add dependabot: add Actions CI merge requests automation (#2339) by @Anton-Latukha
  • Skip parsing without haddock for above GHC9.0 (#2338) by @yoshitsugu
  • Give unique names to post-jobs (#2337) by @jneira
  • Cancel prev runs for bench and nix (#2335) by @jneira
  • Trace diagnostics (#2333) by @pepeiborra
  • Include sortText in completions and improve suggestions (#2332) by @pepeiborra
  • Not suggest exported imports (#2329) by @yoshitsugu
  • Update troubleshooting section (#2326) by @jneira
  • Remove automatic comment to [skip circleci] (#2325) by @jneira
  • Add README.md in install/ subproject (#2324) by @sir4ur0n
  • Improve the performance of GetModIfaceFromDisk in large repos and delete GetDependencies (#2323) by @pepeiborra
  • Add support for install hls from hackage using ghc 9.0.1 (#2322) by @jneira
  • Rename hlint test data files and add regression tests (#2321) by @jneira
  • Suggest hiding imports when local definition exists (#2320) by @yoshitsugu
  • Improve trace readability (#2319) by @pepeiborra
  • Sir4ur0n/doc/cleanup hie (#2311) by @sir4ur0n
  • Add option to effectively cancel prev runs (#2310) by @jneira
  • Separate features from demos (#2307) by @jneira
  • Prevent Tactics hover provider from blocking at startup (#2306) by @pepeiborra
  • Fix defaultIdeOptions to use the initial config settings (#2302) by @pepeiborra
  • Use new queue rules for mergify bot (#2301) by @jneira
  • Fix reverse dep. tracking for alwaysRerun rules (#2298) by @pepeiborra
  • Reorganize github workflows and use specific label [skip circleci] (#2297) by @jneira
  • Enable func-test suite for windows (#2296) by @jneira
  • Generate linkables in the Eval plugin (#2295) by @pepeiborra
  • [hls-graph] clean up databaseDirtySet (#2294) by @pepeiborra
  • Update link to supported platforms by ghcup (#2293) by @chshersh
  • Make circleci honour [skip ci] wherever is placed in the pr info (title, description) (#2289) by @jneira
  • Note in the install script that listed ghcs are the supported ones (#2286) by @jneira
  • Move hlint tests to its own package (and other clean ups) (#2284) by @jneira
  • Trace rebuilds (#2283) by @pepeiborra
  • Fix excessive interface recompilation caused by the Tactics plugin (#2282) by @pepeiborra
  • Preserve dirty set and add dirtiness assertion (#2279) by @pepeiborra
  • Ignore null WatchedFile events (#2278) by @pepeiborra
  • Trace log events and fix ghcide logger (#2277) by @pepeiborra
  • Point to GitHub from Contributing.md (#2275) by @georgefst
  • installation.md: add Fedora copr repo (#2274) by @juhp
  • avoid double rebuilds for FOIs (#2266) by @pepeiborra
  • Update installation on ArchLinux - new package (#2265) by @marcin-rzeznicki
  • Garbage collection of dirty keys (#2263) by @pepeiborra
  • Add lsp-mode links (#2260) by @jneira
  • Add more features and demos in docs (#2257) by @jneira
  • Add nix installation section (#2256) by @jneira
  • Bump Fourmolu to 0.4 (#2254) by @georgefst
  • Remove custom version of operational (#2249) by @jneira
  • Generate custom source tarball (#2248) by @jneira
  • Enable the ghcide test plugin in HLS test suites (#2243) by @pepeiborra
  • Partial sort of fuzzy filtering results (#2240) by @pepeiborra
  • Fix build with fbghc (#2234) by @pepeiborra
  • Tweaks to GHC support docs (#2232) by @michaelpj
  • Add ghc deprecation policy to documentation (#2231) by @jneira
  • Add ghcup compile option (#2230) by @jneira
  • Parallel fuzzy filtering (#2225) by @pepeiborra
  • Revert "Inline Text.Fuzzy to add INLINABLE pragmas" (#2223) by @pepeiborra
  • feat(flake): expose hie-bios (#2221) by @teto
  • flake: remove the 'follows' directive (#2218) by @teto
  • Return completions lazily for massive savings (#2217) by @pepeiborra
  • Inline Text.Fuzzy to add INLINABLE pragmas (#2215) by @pepeiborra
  • Add chat on irc badge (#2214) by @jneira
  • ghcide: Add flags to toggle building each executable (#2212) by @hololeap
  • Add matrix haskell-tooling channel (#2210) by @jneira
  • Relax upper bounds over ormolu and stylish-haskell (#2207) by @jneira
  • Add missing config options in documentation (#2203) by @jneira
  • Add gitlab CI (#2200) by @hasufell
  • Apply workaround for 8.8.4 and windows to enable it in ci (#2199) by @jneira
  • Drop ghc support for 8.6.4, 8.10.2, 8.10.3, 8.10.4 (#2197) by @jneira
  • Consider all root paths when suggesting module name change. (#2195) by @cdsmith
  • enable completions of local imports (#2190) by @alexnaspo
  • Drop ghc-api-compat from dependency closure (#2128) by @fendor
  • Reimplement shake (continued) (#2060) by @pepeiborra

1.4.0

After a month of vacation a new hls release has arrived:

  • Support for ghc 8.10.6 and 8.10.7
  • The ormolu formatter plugin works with ghc 9.0.1
  • Call hierarchy plugin has been improved thanks to @July541:
    • Add call from type signature
    • Add call from a function pattern
    • Go to typeclass instance directly
  • As usual @isovector has been busy improving wingman plugin:
    • New "intro and destruct" code action
    • Streaming tactic solutions: when Wingman times outs, it can still pick the best solution it found
    • Let-bindings in metattactics: allows you to bind variables in tactic metaprogram
    • Several bug fixes
  • We have new docs thanks to @michaelpj: https://haskell-language-server.readthedocs.io
  • Now you can ask the executable for included plugins with: haskell-language-server --list-plugins
  • There are several bug fixes and features you can found in the merged pull requests list

DEPRECATION NOTICE

  • After this release we will drop support for ghc versions 8.6.4, 8.10.3 and 8.10.4
    • The advise is upgrade ghc to the last minor version: 8.6.5 or 8.10.7
    • Take a look to this issue for more details

Pull requests merged for 1.4.0

  • Prepare 1.4.0 (#2182) by @jneira
  • Update flake to fix nix builds (#2188) by @jneira
  • Completions for project identifiers (#2187) by @pepeiborra
  • Wingman: Don't clobber where clauses (#2184) by @isovector
  • Add rerun workflow (#2181) by @jneira
  • Bump up shake-bench version (#2178) by @jneira
  • Fix hackage release (#2177) by @jneira
  • Use maxBound of uinteger not Int. (#2169) by @pranaysashank
  • enable the PR gitpod badge and drop the label (#2167) by @pepeiborra
  • Plugin in config files (#2166) by @jneira
  • Complete contributing guide (#2165) by @jneira
  • Wingman: Add "New Unification Variable" helper (#2164) by @isovector
  • Semiautomatic hackage releases (#2163) by @jneira
  • Improve incoming call for typeclass and type family instance (#2162) by @July541
  • Add a Gitpod descriptor (#2161) by @pepeiborra
  • Wingman: Let-bindings in metatactics (#2160) by @isovector
  • Update nix flake (#2159) by @lf-
  • Add ghc-8.10.7 to release build (#2158) by @jneira
  • Reduce duplication in pragma tests (#2157) by @nini-faroux
  • Remove ghc-api source snapshot (#2156) by @pepeiborra
  • Create a citation (#2155) by @ndmitchell
  • Disable window job for ghc-8.10.2 (#2154) by @jneira
  • Auto complete definitions within imports (#2152) by @alexnaspo
  • Filter code actions based on prefix, not equality (#2146) by @michaelpj
  • perform a GC before find resolution (#2144) by @pepeiborra
  • case sensitive language pragmas fix (#2142) by @alexnaspo
  • Add ghc-8.10.7 support (#2141) by @jneira
  • List all available plugins (#2139) by @July541
  • update LTS for GHC 8.10.6 (#2138) by @peterbecich
  • fix GitHub Actions badges (#2135) by @peterbecich
  • Move pragmas completion to pragmas plugin (#2134) by @alexnaspo
  • Update ghc-9.0.1 support (#2131) by @jneira
  • Support call hierarchy on pattern matching (#2129) by @July541
  • GHCIDE_BUILD_PROFILING env var (#2125) by @pepeiborra
  • [ghcide] support -d cli switch (#2124) by @pepeiborra
  • don't crash when an unused operator import ends in . (#2123) by @tscholak
  • [benchmarks] Fix edit and "after edit" experiments (#2122) by @pepeiborra
  • Add fix for correct placement of import (#2100) (#2116) by @nini-faroux
  • Support for ghc-8.10.6 (#2109) by @jneira
  • New rename plugin implementation (#2108) by @OliverMadine
  • [ghcide-bench] Support extra args in examples (#2107) by @pepeiborra
  • Fix filepath identity in cradle dependencies when using reactive change tracking (#2106) by @pepeiborra
  • [ghcide-bench] preserve threading details in eventlogs (#2105) by @pepeiborra
  • [ghcide-bench] fix edit experiment (#2104) by @pepeiborra (#2102) by @isovector
  • reduce allow-newer entries for shake-bench (#2101) by @pepeiborra
  • Wingman: Don't count it as using a term if you only destruct it (#2099) by @isovector
  • Clean cabal project (#2097) by @jneira
  • Wingman: New AbstractLSP interface (#2094) by @isovector
  • Add badge with github release (#2093) by @jneira
  • Add a bit more prose and some links to the README (#2090) by @michaelpj
  • Enable tests for ormolu plugin (#2086) by @felixonmars
  • Allow ormolu 0.2 and fix compatibility with GHC 9 (#2084) by @felixonmars
  • Add initial sphinx doc site for RTD (#2083) by @michaelpj
  • Amend fix for correct placement of file header pragmas (#1958) (#2078) by @nini-faroux
  • Wingman: "Intro and destruct" code action (#2077) by @isovector
  • Support call hierarchy on type signature & add plugin to generic config & docs (#2072) by @July541
  • Update nix flake (#2065) by @berberman
  • Include sponsorship section (#2063) by @jneira
  • Add more communication channels (#2062) by @jneira
  • Don't suggest disabling type errors (#2061) by @anka-213
  • Build with lsp 1.2.0.1 (#2059) by @pepeiborra
  • Remove HIE_CACHE from circleci cache key (#2050) by @jneira
  • [#1958] Fix placement of language pragmas (#2043) by @nini-faroux
  • [#2005] Fix Formatting When Brittany Returns Warnings (#2036) by @prikhi

1.3.0

2021 July release of HLS arrives! This release includes binaries for GHC 9.0.1 and some new interesting features. Here is the brief summary of changes:

  • Binaries for GHC 9.0.1 are added by @anka-213.
  • Call hierarchy plugin is added, contributed by @July541. hierarchy
  • Now completions work with definitions from non-imported modules, thanks to @pepeiborra. completion
  • Eval plugin
    • The plugin supports GHC 9.0.1, thanks to @berberman.
    • :info command is added by @akrmn.
    • The plugin uses the same default language as GHCi with @fmehta's patch.
  • Wingman, where most changes owing to @isovector
    • Wingman no longer changes the fixity of function definitions.
    • Wingman now gives unique names to the holes it generates.
    • Wingman's ability to reason about polymorphic and GADT types is significantly improved.
    • Wingman no longer suggests homomorphic destructs when the codomain is larger than the domain.
    • "Complete case constructors" action supports empty lambda cases.
    • Wingman now gives a warning if it ran out of gas during "attempt to fill hole".
    • Metaprogramming for Wingman has been improved with symbolic-name support and the pointwise combinator.
    • An option to enable/disable Wingman's proof state styling is added.
    • Hole fit suggestions are now disabled for performance reasons when using Wingman.
  • Hovering on a name displays the package where the name is defined, contributed by @berberman. hover

Pull requests merged for 1.3.0

  • Wingman: Properly destruct forall-quantified types (#2049) by @isovector
  • Remove .stack-work from circleci cache (#2044) by @jneira
  • Completions from non-imported modules (#2040) by @pepeiborra
  • Wingman: Low gas warning (#2038) by @isovector
  • Enable dynamic linking in stack builds (#2031) by @pepeiborra
  • Fix nix flake (#2030) by @Avi-D-coder
  • Tie plugins' pluginModifyDynflags to their enabled state (#2029) by @isovector
  • Add benchmarks for hole fits (#2027) by @pepeiborra
  • fix a typo (#2024) by @cdsmith
  • Upgrade to refinery-0.4.0.0 (#2021) by @isovector
  • Use implicit-hie-cradle-0.3.0.5 (#2020) by @jneira
  • Disable hls tests for win and ghc-9.0.1 (#2018) by @jneira
  • Use operational master commit to fix build for ghc-9.0.1 (#2017) by @jneira
  • Fix Wingman dependency on extra (#2007) by @pepeiborra
  • Add GHC 9.2 support for hie-compat (#2003) by @fendor
  • Enable tests for ghc 9 and promote ghcVersion check (#2001) by @jneira
  • Allow HLS plugins to declare cli commands (#1999) by @pepeiborra
  • Remove >= from cabal-version (#1998) by @felixonmars
  • Eval plugin: support ghc 9.0.1 (#1997) by @berberman
  • Maximize sharing of NormalizedFilePath values in getLocatedImports (#1996) by @pepeiborra
  • nix: add support for ghc 9.0.1 (#1995) by @berberman
  • Warn GHC 9 Compatibility to LSP Client (#1992) by @konn
  • Update nix to GHC 8.10.5 (#1991) by @berberman
  • Initialize ExportsMap using hiedb exports (#1989) by @pepeiborra
  • Wingman: add emacs example config to Readme (#1988) by @stuebinm
  • relax megaparsec constraint in hls-tactics-plugin (#1986) by @pepeiborra
  • follow change in lsp-types (#1985) by @pepeiborra
  • Don't suggest import an unnecessary data constructor. (#1984) by @peterwicksstringfield
  • Enable hyphenation embedding (#1979) by @isovector
  • Fix nix.yaml (#1974) by @isovector
  • Add windows to ghcup artifacts and generate sha256 sums (#1970) by @jneira
  • Wingman: Ensure homomorphic destruct covers all constructors in the domain (#1968) by @isovector
  • Wingman: Add the correct file offset to metaprogram parse errors (#1967) by @isovector
  • Wingman: Config option to suppress proofstate styling (#1966) by @isovector
  • Wingman: Don't wildify vars when running beginMetaprogram (#1963) by @isovector
  • Wingman: Don't suggest empty case lenses for case exprs with no data cons (#1962) by @isovector
  • Wingman: Don't introduce too many variables (#1961) by @isovector
  • Wingman: Code lens for empty lambda case (#1956) by @isovector
  • Call hierarchy support (#1955) by @July541
  • Bugfix type signature lenses / code actions for pattern synonyms. (#1952) by @peterwicksstringfield
  • Add :info command in Eval plugin (#1948) by @akrmn
  • avoid holding onto the hie bytestring when indexing (#1947) by @pepeiborra
  • Wingman: Make getCurrentDefinitions return polymorphic types (#1945) by @isovector
  • Wingman: Tactical support for deep recursion (#1944) by @isovector
  • Properly scope GADT equality evidence in the judgment (#1942) by @isovector
  • Add ghc-9.0.1 to the build release script (#1940) by @anka-213
  • Cata tactic should generalize let and ensure unifiability (#1938) by @isovector
  • Include chocolatey hls package (#1936) by @jneira
  • Mention ghcup and warning about updating artifacts (#1935) by @jneira
  • Remove ghc-8.8.2 (#1934) by @jneira
  • Workaround for GHC 8.10.5 on macOS (#1931) by @konn
  • Add manual upload instructions (#1930) by @jneira
  • Perform name lookup directly in TacticsM (#1924) by @isovector
  • Include testdata in hls-refine-imports-plugin.cabal (backport #1922) (#1923) by @mergify[bot]
  • Include testdata in hls-refine-imports-plugin.cabal (#1922) by @felixonmars
  • Add pointwise command to the metaprogram parser (#1921) by @isovector
  • Allow symbol identifiers in tactics (#1920) by @isovector
  • Fall back to hiedb for invalid srcspan paths (#1918) by @pepeiborra
  • Disable hole fit suggestions when running Wingman (#1873) by @isovector
  • Wingman: maintain user-defined fixity for definitions (#1697) by @isovector
  • Display package names of external libraries on hover (#1626) by @berberman
  • Make the eval plugin use the same default language extensions as ghci. (#1596) by @fmehta

1.2.0

We have finally released a new version of Haskell Language Server! Thanks for all contributors, many bugs has been fixed, and many features has landed. Here are the summary of changes:

  • Basic support for GHC 9.0.1 is added. It does not support all plugins yet, but core GHCIDE features will work. For the detailed information that which plugins work, please refer this list.
  • Support for GHC 8.10.5 is added. Note that macOS version is unfortunately not included in this release because of a GHC issue with network package.
  • HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie. This fixes a build issue of a stack project with implicit hie.yaml .
  • Wingman plugin has added numerous features and fixed many bugs:
    • It now supports tactic metaprogramming! For list of commands, see this document. https://github.com/haskell/haskell-language-server/blob/master/plugins/hls-tactics-plugin/COMMANDS.md#wingman-metaprogram-command-reference
    • "Refine hole" and "Split all function arguments" code actions are publicly opened.
    • "Empty case split" code lens is added.
    • The name generator is fixed to avoid dangerous summon rituals.
    • Many bugs related to type families and GADTs are fixed.
  • We support nix flake, an upcoming way to manage dependencies in nix.
  • Every plugin (other than example plugins) now lives in its own package.

Pull requests merged for 1.2.0

  • Cleanup stack build output in circleci (#1905) by @jhrcek
  • Remove FeatureSet (#1902) by @isovector
  • Correct a typo in ConfigUtils.hs (#1900) by @felixonmars
  • Add GHC 8.10.5 support (#1899) by @Ailrun
  • Fix getCurrentDirectory calls in ghcide (#1897) by @pepeiborra
  • Wingman: FIx evidence when using GADT constructors (#1889) by @isovector
  • [explicit-imports] Take in a predicate to filter modules (#1888) by @pepeiborra
  • Fix unification pertaining to evidence (#1885) by @isovector
  • Let Wingman peek through type families (#1881) by @isovector
  • Use file watches for all workspace files (#1880) by @pepeiborra
  • Update IRC details in README.md (#1877) by @fendor
  • Fix nix build for #1858 (#1870) by @berberman
  • Wingman metaprogram command documentation (#1867) by @isovector
  • Catamorphism and collapse tactics (#1865) by @isovector
  • Fix condition of nix build job (#1864) by @berberman
  • Technology preview: Keep track of changes to minimize rebuilds (#1862) by @pepeiborra
  • Trace more Shake evaluation details (#1861) by @pepeiborra
  • No need to delete the same key twice (#1860) by @pepeiborra
  • Use cabal-install if nix is failing in CI (#1859) by @berberman
  • Use last apply-refact and several stack.yaml updates (#1858) by @jneira
  • Split ghcide actions into different descriptors (#1857) by @berberman
  • Allow module-local and imported functions in Wingman metaprograms (#1856) by @isovector
  • Update mergify.yml (#1853) by @Ailrun
  • Fix flake compat (#1852) by @berberman
  • Fix record layout (#1851) by @isovector
  • Avoid package-qualified import in Fourmolu plugin (#1848) by @georgefst
  • Skip cachix jobs if token is unset (#1845) by @berberman
  • Refine should either do intros or split, not both (#1842) by @isovector
  • Add hspec upper bound (#1837) by @jneira
  • Extract last 2 plugins and clean up others (#1836) by @Ailrun
  • Extract pragmas plugin (#1833) by @Ailrun
  • Extract floskell plugin as a standalone plugin (#1829) by @Ailrun
  • nix: refactor with flakes (#1827) by @berberman
  • Bump up hls-splice-plugin to 1.0.0.2 (backport #1825) (#1826) by @mergify[bot]
  • Bump up hls-splice-plugin to 1.0.0.2 (#1825) by @jneira
  • Apply formats again (#1824) by @Ailrun
  • Extract fourmolu plugin into a standalone package (#1823) by @gustavoavena
  • Ignore filemode in diff (#1819) by @Ailrun
  • ghc-api cleanups cleanup (#1816) by @pepeiborra
  • Add a hook for modifying the dynflags from a plugin (#1814) by @isovector
  • Prepare ghcide release v1.3.0.0 (#1811) by @pepeiborra
  • Remove hls-ghc-x.y from install script and wrapper (#1805) by @berberman
  • Fix unwanted import refinement (#1801) by @rayshih
  • Canonicalize hiedb path before comparing (#1800) by @pepeiborra
  • Pin nix-pre-commit-hooks (backport #1780) (#1798) by @mergify[bot]
  • Add upper bound to hlint (backport #1795) (#1797) by @mergify[bot]
  • Add bounds for base in hls-stylish-haskell-plugin (backport #1794) (#1796) by @mergify[bot]
  • Add upper bound to hlint (#1795) by @jneira
  • Add bounds for base in hls-stylish-haskell-plugin (#1794) by @berberman
  • Add bounds for base in hls-test-utils (backport #1791) (#1793) by @mergify[bot]
  • Replace faulty signature test (#1792) by @kderme
  • Add bounds for base in hls-test-utils (#1791) by @berberman
  • Fix backport conflict of refine-import plugin (#1790) by @Ailrun
  • Fix progress counting (#1789) by @pepeiborra
  • Loosen dependency bounds (backport #1787) (#1788) by @mergify[bot]
  • Loosen dependency bounds (#1787) by @berberman
  • clean up ghc-api pragmas (#1785) by @pepeiborra
  • Progress reporting improvements (#1784) by @pepeiborra
  • Unify session loading using implicit-hie (#1783) by @fendor
  • Pin nix-pre-commit-hooks (#1780) by @Ailrun
  • Replace the unsafe getmodtime with safe posix calls (#1778) by @pepeiborra
  • Tactic metaprogramming (#1776) by @isovector
  • Fix wrong extend import while type constuctor and data constructor have the same name (#1775) by @July541
  • Add codetriage badge (#1772) by @jneira
  • Wingman: configurable auto search depth (#1771) by @isovector
  • Prevent accidental Cthulhu summons (#1760) by @isovector
  • Delay the Shake session setup until the Initialized handler (#1754) by @pepeiborra
  • Wrap the Shake functions with newtypes (#1753) by @ndmitchell
  • Fix reduction depth (#1751) by @pepeiborra
  • Add hls-graph abstracting over shake (#1748) by @ndmitchell
  • Explicitly import liftIO if you need it, rather than getting it from Shake (#1747) by @ndmitchell
  • Tease apart the custom SYB from ExactPrint (#1746) by @isovector
  • Remove unnecessary Shake dependencies (#1745) by @ndmitchell
  • Delete an unused import (#1744) by @ndmitchell
  • Improve vscode extension schema generation (#1742) by @berberman
  • Fix class method completion (#1741) by @July541
  • Add heralds to Wingman's use of runAction (#1740) by @isovector
  • Wingman: case split on punned record fields (#1739) by @isovector
  • Wingman feature release (#1735) by @isovector
  • Add haskell-language-server Homebrew installation instructions (#1734) by @kret
  • Add a "Split using NamedFieldPuns" code action (#1733) by @isovector
  • Insert pragmas after shebang or to existing pragma list (#1731) by @OliverMadine
  • Add executable stanza in hls-install.cabal. (#1730) by @arrowd
  • Add installation instructions for FreeBSD. (#1729) by @arrowd
  • HLint: Pass options through user config (#1724) by @rmehri01
  • Prepare ghcide 1.2.0.2 and HLS 1.1.0 (#1722) by @berberman
  • Wingman: Destruct on empty case (#1721) by @isovector
  • Fix: #1690 - Infix typed holes are now filled using infix notation (#1708) by @OliverMadine
  • Implement refine imports (#1686) by @rayshih
  • Ghc 9.0.1 support for ghcide (#1649) by @anka-213
  • hie-compat: Add basic support for ghc 9.0.1 (#1635) by @anka-213
  • Fix remove constraint (#1578) by @kderme
  • Limit CodeActions within passed range (#1442) by @aufarg

1.1.0

Haskell Language Server 1.1.0 has finally come! Many thanks to all contributors -- since the last release, we have merged over 100 PRs! As always, there are many internal bug fixes and performance improvements in ghcide. Apart from that,

  • Wingman gets many enhancements, thanks to @isovector for this epic work!
    • Wingman actions can now be bound to editor hotkeys
    • Experimental support for "jump to next unsolved hole"
    • Improved layout algorithm --- don't reflow instances, or break do-blocks
    • Wingman can now deal with GADTs, rank-n types and pattern synonyms
    • Wingman now respects user-written bindings on the left side of the equals sign
    • Significantly more-natural synthesized code when dealing with newtypes, infix operators, records and strings
    • Improved user experience --- less waiting, and friendly errors for when things go wrong
  • hlint plugin not working in some cases gets fixed
  • annoying log message "haskell-lsp:incoming message parse error" gets fixed in lsp-1.2
  • eval plugin now supports it variable, like GHCi
  • verbose message "No cradle found for ... Proceeding with implicit cradle" is GONE
  • type lenses plugin now has its custom config mode (enum) [always] to control its working mode:
    • always: always displays type signature lenses of global bindings
    • exported: similar to always, but only displays for exported global bindings
    • diagnostics: follows diagnostic messages produced by GHC
  • top-level LSP option completionSnippetsOn and maxNumberOfProblems are deprecated
  • completions plugin now has its custom config:
    • autoExtendOn (boolean) [true]: whether to enable auto extending import lists
    • snippetsOn (boolean) [true]: wheter to enable completion snippets, taking the place of completionSnippetsOn
  • Wingman has its custom config:
    • timeout_duration (integer) [2]: the timeout for Wingman actions, in seconds
    • features (string) [""]: feature set used by Wingman (See the README of Wingman)
    • max_use_ctor_actions (integer) [5]: maximum number of Use constructor <x> code actions that can appear
    • hole_severity (enum) [none]: the severity to use when showing hole diagnostics
  • LSP symbols of typeclass and type families are more appropriate
  • test suite of plugins are reorganized, which no longer need to be run with test-server executable
  • two new packages hls-test-utils and hls-stylish-haskell-plugin are extracted

This version uses lsp-1.2.0, hls-plugin-api-1.1.0, and ghcide-1.2.0.2.

Pull requests merged for 1.1.0

  • Restore compat. with haddock-library 1.8 (#1717) by @pepeiborra
  • Don't suggest destruct actions for already-destructed terms (#1715) by @isovector
  • Add keybindings and jump to hole to the Wingman README (#1712) by @isovector
  • Bracketing for snippet completions (#1709) by @OliverMadine
  • Prepare ghcide 1.2.0 (#1707) by @berberman
  • Adjust bounds (#1701) by @berberman
  • Update nix (#1699) by @berberman
  • Wingman: "Destruct all" only on ADTs (#1695) by @isovector
  • Fix ghcide and HLS enter lsp mode by default (#1692) by @berberman
  • Decrease Wingman timeout from 3.3 minutes to 2 seconds (configurable) (#1688) by @isovector
  • Wrap test suite of tactics plugin into tasty test tree (#1676) by @berberman
  • Wingman: Use infix notation for operator applications (#1675) by @isovector
  • Ignore ghcide tests by paths (#1673) by @jneira
  • Ignore nix job steps by path (#1672) by @jneira
  • Intelligent derivations of Semigroup and Monoid for Wingman (#1671) by @isovector
  • optimize ambiguity import suggestions (#1669) by @July541
  • Replace Barrier with MVar in lsp main (#1668) by @berberman
  • ghcide - enable ApplicativeDo everywhere (#1667) by @pepeiborra
  • support custom Ide commands (#1666) by @pepeiborra
  • Add bounds for Diff (#1665) by @berberman
  • Update shake bounds of install script (#1664) by @berberman
  • Avoid creating IsFileOfInterest keys for non workspace files (#1661) by @pepeiborra
  • additional .gitignore entries (#1659) by @pepeiborra
  • Skip tracing unless eventlog is enabled (#1658) by @pepeiborra
  • Fix a wingman bug caused by mismanaged stale data (#1657) by @isovector
  • Fix ignore paths (#1656) by @jneira
  • Shut the Shake session on exit, instead of restarting it (#1655) by @pepeiborra
  • Emit holes as diagnostics (#1653) by @isovector
  • log exceptions before killing the server (#1651) by @pepeiborra
  • Do not override custom commands (#1650) by @pepeiborra
  • Fix importing type operators (#1644) by @berberman
  • Add haskell-language-server-bin to Arch Linux section (#1642) by @marcin-rzeznicki
  • Update ISSUE_TEMPLATE.md (#1640) by @Ailrun
  • Civilized indexing progress reporting (#1633) by @pepeiborra
  • Update to lsp-1.2 (#1631) by @wz1000
  • Avoid reordering plugins (#1629) by @pepeiborra
  • Run plugins' test suites with server in the same process (#1628) by @berberman
  • Remove ignored paths (#1623) by @jneira
  • Update formatting hooks to not include Wingman (#1622) by @Ailrun
  • Add CPP Options for Stylish Haskell & Brittany Formatters (#1620) by @prikhi
  • Use custom config for completions plugin (#1619) by @berberman
  • Configurable I/O handles (#1617) by @pepeiborra
  • Add installation instructions for Arch Linux (#1616) by @berberman
  • Properly pass argFiles into defaultMain (#1613) by @mpickering
  • Migrate tests of plugins (#1612) by @berberman
  • Allow for customizable Haskell views of Property types (#1608) by @isovector
  • Extract hls-test-utils (#1606) by @berberman
  • Add test data files to extra-source-files (#1605) by @jneira
  • Extract stylish-haskell plugin into a standalone package (#1604) by @berberman
  • Eval plugin: evaluate expressions as statements (#1603) by @berberman
  • Bump haddock-library to 1.10.0 (#1598) by @berberman
  • Relax ghcides upper bound on base16-bytestring (#1595) by @maralorn
  • Use CiInterface/SkInterface for typeclass symbols (#1592) by @fwcd
  • Avoid duplicating known targets and import paths (#1590) by @pepeiborra
  • Add ability for plugins to handle file change notifications (#1588) by @pepeiborra
  • Ensure eval plugin Print class doesn't rely on Prelude being in scope (#1587) by @akrmn
  • Give a canonical ordering for destructing terms in Wingman (#1586) by @isovector
  • Try a homomorphic destruct before a standard destruct (#1582) by @isovector
  • Update homepage and other urls for ghcide (#1580) by @felixonmars
  • Regularize custom config of plugins (#1576) by @berberman
  • Cleanup the TacticProviders interface (#1572) by @isovector
  • Add custom code action kinds for import related code actions (#1570) by @berberman
  • bump retrie plugin version (#1569) by @pepeiborra
  • Use ConLikes instead of DataCons (#1568) by @isovector
  • Remove max number of problems config option (#1567) by @jneira
  • Prepare ghcide 1.1.0 (#1566) by @pepeiborra
  • Use string literals to synthesize the empty string (#1564) by @isovector
  • Add wingman branding to code actions (#1555) by @isovector
  • Use TextEdit to insert new imports (#1554) by @berberman
  • Introduce strict versions of modifyVar to improve contention (#1553) by @pepeiborra
  • Improve how wingman uses evidence (#1549) by @isovector
  • Review early cutoff fingerprints (#1547) by @pepeiborra
  • Improve thread contention around diagnostics (#1546) by @pepeiborra
  • Be much more intelligent about splitting matches (#1543) by @isovector
  • Update nixpkgs to ghc 8.10.4 (#1538) by @berberman
  • Log a warning for every diagnostic received when doDiagnostics=False (#1537) by @pepeiborra
  • Fix missing parens of auto extending imports (#1526) by @berberman
  • Change Wingman module structure, address -Wall (#1519) by @isovector
  • Pull Wingman's method hypotheses directly from in-scope dicts (#1517) by @isovector
  • Avoid redundant work in diagnostics pass (#1514) by @pepeiborra
  • Add an option to control progress reporting (#1513) by @pepeiborra
  • Package ghcide code actions (#1512) by @berberman
  • Demote implicit cradle warn to logging (#1511) by @jneira
  • Set all plugin flags to manual (#1510) by @jneira
  • Avoid always rerunning GetModificationTime for interface files too (#1506) by @pepeiborra
  • Let Wingman's apply tactic run endomorphisms (#1505) by @isovector
  • Make Wingman produce user-facing error messages (#1502) by @isovector
  • Disable HLS benchmarks (#1501) by @wz1000
  • Add kind and preferred flag for all Wingman code actions (#1499) by @isovector
  • Organize Wingman tests (#1498) by @isovector
  • Register IDE configuration when called via the command line (#1495) by @wz1000
  • Haddock upper bound (#1492) by @jneira
  • Make type lenses plugin configurable (#1491) by @berberman
  • Context-aware ExactPrint grafting for HsExpr (#1489) by @isovector
  • Drive GetModificationTime using watched file events (#1487) by @pepeiborra
  • Faster ModSummary fingerprints (#1485) by @pepeiborra
  • Revert all changes to hie-compat since 11b5c2e (#1484) by @wz1000
  • Fix non-determinism in boot-def test (#1483) by @wz1000
  • Hackage needs autogen-modules (#1481) by @jneira
  • Ignore ci for some subdirectories and files (#1480) by @jneira
  • Split plugin tests into two cabal projects (#1479) by @wz1000
  • Less aggressive refine tactic (#1475) by @isovector
  • Enable hls-tactics-plugin tests in CI (#1474) by @isovector
  • Generate a more robust top-level binding Provenance (#1473) by @isovector
  • Add new variables to the extract when doing intros (#1472) by @isovector
  • Bump up hlint plugin version (#1469) by @jneira
  • Make sure split respects GADT equalities (#1466) by @isovector
  • Add "Split all function arguments" code action (#1464) by @isovector
  • Add "Refine hole" code action (#1463) by @isovector
  • Implement "use constructor" code action (#1461) by @isovector
  • Remove tactics src-dir from func-test (#1460) by @isovector
  • Make sure to give the correct DynFlags to the recompilation checker (#1459) by @pepeiborra
  • Don't use record notation for single-field datacons in tactics (#1456) by @isovector
  • update IRC channel name in plugin tutorial (#1455) by @shapr
  • Update readme and cabal for Wingman (#1454) by @isovector
  • Remove recursion tracking from TacticState (#1453) by @isovector
  • Use runtime ghc libdir for ghc-exactprint and ghc-8.10 (#1451) by @jneira
  • Simplify tactics state structure (#1449) by @isovector
  • Extract the qualified name from already imported module (#1445) by @berberman
  • Correct megaparsec lower bound (#1441) by @jneira
  • Reformat all files (#1439) by @Ailrun
  • Customize the unitId used for the fake internal component (#1435) by @pepeiborra
  • Minor performance optimizations (#1432) by @pepeiborra

1.0.0

This is the celebratory release of Haskell Language Server 1.0.0! This release includes a lot of internal changes, bug fixes, leaks plugged, and performance improvements, thanks to all our contributors. Among others,

  • We added the support for GHC 8.10.4, and removed the support for GHC 8.10.1 Afterward, we will support upmost 3 patch versions for each minor version of GHC, if no special situation happens.
  • As by hie-bios >= 0.7.3, we use (${XDG_CACHE_HOME})[https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html]/hie-bios/... (or similar depends on OS) as a build directory for Cabal.
  • Now Eval plugin uses the parsing mechanism of GHC and becomes more stable.
  • We supports a code action to disambiguate the same identifiers from multiple imports. gif
  • We supports a code action to hide shadowed identifiers from import. gif
  • HIE DB is now integrated. This means we now support find-references, workspace-symbol. find-definition is also improved in a project with multiple components.
  • Brittany and Stylish-haskell plugins now load language extensions from the ghc session.
  • Tactic plugin supports eta-reduction and Agda-like split tactic and can create a function with piecewise definitions. gif

Pull requests merged for 1.0.0

  • Correctly split non-varpats in tactics (#1427) by @isovector
  • Move tactics tests to be standalone (#1425) by @isovector
  • Fix the handling of default HLS config again (#1419) by @pepeiborra
  • Patch pre-commit-hook to work with GHCIDE/hls-plugin-api codes (#1418) by @Ailrun
  • Refactor pragmas plugin (#1417) by @berberman
  • Add a test for #1376 (#1414) by @pepeiborra
  • Reenable HLS example benchmark (#1412) by @pepeiborra
  • Fix pre-commit-hook (#1411) by @Ailrun
  • Plugin Config: Add maxCompletions to JSON instance (#1407) by @andys8
  • Remove custom 'trim' implementation (#1406) by @fendor
  • Update to hie-bios 0.7.4 (#1405) by @fendor
  • Prepare 1.0.0 release (#1402) by @Ailrun
  • Fix install script after hlint fixes (#1400) by @jhrcek
  • Use last with-utf8 to fix #1372 (#1399) by @jneira
  • Implement Tactic Featuresets (#1398) by @isovector
  • Update hie-bios (#1397) by @Ailrun
  • Bump plugins versions (#1392) by @pepeiborra
  • Split main Tactics module (#1391) by @isovector
  • Prepare ghcide release 0.7.5 (#1389) by @pepeiborra
  • Disable HLS benchmark example (#1388) by @pepeiborra
  • Fix GenChangelog script format (#1387) by @Ailrun
  • Tone down some logInfos to logDebug (#1385) by @pepeiborra
  • Add a pre commit hook for code formatting (#1384) by @Ailrun
  • remove unsafePerformIO (#1383) by @pepeiborra
  • Use object code for TH+UnboxedTuples/Sums (#1382) by @wz1000
  • Update stack resolvers 8.10.3/8.10.4 (#1380) by @jneira
  • Agda-style case splitting for tactics (#1379) by @isovector
  • Configuration for initial ghc lib dir (#1378) by @pepeiborra
  • Use lsp-1.1.1 (#1377) by @wz1000
  • use implicit-hie cradle from setInitialDynFlags (#1375) by @wz1000
  • Add test for multi-component goto def and make runLanguageServer responsible for hiedb (#1373) by @wz1000
  • Show window message when auto extending import lists (#1371) by @berberman
  • Another extension that Brittany cannot parse (#1369) by @pepeiborra
  • Clean dependency data structures and speed up GetDependencies (#1368) by @pepeiborra
  • Catch GHC errors in listing module names (#1367) by @berberman
  • Lose the ghc-lib flag (#1366) by @pepeiborra
  • Make StylishHaskell plugin recognize extensions from DynFlags (#1364) by @Ailrun
  • Pass language extensions to Brittany (#1362) by @pepeiborra
  • Sanitize the setup of the default Ide.Config (#1361) by @pepeiborra
  • Fix completion snippets on DuplicateRecordFields (#1360) by @berberman
  • Index files on first open (#1358) by @wz1000
  • Make find-definition work better with multi-components (#1357) by @wz1000
  • Construct record datacons in tactics (#1356) by @isovector
  • Don't insert parentheses for top-level tactics holes (#1352) by @isovector
  • Simplify extracts after running tactics (#1351) by @isovector
  • Fix code actions regression (#1349) by @pepeiborra
  • Refactor the hypothesis type in hls-tactics-plugin (#1347) by @isovector
  • Fix the Eval plugin sporadic exceptions (#1345) by @pepeiborra
  • Eval Plugin: Proper handling of flags in :set (#1343) by @konn
  • Cancel earlier queued benchmarks (#1339) by @pepeiborra
  • Default main for ghcide (#1338) by @pepeiborra
  • Fix duplication of code actions for adding NamedFieldPuns (#1334) by @berberman
  • Bump explicit-imports plugin (#1333) by @pepeiborra
  • Add support for ghc-8.10.4 and drop it for ghc-8.10.1 (#1331) by @jneira
  • Prepare ghcide v0.7.4 release (#1328) by @pepeiborra
  • Add a new benchmark example to characterise multi-component performance (#1326) by @pepeiborra
  • [shake-bench] extract project dependencies action (for the HEAD binary) (#1325) by @pepeiborra
  • [shake-bench] collect eventlogs (#1324) by @pepeiborra
  • [benchmark] add warmups (#1323) by @pepeiborra
  • Add code action for hiding shadowed identifiers from imports (#1322) by @berberman
  • Parallelize benchmark CI (#1320) by @pepeiborra
  • Fix space leak on cradle reloads (#1316) by @pepeiborra
  • [benchmarks] speed up CI (#1315) by @pepeiborra
  • [benchmark] check digests for input files only (#1314) by @pepeiborra
  • Add link to hackage package to readme (#1313) by @expipiplus1
  • Splice Plugin: preparatory version bump for the next (not 0.9.0) HLS release (#1312) by @konn
  • hls-splice-plugin-0.3.0.0-prepare (#1311) by @konn
  • Trigger extending import only when the item is not in scope (#1309) by @berberman
  • Bum up hls-eval-plugin to 0.2 (#1305) by @jneira
  • Don't extend import list with child if the parent has been imported as (..) (#1302) by @berberman
  • Prepare hls hlint plugin 0.2.0 (#1296) by @jneira
  • Import disambiguation: Corrects handling of fully-applied and one-sided sectioned operators in qualifying strategy (#1294) by @konn
  • hls-splice-plugin-0.2.0.0 (#1293) by @konn
  • Bump haddock comments plugin to 0.1.1 (#1292) by @berberman
  • FindImports typo (minor) (#1291) by @andys8
  • Bump up hls-plugin-api to 0.7.0 (#1290) by @jneira
  • Prepare ghcide v0.7.3 release (#1289) by @pepeiborra
  • hls-retrie-plugin 0.1.1.0 (#1288) by @pepeiborra
  • Upgrade to lsp-1.0 (#1284) by @wz1000
  • Update IRC Name in README (#1275) by @fendor
  • Restore code actions order (#1273) by @pepeiborra
  • Prepare 0.9.0 (#1271) by @jneira
  • Reenable auto extend imports and drop snippets for infix completions (#1266) by @pepeiborra
  • ghcide: Implements a CodeAction to disambiguate ambiguous symbols (#1264) by @konn
  • Doctest comment parsing using module annotations in Eval Plugin (#1232) by @konn
  • Apply some hlint suggestions, silence some others. (#1227) by @peterwicksstringfield
  • References via hiedb (#704) by @wz1000
  • Use default config on missing configuration section (#459) by @aufarg

0.9.0

This release includes lot of refactorings and bug fixes over existing features, hlint and eval plugins among others. It contains a fix for a bug in ghcide involving stale diagnostics (#1204).

The list of contributors continues to show healthy growth, many thanks to you all!

And remember, we have a new brand logo, courtesy of @Ailrun 🙂

haskell-language-server

Pull requests merged for 0.9.0

  • Do not error out on failed rewrite (#1269) by @pepeiborra
  • Tighten dependency on apply-refact (#1268) by @hololeap
  • Add the new logos (#1267) by @Ailrun
  • Fix a bug in completions (#1265) by @pepeiborra
  • Produce heap profiles the old fashioned way, from .hp files (#1261) by @pepeiborra
  • Break down ghcide functionality in HLS plugins (#1257) by @pepeiborra
  • Enforce max completions over all plugins (#1256) by @pepeiborra
  • Reorder code actions to put remove redundant imports first (#1255) by @pepeiborra
  • Update bench.yml to include all the relevant artifacts (#1254) by @pepeiborra
  • Benchmarks: generate heap profiles (#1253) by @pepeiborra
  • Add gh workflows badges (#1251) by @jneira
  • Add dynamic linking common issue (#1249) by @jneira
  • Add license for hls-tactics-plugin (#1248) by @isovector
  • Use exact print to extend import lists (#1246) by @berberman
  • Test apply-refact with TypeApplications (#1244) by @jneira
  • Add non reversable pragma completion (#1243) by @Ailrun
  • Delete redundant "category: Development". (#1241) by @peterwicksstringfield
  • Complete the No- variants of language extensions and Strict extension (#1238) by @mrBliss
  • Add code actions for disabling a warning in the current file (#1235) by @georgefst
  • Change packages metadata and rename tactics subfolder (#1234) by @jneira
  • Fix the bug that generating comments would duplicate existing comments (#1233) by @berberman
  • Delete global hie.yaml config (#1230) by @jneira
  • Easy hlint fixes (#1226) by @peterwicksstringfield
  • Use the runtime ghc libdir for ghc-exactprint (#1225) by @jneira
  • Add note in README/Tutorial regarding CPP support (#1224) by @tittoassini
  • Test and fix for issue 1213 (#1223) by @tittoassini
  • Add traces for HLS providers (#1222) by @pepeiborra
  • Use exact print for suggest missing constraint code actions (#1221) by @pepeiborra
  • Fix changelog dates (#1220) by @pepeiborra
  • Ignore .shake folder (#1219) by @pepeiborra
  • Limit completions to top 40 (#1218) by @pepeiborra
  • Parenthesise type operators when extending import lists (#1212) by @mrBliss
  • Expose shake options used (#1209) by @pepeiborra
  • Prepare ghcide release v0.7.1 (#1207) by @pepeiborra
  • Documentation for the Eval Plugin (#1206) by @tittoassini
  • Stale diagnostics fix (#1204) by @pepeiborra
  • Extract Development.IDE.GHC.ExactPrint (#1203) by @pepeiborra
  • Fix bug in Retrie "fold/unfold in local file" commands (#1202) by @pepeiborra
  • Minor eval plugin fixes (#1199) by @tittoassini
  • Disable win 8.6.4 job (#1198) by @jneira
  • Add custom cache layer for session loading (#1197) by @fendor
  • Use completionSnippetsOn flag (#1195) by @takoeight0821
  • Remove runs dropped by #1173 (#1194) by @jneira
  • Remove undefined exports suggestions (#1193) by @kderme
  • Update nixpkgs to ghc 8.10.3 (#1191) by @pepeiborra
  • Do not disable parallel GC (#1190) by @pepeiborra
  • Switch module outline to useWtihStale (#1189) by @pepeiborra
  • Fix sticky diagnostics (#1188) by @pepeiborra
  • Fix class plugin cabal (#1186) by @Ailrun
  • Update package description of haddock comments plugin (#1185) by @berberman
  • Installation from Hackage - add README section (#1183) by @pepeiborra
  • Preparation for Uploading Splice Plugin to Hackage (#1182) by @konn
  • Preparation for uploading hls-exactprint-utils (#1181) by @konn
  • Complete hls-hlint-plugin package metadata (#1180) by @jneira
  • Benchmark improvements (#1178) by @pepeiborra
  • Make adding missing constraint work in presence of 'forall' (fixes #1164) (#1177) by @jhrcek
  • Prepare for Hackage (#1176) by @pepeiborra
  • Test only last ghc minor version and fix windows cache (#1173) by @jneira
  • Fix toMethodName bug of the Class plugin (#1170) by @Ailrun
  • Quick fix for #1158 (#1166) by @Ailrun
  • Suggest adding pragmas for parse errors too (#1165) by @mrBliss
  • Fix wrong component name of splice plugin in hie.yaml (#1162) by @berberman
  • Revert "Auto cancel redundant workflows (attempt #2)" (#1156) by @pepeiborra
  • Auto cancel redundant workflows (attempt #2) (#1154) by @pepeiborra
  • Prepare 0.8.0 (versions) (#1153) by @jneira
  • Streamline CircleCI jobs (#1152) by @pepeiborra
  • Mergify: create configuration (#1151) by @jneira
  • Bump haskell-lsp to 0.23 (#1146) by @berberman
  • Remove no longer needed git submodule update (#1145) by @jhrcek
  • Enable more tests (#1143) by @peterwicksstringfield
  • Update links to issues/PRs in ghcide tests. (#1142) by @peterwicksstringfield
  • Fix #723 (Instance declarations in hs-boot files result in GHC errors) (#781) by @nitros12
  • Also suggest importing methods without parent class (#766) by @mrBliss
  • Delete unused utilities for controlling logging. (#764) by @peterwicksstringfield
  • Delete unused testdata (#763) by @peterwicksstringfield
  • Fix suggestAddTypeAnnotation regex (#760) by @kderme
  • Splice Plugin: expands TH splices and QuasiQuotes (#759) by @konn
  • Haddock comments plugin (#673) by @berberman
  • Leverage last apply-refact improvements in hlint plugin (include getParsedModuleWithComments in ghcide) (#635) by @jneira

0.8.0

  • This version adds support for ghc-8.10.3
  • hls-plugin-api has been bumped to 0.6.0.0 and ghcide has been bumped from 0.6.0.1 to 0.7.0.0.
  • It has a new brand plugin: hls-class-plugin, which helps to write class instances

gif

  • The eval plugin has been revamped, adding these new features:
    • Tests in both plain comments and Haddock comments
    • For Haddock comments: shows differences between latest and previous result
    • Setup section, executed before every test
    • Execution of a section/group of tests at the time
    • Property testing
    • Setup of GHC extensions
  • A new tactic to generate automatically Arbitrary instances has been added to tactic plugin
  • There had been lot of internal changes:
    • ghcide lives now directly in this repository
    • the test suite has been cleaned and improved (continuing the work done in 0.7.0)

Thanks to all contributors and happy new year!

Pull requests merged for 0.8.0

  • Ci fixes (#783) by @pepeiborra
  • Fix extend imports regression (#769) by @pepeiborra
  • Cleanup format testfiles (#765) by @peterwicksstringfield
  • Retry a failed cradle if the cradle descriptor changes (#762) by @pepeiborra
  • Perform memory measurement on SIGUSR1 (#761) by @pepeiborra
  • Add ghc-8.10.3 support after merging ghcide repo (#721) by @jneira
  • Merge ghcide repository (replacing the submodule) (#702) by @pepeiborra
  • Invert the dependency between hls-plugin-api and ghcide (#701) by @pepeiborra
  • Move eval plugin to hls-eval-plugin (#700) by @tittoassini
  • Fix and enable progress message tests. (#698) by @peterwicksstringfield
  • Add a known tactic for writing arbitrary instances (#695) by @isovector
  • Introduce generic config for plugins (#691) by @alanz
  • Enable get type definition tests (#690) by @peterwicksstringfield
  • Fix ghc version for windows 8.10.2.2 in github build workflow (#688) by @jneira
  • Add plugins conditionally at compile time (#687) by @jneira
  • Implement basic Class plugin (#661) by @Ailrun
  • Extended Eval Plugin (#438) by @tittoassini

0.7.1

  • This is a minor bug fix release:
    • It fixes an issue that removed accidentally desugarer warnings (#676).
    • It disables auto extend import lists in completions, see #679.

Pull requests merged for 0.7.1

  • Disable auto extend import lists in completions. It fixes #679. (#685) by @pepeiborra
  • Restore kick (#676). It fixes #676. (#677) by @wz1000
  • README: Remove instructions to execute data target (#675) by @andys8
  • Add hlint tests over cpp, extensions and ignore hints (#674) by @jneira

0.7.0

  • This version contains mainly refactors and updates of upstream packages
  • It bumps up some formatter versions:
    • ormolu is 0.1.4.1
    • fourmolu is 0.3.0.0
    • brittany is 0.13.1.0
  • It uses last implicit-hie-cradle-0.3.0.2, with some bug fixes
  • It uses last ghcide-0.6.0.1 with improvements and bug fixes:
    • Do not enable every "unnecessary" warning by default
    • Improvements over completions:
      • record fields
      • identifiers not in explicit import lists
      • extend explicit import list automatically

Thanks to all haskell-language-server, ghcide and other upstream packages contributors (the list continue growing healthy) for make this release possible.

Pull requests merged for 0.7.0

  • Miscellanous fixes: correct tactic plugin package metadata and cabal.hie.yaml/stack.hie.yaml (#672) by @berberman
  • Remove unnecessary pluginId setting and user Better Map functions in tactics plugin (#669) by @jhrcek
  • Do not suggest explicitly disabled pragmas (#666) by @berberman
  • fixed hie.yaml.stack (#664) by @tittoassini
  • Add pragmas completions (#662) by @gdevanla
  • Enable code completion tests (#657) by @peterwicksstringfield
  • Enable highlight unittests (#656) by @peterwicksstringfield
  • Fix document symbols unit tests. (#655) by @peterwicksstringfield
  • Delete duplicate cabal clause for applyrefact2 (#654) by @peterwicksstringfield
  • Add extra-source-files for split plugins (#650) by @berberman
  • [nix-shell] Actually use gitignore (#649) by @pepeiborra
  • idempotent command and code cleanup (#648) by @tittoassini
  • Split the Imports and Retrie plugins (#647) by @pepeiborra
  • Simplify and Bump implicit-hie version constraints (#645) by @Avi-D-coder
  • Fix and enable disabled code action unit tests, fix fallback handler (#643) by @peterwicksstringfield
  • Add Ghcide hie.yaml instruction for Stack users (#641) by @Sir4ur0n
  • Upgrade the Nix build system (#639) by @pepeiborra
  • No longer needed to build once for Stack (#637) by @Sir4ur0n
  • Preserve the last empty comment line after eval plugin (#631) by @expipiplus1
  • Update fourmolu to 0.3.0.0 (#624) by @gwils
  • Add hspec-discover to build-tool-depends in tactics plugin (#623) by @gwils
  • Add build to ghc-8.10.2 and windows (#619) by @jneira
  • Module Name Plugin: Treat modules starting with lowercase as Main module (#616) by @konn
  • Bump ormolu to 0.1.4.1 (#614) by @AlistairB
  • Fix fourmolu plugin inconsistent formatting (#599) by @zweimach
  • Hlint: bring over idea2Message for formatting (#598) by @alanz
  • Makes dictionary argument exclusion logic in Tactic plugin more robust (#508) by @konn

0.6.0

0.6.0 includes two brand new plugins!

  • Hlint Plugin: it integrates hlint diagnostics and lets you apply suggestions to fix them.

hls-hlint-demo

  • Module Name Plugin: it makes easier create new modules and modify them, suggesting the appropiate module name as a code lens.

module-name-demo

This release also includes many improvements and bug fixes for the tactic plugin (see pull requests authored by @isovector for more details).

We have updated two essential tools used by the ide:

  • implicit-hie: to fix a bug present when loading cabal based projects with executables containing other-modules

  • ghcide: the ide uses the just released version 0.5 with many bug fixes and improvements, including:

    • code action to remove all redundant imports
    • improved support for Template Haskell
    • emit desugarer warnings

Pull requests merged for 0.6.0

  • Fix tasty rerun (#570) by @jneira
  • Bump up ghcide submodule to version 0.5.0 (#568) by @jneira
  • Refactor tactics to track hypothesis provenance (#557) by @isovector
  • Use bash shell to allow its idioms (#552) by @jneira
  • Ignore flakey tactics test (#546) by @isovector
  • Better scoring metric for deriving safeHead (#545) by @isovector
  • Discover skolems in the hypothesis, not just goal (#542) by @isovector
  • [retrie] Fix code action title (#538) by @pepeiborra
  • Tactics support for using given constraints (#534) by @isovector
  • Add missing tactic subpackage in default stack.yaml (#529) by @jneira
  • Use implicit-hie-0.1.2.0 (#528) by @jneira
  • Wait for diagnostics in tactics tests (#525) by @isovector
  • Fix a bug in tactics preventing split of split (#520) by @isovector
  • Use infix notation for destructing and splitting infix data cons (#519) by @isovector
  • Retry the build three times (#518) by @jneira
  • Separate tactics into its own package (#516) by @isovector
  • Add a Troubleshooting section to the README (#507) by @michaelpj
  • Add GitHub Actions CI for testing (#504) by @bubba
  • Fix stack build for ghc-8.8.3 failing on some machines (#503) by @luntain
  • Expand explanation of how to configure HLS (#497) by @michaelpj
  • Module Name Plugin (#480) by @tittoassini
  • Allow hole filling to deal with recursion (#472) by @isovector
  • Restrict editor config to Haskell file, to avoid affecting Makefiles or other tab-based formats (#442) by @tittoassini
  • Hlint plugin using ghc-lib (#166) by @jneira

0.5.1

0.5.1 is a minor bug fix release, mainly fixing an issue with the eval plugin as well as upgrading the ormolu and stylish-haskell dependencies.

Pull requests merged for 0.5.1

  • Minimal fix for eval regression (#488) by @pepeiborra
  • Bump stylish-haskell to 0.12.2.0 (#482) by @maksbotan
  • Improve the emacs instructions a little (#479) by @michaelpj
  • Update README: HLS is no longer in very early stage (#475) by @Anrock
  • Tactic plugin: Excludes Dictionary arguments in GADTs in Destruct Tactic (#474) by @konn
  • Update doom emacs install instructions in README (#470) by @iyefrat
  • Add ghc-8.10.2 to circleci (#464) by @jneira
  • Bump ormolu to 0.1.3.0 (#422) by @AlistairB

0.5.0

0.5.0 comes with a new tactics plugin which provides case splitting, homomorphic case splitting, and lambda introduction:

Case splitting

It can even attempt to fully fill a hole!

Attempt to fill in hole code action

The imports lens plugin also learnt a new code action to make all imports explicit:

Explicit imports code action

There's also plenty of bug fixes, improvements and updates to the underlying tools, including Fourmolu, implicit-hie-cradle and ghcide. Some of the improvements from ghcide include:

  • The entire project is typechecked on load
  • Reverse dependencies of a module are typechecked upon saving
  • Code completion includes local terms
  • Import code actions now also suggest open imports
  • Documentation on hover shows for symbols defined in the same module

If you're eager to try all this out, haskell-language-server is now also installable via ghcup:

> ghcup install hls

Pull requests merged for 0.5.0

  • Update GHC version 8.12 to 9.0 in README (#460) by @maralorn
  • Update Fourmolu to 0.2 (#455) by @georgefst
  • Generate .gz tars of all the binaries for macOS and Linux in GitHub Actions (#454) by @bubba
  • install: create hls hardlinks instead of copies except on Windows (#451) by @juhp
  • wrapper: cd to --cwd earlier (#448) by @ocharles
  • Update README.md (#446) by @moodmosaic
  • Upate Emacs setup notes (#440) by @gdevanla
  • Use ghcide master and prepare hls-plugin-api-0.4.1.0 (#439) by @jneira
  • Add a code action to make all imports explicit (#436) by @pepeiborra
  • Add docs on how to choose a formatter (#432) by @googleson78
  • Implement 'Attempt to fill hole' code action (#431) by @TOTBWF
  • Clarify that eval is a lens (#428) by @Anrock
  • Use implicit-hie-cradle-0.2.0.1 (#427) by @jneira
  • [retrie] Fix uris in workspace edit (#424) by @pepeiborra
  • Separate paragraphs (#423) by @jneira
  • Include .editorconfig in the contributing section (#420) by @jneira
  • Mention the copy of executables wit ghc version (#419) by @jneira
  • Eval plugin: proper multilined results handling and command-name abbreviations (#413) by @konn
  • Retrie - calculate imports in the command handler (#408) by @pepeiborra
  • Progress reporting for Eval plugin (#398) by @pepeiborra
  • bump ghcide submodule (#396) by @wz1000
  • Fix cradles (#393) by @pepeiborra
  • Case splitting and lambda introduction (#391) by @isovector
  • Use stale data in explicit imports lens (#383) by @pepeiborra
  • Create hls-plugin-api and move plugins to exe (#379) by @jneira
  • Rebase on ghcide HEAD (#378) by @pepeiborra
  • README clarify how exactly to use code evaluation (#377) by @DunetsNM
  • Revise README.md (#374) by @gihyeonsung

0.4.0

0.4.0 introduces the import lens plugin, which can convert your import statements into qualified imports, or into an explicit import list:

Imports code lens

The eval plugin has also learnt two new commands, :type and :kind:

{-# LANGUAGE TypeApplications #-}
foo :: Show a => a -> String
foo = show

-- >>> :type foo @Int
-- foo @Int :: Int -> String

-- >>> :type +v foo @Int
-- foo @Int :: Show Int => Int -> String
-- >>> type N = 1
-- >>> type M = 40
-- >>> :kind N + M + 1
-- N + M + 1 :: Nat

-- >>> type N = 1
-- >>> type M = 40
-- >>> :kind N + M + 1
-- N + M + 1 :: Nat

There is now also support for GHC 8.10.2, and a new haskell-language-server --probe-tools command to help debug what version of each tool HLS is using.

$ haskell-language-server --probe-tools
haskell-language-server version: 0.3.0.0 (GHC: 8.10.1) (PATH: /Users/luke/.cabal/store/ghc-8.10.1/hskll-lngg-srvr-0.3.0.0-7c6d48c3/bin/haskell-language-server)
Tool versions found on the $PATH
cabal:  3.2.0.0
stack:  2.3.3
ghc:    8.10.2

Pull requests merged for 0.4.0

  • Bring over a tutorial about how to add hls plugins (#372) by @bubba
  • Update the ghcide upstream to be in haskell/ghcide (#370) by @alanz
  • Add ISSUE_TEMPLATE for github (#305) by @fendor
  • Add use-package to the list of emacs packages (#343) by @rgleichman
  • Implements :type [+v/+d] in Eval Plugin (#361) by @konn
  • Bump bounds of hie-bios to 0.7.0 (#357) by @maralorn
  • Fix ImportLens plugin to work with GHC 8.10 (#356) by @Ailrun
  • Add single file rewrites and ignore unknown files (#321) by @pepeiborra
  • Do not suggest explicit import lists for qualified imports (#354) by @expipiplus1
  • Explicit imports lens (as seen on Twitter) (#310) by @pepeiborra
  • Adds :kind and :kind! commands to Eval Plugin (#345) by @konn
  • tech(nix): update niv and remove allowbroken (#350) by @willbush
  • Update VS Code Haskell URL/repo (#338) by @Sir4ur0n
  • doc(hack): Add explanation to hack and test HLS (#329) by @Sir4ur0n
  • Apply the module pragmas for evaluation (#322) by @pepeiborra
  • Copy working stack-8.6.5.yaml to stack.yaml (#332) by @jneira
  • tech(nix): Allow broken as retrie is marked as broken (#331) by @Sir4ur0n
  • feat(git): Add install/hie.yaml to gitignore (#328) by @Sir4ur0n
  • Replace wrong occurrences of "engine" by "server" (#319) by @tchoutri
  • Simplify coc.nvim instructions (#315) by @oblitum
  • Coc config file requires a {} nesting everything (#317) by @hyiltiz
  • Restrict opentelemetry version for stack builds (#312) by @jneira
  • Add support for ghc-8.10.2 (#308) by @jneira
  • Return nothing if tool is not on the PATH (#309) by @fendor
  • Probe tools cli (#306) by @fendor
  • Add fourmolu plugin (attempt 2) and add Brittany for ghc-8.10.1 (#264) by @georgefst

0.3.0

0.3.0 comes with two new plugins, retrie and fourmolu, provides binaries for GHC 8.8.4, and comes with a host of bug fixes.

The retrie plugin supports RULES, functions and type synonyms which can be accessed through contextual code actions.

Fourmolu can be used to format your code by setting the haskell.formattingProvider field in your LSP configuration to

{
  "haskell": {
    "formattingProvider": "fourmolu"
  }
}

The Brittany formatter is now also available on GHC 8.10.1.

Pull requests merged

  • Fix haddock parse error in install.hs (#255) by @georgefst
  • Ormolu flags (#246) by @pepeiborra
  • Ormolu fix (#257) by @sureyeaah
  • Remove redundant CircleCI steps (#259) by @bubba
  • Slow down Tasty by limiting it to -j1 (#261) by @bubba
  • Remove hspec-expectations (#260) by @bubba
  • Remove a redundant caching step (#262) by @Ailrun
  • add hie.yaml to coc configuration (#267) by @sureyeaah
  • Initial Retrie plugin (#266) by @pepeiborra
  • Add exe extension to win executables (#284) by @jneira
  • Use wz1000/hls-3 ghcide branch (#275) by @alanz
  • Fix rename capability being declared (#285) by @bubba
  • Add CI job for 8.8.4 (#287) by @bubba
  • Make the AGPL flag manual in cabal (#250) by @fendor
  • Bring in doc URL fix for Windows (#289) by @bubba
  • Bring in fix for libm on Linux static binaries (#293) by @bubba
  • Add fourmolu plugin (attempt 2) and add Brittany for ghc-8.10.1 (#264) by @georgefst
  • Trying new hls-3 branch (#300) by @alanz

0.2.2

This changes the configuration section from "languageServerHaskell" to "haskell" to align it with vscode-haskell-1.0.0. Whilst the old section is still supported for now, you should update your LSP configuration (which varies per client) from

{
  "languageServerHaskell": {
    "formattingProvider": "stylish-haskell"
  }
}

to

{
  "haskell": {
    "formattingProvider": "stylish-haskell"
  }
}

Pull requests merged for 0.2.2

  • Mention docs on hover feature in README (#209) by @georgefst
  • Add static binaries for ghc-8.8.4 (#224) by @bubba
  • Rename the configuration section from languageServerHaskell => haskell (#227) by @bubba
  • Use -haddock for cabal and stack (#214) by @jneira
  • slightly better shell.nix for local development (#235) by @pepeiborra
  • Shell nix further steps (#240) by @pepeiborra
  • Add numeric-version option for wrapper and server (#241) by @fendor
  • Accept the legacy "languageServerHaskell" config name (#243) by @bubba
  • Fix for Eval plugin: Error from tests not reported (#244) by @tittoassini
  • Rename binaries before uploading (#248) by @bubba

0.2.1

This release includes a new eval plugin that allows Haddock code examples to be evaluated through a code lens. For example, the code below will now offer to evaluate intercalate " " example, and will insert the output in the line below.

example :: [String]
example = ["This is an example", "of", "interactive", "evaluation"]

-- >>> intercalate " " example
-- "This is an example of interactive evaluation"
--

This is also the first release to have binaries distributed alongside it. Some behind the scene changes include the GHC library directory now being obtained on the fly, so either ghc, cabal or stack will need to be present on your PATH depending on your project. See docs/releases.md for more information. If you find any issues with this, please let us know!

Pull requests merged for 0.2.1

  • Bump ormolu to 0.1.2.0 (#189) by @AlistairB
  • Remove dependency on Cabal (#195) by @bubba
  • Fix extraneous extra-dep in stack-8.6.4.yaml (#199) by @bubba
  • Fix install script stack targets (#203) by @jneira
  • Add support for ghc-8.8.4 (#206) by @jneira
  • Simple Eval plugin (#191) by @pepeiborra
  • Distributable binaries (#165) by @bubba

0.2

  • Use cabal-plan from Hackage (#185) by @georgefst
  • Bump ghcide to wz1000 hls-2 branch (#184) by @alanz
  • doc(preprocessor): Document the preprocessor limitation (#177) by @Sir4ur0n
  • Use shell.nix from Haskell-IDE-Engine (#169) by @fendor
  • Remove last occurrences of shake.yaml (#163) by @fendor
  • Use an unique install/stack.yaml (#154) by @jneira
  • Introduce golden testing (#152) by @Ailrun
  • Revert "Use bullet as separator instead of HR" (#150) by @alanz
  • feat(hie-bios): Multi-cradle, ignore directories (#147) by @Sir4ur0n
  • [Plugin] stylish-haskell formatter (#146) by @Ailrun
  • Separate ghcide tests and disable them for now (#137) by @jneira
  • Convert private lib in common stanza (#136) by @jneira
  • Add zlibc to readme (#134) by @Sir4ur0n
  • Complete editor integrations (#132) by @jneira
  • Remove inexistent component from hie.yaml.stack (#131) by @jneira
  • Bump to new mpickering/ghcide (#130) by @alanz
  • Update ghc-lib-parser version (#129) by @jneira
  • Remove redundant import (#128) by @bubba
  • Default the number of Shake threads to 0 (automatic) (#127) by @bubba
  • Added kakoune integration instructions (#125) by @414owen
  • Fix install script dev target (#124) by @jneira
  • Add plugin support for Rename providers (#123) by @pepeiborra
  • Add jobs for stack and cabal using ghc-8.10.1 (#120) by @jneira
  • Add lower bound to tasty-ant-xml (#119) by @jneira
  • Fix build using brittany revision (#117) by @jneira
  • Use floskell released version 0.10.3 (#116) by @jneira
  • Add emacs/doom-emacs integration sub-section (#115) by @yuanw
  • Port hie README partially (#112) by @jneira
  • Use cabal-helper-1.1, add stack-8.10.1.yaml and unify cabal.project's (#108) by @jneira
  • [#87] Fix completion via ghcide's getCompletionsLSP (#107) by @korayal
  • Create specific project file for ghc-8.10. (#106) by @jneira
  • Issue 5 - Move HIE Tests and convert to Tasty (#105) by @jeffwindsor
  • Hls update latest hie bios (#100) by @fendor
  • Update extra-deps to use latest fork version of shake (#98) by @fendor
  • Activate typechecking in non-lsp mode (#95) by @jneira
  • Fix haddock parsing errors (#92) by @jneira
  • Update for haskell-lsp 0.22 (#89) by @alanz
  • Get building with ghc-8.10 (#83) by @bubba

0.1

In this version

  • cabal to 2020-05-02T10:11:15Z
  • stack-8.8.3 to lts-15.10
  • stack to nightly-2020-05-01

Changes

This is the initial version, so too many to list individually.

The key point is that is now supports multi-component cradles, and has been in daily use by the developers for some time.

It still does not have feature parity with haskell-ide-engine, but it is currently useful.