Releases: haskell/haskell-language-server
1.5.0
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
- Performance would be noticeable in large projects without too much template haskell usage
- 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
- 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](#2...
1.4.0
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
- 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.
- 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.
- Call hierarchy plugin is added, contributed by @July541.
- Now completions work with definitions from non-imported modules, thanks to @pepeiborra.
- 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.
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](https://github.com/haskell/haskell-language-...
1.2.0
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 is 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 withnetwork
package.
Finally, we can provide executable for GHC 8.10.5 on macOS as well. (Thanks @mouse07410 for finding workaround!) - HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie.
This fixes a build issue of a stack project with implicithie.yaml
. - Wingman plugin has added numerous features and fixed many bugs:
- It now supports tactic metaprogramming!
For list of commands, see this document.
- "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.
- It now supports tactic metaprogramming!
- 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](https://github.com/haskell/haskell-l...
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 bindingsexported
: similar toalways
, but only displays for exported global bindingsdiagnostics
: follows diagnostic messages produced by GHC
- top-level LSP option
completionSnippetsOn
andmaxNumberOfProblems
are deprecated - completions plugin now has its custom config:
autoExtendOn
(boolean) [true
]: whether to enable auto extending import listssnippetsOn
(boolean) [true
]: wheter to enable completion snippets, taking the place ofcompletionSnippetsOn
- Wingman has its custom config:
timeout_duration
(integer) [2
]: the timeout for Wingman actions, in secondsfeatures
(string) [""
]: feature set used by Wingman (See the README of Wingman)max_use_ctor_actions
(integer) [5
]: maximum number ofUse constructor <x>
code actions that can appearhole_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
andhls-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 cano...
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}
/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.
- We supports a code action to hide shadowed identifiers from import.
- 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.
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 versi...
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 🙂
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)](...
0.8.0
- This version adds support for ghc-8.10.3
hls-plugin-api
has been bumped to 0.6.0.0 andghcide
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
- 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:
Pull requests merged
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.