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