haskell-language-server/ChangeLog.md
Alan Zimmerman c02a7d9beb PR #110 was closed, not merged.
Thanks @jneira
2020-09-03 08:25:11 +01:00

15 KiB

Changelog for haskell-language-server

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

  • Bring over https://github.com/pepeiborra/hls-tutorial (#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

  • 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

  • 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.