1# Changelog for haskell-language-server 2 3## 1.4.0 4 5After a month of vacation a new hls release has arrived: 6 7- Support for ghc 8.10.6 and 8.10.7 8- The ormolu formatter plugin works with ghc 9.0.1 9- *Call hierarchy plugin has been improved* thanks to @July541: 10 - Add call from type signature 11 - Add call from a function pattern 12 - Go to typeclass instance directly 13- As usual @isovector has been busy improving wingman plugin: 14 - New "intro and destruct" code action 15 - Streaming tactic solutions: when Wingman times outs, it can still pick the best solution it found 16 - Let-bindings in metattactics: allows you to bind variables in tactic metaprogram 17 - Several bug fixes 18- We have new docs thanks to @michaelpj: <https://haskell-language-server.readthedocs.io> 19- Now you can ask the executable for included plugins with: `haskell-language-server --list-plugins` 20- There are several bug fixes and features you can found in the merged pull requests list 21 22### DEPRECATION NOTICE 23 24- *After* this release we will drop support for ghc versions 8.6.4, 8.10.3 and 8.10.4 25 - The advise is upgrade ghc to the last minor version: 8.6.5 or 8.10.7 26 - Take a look to [this issue](https://github.com/haskell/haskell-language-server/issues/2168) for more details 27 28### Pull requests merged for 1.4.0 29 30- Update flake to fix nix builds 31([#2188](https://github.com/haskell/haskell-language-server/pull/2188)) by @jneira 32- Completions for project identifiers 33([#2187](https://github.com/haskell/haskell-language-server/pull/2187)) by @pepeiborra 34- Wingman: Don't clobber where clauses 35([#2184](https://github.com/haskell/haskell-language-server/pull/2184)) by @isovector 36- Add rerun workflow 37([#2181](https://github.com/haskell/haskell-language-server/pull/2181)) by @jneira 38- Bump up shake-bench version 39([#2178](https://github.com/haskell/haskell-language-server/pull/2178)) by @jneira 40- Fix hackage release 41([#2177](https://github.com/haskell/haskell-language-server/pull/2177)) by @jneira 42- Use maxBound of uinteger not Int. 43([#2169](https://github.com/haskell/haskell-language-server/pull/2169)) by @pranaysashank 44- enable the PR gitpod badge and drop the label 45([#2167](https://github.com/haskell/haskell-language-server/pull/2167)) by @pepeiborra 46- Plugin in config files 47([#2166](https://github.com/haskell/haskell-language-server/pull/2166)) by @jneira 48- Complete contributing guide 49([#2165](https://github.com/haskell/haskell-language-server/pull/2165)) by @jneira 50- Wingman: Add "New Unification Variable" helper 51([#2164](https://github.com/haskell/haskell-language-server/pull/2164)) by @isovector 52- Semiautomatic hackage releases 53([#2163](https://github.com/haskell/haskell-language-server/pull/2163)) by @jneira 54- Improve incoming call for typeclass and type family instance 55([#2162](https://github.com/haskell/haskell-language-server/pull/2162)) by @July541 56- Add a Gitpod descriptor 57([#2161](https://github.com/haskell/haskell-language-server/pull/2161)) by @pepeiborra 58- Wingman: Let-bindings in metatactics 59([#2160](https://github.com/haskell/haskell-language-server/pull/2160)) by @isovector 60- Update nix flake 61([#2159](https://github.com/haskell/haskell-language-server/pull/2159)) by @lf- 62- Add ghc-8.10.7 to release build 63([#2158](https://github.com/haskell/haskell-language-server/pull/2158)) by @jneira 64- Reduce duplication in pragma tests 65([#2157](https://github.com/haskell/haskell-language-server/pull/2157)) by @nini-faroux 66- Remove ghc-api source snapshot 67([#2156](https://github.com/haskell/haskell-language-server/pull/2156)) by @pepeiborra 68- Create a citation 69([#2155](https://github.com/haskell/haskell-language-server/pull/2155)) by @ndmitchell 70- Disable window job for ghc-8.10.2 71([#2154](https://github.com/haskell/haskell-language-server/pull/2154)) by @jneira 72- Auto complete definitions within imports 73([#2152](https://github.com/haskell/haskell-language-server/pull/2152)) by @alexnaspo 74- Filter code actions based on prefix, not equality 75([#2146](https://github.com/haskell/haskell-language-server/pull/2146)) by @michaelpj 76- perform a GC before find resolution 77([#2144](https://github.com/haskell/haskell-language-server/pull/2144)) by @pepeiborra 78- case sensitive language pragmas fix 79([#2142](https://github.com/haskell/haskell-language-server/pull/2142)) by @alexnaspo 80- Add ghc-8.10.7 support 81([#2141](https://github.com/haskell/haskell-language-server/pull/2141)) by @jneira 82- List all available plugins 83([#2139](https://github.com/haskell/haskell-language-server/pull/2139)) by @July541 84- update LTS for GHC 8.10.6 85([#2138](https://github.com/haskell/haskell-language-server/pull/2138)) by @peterbecich 86- fix GitHub Actions badges 87([#2135](https://github.com/haskell/haskell-language-server/pull/2135)) by @peterbecich 88- Move pragmas completion to pragmas plugin 89([#2134](https://github.com/haskell/haskell-language-server/pull/2134)) by @alexnaspo 90- Update ghc-9.0.1 support 91([#2131](https://github.com/haskell/haskell-language-server/pull/2131)) by @jneira 92- Support call hierarchy on pattern matching 93([#2129](https://github.com/haskell/haskell-language-server/pull/2129)) by @July541 94- GHCIDE_BUILD_PROFILING env var 95([#2125](https://github.com/haskell/haskell-language-server/pull/2125)) by @pepeiborra 96- [ghcide] support -d cli switch 97([#2124](https://github.com/haskell/haskell-language-server/pull/2124)) by @pepeiborra 98- don't crash when an unused operator import ends in `.` 99([#2123](https://github.com/haskell/haskell-language-server/pull/2123)) by @tscholak 100- [benchmarks] Fix edit and "after edit" experiments 101([#2122](https://github.com/haskell/haskell-language-server/pull/2122)) by @pepeiborra 102- Add fix for correct placement of import (#2100) 103([#2116](https://github.com/haskell/haskell-language-server/pull/2116)) by @nini-faroux 104- Support for ghc-8.10.6 105([#2109](https://github.com/haskell/haskell-language-server/pull/2109)) by @jneira 106- New rename plugin implementation 107([#2108](https://github.com/haskell/haskell-language-server/pull/2108)) by @OliverMadine 108- [ghcide-bench] Support extra args in examples 109([#2107](https://github.com/haskell/haskell-language-server/pull/2107)) by @pepeiborra 110- Fix filepath identity in cradle dependencies when using reactive change tracking 111([#2106](https://github.com/haskell/haskell-language-server/pull/2106)) by @pepeiborra 112- [ghcide-bench] preserve threading details in eventlogs 113([#2105](https://github.com/haskell/haskell-language-server/pull/2105)) by @pepeiborra 114- [ghcide-bench] fix edit experiment 115([#2104](https://github.com/haskell/haskell-language-server/pull/2104)) by @pepeiborra 116([#2102](https://github.com/haskell/haskell-language-server/pull/2102)) by @isovector 117- reduce allow-newer entries for shake-bench 118([#2101](https://github.com/haskell/haskell-language-server/pull/2101)) by @pepeiborra 119- Wingman: Don't count it as using a term if you only destruct it 120([#2099](https://github.com/haskell/haskell-language-server/pull/2099)) by @isovector 121- Clean cabal project 122([#2097](https://github.com/haskell/haskell-language-server/pull/2097)) by @jneira 123- Wingman: New AbstractLSP interface 124([#2094](https://github.com/haskell/haskell-language-server/pull/2094)) by @isovector 125- Add badge with github release 126([#2093](https://github.com/haskell/haskell-language-server/pull/2093)) by @jneira 127- Add a bit more prose and some links to the README 128([#2090](https://github.com/haskell/haskell-language-server/pull/2090)) by @michaelpj 129- Enable tests for ormolu plugin 130([#2086](https://github.com/haskell/haskell-language-server/pull/2086)) by @felixonmars 131- Allow ormolu 0.2 and fix compatibility with GHC 9 132([#2084](https://github.com/haskell/haskell-language-server/pull/2084)) by @felixonmars 133- Add initial sphinx doc site for RTD 134([#2083](https://github.com/haskell/haskell-language-server/pull/2083)) by @michaelpj 135- Amend fix for correct placement of file header pragmas (#1958) 136([#2078](https://github.com/haskell/haskell-language-server/pull/2078)) by @nini-faroux 137- Wingman: "Intro and destruct" code action 138([#2077](https://github.com/haskell/haskell-language-server/pull/2077)) by @isovector 139- Support call hierarchy on type signature & add plugin to generic config & docs 140([#2072](https://github.com/haskell/haskell-language-server/pull/2072)) by @July541 141- Update nix flake 142([#2065](https://github.com/haskell/haskell-language-server/pull/2065)) by @berberman 143- Include sponsorship section 144([#2063](https://github.com/haskell/haskell-language-server/pull/2063)) by @jneira 145- Add more communication channels 146([#2062](https://github.com/haskell/haskell-language-server/pull/2062)) by @jneira 147- Don't suggest disabling type errors 148([#2061](https://github.com/haskell/haskell-language-server/pull/2061)) by @anka-213 149- Build with lsp 1.2.0.1 150([#2059](https://github.com/haskell/haskell-language-server/pull/2059)) by @pepeiborra 151- Remove HIE_CACHE from circleci cache key 152([#2050](https://github.com/haskell/haskell-language-server/pull/2050)) by @jneira 153- [#1958] Fix placement of language pragmas 154([#2043](https://github.com/haskell/haskell-language-server/pull/2043)) by @nini-faroux 155- [#2005] Fix Formatting When Brittany Returns Warnings 156([#2036](https://github.com/haskell/haskell-language-server/pull/2036)) by @prikhi 157 158## 1.3.0 159 1602021 July release of HLS arrives! This release includes binaries for GHC 9.0.1 161and some new interesting features. Here is the brief summary of changes: 162 163- Binaries for GHC 9.0.1 are added by @anka-213. 164- Call hierarchy plugin is added, contributed by @July541. 165 ![hierarchy](https://user-images.githubusercontent.com/12473268/127550041-094151a6-be7b-484a-bb82-c61f326ca503.gif) 166- Now completions work with definitions from non-imported modules, thanks to @pepeiborra. 167 ![completion](https://user-images.githubusercontent.com/12473268/127543694-718ae043-38f2-4fb0-be71-317f5f93b443.gif) 168- Eval plugin 169 - The plugin supports GHC 9.0.1, thanks to @berberman. 170 - `:info` command is added by @akrmn. 171 - The plugin uses the same default language as GHCi with @fmehta's patch. 172- Wingman, where most changes owing to @isovector 173 - Wingman no longer changes the fixity of function definitions. 174 - Wingman now gives unique names to the holes it generates. 175 - Wingman's ability to reason about polymorphic and GADT types is significantly improved. 176 - Wingman no longer suggests homomorphic destructs when the codomain is larger than the domain. 177 - "Complete case constructors" action supports empty lambda cases. 178 - Wingman now gives a warning if it ran out of gas during "attempt to fill hole". 179 - Metaprogramming for Wingman has been improved with symbolic-name support and the `pointwise` combinator. 180 - An option to enable/disable Wingman's proof state styling is added. 181 - Hole fit suggestions are now disabled for performance reasons when using Wingman. 182- Hovering on a name displays the package where the name is defined, contributed by @berberman. 183 ![hover](https://user-images.githubusercontent.com/12473268/127550516-acc1f1b4-bad7-44fd-99a0-a174ce9ac909.gif) 184 185### Pull requests merged for 1.3.0 186 187- Wingman: Properly destruct forall-quantified types 188([#2049](https://github.com/haskell/haskell-language-server/pull/2049)) by @isovector 189- Remove .stack-work from circleci cache 190([#2044](https://github.com/haskell/haskell-language-server/pull/2044)) by @jneira 191- Completions from non-imported modules 192([#2040](https://github.com/haskell/haskell-language-server/pull/2040)) by @pepeiborra 193- Wingman: Low gas warning 194([#2038](https://github.com/haskell/haskell-language-server/pull/2038)) by @isovector 195- Enable dynamic linking in stack builds 196([#2031](https://github.com/haskell/haskell-language-server/pull/2031)) by @pepeiborra 197- Fix nix flake 198([#2030](https://github.com/haskell/haskell-language-server/pull/2030)) by @Avi-D-coder 199- Tie plugins' pluginModifyDynflags to their enabled state 200([#2029](https://github.com/haskell/haskell-language-server/pull/2029)) by @isovector 201- Add benchmarks for hole fits 202([#2027](https://github.com/haskell/haskell-language-server/pull/2027)) by @pepeiborra 203- fix a typo 204([#2024](https://github.com/haskell/haskell-language-server/pull/2024)) by @cdsmith 205- Upgrade to refinery-0.4.0.0 206([#2021](https://github.com/haskell/haskell-language-server/pull/2021)) by @isovector 207- Use implicit-hie-cradle-0.3.0.5 208([#2020](https://github.com/haskell/haskell-language-server/pull/2020)) by @jneira 209- Disable hls tests for win and ghc-9.0.1 210([#2018](https://github.com/haskell/haskell-language-server/pull/2018)) by @jneira 211- Use operational master commit to fix build for ghc-9.0.1 212([#2017](https://github.com/haskell/haskell-language-server/pull/2017)) by @jneira 213- Fix Wingman dependency on extra 214([#2007](https://github.com/haskell/haskell-language-server/pull/2007)) by @pepeiborra 215- Add GHC 9.2 support for hie-compat 216([#2003](https://github.com/haskell/haskell-language-server/pull/2003)) by @fendor 217- Enable tests for ghc 9 and promote `ghcVersion` check 218([#2001](https://github.com/haskell/haskell-language-server/pull/2001)) by @jneira 219- Allow HLS plugins to declare cli commands 220([#1999](https://github.com/haskell/haskell-language-server/pull/1999)) by @pepeiborra 221- Remove >= from cabal-version 222([#1998](https://github.com/haskell/haskell-language-server/pull/1998)) by @felixonmars 223- Eval plugin: support ghc 9.0.1 224([#1997](https://github.com/haskell/haskell-language-server/pull/1997)) by @berberman 225- Maximize sharing of NormalizedFilePath values in getLocatedImports 226([#1996](https://github.com/haskell/haskell-language-server/pull/1996)) by @pepeiborra 227- nix: add support for ghc 9.0.1 228([#1995](https://github.com/haskell/haskell-language-server/pull/1995)) by @berberman 229- Warn GHC 9 Compatibility to LSP Client 230([#1992](https://github.com/haskell/haskell-language-server/pull/1992)) by @konn 231- Update nix to GHC 8.10.5 232([#1991](https://github.com/haskell/haskell-language-server/pull/1991)) by @berberman 233- Initialize ExportsMap using hiedb exports 234([#1989](https://github.com/haskell/haskell-language-server/pull/1989)) by @pepeiborra 235- Wingman: add emacs example config to Readme 236([#1988](https://github.com/haskell/haskell-language-server/pull/1988)) by @stuebinm 237- relax megaparsec constraint in hls-tactics-plugin 238([#1986](https://github.com/haskell/haskell-language-server/pull/1986)) by @pepeiborra 239- follow change in lsp-types 240([#1985](https://github.com/haskell/haskell-language-server/pull/1985)) by @pepeiborra 241- Don't suggest import an unnecessary data constructor. 242([#1984](https://github.com/haskell/haskell-language-server/pull/1984)) by @peterwicksstringfield 243- Enable hyphenation embedding 244([#1979](https://github.com/haskell/haskell-language-server/pull/1979)) by @isovector 245- Fix nix.yaml 246([#1974](https://github.com/haskell/haskell-language-server/pull/1974)) by @isovector 247- Add windows to ghcup artifacts and generate sha256 sums 248([#1970](https://github.com/haskell/haskell-language-server/pull/1970)) by @jneira 249- Wingman: Ensure homomorphic destruct covers all constructors in the domain 250([#1968](https://github.com/haskell/haskell-language-server/pull/1968)) by @isovector 251- Wingman: Add the correct file offset to metaprogram parse errors 252([#1967](https://github.com/haskell/haskell-language-server/pull/1967)) by @isovector 253- Wingman: Config option to suppress proofstate styling 254([#1966](https://github.com/haskell/haskell-language-server/pull/1966)) by @isovector 255- Wingman: Don't wildify vars when running beginMetaprogram 256([#1963](https://github.com/haskell/haskell-language-server/pull/1963)) by @isovector 257- Wingman: Don't suggest empty case lenses for case exprs with no data cons 258([#1962](https://github.com/haskell/haskell-language-server/pull/1962)) by @isovector 259- Wingman: Don't introduce too many variables 260([#1961](https://github.com/haskell/haskell-language-server/pull/1961)) by @isovector 261- Wingman: Code lens for empty lambda case 262([#1956](https://github.com/haskell/haskell-language-server/pull/1956)) by @isovector 263- Call hierarchy support 264([#1955](https://github.com/haskell/haskell-language-server/pull/1955)) by @July541 265- Bugfix type signature lenses / code actions for pattern synonyms. 266([#1952](https://github.com/haskell/haskell-language-server/pull/1952)) by @peterwicksstringfield 267- Add :info command in Eval plugin 268([#1948](https://github.com/haskell/haskell-language-server/pull/1948)) by @akrmn 269- avoid holding onto the hie bytestring when indexing 270([#1947](https://github.com/haskell/haskell-language-server/pull/1947)) by @pepeiborra 271- Wingman: Make getCurrentDefinitions return polymorphic types 272([#1945](https://github.com/haskell/haskell-language-server/pull/1945)) by @isovector 273- Wingman: Tactical support for deep recursion 274([#1944](https://github.com/haskell/haskell-language-server/pull/1944)) by @isovector 275- Properly scope GADT equality evidence in the judgment 276([#1942](https://github.com/haskell/haskell-language-server/pull/1942)) by @isovector 277- Add ghc-9.0.1 to the build release script 278([#1940](https://github.com/haskell/haskell-language-server/pull/1940)) by @anka-213 279- Cata tactic should generalize let and ensure unifiability 280([#1938](https://github.com/haskell/haskell-language-server/pull/1938)) by @isovector 281- Include chocolatey hls package 282([#1936](https://github.com/haskell/haskell-language-server/pull/1936)) by @jneira 283- Mention ghcup and warning about updating artifacts 284([#1935](https://github.com/haskell/haskell-language-server/pull/1935)) by @jneira 285- Remove ghc-8.8.2 286([#1934](https://github.com/haskell/haskell-language-server/pull/1934)) by @jneira 287- Workaround for GHC 8.10.5 on macOS 288([#1931](https://github.com/haskell/haskell-language-server/pull/1931)) by @konn 289- Add manual upload instructions 290([#1930](https://github.com/haskell/haskell-language-server/pull/1930)) by @jneira 291- Perform name lookup directly in TacticsM 292([#1924](https://github.com/haskell/haskell-language-server/pull/1924)) by @isovector 293- Include testdata in hls-refine-imports-plugin.cabal (backport #1922) 294([#1923](https://github.com/haskell/haskell-language-server/pull/1923)) by @mergify[bot] 295- Include testdata in hls-refine-imports-plugin.cabal 296([#1922](https://github.com/haskell/haskell-language-server/pull/1922)) by @felixonmars 297- Add pointwise command to the metaprogram parser 298([#1921](https://github.com/haskell/haskell-language-server/pull/1921)) by @isovector 299- Allow symbol identifiers in tactics 300([#1920](https://github.com/haskell/haskell-language-server/pull/1920)) by @isovector 301- Fall back to hiedb for invalid srcspan paths 302([#1918](https://github.com/haskell/haskell-language-server/pull/1918)) by @pepeiborra 303- Disable hole fit suggestions when running Wingman 304([#1873](https://github.com/haskell/haskell-language-server/pull/1873)) by @isovector 305- Wingman: maintain user-defined fixity for definitions 306([#1697](https://github.com/haskell/haskell-language-server/pull/1697)) by @isovector 307- Display package names of external libraries on hover 308([#1626](https://github.com/haskell/haskell-language-server/pull/1626)) by @berberman 309- Make the eval plugin use the same default language extensions as ghci. 310([#1596](https://github.com/haskell/haskell-language-server/pull/1596)) by @fmehta 311 312## 1.2.0 313 314We have finally released a new version of Haskell Language Server! 315Thanks for all contributors, many bugs has been fixed, and many features has landed. 316Here are the summary of changes: 317 318- Basic support for GHC 9.0.1 is added. 319 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](https://github.com/haskell/haskell-language-server/issues/297#issuecomment-855522891). 320- Support for GHC 8.10.5 is added. 321 Note that macOS version is unfortunately not included in this release because of [a GHC issue with `network` package](https://gitlab.haskell.org/ghc/ghc/-/issues/19968). 322- HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie. 323 This fixes [a build issue](https://github.com/haskell/haskell-language-server/issues/1782) of a stack project with implicit `hie.yaml` . 324- Wingman plugin has added numerous features and fixed many bugs: 325 - It now supports tactic metaprogramming! 326 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). 327 ![https://github.com/haskell/haskell-language-server/blob/master/plugins/hls-tactics-plugin/COMMANDS.md#wingman-metaprogram-command-reference](https://user-images.githubusercontent.com/307223/118190278-bdf24f80-b3f7-11eb-8838-b08a2582d7f1.gif) 328 - "Refine hole" and "Split all function arguments" code actions are publicly opened. 329 - "Empty case split" code lens is added. 330 - The name generator is fixed [to avoid dangerous summon rituals](https://github.com/haskell/haskell-language-server/pull/1760). 331 - Many bugs related to type families and GADTs are fixed. 332- We support [nix flake](https://nixos.wiki/wiki/Flakes), an upcoming way to manage dependencies in nix. 333- Every plugin (other than example plugins) now lives in its own package. 334 335### Pull requests merged for 1.2.0 336 337- Cleanup stack build output in circleci 338([#1905](https://github.com/haskell/haskell-language-server/pull/1905)) by @jhrcek 339- Remove FeatureSet 340([#1902](https://github.com/haskell/haskell-language-server/pull/1902)) by @isovector 341- Correct a typo in ConfigUtils.hs 342([#1900](https://github.com/haskell/haskell-language-server/pull/1900)) by @felixonmars 343- Add GHC 8.10.5 support 344([#1899](https://github.com/haskell/haskell-language-server/pull/1899)) by @Ailrun 345- Fix getCurrentDirectory calls in ghcide 346([#1897](https://github.com/haskell/haskell-language-server/pull/1897)) by @pepeiborra 347- Wingman: FIx evidence when using GADT constructors 348([#1889](https://github.com/haskell/haskell-language-server/pull/1889)) by @isovector 349- [explicit-imports] Take in a predicate to filter modules 350([#1888](https://github.com/haskell/haskell-language-server/pull/1888)) by @pepeiborra 351- Fix unification pertaining to evidence 352([#1885](https://github.com/haskell/haskell-language-server/pull/1885)) by @isovector 353- Let Wingman peek through type families 354([#1881](https://github.com/haskell/haskell-language-server/pull/1881)) by @isovector 355- Use file watches for all workspace files 356([#1880](https://github.com/haskell/haskell-language-server/pull/1880)) by @pepeiborra 357- Update IRC details in README.md 358([#1877](https://github.com/haskell/haskell-language-server/pull/1877)) by @fendor 359- Fix nix build for #1858 360([#1870](https://github.com/haskell/haskell-language-server/pull/1870)) by @berberman 361- Wingman metaprogram command documentation 362([#1867](https://github.com/haskell/haskell-language-server/pull/1867)) by @isovector 363- Catamorphism and collapse tactics 364([#1865](https://github.com/haskell/haskell-language-server/pull/1865)) by @isovector 365- Fix condition of nix build job 366([#1864](https://github.com/haskell/haskell-language-server/pull/1864)) by @berberman 367- Technology preview: Keep track of changes to minimize rebuilds 368([#1862](https://github.com/haskell/haskell-language-server/pull/1862)) by @pepeiborra 369- Trace more Shake evaluation details 370([#1861](https://github.com/haskell/haskell-language-server/pull/1861)) by @pepeiborra 371- No need to delete the same key twice 372([#1860](https://github.com/haskell/haskell-language-server/pull/1860)) by @pepeiborra 373- Use cabal-install if nix is failing in CI 374([#1859](https://github.com/haskell/haskell-language-server/pull/1859)) by @berberman 375- Use last apply-refact and several stack.yaml updates 376([#1858](https://github.com/haskell/haskell-language-server/pull/1858)) by @jneira 377- Split ghcide actions into different descriptors 378([#1857](https://github.com/haskell/haskell-language-server/pull/1857)) by @berberman 379- Allow module-local and imported functions in Wingman metaprograms 380([#1856](https://github.com/haskell/haskell-language-server/pull/1856)) by @isovector 381- Update mergify.yml 382([#1853](https://github.com/haskell/haskell-language-server/pull/1853)) by @Ailrun 383- Fix flake compat 384([#1852](https://github.com/haskell/haskell-language-server/pull/1852)) by @berberman 385- Fix record layout 386([#1851](https://github.com/haskell/haskell-language-server/pull/1851)) by @isovector 387- Avoid package-qualified import in Fourmolu plugin 388([#1848](https://github.com/haskell/haskell-language-server/pull/1848)) by @georgefst 389- Skip cachix jobs if token is unset 390([#1845](https://github.com/haskell/haskell-language-server/pull/1845)) by @berberman 391- Refine should either do intros or split, not both 392([#1842](https://github.com/haskell/haskell-language-server/pull/1842)) by @isovector 393- Add hspec upper bound 394([#1837](https://github.com/haskell/haskell-language-server/pull/1837)) by @jneira 395- Extract last 2 plugins and clean up others 396([#1836](https://github.com/haskell/haskell-language-server/pull/1836)) by @Ailrun 397- Extract pragmas plugin 398([#1833](https://github.com/haskell/haskell-language-server/pull/1833)) by @Ailrun 399- Extract floskell plugin as a standalone plugin 400([#1829](https://github.com/haskell/haskell-language-server/pull/1829)) by @Ailrun 401- nix: refactor with flakes 402([#1827](https://github.com/haskell/haskell-language-server/pull/1827)) by @berberman 403- Bump up hls-splice-plugin to 1.0.0.2 (backport #1825) 404([#1826](https://github.com/haskell/haskell-language-server/pull/1826)) by @mergify[bot] 405- Bump up hls-splice-plugin to 1.0.0.2 406([#1825](https://github.com/haskell/haskell-language-server/pull/1825)) by @jneira 407- Apply formats again 408([#1824](https://github.com/haskell/haskell-language-server/pull/1824)) by @Ailrun 409- Extract fourmolu plugin into a standalone package 410([#1823](https://github.com/haskell/haskell-language-server/pull/1823)) by @gustavoavena 411- Ignore filemode in diff 412([#1819](https://github.com/haskell/haskell-language-server/pull/1819)) by @Ailrun 413- ghc-api cleanups cleanup 414([#1816](https://github.com/haskell/haskell-language-server/pull/1816)) by @pepeiborra 415- Add a hook for modifying the dynflags from a plugin 416([#1814](https://github.com/haskell/haskell-language-server/pull/1814)) by @isovector 417- Prepare ghcide release v1.3.0.0 418([#1811](https://github.com/haskell/haskell-language-server/pull/1811)) by @pepeiborra 419- Remove hls-ghc-x.y from install script and wrapper 420([#1805](https://github.com/haskell/haskell-language-server/pull/1805)) by @berberman 421- Fix unwanted import refinement 422([#1801](https://github.com/haskell/haskell-language-server/pull/1801)) by @rayshih 423- Canonicalize hiedb path before comparing 424([#1800](https://github.com/haskell/haskell-language-server/pull/1800)) by @pepeiborra 425- Pin nix-pre-commit-hooks (backport #1780) 426([#1798](https://github.com/haskell/haskell-language-server/pull/1798)) by @mergify[bot] 427- Add upper bound to hlint (backport #1795) 428([#1797](https://github.com/haskell/haskell-language-server/pull/1797)) by @mergify[bot] 429- Add bounds for base in hls-stylish-haskell-plugin (backport #1794) 430([#1796](https://github.com/haskell/haskell-language-server/pull/1796)) by @mergify[bot] 431- Add upper bound to hlint 432([#1795](https://github.com/haskell/haskell-language-server/pull/1795)) by @jneira 433- Add bounds for base in hls-stylish-haskell-plugin 434([#1794](https://github.com/haskell/haskell-language-server/pull/1794)) by @berberman 435- Add bounds for base in hls-test-utils (backport #1791) 436([#1793](https://github.com/haskell/haskell-language-server/pull/1793)) by @mergify[bot] 437- Replace faulty signature test 438([#1792](https://github.com/haskell/haskell-language-server/pull/1792)) by @kderme 439- Add bounds for base in hls-test-utils 440([#1791](https://github.com/haskell/haskell-language-server/pull/1791)) by @berberman 441- Fix backport conflict of refine-import plugin 442([#1790](https://github.com/haskell/haskell-language-server/pull/1790)) by @Ailrun 443- Fix progress counting 444([#1789](https://github.com/haskell/haskell-language-server/pull/1789)) by @pepeiborra 445- Loosen dependency bounds (backport #1787) 446([#1788](https://github.com/haskell/haskell-language-server/pull/1788)) by @mergify[bot] 447- Loosen dependency bounds 448([#1787](https://github.com/haskell/haskell-language-server/pull/1787)) by @berberman 449- clean up ghc-api pragmas 450([#1785](https://github.com/haskell/haskell-language-server/pull/1785)) by @pepeiborra 451- Progress reporting improvements 452([#1784](https://github.com/haskell/haskell-language-server/pull/1784)) by @pepeiborra 453- Unify session loading using implicit-hie 454([#1783](https://github.com/haskell/haskell-language-server/pull/1783)) by @fendor 455- Pin nix-pre-commit-hooks 456([#1780](https://github.com/haskell/haskell-language-server/pull/1780)) by @Ailrun 457- Replace the unsafe getmodtime with safe posix calls 458([#1778](https://github.com/haskell/haskell-language-server/pull/1778)) by @pepeiborra 459- Tactic metaprogramming 460([#1776](https://github.com/haskell/haskell-language-server/pull/1776)) by @isovector 461- Fix wrong extend import while type constuctor and data constructor have the same name 462([#1775](https://github.com/haskell/haskell-language-server/pull/1775)) by @July541 463- Add codetriage badge 464([#1772](https://github.com/haskell/haskell-language-server/pull/1772)) by @jneira 465- Wingman: configurable auto search depth 466([#1771](https://github.com/haskell/haskell-language-server/pull/1771)) by @isovector 467- Prevent accidental Cthulhu summons 468([#1760](https://github.com/haskell/haskell-language-server/pull/1760)) by @isovector 469- Delay the Shake session setup until the Initialized handler 470([#1754](https://github.com/haskell/haskell-language-server/pull/1754)) by @pepeiborra 471- Wrap the Shake functions with newtypes 472([#1753](https://github.com/haskell/haskell-language-server/pull/1753)) by @ndmitchell 473- Fix reduction depth 474([#1751](https://github.com/haskell/haskell-language-server/pull/1751)) by @pepeiborra 475- Add hls-graph abstracting over shake 476([#1748](https://github.com/haskell/haskell-language-server/pull/1748)) by @ndmitchell 477- Explicitly import liftIO if you need it, rather than getting it from Shake 478([#1747](https://github.com/haskell/haskell-language-server/pull/1747)) by @ndmitchell 479- Tease apart the custom SYB from ExactPrint 480([#1746](https://github.com/haskell/haskell-language-server/pull/1746)) by @isovector 481- Remove unnecessary Shake dependencies 482([#1745](https://github.com/haskell/haskell-language-server/pull/1745)) by @ndmitchell 483- Delete an unused import 484([#1744](https://github.com/haskell/haskell-language-server/pull/1744)) by @ndmitchell 485- Improve vscode extension schema generation 486([#1742](https://github.com/haskell/haskell-language-server/pull/1742)) by @berberman 487- Fix class method completion 488([#1741](https://github.com/haskell/haskell-language-server/pull/1741)) by @July541 489- Add heralds to Wingman's use of runAction 490([#1740](https://github.com/haskell/haskell-language-server/pull/1740)) by @isovector 491- Wingman: case split on punned record fields 492([#1739](https://github.com/haskell/haskell-language-server/pull/1739)) by @isovector 493- Wingman feature release 494([#1735](https://github.com/haskell/haskell-language-server/pull/1735)) by @isovector 495- Add haskell-language-server Homebrew installation instructions 496([#1734](https://github.com/haskell/haskell-language-server/pull/1734)) by @kret 497- Add a "Split using NamedFieldPuns" code action 498([#1733](https://github.com/haskell/haskell-language-server/pull/1733)) by @isovector 499- Insert pragmas after shebang or to existing pragma list 500([#1731](https://github.com/haskell/haskell-language-server/pull/1731)) by @OliverMadine 501- Add executable stanza in hls-install.cabal. 502([#1730](https://github.com/haskell/haskell-language-server/pull/1730)) by @arrowd 503- Add installation instructions for FreeBSD. 504([#1729](https://github.com/haskell/haskell-language-server/pull/1729)) by @arrowd 505- HLint: Pass options through user config 506([#1724](https://github.com/haskell/haskell-language-server/pull/1724)) by @rmehri01 507- Prepare ghcide 1.2.0.2 and HLS 1.1.0 508([#1722](https://github.com/haskell/haskell-language-server/pull/1722)) by @berberman 509- Wingman: Destruct on empty case 510([#1721](https://github.com/haskell/haskell-language-server/pull/1721)) by @isovector 511- Fix: #1690 - Infix typed holes are now filled using infix notation 512([#1708](https://github.com/haskell/haskell-language-server/pull/1708)) by @OliverMadine 513- Implement refine imports 514([#1686](https://github.com/haskell/haskell-language-server/pull/1686)) by @rayshih 515- Ghc 9.0.1 support for ghcide 516([#1649](https://github.com/haskell/haskell-language-server/pull/1649)) by @anka-213 517- hie-compat: Add basic support for ghc 9.0.1 518([#1635](https://github.com/haskell/haskell-language-server/pull/1635)) by @anka-213 519- Fix remove constraint 520([#1578](https://github.com/haskell/haskell-language-server/pull/1578)) by @kderme 521- Limit CodeActions within passed range 522([#1442](https://github.com/haskell/haskell-language-server/pull/1442)) by @aufarg 523 524## 1.1.0 525 526Haskell Language Server 1.1.0 has finally come! Many thanks to all contributors -- since the last release, we have merged over 100 PRs! 527As always, there are many internal bug fixes and performance improvements in ghcide. Apart from that, 528 529* Wingman gets many enhancements, thanks to @isovector for this epic work! 530 * Wingman actions can now be bound to editor hotkeys 531 * Experimental support for "jump to next unsolved hole" 532 * Improved layout algorithm --- don't reflow instances, or break do-blocks 533 * Wingman can now deal with GADTs, rank-n types and pattern synonyms 534 * Wingman now respects user-written bindings on the left side of the equals sign 535 * Significantly more-natural synthesized code when dealing with newtypes, infix operators, records and strings 536 * Improved user experience --- less waiting, and friendly errors for when things go wrong 537* hlint plugin not working in some cases gets fixed 538* annoying log message "haskell-lsp:incoming message parse error" gets fixed in `lsp-1.2` 539* eval plugin now supports `it` variable, like GHCi 540* verbose message "No cradle found for ... Proceeding with implicit cradle" is GONE 541* type lenses plugin now has its custom config `mode` (enum) [`always`] to control its working mode: 542 * `always`: always displays type signature lenses of global bindings 543 * `exported`: similar to `always`, but only displays for exported global bindings 544 * `diagnostics`: follows diagnostic messages produced by GHC 545* top-level LSP option `completionSnippetsOn` and `maxNumberOfProblems` are deprecated 546* completions plugin now has its custom config: 547 * `autoExtendOn` (boolean) [`true`]: whether to enable auto extending import lists 548 * `snippetsOn` (boolean) [`true`]: wheter to enable completion snippets, taking the place of `completionSnippetsOn` 549* Wingman has its custom config: 550 * `timeout_duration` (integer) [`2`]: the timeout for Wingman actions, in seconds 551 * `features` (string) [`""`]: feature set used by Wingman (See [the README of Wingman](https://github.com/haskell/haskell-language-server/tree/master/plugins/hls-tactics-plugin#readme)) 552 * `max_use_ctor_actions` (integer) [`5`]: maximum number of `Use constructor <x>` code actions that can appear 553 * `hole_severity` (enum) [`none`]: the severity to use when showing hole diagnostics 554* LSP symbols of typeclass and type families are more appropriate 555* test suite of plugins are reorganized, which no longer need to be run with `test-server` executable 556* two new packages `hls-test-utils` and `hls-stylish-haskell-plugin` are extracted 557 558This version uses `lsp-1.2.0`, `hls-plugin-api-1.1.0`, and `ghcide-1.2.0.2`. 559 560### Pull requests merged for 1.1.0 561 562- Restore compat. with haddock-library 1.8 563([#1717](https://github.com/haskell/haskell-language-server/pull/1717)) by @pepeiborra 564- Don't suggest destruct actions for already-destructed terms 565([#1715](https://github.com/haskell/haskell-language-server/pull/1715)) by @isovector 566- Add keybindings and jump to hole to the Wingman README 567([#1712](https://github.com/haskell/haskell-language-server/pull/1712)) by @isovector 568- Bracketing for snippet completions 569([#1709](https://github.com/haskell/haskell-language-server/pull/1709)) by @OliverMadine 570- Prepare ghcide 1.2.0 571([#1707](https://github.com/haskell/haskell-language-server/pull/1707)) by @berberman 572- Adjust bounds 573([#1701](https://github.com/haskell/haskell-language-server/pull/1701)) by @berberman 574- Update nix 575([#1699](https://github.com/haskell/haskell-language-server/pull/1699)) by @berberman 576- Wingman: "Destruct all" only on ADTs 577([#1695](https://github.com/haskell/haskell-language-server/pull/1695)) by @isovector 578- Fix ghcide and HLS enter lsp mode by default 579([#1692](https://github.com/haskell/haskell-language-server/pull/1692)) by @berberman 580- Decrease Wingman timeout from 3.3 minutes to 2 seconds (configurable) 581([#1688](https://github.com/haskell/haskell-language-server/pull/1688)) by @isovector 582- Wrap test suite of tactics plugin into tasty test tree 583([#1676](https://github.com/haskell/haskell-language-server/pull/1676)) by @berberman 584- Wingman: Use infix notation for operator applications 585([#1675](https://github.com/haskell/haskell-language-server/pull/1675)) by @isovector 586- Ignore ghcide tests by paths 587([#1673](https://github.com/haskell/haskell-language-server/pull/1673)) by @jneira 588- Ignore nix job steps by path 589([#1672](https://github.com/haskell/haskell-language-server/pull/1672)) by @jneira 590- Intelligent derivations of Semigroup and Monoid for Wingman 591([#1671](https://github.com/haskell/haskell-language-server/pull/1671)) by @isovector 592- optimize ambiguity import suggestions 593([#1669](https://github.com/haskell/haskell-language-server/pull/1669)) by @July541 594- Replace Barrier with MVar in lsp main 595([#1668](https://github.com/haskell/haskell-language-server/pull/1668)) by @berberman 596- ghcide - enable ApplicativeDo everywhere 597([#1667](https://github.com/haskell/haskell-language-server/pull/1667)) by @pepeiborra 598- support custom Ide commands 599([#1666](https://github.com/haskell/haskell-language-server/pull/1666)) by @pepeiborra 600- Add bounds for Diff 601([#1665](https://github.com/haskell/haskell-language-server/pull/1665)) by @berberman 602- Update shake bounds of install script 603([#1664](https://github.com/haskell/haskell-language-server/pull/1664)) by @berberman 604- Avoid creating IsFileOfInterest keys for non workspace files 605([#1661](https://github.com/haskell/haskell-language-server/pull/1661)) by @pepeiborra 606- additional .gitignore entries 607([#1659](https://github.com/haskell/haskell-language-server/pull/1659)) by @pepeiborra 608- Skip tracing unless eventlog is enabled 609([#1658](https://github.com/haskell/haskell-language-server/pull/1658)) by @pepeiborra 610- Fix a wingman bug caused by mismanaged stale data 611([#1657](https://github.com/haskell/haskell-language-server/pull/1657)) by @isovector 612- Fix ignore paths 613([#1656](https://github.com/haskell/haskell-language-server/pull/1656)) by @jneira 614- Shut the Shake session on exit, instead of restarting it 615([#1655](https://github.com/haskell/haskell-language-server/pull/1655)) by @pepeiborra 616- Emit holes as diagnostics 617([#1653](https://github.com/haskell/haskell-language-server/pull/1653)) by @isovector 618- log exceptions before killing the server 619([#1651](https://github.com/haskell/haskell-language-server/pull/1651)) by @pepeiborra 620- Do not override custom commands 621([#1650](https://github.com/haskell/haskell-language-server/pull/1650)) by @pepeiborra 622- Fix importing type operators 623([#1644](https://github.com/haskell/haskell-language-server/pull/1644)) by @berberman 624- Add haskell-language-server-bin to Arch Linux section 625([#1642](https://github.com/haskell/haskell-language-server/pull/1642)) by @marcin-rzeznicki 626- Update ISSUE_TEMPLATE.md 627([#1640](https://github.com/haskell/haskell-language-server/pull/1640)) by @Ailrun 628- Civilized indexing progress reporting 629([#1633](https://github.com/haskell/haskell-language-server/pull/1633)) by @pepeiborra 630- Update to lsp-1.2 631([#1631](https://github.com/haskell/haskell-language-server/pull/1631)) by @wz1000 632- Avoid reordering plugins 633([#1629](https://github.com/haskell/haskell-language-server/pull/1629)) by @pepeiborra 634- Run plugins' test suites with server in the same process 635([#1628](https://github.com/haskell/haskell-language-server/pull/1628)) by @berberman 636- Remove ignored paths 637([#1623](https://github.com/haskell/haskell-language-server/pull/1623)) by @jneira 638- Update formatting hooks to not include Wingman 639([#1622](https://github.com/haskell/haskell-language-server/pull/1622)) by @Ailrun 640- Add CPP Options for Stylish Haskell & Brittany Formatters 641([#1620](https://github.com/haskell/haskell-language-server/pull/1620)) by @prikhi 642- Use custom config for completions plugin 643([#1619](https://github.com/haskell/haskell-language-server/pull/1619)) by @berberman 644- Configurable I/O handles 645([#1617](https://github.com/haskell/haskell-language-server/pull/1617)) by @pepeiborra 646- Add installation instructions for Arch Linux 647([#1616](https://github.com/haskell/haskell-language-server/pull/1616)) by @berberman 648- Properly pass argFiles into defaultMain 649([#1613](https://github.com/haskell/haskell-language-server/pull/1613)) by @mpickering 650- Migrate tests of plugins 651([#1612](https://github.com/haskell/haskell-language-server/pull/1612)) by @berberman 652- Allow for customizable Haskell views of Property types 653([#1608](https://github.com/haskell/haskell-language-server/pull/1608)) by @isovector 654- Extract hls-test-utils 655([#1606](https://github.com/haskell/haskell-language-server/pull/1606)) by @berberman 656- Add test data files to extra-source-files 657([#1605](https://github.com/haskell/haskell-language-server/pull/1605)) by @jneira 658- Extract stylish-haskell plugin into a standalone package 659([#1604](https://github.com/haskell/haskell-language-server/pull/1604)) by @berberman 660- Eval plugin: evaluate expressions as statements 661([#1603](https://github.com/haskell/haskell-language-server/pull/1603)) by @berberman 662- Bump haddock-library to 1.10.0 663([#1598](https://github.com/haskell/haskell-language-server/pull/1598)) by @berberman 664- Relax ghcides upper bound on base16-bytestring 665([#1595](https://github.com/haskell/haskell-language-server/pull/1595)) by @maralorn 666- Use CiInterface/SkInterface for typeclass symbols 667([#1592](https://github.com/haskell/haskell-language-server/pull/1592)) by @fwcd 668- Avoid duplicating known targets and import paths 669([#1590](https://github.com/haskell/haskell-language-server/pull/1590)) by @pepeiborra 670- Add ability for plugins to handle file change notifications 671([#1588](https://github.com/haskell/haskell-language-server/pull/1588)) by @pepeiborra 672- Ensure eval plugin Print class doesn't rely on Prelude being in scope 673([#1587](https://github.com/haskell/haskell-language-server/pull/1587)) by @akrmn 674- Give a canonical ordering for destructing terms in Wingman 675([#1586](https://github.com/haskell/haskell-language-server/pull/1586)) by @isovector 676- Try a homomorphic destruct before a standard destruct 677([#1582](https://github.com/haskell/haskell-language-server/pull/1582)) by @isovector 678- Update homepage and other urls for ghcide 679([#1580](https://github.com/haskell/haskell-language-server/pull/1580)) by @felixonmars 680- Regularize custom config of plugins 681([#1576](https://github.com/haskell/haskell-language-server/pull/1576)) by @berberman 682- Cleanup the TacticProviders interface 683([#1572](https://github.com/haskell/haskell-language-server/pull/1572)) by @isovector 684- Add custom code action kinds for import related code actions 685([#1570](https://github.com/haskell/haskell-language-server/pull/1570)) by @berberman 686- bump retrie plugin version 687([#1569](https://github.com/haskell/haskell-language-server/pull/1569)) by @pepeiborra 688- Use ConLikes instead of DataCons 689([#1568](https://github.com/haskell/haskell-language-server/pull/1568)) by @isovector 690- Remove max number of problems config option 691([#1567](https://github.com/haskell/haskell-language-server/pull/1567)) by @jneira 692- Prepare ghcide 1.1.0 693([#1566](https://github.com/haskell/haskell-language-server/pull/1566)) by @pepeiborra 694- Use string literals to synthesize the empty string 695([#1564](https://github.com/haskell/haskell-language-server/pull/1564)) by @isovector 696- Add wingman branding to code actions 697([#1555](https://github.com/haskell/haskell-language-server/pull/1555)) by @isovector 698- Use TextEdit to insert new imports 699([#1554](https://github.com/haskell/haskell-language-server/pull/1554)) by @berberman 700- Introduce strict versions of modifyVar to improve contention 701([#1553](https://github.com/haskell/haskell-language-server/pull/1553)) by @pepeiborra 702- Improve how wingman uses evidence 703([#1549](https://github.com/haskell/haskell-language-server/pull/1549)) by @isovector 704- Review early cutoff fingerprints 705([#1547](https://github.com/haskell/haskell-language-server/pull/1547)) by @pepeiborra 706- Improve thread contention around diagnostics 707([#1546](https://github.com/haskell/haskell-language-server/pull/1546)) by @pepeiborra 708- Be much more intelligent about splitting matches 709([#1543](https://github.com/haskell/haskell-language-server/pull/1543)) by @isovector 710- Update nixpkgs to ghc 8.10.4 711([#1538](https://github.com/haskell/haskell-language-server/pull/1538)) by @berberman 712- Log a warning for every diagnostic received when doDiagnostics=False 713([#1537](https://github.com/haskell/haskell-language-server/pull/1537)) by @pepeiborra 714- Fix missing parens of auto extending imports 715([#1526](https://github.com/haskell/haskell-language-server/pull/1526)) by @berberman 716- Change Wingman module structure, address -Wall 717([#1519](https://github.com/haskell/haskell-language-server/pull/1519)) by @isovector 718- Pull Wingman's method hypotheses directly from in-scope dicts 719([#1517](https://github.com/haskell/haskell-language-server/pull/1517)) by @isovector 720- Avoid redundant work in diagnostics pass 721([#1514](https://github.com/haskell/haskell-language-server/pull/1514)) by @pepeiborra 722- Add an option to control progress reporting 723([#1513](https://github.com/haskell/haskell-language-server/pull/1513)) by @pepeiborra 724- Package ghcide code actions 725([#1512](https://github.com/haskell/haskell-language-server/pull/1512)) by @berberman 726- Demote implicit cradle warn to logging 727([#1511](https://github.com/haskell/haskell-language-server/pull/1511)) by @jneira 728- Set all plugin flags to manual 729([#1510](https://github.com/haskell/haskell-language-server/pull/1510)) by @jneira 730- Avoid always rerunning GetModificationTime for interface files too 731([#1506](https://github.com/haskell/haskell-language-server/pull/1506)) by @pepeiborra 732- Let Wingman's apply tactic run endomorphisms 733([#1505](https://github.com/haskell/haskell-language-server/pull/1505)) by @isovector 734- Make Wingman produce user-facing error messages 735([#1502](https://github.com/haskell/haskell-language-server/pull/1502)) by @isovector 736- Disable HLS benchmarks 737([#1501](https://github.com/haskell/haskell-language-server/pull/1501)) by @wz1000 738- Add kind and preferred flag for all Wingman code actions 739([#1499](https://github.com/haskell/haskell-language-server/pull/1499)) by @isovector 740- Organize Wingman tests 741([#1498](https://github.com/haskell/haskell-language-server/pull/1498)) by @isovector 742- Register IDE configuration when called via the command line 743([#1495](https://github.com/haskell/haskell-language-server/pull/1495)) by @wz1000 744- Haddock upper bound 745([#1492](https://github.com/haskell/haskell-language-server/pull/1492)) by @jneira 746- Make type lenses plugin configurable 747([#1491](https://github.com/haskell/haskell-language-server/pull/1491)) by @berberman 748- Context-aware ExactPrint grafting for HsExpr 749([#1489](https://github.com/haskell/haskell-language-server/pull/1489)) by @isovector 750- Drive GetModificationTime using watched file events 751([#1487](https://github.com/haskell/haskell-language-server/pull/1487)) by @pepeiborra 752- Faster ModSummary fingerprints 753([#1485](https://github.com/haskell/haskell-language-server/pull/1485)) by @pepeiborra 754- Revert all changes to hie-compat since 11b5c2e 755([#1484](https://github.com/haskell/haskell-language-server/pull/1484)) by @wz1000 756- Fix non-determinism in boot-def test 757([#1483](https://github.com/haskell/haskell-language-server/pull/1483)) by @wz1000 758- Hackage needs autogen-modules 759([#1481](https://github.com/haskell/haskell-language-server/pull/1481)) by @jneira 760- Ignore ci for some subdirectories and files 761([#1480](https://github.com/haskell/haskell-language-server/pull/1480)) by @jneira 762- Split plugin tests into two cabal projects 763([#1479](https://github.com/haskell/haskell-language-server/pull/1479)) by @wz1000 764- Less aggressive refine tactic 765([#1475](https://github.com/haskell/haskell-language-server/pull/1475)) by @isovector 766- Enable hls-tactics-plugin tests in CI 767([#1474](https://github.com/haskell/haskell-language-server/pull/1474)) by @isovector 768- Generate a more robust top-level binding Provenance 769([#1473](https://github.com/haskell/haskell-language-server/pull/1473)) by @isovector 770- Add new variables to the extract when doing intros 771([#1472](https://github.com/haskell/haskell-language-server/pull/1472)) by @isovector 772- Bump up hlint plugin version 773([#1469](https://github.com/haskell/haskell-language-server/pull/1469)) by @jneira 774- Make sure split respects GADT equalities 775([#1466](https://github.com/haskell/haskell-language-server/pull/1466)) by @isovector 776- Add "Split all function arguments" code action 777([#1464](https://github.com/haskell/haskell-language-server/pull/1464)) by @isovector 778- Add "Refine hole" code action 779([#1463](https://github.com/haskell/haskell-language-server/pull/1463)) by @isovector 780- Implement "use constructor" code action 781([#1461](https://github.com/haskell/haskell-language-server/pull/1461)) by @isovector 782- Remove tactics src-dir from func-test 783([#1460](https://github.com/haskell/haskell-language-server/pull/1460)) by @isovector 784- Make sure to give the correct DynFlags to the recompilation checker 785([#1459](https://github.com/haskell/haskell-language-server/pull/1459)) by @pepeiborra 786- Don't use record notation for single-field datacons in tactics 787([#1456](https://github.com/haskell/haskell-language-server/pull/1456)) by @isovector 788- update IRC channel name in plugin tutorial 789([#1455](https://github.com/haskell/haskell-language-server/pull/1455)) by @shapr 790- Update readme and cabal for Wingman 791([#1454](https://github.com/haskell/haskell-language-server/pull/1454)) by @isovector 792- Remove recursion tracking from TacticState 793([#1453](https://github.com/haskell/haskell-language-server/pull/1453)) by @isovector 794- Use runtime ghc libdir for ghc-exactprint and ghc-8.10 795([#1451](https://github.com/haskell/haskell-language-server/pull/1451)) by @jneira 796- Simplify tactics state structure 797([#1449](https://github.com/haskell/haskell-language-server/pull/1449)) by @isovector 798- Extract the qualified name from already imported module 799([#1445](https://github.com/haskell/haskell-language-server/pull/1445)) by @berberman 800- Correct megaparsec lower bound 801([#1441](https://github.com/haskell/haskell-language-server/pull/1441)) by @jneira 802- Reformat all files 803([#1439](https://github.com/haskell/haskell-language-server/pull/1439)) by @Ailrun 804- Customize the unitId used for the fake internal component 805([#1435](https://github.com/haskell/haskell-language-server/pull/1435)) by @pepeiborra 806- Minor performance optimizations 807([#1432](https://github.com/haskell/haskell-language-server/pull/1432)) by @pepeiborra 808 809## 1.0.0 810 811This is the celebratory release of Haskell Language Server 1.0.0! 812This release includes a lot of internal changes, bug fixes, leaks plugged, and performance improvements, thanks to all our contributors. 813Among others, 814- We added the support for GHC 8.10.4, and removed the support for GHC 8.10.1 815 Afterward, we will support upmost 3 patch versions for each minor version of GHC, if no special situation happens. 816- 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. 817- Now Eval plugin uses the parsing mechanism of GHC and becomes more stable. 818- We supports a code action to disambiguate the same identifiers from multiple imports. 819 ![gif](https://user-images.githubusercontent.com/21860/106387152-bfd16d80-641b-11eb-9394-c553fad5794b.gif) 820- We supports a code action to hide shadowed identifiers from import. 821 ![gif](https://user-images.githubusercontent.com/26041945/107199055-e05b8200-6a30-11eb-9198-448ab8604cc0.gif) 822- 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. 823- Brittany and Stylish-haskell plugins now load language extensions from the ghc session. 824- Tactic plugin supports eta-reduction and Agda-like split tactic and can create a function with piecewise definitions. 825 ![gif](https://user-images.githubusercontent.com/307223/107991243-0af68f00-6f8b-11eb-9ff9-3e9a7363ba5f.gif) 826 827### Pull requests merged for 1.0.0 828 829- Correctly split non-varpats in tactics 830([#1427](https://github.com/haskell/haskell-language-server/pull/1427)) by @isovector 831- Move tactics tests to be standalone 832([#1425](https://github.com/haskell/haskell-language-server/pull/1425)) by @isovector 833- Fix the handling of default HLS config again 834([#1419](https://github.com/haskell/haskell-language-server/pull/1419)) by @pepeiborra 835- Patch pre-commit-hook to work with GHCIDE/hls-plugin-api codes 836([#1418](https://github.com/haskell/haskell-language-server/pull/1418)) by @Ailrun 837- Refactor pragmas plugin 838([#1417](https://github.com/haskell/haskell-language-server/pull/1417)) by @berberman 839- Add a test for #1376 840([#1414](https://github.com/haskell/haskell-language-server/pull/1414)) by @pepeiborra 841- Reenable HLS example benchmark 842([#1412](https://github.com/haskell/haskell-language-server/pull/1412)) by @pepeiborra 843- Fix pre-commit-hook 844([#1411](https://github.com/haskell/haskell-language-server/pull/1411)) by @Ailrun 845- Plugin Config: Add maxCompletions to JSON instance 846([#1407](https://github.com/haskell/haskell-language-server/pull/1407)) by @andys8 847- Remove custom 'trim' implementation 848([#1406](https://github.com/haskell/haskell-language-server/pull/1406)) by @fendor 849- Update to hie-bios 0.7.4 850([#1405](https://github.com/haskell/haskell-language-server/pull/1405)) by @fendor 851- Prepare 1.0.0 release 852([#1402](https://github.com/haskell/haskell-language-server/pull/1402)) by @Ailrun 853- Fix install script after hlint fixes 854([#1400](https://github.com/haskell/haskell-language-server/pull/1400)) by @jhrcek 855- Use last with-utf8 to fix #1372 856([#1399](https://github.com/haskell/haskell-language-server/pull/1399)) by @jneira 857- Implement Tactic Featuresets 858([#1398](https://github.com/haskell/haskell-language-server/pull/1398)) by @isovector 859- Update hie-bios 860([#1397](https://github.com/haskell/haskell-language-server/pull/1397)) by @Ailrun 861- Bump plugins versions 862([#1392](https://github.com/haskell/haskell-language-server/pull/1392)) by @pepeiborra 863- Split main Tactics module 864([#1391](https://github.com/haskell/haskell-language-server/pull/1391)) by @isovector 865- Prepare ghcide release 0.7.5 866([#1389](https://github.com/haskell/haskell-language-server/pull/1389)) by @pepeiborra 867- Disable HLS benchmark example 868([#1388](https://github.com/haskell/haskell-language-server/pull/1388)) by @pepeiborra 869- Fix GenChangelog script format 870([#1387](https://github.com/haskell/haskell-language-server/pull/1387)) by @Ailrun 871- Tone down some logInfos to logDebug 872([#1385](https://github.com/haskell/haskell-language-server/pull/1385)) by @pepeiborra 873- Add a pre commit hook for code formatting 874([#1384](https://github.com/haskell/haskell-language-server/pull/1384)) by @Ailrun 875- remove unsafePerformIO 876([#1383](https://github.com/haskell/haskell-language-server/pull/1383)) by @pepeiborra 877- Use object code for TH+UnboxedTuples/Sums 878([#1382](https://github.com/haskell/haskell-language-server/pull/1382)) by @wz1000 879- Update stack resolvers 8.10.3/8.10.4 880([#1380](https://github.com/haskell/haskell-language-server/pull/1380)) by @jneira 881- Agda-style case splitting for tactics 882([#1379](https://github.com/haskell/haskell-language-server/pull/1379)) by @isovector 883- Configuration for initial ghc lib dir 884([#1378](https://github.com/haskell/haskell-language-server/pull/1378)) by @pepeiborra 885- Use lsp-1.1.1 886([#1377](https://github.com/haskell/haskell-language-server/pull/1377)) by @wz1000 887- use implicit-hie cradle from setInitialDynFlags 888([#1375](https://github.com/haskell/haskell-language-server/pull/1375)) by @wz1000 889- Add test for multi-component goto def and make runLanguageServer responsible for hiedb 890([#1373](https://github.com/haskell/haskell-language-server/pull/1373)) by @wz1000 891- Show window message when auto extending import lists 892([#1371](https://github.com/haskell/haskell-language-server/pull/1371)) by @berberman 893- Another extension that Brittany cannot parse 894([#1369](https://github.com/haskell/haskell-language-server/pull/1369)) by @pepeiborra 895- Clean dependency data structures and speed up GetDependencies 896([#1368](https://github.com/haskell/haskell-language-server/pull/1368)) by @pepeiborra 897- Catch GHC errors in listing module names 898([#1367](https://github.com/haskell/haskell-language-server/pull/1367)) by @berberman 899- Lose the ghc-lib flag 900([#1366](https://github.com/haskell/haskell-language-server/pull/1366)) by @pepeiborra 901- Make StylishHaskell plugin recognize extensions from DynFlags 902([#1364](https://github.com/haskell/haskell-language-server/pull/1364)) by @Ailrun 903- Pass language extensions to Brittany 904([#1362](https://github.com/haskell/haskell-language-server/pull/1362)) by @pepeiborra 905- Sanitize the setup of the default Ide.Config 906([#1361](https://github.com/haskell/haskell-language-server/pull/1361)) by @pepeiborra 907- Fix completion snippets on DuplicateRecordFields 908([#1360](https://github.com/haskell/haskell-language-server/pull/1360)) by @berberman 909- Index files on first open 910([#1358](https://github.com/haskell/haskell-language-server/pull/1358)) by @wz1000 911- Make find-definition work better with multi-components 912([#1357](https://github.com/haskell/haskell-language-server/pull/1357)) by @wz1000 913- Construct record datacons in tactics 914([#1356](https://github.com/haskell/haskell-language-server/pull/1356)) by @isovector 915- Don't insert parentheses for top-level tactics holes 916([#1352](https://github.com/haskell/haskell-language-server/pull/1352)) by @isovector 917- Simplify extracts after running tactics 918([#1351](https://github.com/haskell/haskell-language-server/pull/1351)) by @isovector 919- Fix code actions regression 920([#1349](https://github.com/haskell/haskell-language-server/pull/1349)) by @pepeiborra 921- Refactor the hypothesis type in hls-tactics-plugin 922([#1347](https://github.com/haskell/haskell-language-server/pull/1347)) by @isovector 923- Fix the Eval plugin sporadic exceptions 924([#1345](https://github.com/haskell/haskell-language-server/pull/1345)) by @pepeiborra 925- Eval Plugin: Proper handling of flags in `:set` 926([#1343](https://github.com/haskell/haskell-language-server/pull/1343)) by @konn 927- Cancel earlier queued benchmarks 928([#1339](https://github.com/haskell/haskell-language-server/pull/1339)) by @pepeiborra 929- Default main for ghcide 930([#1338](https://github.com/haskell/haskell-language-server/pull/1338)) by @pepeiborra 931- Fix duplication of code actions for adding NamedFieldPuns 932([#1334](https://github.com/haskell/haskell-language-server/pull/1334)) by @berberman 933- Bump explicit-imports plugin 934([#1333](https://github.com/haskell/haskell-language-server/pull/1333)) by @pepeiborra 935- Add support for ghc-8.10.4 and drop it for ghc-8.10.1 936([#1331](https://github.com/haskell/haskell-language-server/pull/1331)) by @jneira 937- Prepare ghcide v0.7.4 release 938([#1328](https://github.com/haskell/haskell-language-server/pull/1328)) by @pepeiborra 939- Add a new benchmark example to characterise multi-component performance 940([#1326](https://github.com/haskell/haskell-language-server/pull/1326)) by @pepeiborra 941- [shake-bench] extract project dependencies action (for the HEAD binary) 942([#1325](https://github.com/haskell/haskell-language-server/pull/1325)) by @pepeiborra 943- [shake-bench] collect eventlogs 944([#1324](https://github.com/haskell/haskell-language-server/pull/1324)) by @pepeiborra 945- [benchmark] add warmups 946([#1323](https://github.com/haskell/haskell-language-server/pull/1323)) by @pepeiborra 947- Add code action for hiding shadowed identifiers from imports 948([#1322](https://github.com/haskell/haskell-language-server/pull/1322)) by @berberman 949- Parallelize benchmark CI 950([#1320](https://github.com/haskell/haskell-language-server/pull/1320)) by @pepeiborra 951- Fix space leak on cradle reloads 952([#1316](https://github.com/haskell/haskell-language-server/pull/1316)) by @pepeiborra 953- [benchmarks] speed up CI 954([#1315](https://github.com/haskell/haskell-language-server/pull/1315)) by @pepeiborra 955- [benchmark] check digests for input files only 956([#1314](https://github.com/haskell/haskell-language-server/pull/1314)) by @pepeiborra 957- Add link to hackage package to readme 958([#1313](https://github.com/haskell/haskell-language-server/pull/1313)) by @expipiplus1 959- Splice Plugin: preparatory version bump for the next (not 0.9.0) HLS release 960([#1312](https://github.com/haskell/haskell-language-server/pull/1312)) by @konn 961- hls-splice-plugin-0.3.0.0-prepare 962([#1311](https://github.com/haskell/haskell-language-server/pull/1311)) by @konn 963- Trigger extending import only when the item is not in scope 964([#1309](https://github.com/haskell/haskell-language-server/pull/1309)) by @berberman 965- Bum up hls-eval-plugin to 0.2 966([#1305](https://github.com/haskell/haskell-language-server/pull/1305)) by @jneira 967- Don't extend import list with child if the parent has been imported as (..) 968([#1302](https://github.com/haskell/haskell-language-server/pull/1302)) by @berberman 969- Prepare hls hlint plugin 0.2.0 970([#1296](https://github.com/haskell/haskell-language-server/pull/1296)) by @jneira 971- Import disambiguation: Corrects handling of fully-applied and one-sided sectioned operators in qualifying strategy 972([#1294](https://github.com/haskell/haskell-language-server/pull/1294)) by @konn 973- hls-splice-plugin-0.2.0.0 974([#1293](https://github.com/haskell/haskell-language-server/pull/1293)) by @konn 975- Bump haddock comments plugin to 0.1.1 976([#1292](https://github.com/haskell/haskell-language-server/pull/1292)) by @berberman 977- FindImports typo (minor) 978([#1291](https://github.com/haskell/haskell-language-server/pull/1291)) by @andys8 979- Bump up hls-plugin-api to 0.7.0 980([#1290](https://github.com/haskell/haskell-language-server/pull/1290)) by @jneira 981- Prepare ghcide v0.7.3 release 982([#1289](https://github.com/haskell/haskell-language-server/pull/1289)) by @pepeiborra 983- hls-retrie-plugin 0.1.1.0 984([#1288](https://github.com/haskell/haskell-language-server/pull/1288)) by @pepeiborra 985- Upgrade to lsp-1.0 986([#1284](https://github.com/haskell/haskell-language-server/pull/1284)) by @wz1000 987- Update IRC Name in README 988([#1275](https://github.com/haskell/haskell-language-server/pull/1275)) by @fendor 989- Restore code actions order 990([#1273](https://github.com/haskell/haskell-language-server/pull/1273)) by @pepeiborra 991- Prepare 0.9.0 992([#1271](https://github.com/haskell/haskell-language-server/pull/1271)) by @jneira 993- Reenable auto extend imports and drop snippets for infix completions 994([#1266](https://github.com/haskell/haskell-language-server/pull/1266)) by @pepeiborra 995- ghcide: Implements a CodeAction to disambiguate ambiguous symbols 996([#1264](https://github.com/haskell/haskell-language-server/pull/1264)) by @konn 997- Doctest comment parsing using module annotations in Eval Plugin 998([#1232](https://github.com/haskell/haskell-language-server/pull/1232)) by @konn 999- Apply some hlint suggestions, silence some others. 1000([#1227](https://github.com/haskell/haskell-language-server/pull/1227)) by @peterwicksstringfield 1001- References via `hiedb` 1002([#704](https://github.com/haskell/haskell-language-server/pull/704)) by @wz1000 1003- Use default config on missing configuration section 1004([#459](https://github.com/haskell/haskell-language-server/pull/459)) by @aufarg 1005 1006## 0.9.0 1007 1008This release includes lot of refactorings and bug fixes over existing features, hlint and eval plugins among others. 1009It contains a fix for a bug in ghcide involving stale diagnostics (#1204). 1010 1011The list of contributors continues to show healthy growth, many thanks to you all! 1012 1013And remember, we have a new brand logo, courtesy of @Ailrun :slightly_smiling_face: 1014 1015![haskell-language-server](https://github.com/haskell/haskell-language-server/raw/master/docs/logos/logo-256.png) 1016 1017### Pull requests merged for 0.9.0 1018 1019- Do not error out on failed rewrite 1020([#1269](https://github.com/haskell/haskell-language-server/pull/1269)) by @pepeiborra 1021- Tighten dependency on apply-refact 1022([#1268](https://github.com/haskell/haskell-language-server/pull/1268)) by @hololeap 1023- Add the new logos 1024([#1267](https://github.com/haskell/haskell-language-server/pull/1267)) by @Ailrun 1025- Fix a bug in completions 1026([#1265](https://github.com/haskell/haskell-language-server/pull/1265)) by @pepeiborra 1027- Produce heap profiles the old fashioned way, from .hp files 1028([#1261](https://github.com/haskell/haskell-language-server/pull/1261)) by @pepeiborra 1029- Break down ghcide functionality in HLS plugins 1030([#1257](https://github.com/haskell/haskell-language-server/pull/1257)) by @pepeiborra 1031- Enforce max completions over all plugins 1032([#1256](https://github.com/haskell/haskell-language-server/pull/1256)) by @pepeiborra 1033- Reorder code actions to put remove redundant imports first 1034([#1255](https://github.com/haskell/haskell-language-server/pull/1255)) by @pepeiborra 1035- Update bench.yml to include all the relevant artifacts 1036([#1254](https://github.com/haskell/haskell-language-server/pull/1254)) by @pepeiborra 1037- Benchmarks: generate heap profiles 1038([#1253](https://github.com/haskell/haskell-language-server/pull/1253)) by @pepeiborra 1039- Add gh workflows badges 1040([#1251](https://github.com/haskell/haskell-language-server/pull/1251)) by @jneira 1041- Add dynamic linking common issue 1042([#1249](https://github.com/haskell/haskell-language-server/pull/1249)) by @jneira 1043- Add license for hls-tactics-plugin 1044([#1248](https://github.com/haskell/haskell-language-server/pull/1248)) by @isovector 1045- Use exact print to extend import lists 1046([#1246](https://github.com/haskell/haskell-language-server/pull/1246)) by @berberman 1047- Test apply-refact with TypeApplications 1048([#1244](https://github.com/haskell/haskell-language-server/pull/1244)) by @jneira 1049- Add non reversable pragma completion 1050([#1243](https://github.com/haskell/haskell-language-server/pull/1243)) by @Ailrun 1051- Delete redundant "category: Development". 1052([#1241](https://github.com/haskell/haskell-language-server/pull/1241)) by @peterwicksstringfield 1053- Complete the No- variants of language extensions and Strict extension 1054([#1238](https://github.com/haskell/haskell-language-server/pull/1238)) by @mrBliss 1055- Add code actions for disabling a warning in the current file 1056([#1235](https://github.com/haskell/haskell-language-server/pull/1235)) by @georgefst 1057- Change packages metadata and rename tactics subfolder 1058([#1234](https://github.com/haskell/haskell-language-server/pull/1234)) by @jneira 1059- Fix the bug that generating comments would duplicate existing comments 1060([#1233](https://github.com/haskell/haskell-language-server/pull/1233)) by @berberman 1061- Delete global hie.yaml config 1062([#1230](https://github.com/haskell/haskell-language-server/pull/1230)) by @jneira 1063- Easy hlint fixes 1064([#1226](https://github.com/haskell/haskell-language-server/pull/1226)) by @peterwicksstringfield 1065- Use the runtime ghc libdir for ghc-exactprint 1066([#1225](https://github.com/haskell/haskell-language-server/pull/1225)) by @jneira 1067- Add note in README/Tutorial regarding CPP support 1068([#1224](https://github.com/haskell/haskell-language-server/pull/1224)) by @tittoassini 1069- Test and fix for issue 1213 1070([#1223](https://github.com/haskell/haskell-language-server/pull/1223)) by @tittoassini 1071- Add traces for HLS providers 1072([#1222](https://github.com/haskell/haskell-language-server/pull/1222)) by @pepeiborra 1073- Use exact print for suggest missing constraint code actions 1074([#1221](https://github.com/haskell/haskell-language-server/pull/1221)) by @pepeiborra 1075- Fix changelog dates 1076([#1220](https://github.com/haskell/haskell-language-server/pull/1220)) by @pepeiborra 1077- Ignore .shake folder 1078([#1219](https://github.com/haskell/haskell-language-server/pull/1219)) by @pepeiborra 1079- Limit completions to top 40 1080([#1218](https://github.com/haskell/haskell-language-server/pull/1218)) by @pepeiborra 1081- Parenthesise type operators when extending import lists 1082([#1212](https://github.com/haskell/haskell-language-server/pull/1212)) by @mrBliss 1083- Expose shake options used 1084([#1209](https://github.com/haskell/haskell-language-server/pull/1209)) by @pepeiborra 1085- Prepare ghcide release v0.7.1 1086([#1207](https://github.com/haskell/haskell-language-server/pull/1207)) by @pepeiborra 1087- Documentation for the Eval Plugin 1088([#1206](https://github.com/haskell/haskell-language-server/pull/1206)) by @tittoassini 1089- Stale diagnostics fix 1090([#1204](https://github.com/haskell/haskell-language-server/pull/1204)) by @pepeiborra 1091- Extract Development.IDE.GHC.ExactPrint 1092([#1203](https://github.com/haskell/haskell-language-server/pull/1203)) by @pepeiborra 1093- Fix bug in Retrie "fold/unfold in local file" commands 1094([#1202](https://github.com/haskell/haskell-language-server/pull/1202)) by @pepeiborra 1095- Minor eval plugin fixes 1096([#1199](https://github.com/haskell/haskell-language-server/pull/1199)) by @tittoassini 1097- Disable win 8.6.4 job 1098([#1198](https://github.com/haskell/haskell-language-server/pull/1198)) by @jneira 1099- Add custom cache layer for session loading 1100([#1197](https://github.com/haskell/haskell-language-server/pull/1197)) by @fendor 1101- Use completionSnippetsOn flag 1102([#1195](https://github.com/haskell/haskell-language-server/pull/1195)) by @takoeight0821 1103- Remove runs dropped by #1173 1104([#1194](https://github.com/haskell/haskell-language-server/pull/1194)) by @jneira 1105- Remove undefined exports suggestions 1106([#1193](https://github.com/haskell/haskell-language-server/pull/1193)) by @kderme 1107- Update nixpkgs to ghc 8.10.3 1108([#1191](https://github.com/haskell/haskell-language-server/pull/1191)) by @pepeiborra 1109- Do not disable parallel GC 1110([#1190](https://github.com/haskell/haskell-language-server/pull/1190)) by @pepeiborra 1111- Switch module outline to useWtihStale 1112([#1189](https://github.com/haskell/haskell-language-server/pull/1189)) by @pepeiborra 1113- Fix sticky diagnostics 1114([#1188](https://github.com/haskell/haskell-language-server/pull/1188)) by @pepeiborra 1115- Fix class plugin cabal 1116([#1186](https://github.com/haskell/haskell-language-server/pull/1186)) by @Ailrun 1117- Update package description of haddock comments plugin 1118([#1185](https://github.com/haskell/haskell-language-server/pull/1185)) by @berberman 1119- Installation from Hackage - add README section 1120([#1183](https://github.com/haskell/haskell-language-server/pull/1183)) by @pepeiborra 1121- Preparation for Uploading Splice Plugin to Hackage 1122([#1182](https://github.com/haskell/haskell-language-server/pull/1182)) by @konn 1123- Preparation for uploading `hls-exactprint-utils` 1124([#1181](https://github.com/haskell/haskell-language-server/pull/1181)) by @konn 1125- Complete hls-hlint-plugin package metadata 1126([#1180](https://github.com/haskell/haskell-language-server/pull/1180)) by @jneira 1127- Benchmark improvements 1128([#1178](https://github.com/haskell/haskell-language-server/pull/1178)) by @pepeiborra 1129- Make adding missing constraint work in presence of 'forall' (fixes #1164) 1130([#1177](https://github.com/haskell/haskell-language-server/pull/1177)) by @jhrcek 1131- Prepare for Hackage 1132([#1176](https://github.com/haskell/haskell-language-server/pull/1176)) by @pepeiborra 1133- Test only last ghc minor version and fix windows cache 1134([#1173](https://github.com/haskell/haskell-language-server/pull/1173)) by @jneira 1135- Fix toMethodName bug of the Class plugin 1136([#1170](https://github.com/haskell/haskell-language-server/pull/1170)) by @Ailrun 1137- Quick fix for #1158 1138([#1166](https://github.com/haskell/haskell-language-server/pull/1166)) by @Ailrun 1139- Suggest adding pragmas for parse errors too 1140([#1165](https://github.com/haskell/haskell-language-server/pull/1165)) by @mrBliss 1141- Fix wrong component name of splice plugin in hie.yaml 1142([#1162](https://github.com/haskell/haskell-language-server/pull/1162)) by @berberman 1143- Revert "Auto cancel redundant workflows (attempt #2)" 1144([#1156](https://github.com/haskell/haskell-language-server/pull/1156)) by @pepeiborra 1145- Auto cancel redundant workflows (attempt #2) 1146([#1154](https://github.com/haskell/haskell-language-server/pull/1154)) by @pepeiborra 1147- Prepare 0.8.0 (versions) 1148([#1153](https://github.com/haskell/haskell-language-server/pull/1153)) by @jneira 1149- Streamline CircleCI jobs 1150([#1152](https://github.com/haskell/haskell-language-server/pull/1152)) by @pepeiborra 1151- Mergify: create configuration 1152([#1151](https://github.com/haskell/haskell-language-server/pull/1151)) by @jneira 1153- Bump haskell-lsp to 0.23 1154([#1146](https://github.com/haskell/haskell-language-server/pull/1146)) by @berberman 1155- Remove no longer needed git submodule update 1156([#1145](https://github.com/haskell/haskell-language-server/pull/1145)) by @jhrcek 1157- Enable more tests 1158([#1143](https://github.com/haskell/haskell-language-server/pull/1143)) by @peterwicksstringfield 1159- Update links to issues/PRs in ghcide tests. 1160([#1142](https://github.com/haskell/haskell-language-server/pull/1142)) by @peterwicksstringfield 1161- Fix #723 (Instance declarations in hs-boot files result in GHC errors) 1162([#781](https://github.com/haskell/haskell-language-server/pull/781)) by @nitros12 1163- Also suggest importing methods without parent class 1164([#766](https://github.com/haskell/haskell-language-server/pull/766)) by @mrBliss 1165- Delete unused utilities for controlling logging. 1166([#764](https://github.com/haskell/haskell-language-server/pull/764)) by @peterwicksstringfield 1167- Delete unused testdata 1168([#763](https://github.com/haskell/haskell-language-server/pull/763)) by @peterwicksstringfield 1169- Fix suggestAddTypeAnnotation regex 1170([#760](https://github.com/haskell/haskell-language-server/pull/760)) by @kderme 1171- Splice Plugin: expands TH splices and QuasiQuotes 1172([#759](https://github.com/haskell/haskell-language-server/pull/759)) by @konn 1173- Haddock comments plugin 1174([#673](https://github.com/haskell/haskell-language-server/pull/673)) by @berberman 1175- Leverage last apply-refact improvements in hlint plugin (include getParsedModuleWithComments in ghcide) 1176([#635](https://github.com/haskell/haskell-language-server/pull/635)) by @jneira 1177 1178## 0.8.0 1179 1180- This version adds support for ghc-8.10.3 1181- `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. 1182- It has a new brand plugin: hls-class-plugin, which helps to write class instances 1183 1184![gif](https://user-images.githubusercontent.com/12473268/103059293-af071f80-4572-11eb-963a-7e76b45f28b9.gif) 1185 1186- The eval plugin has been revamped, adding these new features: 1187 - Tests in both plain comments and Haddock comments 1188 - For Haddock comments: shows differences between latest and previous result 1189 - Setup section, executed before every test 1190 - Execution of a section/group of tests at the time 1191 - Property testing 1192 - Setup of GHC extensions 1193- A new tactic to generate automatically `Arbitrary` instances has been added to tactic plugin 1194- There had been lot of internal changes: 1195 - ghcide lives now directly in this repository 1196 - the test suite has been cleaned and improved (continuing the work done in 0.7.0) 1197 1198 1199Thanks to all contributors and happy new year! 1200 1201### Pull requests merged for 0.8.0 1202 1203- Ci fixes 1204([#783](https://github.com/haskell/haskell-language-server/pull/783)) by @pepeiborra 1205- Fix extend imports regression 1206([#769](https://github.com/haskell/haskell-language-server/pull/769)) by @pepeiborra 1207- Cleanup format testfiles 1208([#765](https://github.com/haskell/haskell-language-server/pull/765)) by @peterwicksstringfield 1209- Retry a failed cradle if the cradle descriptor changes 1210([#762](https://github.com/haskell/haskell-language-server/pull/762)) by @pepeiborra 1211- Perform memory measurement on SIGUSR1 1212([#761](https://github.com/haskell/haskell-language-server/pull/761)) by @pepeiborra 1213- Add ghc-8.10.3 support after merging ghcide repo 1214([#721](https://github.com/haskell/haskell-language-server/pull/721)) by @jneira 1215- Merge ghcide repository (replacing the submodule) 1216([#702](https://github.com/haskell/haskell-language-server/pull/702)) by @pepeiborra 1217- Invert the dependency between hls-plugin-api and ghcide 1218([#701](https://github.com/haskell/haskell-language-server/pull/701)) by @pepeiborra 1219- Move eval plugin to hls-eval-plugin 1220([#700](https://github.com/haskell/haskell-language-server/pull/700)) by @tittoassini 1221- Fix and enable progress message tests. 1222([#698](https://github.com/haskell/haskell-language-server/pull/698)) by @peterwicksstringfield 1223- Add a known tactic for writing arbitrary instances 1224([#695](https://github.com/haskell/haskell-language-server/pull/695)) by @isovector 1225- Introduce generic config for plugins 1226([#691](https://github.com/haskell/haskell-language-server/pull/691)) by @alanz 1227- Enable get type definition tests 1228([#690](https://github.com/haskell/haskell-language-server/pull/690)) by @peterwicksstringfield 1229- Fix ghc version for windows 8.10.2.2 in github build workflow 1230([#688](https://github.com/haskell/haskell-language-server/pull/688)) by @jneira 1231- Add plugins conditionally at compile time 1232([#687](https://github.com/haskell/haskell-language-server/pull/687)) by @jneira 1233- Implement basic Class plugin 1234([#661](https://github.com/haskell/haskell-language-server/pull/661)) by @Ailrun 1235- Extended Eval Plugin 1236([#438](https://github.com/haskell/haskell-language-server/pull/438)) by @tittoassini 1237 1238## 0.7.1 1239 1240- This is a minor bug fix release: 1241 - It fixes an issue that removed accidentally desugarer warnings (#676). 1242 - It disables auto extend import lists in completions, see #679. 1243 1244### Pull requests merged for 0.7.1 1245 1246- Disable auto extend import lists in completions. It fixes #679. 1247([#685](https://github.com/haskell/haskell-language-server/pull/685)) by @pepeiborra 1248- Restore kick (#676). It fixes #676. 1249([#677](https://github.com/haskell/haskell-language-server/pull/677)) by @wz1000 1250- README: Remove instructions to execute data target 1251([#675](https://github.com/haskell/haskell-language-server/pull/675)) by @andys8 1252- Add hlint tests over cpp, extensions and ignore hints 1253([#674](https://github.com/haskell/haskell-language-server/pull/674)) by @jneira 1254 1255## 0.7.0 1256 1257- This version contains mainly refactors and updates of upstream packages 1258- It bumps up some formatter versions: 1259 - ormolu is 0.1.4.1 1260 - fourmolu is 0.3.0.0 1261 - brittany is 0.13.1.0 1262- It uses last implicit-hie-cradle-0.3.0.2, with some [bug](https://github.com/Avi-D-coder/implicit-hie/issues/29) [fixes](https://github.com/Avi-D-coder/implicit-hie/issues/30) 1263- It uses last ghcide-0.6.0.1 with [improvements and bug fixes](https://github.com/haskell/ghcide/blob/master/CHANGELOG.md#060-2020-12-06): 1264 - Do not enable every "unnecessary" warning by default 1265 - Improvements over completions: 1266 - record fields 1267 - identifiers not in explicit import lists 1268 - extend explicit import list automatically 1269 1270Thanks to all haskell-language-server, ghcide and other upstream packages contributors (the list continue growing healthy) for make this release possible. 1271 1272### Pull requests merged for 0.7.0 1273 1274- Miscellanous fixes: correct tactic plugin package metadata and cabal.hie.yaml/stack.hie.yaml 1275([#672](https://github.com/haskell/haskell-language-server/pull/672)) by @berberman 1276- Remove unnecessary pluginId setting and user Better Map functions in tactics plugin 1277([#669](https://github.com/haskell/haskell-language-server/pull/669)) by @jhrcek 1278- Do not suggest explicitly disabled pragmas 1279([#666](https://github.com/haskell/haskell-language-server/pull/666)) by @berberman 1280- fixed hie.yaml.stack 1281([#664](https://github.com/haskell/haskell-language-server/pull/664)) by @tittoassini 1282- Add pragmas completions 1283([#662](https://github.com/haskell/haskell-language-server/pull/662)) by @gdevanla 1284- Enable code completion tests 1285([#657](https://github.com/haskell/haskell-language-server/pull/657)) by @peterwicksstringfield 1286- Enable highlight unittests 1287([#656](https://github.com/haskell/haskell-language-server/pull/656)) by @peterwicksstringfield 1288- Fix document symbols unit tests. 1289([#655](https://github.com/haskell/haskell-language-server/pull/655)) by @peterwicksstringfield 1290- Delete duplicate cabal clause for applyrefact2 1291([#654](https://github.com/haskell/haskell-language-server/pull/654)) by @peterwicksstringfield 1292- Add extra-source-files for split plugins 1293([#650](https://github.com/haskell/haskell-language-server/pull/650)) by @berberman 1294- [nix-shell] Actually use gitignore 1295([#649](https://github.com/haskell/haskell-language-server/pull/649)) by @pepeiborra 1296- idempotent command and code cleanup 1297([#648](https://github.com/haskell/haskell-language-server/pull/648)) by @tittoassini 1298- Split the Imports and Retrie plugins 1299([#647](https://github.com/haskell/haskell-language-server/pull/647)) by @pepeiborra 1300- Simplify and Bump implicit-hie version constraints 1301([#645](https://github.com/haskell/haskell-language-server/pull/645)) by @Avi-D-coder 1302- Fix and enable disabled code action unit tests, fix fallback handler 1303([#643](https://github.com/haskell/haskell-language-server/pull/643)) by @peterwicksstringfield 1304- Add Ghcide hie.yaml instruction for Stack users 1305([#641](https://github.com/haskell/haskell-language-server/pull/641)) by @Sir4ur0n 1306- Upgrade the Nix build system 1307([#639](https://github.com/haskell/haskell-language-server/pull/639)) by @pepeiborra 1308- No longer needed to build once for Stack 1309([#637](https://github.com/haskell/haskell-language-server/pull/637)) by @Sir4ur0n 1310- Preserve the last empty comment line after eval plugin 1311([#631](https://github.com/haskell/haskell-language-server/pull/631)) by @expipiplus1 1312- Update fourmolu to 0.3.0.0 1313([#624](https://github.com/haskell/haskell-language-server/pull/624)) by @gwils 1314- Add hspec-discover to build-tool-depends in tactics plugin 1315([#623](https://github.com/haskell/haskell-language-server/pull/623)) by @gwils 1316- Add build to ghc-8.10.2 and windows 1317([#619](https://github.com/haskell/haskell-language-server/pull/619)) by @jneira 1318- Module Name Plugin: Treat modules starting with lowercase as Main module 1319([#616](https://github.com/haskell/haskell-language-server/pull/616)) by @konn 1320- Bump ormolu to 0.1.4.1 1321([#614](https://github.com/haskell/haskell-language-server/pull/614)) by @AlistairB 1322- Fix fourmolu plugin inconsistent formatting 1323([#599](https://github.com/haskell/haskell-language-server/pull/599)) by @zweimach 1324- Hlint: bring over idea2Message for formatting 1325([#598](https://github.com/haskell/haskell-language-server/pull/598)) by @alanz 1326- Makes dictionary argument exclusion logic in Tactic plugin more robust 1327([#508](https://github.com/haskell/haskell-language-server/pull/508)) by @konn 1328 1329## 0.6.0 1330 13310.6.0 includes two brand new plugins! 1332 1333- [Hlint Plugin](https://github.com/haskell/haskell-language-server/pull/166): it integrates hlint diagnostics and lets you apply suggestions to fix them. 1334 1335![hls-hlint-demo](https://user-images.githubusercontent.com/54035/98731058-6ff38500-239d-11eb-8176-e4f69ef76fc2.gif) 1336 1337- [Module Name Plugin](https://github.com/haskell/haskell-language-server/pull/480): it makes easier create new modules and modify them, suggesting the appropiate module name as a code lens. 1338 1339![module-name-demo](https://user-images.githubusercontent.com/54035/98731198-a7623180-239d-11eb-8af0-73bd32b9b0b2.gif) 1340 1341This release also includes many improvements and bug fixes for the tactic plugin (see pull requests authored by @isovector for more details). 1342 1343We have updated two essential tools used by the ide: 1344 1345- `implicit-hie`: [to fix a bug](https://github.com/haskell/haskell-language-server/issues/498) present when loading cabal based projects with executables containing `other-modules` 1346 1347- `ghcide`: the ide uses [the just released version 0.5](https://github.com/haskell/ghcide/blob/master/CHANGELOG.md#050-2020-10-08) with many bug fixes and improvements, including: 1348 - code action to remove *all* redundant imports 1349 - improved support for Template Haskell 1350 - emit desugarer warnings 1351 1352### Pull requests merged for 0.6.0 1353 1354- Fix tasty rerun 1355([#570](https://github.com/haskell/haskell-language-server/pull/570)) by @jneira 1356- Bump up ghcide submodule to version 0.5.0 1357([#568](https://github.com/haskell/haskell-language-server/pull/568)) by @jneira 1358- Refactor tactics to track hypothesis provenance 1359([#557](https://github.com/haskell/haskell-language-server/pull/557)) by @isovector 1360- Use bash shell to allow its idioms 1361([#552](https://github.com/haskell/haskell-language-server/pull/552)) by @jneira 1362- Ignore flakey tactics test 1363([#546](https://github.com/haskell/haskell-language-server/pull/546)) by @isovector 1364- Better scoring metric for deriving safeHead 1365([#545](https://github.com/haskell/haskell-language-server/pull/545)) by @isovector 1366- Discover skolems in the hypothesis, not just goal 1367([#542](https://github.com/haskell/haskell-language-server/pull/542)) by @isovector 1368- [retrie] Fix code action title 1369([#538](https://github.com/haskell/haskell-language-server/pull/538)) by @pepeiborra 1370- Tactics support for using given constraints 1371([#534](https://github.com/haskell/haskell-language-server/pull/534)) by @isovector 1372- Add missing tactic subpackage in default stack.yaml 1373([#529](https://github.com/haskell/haskell-language-server/pull/529)) by @jneira 1374- Use implicit-hie-0.1.2.0 1375([#528](https://github.com/haskell/haskell-language-server/pull/528)) by @jneira 1376- Wait for diagnostics in tactics tests 1377([#525](https://github.com/haskell/haskell-language-server/pull/525)) by @isovector 1378- Fix a bug in tactics preventing split of split 1379([#520](https://github.com/haskell/haskell-language-server/pull/520)) by @isovector 1380- Use infix notation for destructing and splitting infix data cons 1381([#519](https://github.com/haskell/haskell-language-server/pull/519)) by @isovector 1382- Retry the build three times 1383([#518](https://github.com/haskell/haskell-language-server/pull/518)) by @jneira 1384- Separate tactics into its own package 1385([#516](https://github.com/haskell/haskell-language-server/pull/516)) by @isovector 1386- Add a Troubleshooting section to the README 1387([#507](https://github.com/haskell/haskell-language-server/pull/507)) by @michaelpj 1388- Add GitHub Actions CI for testing 1389([#504](https://github.com/haskell/haskell-language-server/pull/504)) by @bubba 1390- Fix stack build for ghc-8.8.3 failing on some machines 1391([#503](https://github.com/haskell/haskell-language-server/pull/503)) by @luntain 1392- Expand explanation of how to configure HLS 1393([#497](https://github.com/haskell/haskell-language-server/pull/497)) by @michaelpj 1394- Module Name Plugin 1395([#480](https://github.com/haskell/haskell-language-server/pull/480)) by @tittoassini 1396- Allow hole filling to deal with recursion 1397([#472](https://github.com/haskell/haskell-language-server/pull/472)) by @isovector 1398- Restrict editor config to Haskell file, to avoid affecting Makefiles or other tab-based formats 1399([#442](https://github.com/haskell/haskell-language-server/pull/442)) by @tittoassini 1400- Hlint plugin using ghc-lib 1401([#166](https://github.com/haskell/haskell-language-server/pull/166)) by @jneira 1402 1403## 0.5.1 1404 14050.5.1 is a minor bug fix release, mainly fixing an issue with the eval plugin 1406as well as upgrading the ormolu and stylish-haskell dependencies. 1407 1408### Pull requests merged for 0.5.1 1409 1410- Minimal fix for eval regression 1411([#488](https://github.com/haskell/haskell-language-server/pull/488)) by @pepeiborra 1412- Bump stylish-haskell to 0.12.2.0 1413([#482](https://github.com/haskell/haskell-language-server/pull/482)) by @maksbotan 1414- Improve the emacs instructions a little 1415([#479](https://github.com/haskell/haskell-language-server/pull/479)) by @michaelpj 1416- Update README: HLS is no longer in *very* early stage 1417([#475](https://github.com/haskell/haskell-language-server/pull/475)) by @Anrock 1418- Tactic plugin: Excludes Dictionary arguments in GADTs in Destruct Tactic 1419([#474](https://github.com/haskell/haskell-language-server/pull/474)) by @konn 1420- Update doom emacs install instructions in README 1421([#470](https://github.com/haskell/haskell-language-server/pull/470)) by @iyefrat 1422- Add ghc-8.10.2 to circleci 1423([#464](https://github.com/haskell/haskell-language-server/pull/464)) by @jneira 1424- Bump ormolu to 0.1.3.0 1425([#422](https://github.com/haskell/haskell-language-server/pull/422)) by @AlistairB 1426 1427## 0.5.0 1428 14290.5.0 comes with a new tactics plugin which provides case splitting, homomorphic case splitting, and lambda introduction: 1430 1431![Case splitting](https://user-images.githubusercontent.com/307223/92657198-3d4be400-f2a9-11ea-8ad3-f541c8eea891.gif) 1432 1433It can even attempt to fully fill a hole! 1434 1435![Attempt to fill in hole code action](https://user-images.githubusercontent.com/307223/94743611-82a18580-032c-11eb-9f13-8f46bc45f928.gif) 1436 1437The imports lens plugin also learnt a new code action to make all imports explicit: 1438 1439![Explicit imports code action](https://user-images.githubusercontent.com/2488460/94994815-1a53dd80-0592-11eb-8a12-ec704ae92385.gif) 1440 1441There'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](https://github.com/haskell/ghcide/releases/tag/v0.4.0) include: 1442 1443- The entire project is typechecked on load 1444- Reverse dependencies of a module are typechecked upon saving 1445- Code completion includes local terms 1446- Import code actions now also suggest open imports 1447- Documentation on hover shows for symbols defined in the same module 1448 1449If you're eager to try all this out, haskell-language-server is now also installable via [ghcup](https://www.haskell.org/ghcup/): 1450 1451```shell 1452$ ghcup install hls 1453``` 1454 1455### Pull requests merged for 0.5.0 1456 1457- Update GHC version 8.12 to 9.0 in README 1458([#460](https://github.com/haskell/haskell-language-server/pull/460)) by @maralorn 1459- Update Fourmolu to 0.2 1460([#455](https://github.com/haskell/haskell-language-server/pull/455)) by @georgefst 1461- Generate .gz tars of all the binaries for macOS and Linux in GitHub Actions 1462([#454](https://github.com/haskell/haskell-language-server/pull/454)) by @bubba 1463- install: create hls hardlinks instead of copies except on Windows 1464([#451](https://github.com/haskell/haskell-language-server/pull/451)) by @juhp 1465- wrapper: cd to --cwd earlier 1466([#448](https://github.com/haskell/haskell-language-server/pull/448)) by @ocharles 1467- Update README.md 1468([#446](https://github.com/haskell/haskell-language-server/pull/446)) by @moodmosaic 1469- Upate Emacs setup notes 1470([#440](https://github.com/haskell/haskell-language-server/pull/440)) by @gdevanla 1471- Use ghcide master and prepare hls-plugin-api-0.4.1.0 1472([#439](https://github.com/haskell/haskell-language-server/pull/439)) by @jneira 1473- Add a code action to make all imports explicit 1474([#436](https://github.com/haskell/haskell-language-server/pull/436)) by @pepeiborra 1475- Add docs on how to choose a formatter 1476([#432](https://github.com/haskell/haskell-language-server/pull/432)) by @googleson78 1477- Implement 'Attempt to fill hole' code action 1478([#431](https://github.com/haskell/haskell-language-server/pull/431)) by @TOTBWF 1479- Clarify that eval is a lens 1480([#428](https://github.com/haskell/haskell-language-server/pull/428)) by @Anrock 1481- Use implicit-hie-cradle-0.2.0.1 1482([#427](https://github.com/haskell/haskell-language-server/pull/427)) by @jneira 1483- [retrie] Fix uris in workspace edit 1484([#424](https://github.com/haskell/haskell-language-server/pull/424)) by @pepeiborra 1485- Separate paragraphs 1486([#423](https://github.com/haskell/haskell-language-server/pull/423)) by @jneira 1487- Include .editorconfig in the contributing section 1488([#420](https://github.com/haskell/haskell-language-server/pull/420)) by @jneira 1489- Mention the copy of executables wit ghc version 1490([#419](https://github.com/haskell/haskell-language-server/pull/419)) by @jneira 1491- Eval plugin: proper multilined results handling and command-name abbreviations 1492([#413](https://github.com/haskell/haskell-language-server/pull/413)) by @konn 1493- Retrie - calculate imports in the command handler 1494([#408](https://github.com/haskell/haskell-language-server/pull/408)) by @pepeiborra 1495- Progress reporting for Eval plugin 1496([#398](https://github.com/haskell/haskell-language-server/pull/398)) by @pepeiborra 1497- bump ghcide submodule 1498([#396](https://github.com/haskell/haskell-language-server/pull/396)) by @wz1000 1499- Fix cradles 1500([#393](https://github.com/haskell/haskell-language-server/pull/393)) by @pepeiborra 1501- Case splitting and lambda introduction 1502([#391](https://github.com/haskell/haskell-language-server/pull/391)) by @isovector 1503- Use stale data in explicit imports lens 1504([#383](https://github.com/haskell/haskell-language-server/pull/383)) by @pepeiborra 1505- Create hls-plugin-api and move plugins to exe 1506([#379](https://github.com/haskell/haskell-language-server/pull/379)) by @jneira 1507- Rebase on ghcide HEAD 1508([#378](https://github.com/haskell/haskell-language-server/pull/378)) by @pepeiborra 1509- README clarify how exactly to use code evaluation 1510([#377](https://github.com/haskell/haskell-language-server/pull/377)) by @DunetsNM 1511- Revise README.md 1512([#374](https://github.com/haskell/haskell-language-server/pull/374)) by @gihyeonsung 1513 1514## 0.4.0 1515 15160.4.0 introduces the import lens plugin, which can convert your import statements into qualified imports, or into an explicit import list: 1517 1518![Imports code lens](https://imgur.com/pX9kvY4.gif) 1519 1520The eval plugin has also learnt two new commands, `:type` and `:kind`: 1521 1522```haskell 1523{-# LANGUAGE TypeApplications #-} 1524foo :: Show a => a -> String 1525foo = show 1526 1527-- >>> :type foo @Int 1528-- foo @Int :: Int -> String 1529 1530-- >>> :type +v foo @Int 1531-- foo @Int :: Show Int => Int -> String 1532``` 1533 1534```haskell 1535-- >>> type N = 1 1536-- >>> type M = 40 1537-- >>> :kind N + M + 1 1538-- N + M + 1 :: Nat 1539 1540-- >>> type N = 1 1541-- >>> type M = 40 1542-- >>> :kind N + M + 1 1543-- N + M + 1 :: Nat 1544``` 1545 1546There 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. 1547 1548```shell 1549$ haskell-language-server --probe-tools 1550haskell-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) 1551Tool versions found on the $PATH 1552cabal: 3.2.0.0 1553stack: 2.3.3 1554ghc: 8.10.2 1555``` 1556 1557### Pull requests merged for 0.4.0 1558 1559- Bring over a [tutorial about how to add hls plugins](https://github.com/pepeiborra/hls-tutorial) 1560([#372](https://github.com/haskell/haskell-language-server/pull/372)) by @bubba 1561- Update the ghcide upstream to be in haskell/ghcide 1562([#370](https://github.com/haskell/haskell-language-server/pull/370)) by @alanz 1563- Add ISSUE_TEMPLATE for github 1564([#305](https://github.com/haskell/haskell-language-server/pull/305)) by @fendor 1565- Add use-package to the list of emacs packages 1566([#343](https://github.com/haskell/haskell-language-server/pull/343)) by @rgleichman 1567- Implements `:type [+v/+d]` in Eval Plugin 1568([#361](https://github.com/haskell/haskell-language-server/pull/361)) by @konn 1569- Bump bounds of hie-bios to 0.7.0 1570([#357](https://github.com/haskell/haskell-language-server/pull/357)) by @maralorn 1571- Fix ImportLens plugin to work with GHC 8.10 1572([#356](https://github.com/haskell/haskell-language-server/pull/356)) by @Ailrun 1573- Add single file rewrites and ignore unknown files 1574([#321](https://github.com/haskell/haskell-language-server/pull/321)) by @pepeiborra 1575- Do not suggest explicit import lists for qualified imports 1576([#354](https://github.com/haskell/haskell-language-server/pull/354)) by @expipiplus1 1577- Explicit imports lens (as seen on Twitter) 1578([#310](https://github.com/haskell/haskell-language-server/pull/310)) by @pepeiborra 1579- Adds `:kind` and `:kind!` commands to Eval Plugin 1580([#345](https://github.com/haskell/haskell-language-server/pull/345)) by @konn 1581- tech(nix): update niv and remove allowbroken 1582([#350](https://github.com/haskell/haskell-language-server/pull/350)) by @willbush 1583- Update VS Code Haskell URL/repo 1584([#338](https://github.com/haskell/haskell-language-server/pull/338)) by @Sir4ur0n 1585- doc(hack): Add explanation to hack and test HLS 1586([#329](https://github.com/haskell/haskell-language-server/pull/329)) by @Sir4ur0n 1587- Apply the module pragmas for evaluation 1588([#322](https://github.com/haskell/haskell-language-server/pull/322)) by @pepeiborra 1589- Copy working stack-8.6.5.yaml to stack.yaml 1590([#332](https://github.com/haskell/haskell-language-server/pull/332)) by @jneira 1591- tech(nix): Allow broken as retrie is marked as broken 1592([#331](https://github.com/haskell/haskell-language-server/pull/331)) by @Sir4ur0n 1593- feat(git): Add install/hie.yaml to gitignore 1594([#328](https://github.com/haskell/haskell-language-server/pull/328)) by @Sir4ur0n 1595- Replace wrong occurrences of "engine" by "server" 1596([#319](https://github.com/haskell/haskell-language-server/pull/319)) by @tchoutri 1597- Simplify coc.nvim instructions 1598([#315](https://github.com/haskell/haskell-language-server/pull/315)) by @oblitum 1599- Coc config file requires a {} nesting everything 1600([#317](https://github.com/haskell/haskell-language-server/pull/317)) by @hyiltiz 1601- Restrict opentelemetry version for stack builds 1602([#312](https://github.com/haskell/haskell-language-server/pull/312)) by @jneira 1603- Add support for ghc-8.10.2 1604([#308](https://github.com/haskell/haskell-language-server/pull/308)) by @jneira 1605- Return nothing if tool is not on the PATH 1606([#309](https://github.com/haskell/haskell-language-server/pull/309)) by @fendor 1607- Probe tools cli 1608([#306](https://github.com/haskell/haskell-language-server/pull/306)) by @fendor 1609- Add fourmolu plugin (attempt 2) and add Brittany for ghc-8.10.1 1610([#264](https://github.com/haskell/haskell-language-server/pull/264)) by @georgefst 1611 1612## 0.3.0 1613 16140.3.0 comes with two new plugins, retrie and fourmolu, provides binaries for 1615GHC 8.8.4, and comes with a host of bug fixes. 1616 1617The retrie plugin supports RULES, functions and type synonyms which can be 1618accessed through contextual code actions. 1619 1620Fourmolu can be used to format your code by setting the 1621`haskell.formattingProvider` field in your LSP configuration to 1622 1623```json 1624{ 1625 "haskell": { 1626 "formattingProvider": "fourmolu" 1627 } 1628} 1629``` 1630 1631The Brittany formatter is now also available on GHC 8.10.1. 1632 1633### Pull requests merged 1634 1635- Fix haddock parse error in install.hs 1636([#255](https://github.com/haskell/haskell-language-server/pull/255)) by @georgefst 1637- Ormolu flags 1638([#246](https://github.com/haskell/haskell-language-server/pull/246)) by @pepeiborra 1639- Ormolu fix 1640([#257](https://github.com/haskell/haskell-language-server/pull/257)) by @sureyeaah 1641- Remove redundant CircleCI steps 1642([#259](https://github.com/haskell/haskell-language-server/pull/259)) by @bubba 1643- Slow down Tasty by limiting it to -j1 1644([#261](https://github.com/haskell/haskell-language-server/pull/261)) by @bubba 1645- Remove hspec-expectations 1646([#260](https://github.com/haskell/haskell-language-server/pull/260)) by @bubba 1647- Remove a redundant caching step 1648([#262](https://github.com/haskell/haskell-language-server/pull/262)) by @Ailrun 1649- add hie.yaml to coc configuration 1650([#267](https://github.com/haskell/haskell-language-server/pull/267)) by @sureyeaah 1651- Initial Retrie plugin 1652([#266](https://github.com/haskell/haskell-language-server/pull/266)) by @pepeiborra 1653- Add exe extension to win executables 1654([#284](https://github.com/haskell/haskell-language-server/pull/284)) by @jneira 1655- Use wz1000/hls-3 ghcide branch 1656([#275](https://github.com/haskell/haskell-language-server/pull/275)) by @alanz 1657- Fix rename capability being declared 1658([#285](https://github.com/haskell/haskell-language-server/pull/285)) by @bubba 1659- Add CI job for 8.8.4 1660([#287](https://github.com/haskell/haskell-language-server/pull/287)) by @bubba 1661- Make the AGPL flag manual in cabal 1662([#250](https://github.com/haskell/haskell-language-server/pull/250)) by @fendor 1663- Bring in doc URL fix for Windows 1664([#289](https://github.com/haskell/haskell-language-server/pull/289)) by @bubba 1665- Bring in fix for libm on Linux static binaries 1666([#293](https://github.com/haskell/haskell-language-server/pull/293)) by @bubba 1667- Add fourmolu plugin (attempt 2) and add Brittany for ghc-8.10.1 1668([#264](https://github.com/haskell/haskell-language-server/pull/264)) by @georgefst 1669- Trying new hls-3 branch 1670([#300](https://github.com/haskell/haskell-language-server/pull/300)) by @alanz 1671 1672## 0.2.2 1673 1674This changes the configuration section from "languageServerHaskell" to "haskell" 1675to align it with vscode-haskell-1.0.0. Whilst the old section is still 1676supported for now, you should update your LSP configuration (which varies per 1677client) from 1678 1679```json 1680{ 1681 "languageServerHaskell": { 1682 "formattingProvider": "stylish-haskell" 1683 } 1684} 1685``` 1686 1687to 1688 1689```json 1690{ 1691 "haskell": { 1692 "formattingProvider": "stylish-haskell" 1693 } 1694} 1695``` 1696 1697### Pull requests merged for 0.2.2 1698 1699- Mention docs on hover feature in README 1700([#209](https://github.com/haskell/haskell-language-server/pull/209)) by @georgefst 1701- Add static binaries for ghc-8.8.4 1702([#224](https://github.com/haskell/haskell-language-server/pull/224)) by @bubba 1703- Rename the configuration section from languageServerHaskell => haskell 1704([#227](https://github.com/haskell/haskell-language-server/pull/227)) by @bubba 1705- Use -haddock for cabal and stack 1706([#214](https://github.com/haskell/haskell-language-server/pull/214)) by @jneira 1707- slightly better shell.nix for local development 1708([#235](https://github.com/haskell/haskell-language-server/pull/235)) by @pepeiborra 1709- Shell nix further steps 1710([#240](https://github.com/haskell/haskell-language-server/pull/240)) by @pepeiborra 1711- Add numeric-version option for wrapper and server 1712([#241](https://github.com/haskell/haskell-language-server/pull/241)) by @fendor 1713- Accept the legacy "languageServerHaskell" config name 1714([#243](https://github.com/haskell/haskell-language-server/pull/243)) by @bubba 1715- Fix for Eval plugin: Error from tests not reported 1716([#244](https://github.com/haskell/haskell-language-server/pull/244)) by @tittoassini 1717- Rename binaries before uploading 1718([#248](https://github.com/haskell/haskell-language-server/pull/248)) by @bubba 1719 1720## 0.2.1 1721 1722This release includes a new eval plugin that allows Haddock code examples to be 1723evaluated through a code lens. For example, the code below will now offer to 1724evaluate `intercalate " " example`, and will insert the output in the line 1725below. 1726 1727```haskell 1728example :: [String] 1729example = ["This is an example", "of", "interactive", "evaluation"] 1730 1731-- >>> intercalate " " example 1732-- "This is an example of interactive evaluation" 1733-- 1734``` 1735 1736This is also the first release to have binaries distributed alongside it. Some 1737behind the scene changes include the GHC library directory now being obtained on 1738the fly, so either `ghc`, `cabal` or `stack` will need to be present on your 1739PATH depending on your project. See `docs/releases.md` for more information. If 1740you find any issues with this, please let us know! 1741 1742### Pull requests merged for 0.2.1 1743 1744- Bump ormolu to 0.1.2.0 1745([#189](https://github.com/haskell/haskell-language-server/pull/189)) by @AlistairB 1746- Remove dependency on Cabal 1747([#195](https://github.com/haskell/haskell-language-server/pull/195)) by @bubba 1748- Fix extraneous extra-dep in stack-8.6.4.yaml 1749([#199](https://github.com/haskell/haskell-language-server/pull/199)) by @bubba 1750- Fix install script stack targets 1751([#203](https://github.com/haskell/haskell-language-server/pull/203)) by @jneira 1752- Add support for ghc-8.8.4 1753([#206](https://github.com/haskell/haskell-language-server/pull/206)) by @jneira 1754- Simple Eval plugin 1755([#191](https://github.com/haskell/haskell-language-server/pull/191)) by @pepeiborra 1756- Distributable binaries 1757([#165](https://github.com/haskell/haskell-language-server/pull/165)) by @bubba 1758 1759## 0.2 1760 1761- Use cabal-plan from Hackage 1762([#185](https://github.com/haskell/haskell-language-server/pull/185)) by @georgefst 1763- Bump ghcide to wz1000 hls-2 branch 1764([#184](https://github.com/haskell/haskell-language-server/pull/184)) by @alanz 1765- doc(preprocessor): Document the preprocessor limitation 1766([#177](https://github.com/haskell/haskell-language-server/pull/177)) by @Sir4ur0n 1767- Use shell.nix from Haskell-IDE-Engine 1768([#169](https://github.com/haskell/haskell-language-server/pull/169)) by @fendor 1769- Remove last occurrences of shake.yaml 1770([#163](https://github.com/haskell/haskell-language-server/pull/163)) by @fendor 1771- Use an unique install/stack.yaml 1772([#154](https://github.com/haskell/haskell-language-server/pull/154)) by @jneira 1773- Introduce golden testing 1774([#152](https://github.com/haskell/haskell-language-server/pull/152)) by @Ailrun 1775- Revert "Use bullet as separator instead of HR" 1776([#150](https://github.com/haskell/haskell-language-server/pull/150)) by @alanz 1777- feat(hie-bios): Multi-cradle, ignore directories 1778([#147](https://github.com/haskell/haskell-language-server/pull/147)) by @Sir4ur0n 1779- [Plugin] stylish-haskell formatter 1780([#146](https://github.com/haskell/haskell-language-server/pull/146)) by @Ailrun 1781- Separate ghcide tests and disable them for now 1782([#137](https://github.com/haskell/haskell-language-server/pull/137)) by @jneira 1783- Convert private lib in common stanza 1784([#136](https://github.com/haskell/haskell-language-server/pull/136)) by @jneira 1785- Add zlibc to readme 1786([#134](https://github.com/haskell/haskell-language-server/pull/134)) by @Sir4ur0n 1787- Complete editor integrations 1788([#132](https://github.com/haskell/haskell-language-server/pull/132)) by @jneira 1789- Remove inexistent component from hie.yaml.stack 1790([#131](https://github.com/haskell/haskell-language-server/pull/131)) by @jneira 1791- Bump to new mpickering/ghcide 1792([#130](https://github.com/haskell/haskell-language-server/pull/130)) by @alanz 1793- Update ghc-lib-parser version 1794([#129](https://github.com/haskell/haskell-language-server/pull/129)) by @jneira 1795- Remove redundant import 1796([#128](https://github.com/haskell/haskell-language-server/pull/128)) by @bubba 1797- Default the number of Shake threads to 0 (automatic) 1798([#127](https://github.com/haskell/haskell-language-server/pull/127)) by @bubba 1799- Added kakoune integration instructions 1800([#125](https://github.com/haskell/haskell-language-server/pull/125)) by @414owen 1801- Fix install script dev target 1802([#124](https://github.com/haskell/haskell-language-server/pull/124)) by @jneira 1803- Add plugin support for Rename providers 1804([#123](https://github.com/haskell/haskell-language-server/pull/123)) by @pepeiborra 1805- Add jobs for stack and cabal using ghc-8.10.1 1806([#120](https://github.com/haskell/haskell-language-server/pull/120)) by @jneira 1807- Add lower bound to tasty-ant-xml 1808([#119](https://github.com/haskell/haskell-language-server/pull/119)) by @jneira 1809- Fix build using brittany revision 1810([#117](https://github.com/haskell/haskell-language-server/pull/117)) by @jneira 1811- Use floskell released version 0.10.3 1812([#116](https://github.com/haskell/haskell-language-server/pull/116)) by @jneira 1813- Add emacs/doom-emacs integration sub-section 1814([#115](https://github.com/haskell/haskell-language-server/pull/115)) by @yuanw 1815- Port hie README partially 1816([#112](https://github.com/haskell/haskell-language-server/pull/112)) by @jneira 1817- Use cabal-helper-1.1, add stack-8.10.1.yaml and unify cabal.project's 1818([#108](https://github.com/haskell/haskell-language-server/pull/108)) by @jneira 1819- [#87] Fix completion via ghcide's `getCompletionsLSP` 1820([#107](https://github.com/haskell/haskell-language-server/pull/107)) by @korayal 1821- Create specific project file for ghc-8.10. 1822([#106](https://github.com/haskell/haskell-language-server/pull/106)) by @jneira 1823- Issue 5 - Move HIE Tests and convert to Tasty 1824([#105](https://github.com/haskell/haskell-language-server/pull/105)) by @jeffwindsor 1825- Hls update latest hie bios 1826([#100](https://github.com/haskell/haskell-language-server/pull/100)) by @fendor 1827- Update extra-deps to use latest fork version of shake 1828([#98](https://github.com/haskell/haskell-language-server/pull/98)) by @fendor 1829- Activate typechecking in non-lsp mode 1830([#95](https://github.com/haskell/haskell-language-server/pull/95)) by @jneira 1831- Fix haddock parsing errors 1832([#92](https://github.com/haskell/haskell-language-server/pull/92)) by @jneira 1833- Update for haskell-lsp 0.22 1834([#89](https://github.com/haskell/haskell-language-server/pull/89)) by @alanz 1835- Get building with ghc-8.10 1836([#83](https://github.com/haskell/haskell-language-server/pull/83)) by @bubba 1837 1838## 0.1 1839 1840### In this version 1841 1842- cabal to 2020-05-02T10:11:15Z 1843- stack-8.8.3 to lts-15.10 1844- stack to nightly-2020-05-01 1845 1846### Changes 1847 1848This is the initial version, so too many to list individually. 1849 1850The key point is that is now supports multi-component cradles, and has been in 1851daily use by the developers for some time. 1852 1853It still does not have feature parity with `haskell-ide-engine`, but it is 1854currently useful. 1855