Skip to content
This repository was archived by the owner on Oct 7, 2020. It is now read-only.

Commit 501cb28

Browse files
authored
Merge pull request mpickering#82 from fendor/merge-upstream
Merge upstream
2 parents 1a05e42 + b7dfd2b commit 501cb28

21 files changed

+144
-73
lines changed

Changelog.md

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,53 @@
1+
# 0.14.0.0
2+
3+
- Bump resolvers and deps `lts-14.16` for GHC 8.6.5.
4+
5+
Key deps updated
6+
- floskell-0.10.2
7+
- hlint-2.2.4
8+
9+
- Hack awful script for generating changelog
10+
([#1423](https://github.com/haskell/haskell-ide-engine/pull/1423), by @bubba)
11+
- Update README.md
12+
([#1472](https://github.com/haskell/haskell-ide-engine/pull/1472), by @Shenmin-Z)
13+
- Fix typos; should be non-semantic
14+
([#1469](https://github.com/haskell/haskell-ide-engine/pull/1469), by @bwignall)
15+
- Update the instructions for Spacemacs
16+
([#1466](https://github.com/haskell/haskell-ide-engine/pull/1466), by @sei40kr)
17+
- Relax bounds of shake and use latest hie resolver
18+
([#1464](https://github.com/haskell/haskell-ide-engine/pull/1464), by @jneira)
19+
- Update README.md
20+
([#1459](https://github.com/haskell/haskell-ide-engine/pull/1459), by @flip111)
21+
- Various improvements and fixes over shake install
22+
([#1452](https://github.com/haskell/haskell-ide-engine/pull/1452), by @jneira)
23+
- Update LSP options for new haskell-lsp-0.18
24+
([#1461](https://github.com/haskell/haskell-ide-engine/pull/1461), by @bubba)
25+
- README.md > vim/coc setup > last comma in the json object doesn't parse.
26+
([#1463](https://github.com/haskell/haskell-ide-engine/pull/1463), by @bChiquet)
27+
- Update README.md
28+
([#1458](https://github.com/haskell/haskell-ide-engine/pull/1458), by @flip111)
29+
- Bump haskell-lsp et al to 0.18.0.0
30+
([#1457](https://github.com/haskell/haskell-ide-engine/pull/1457), by @alanz)
31+
- Unit test over the liquid haskell supported version
32+
([#1449](https://github.com/haskell/haskell-ide-engine/pull/1449), by @jneira)
33+
- Adapt liquid haskell tests for version 0.8.6.2
34+
([#1440](https://github.com/haskell/haskell-ide-engine/pull/1440), by @alanz)
35+
- Ignore the PATH fix if it is not set
36+
([#1437](https://github.com/haskell/haskell-ide-engine/pull/1437), by @jneira)
37+
- Make sure the liquid haskell test files are generated for unit-test
38+
([#1438](https://github.com/haskell/haskell-ide-engine/pull/1438), by @alanz)
39+
- Drop stack support for GHC 8.2.2
40+
([#1430](https://github.com/haskell/haskell-ide-engine/pull/1430), by @fendor)
41+
- Register rename and implementation provider
42+
([#1427](https://github.com/haskell/haskell-ide-engine/pull/1427), by @bubba)
43+
- Fix snippets configuration option not working
44+
([#1424](https://github.com/haskell/haskell-ide-engine/pull/1424), by @bubba)
45+
46+
147
# 0.13.0.0
248

349
- Bump resolvers and deps `lts-14.11` for GHC 8.6.5, and
4-
`nightly-2019-09-21` for nightyly build, the last one to support GHC
50+
`nightly-2019-09-21` for nightly build, the last one to support GHC
551
8.6.5.
652

753
Key deps updated
@@ -120,7 +166,7 @@
120166
- Fix typos in Challenges.md
121167
([#1329](https://github.com/haskell/haskell-ide-engine/pull/1329), by @mb720)
122168

123-
- Remove unnecesary extra-dep unix-time
169+
- Remove unnecessary extra-dep unix-time
124170
([#1326](https://github.com/haskell/haskell-ide-engine/pull/1326), by @jneira)
125171

126172
- Use hlint-2.2
@@ -439,7 +485,7 @@ is a complex effort, and will take some time, but is being tackled by
439485

440486
- LSP mode is now the default, and the `--lsp` flag has no effect
441487
- The `--json` flag can be used for JSON transport
442-
- HIE now warns you if there is mismatch between the HIE GHC verison and the project GHC version
488+
- HIE now warns you if there is mismatch between the HIE GHC version and the project GHC version
443489
- Add Liquid Haskell support
444490
- Add support for hierarchical document symbols
445491
- Add many new types of code actions

GenChangelogs.hs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/usr/bin/env cabal
2+
{- cabal:
3+
build-depends: base, process, html-conduit, http-conduit, xml-conduit, text, containers
4+
-}
5+
6+
{-# LANGUAGE OverloadedStrings #-}
7+
8+
import Control.Monad
9+
import Data.Char
10+
import Data.List
11+
import qualified Data.Map.Lazy as M
12+
import Network.HTTP.Simple
13+
import System.Process
14+
import qualified Data.Text as T
15+
import qualified Data.Text.IO as T
16+
import Text.HTML.DOM
17+
import Text.XML.Cursor
18+
import Text.XML (Element(..))
19+
20+
main = do
21+
callCommand "git fetch --tags"
22+
tags <- filter (isPrefixOf "0.") . lines <$>
23+
readProcess "git" ["tag", "--list", "--sort=v:refname"] ""
24+
messages <- lines <$> readProcess "git" [ "log"
25+
, last tags <> "..HEAD"
26+
, "--merges"
27+
, "--reverse"
28+
, "--pretty=format:\"%s\""
29+
] ""
30+
31+
let -- try to get "1334" out of "merge PR #1334"
32+
prNums = map (filter isDigit) $
33+
map head $
34+
filter (not . null) $
35+
map (filter (isPrefixOf "#") . words) messages
36+
prUrls = map ("https://github.com/haskell/haskell-ide-engine/pull/" <>) prNums
37+
38+
(flip mapM_) prUrls $ \url -> do
39+
body <- getResponseBody <$> httpLBS (parseRequest_ url)
40+
let cursor = fromDocument (parseLBS body)
41+
42+
titles = (descendant >=> attributeIs "class" "js-issue-title" >=> child >=> content) cursor
43+
title = T.unpack $ T.strip $ head titles
44+
45+
checkAuthor :: Element -> Bool
46+
checkAuthor e = maybe False (T.isInfixOf "author") (M.lookup "class" (elementAttributes e))
47+
authors = (descendant >=> checkElement checkAuthor >=> child >=> content) cursor
48+
author = T.unpack $ T.strip $ authors !! 2 -- second author is the pr author
49+
50+
-- generate markdown
51+
putStrLn $ "- [" <> title <> "](" <> url <> ") (@" <> author <> ")"

README.md

Lines changed: 10 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ we talk to clients.__
2727
- [Installation from source](#installation-from-source)
2828
- [Common pre-requirements](#common-pre-requirements)
2929
- [Linux-specific pre-requirements](#linux-specific-pre-requirements)
30-
- [Windows-specific pre-requirements (optional)](#windows-specific-pre-requirements-optional)
30+
- [Windows-specific pre-requirements](#windows-specific-pre-requirements)
3131
- [Download the source code](#download-the-source-code)
3232
- [Building](#building)
3333
- [Install via cabal](#install-via-cabal)
@@ -48,7 +48,6 @@ we talk to clients.__
4848
- [Using HIE with Atom](#using-hie-with-atom)
4949
- [Using HIE with Emacs](#using-hie-with-emacs)
5050
- [Using HIE with Spacemacs](#using-hie-with-spacemacs)
51-
- [Using HIE with Spacemacs on Nix Based Projects](#using-hie-with-spacemacs-on-nix-based-projects)
5251
- [Using HIE with Oni](#using-hie-with-oni)
5352
- [Docs on hover/completion](#docs-on-hovercompletion)
5453
- [Contributing](#contributing)
@@ -171,18 +170,17 @@ sudo apt install libicu-dev libtinfo-dev libgmp-dev
171170
**Fedora**:
172171

173172
```bash
174-
sudo dnf install libicu-devel ncurses-devel
173+
sudo dnf install libicu-devel ncurses-devel # also zlib-devel if not already installed
175174
```
176175

177-
#### Windows-specific pre-requirements (optional)
176+
#### Windows-specific pre-requirements
178177

179-
In order to avoid problems with long paths on Windows you can do the following:
178+
In order to avoid problems with long paths on Windows you can do either one of the following:
180179

181-
1. In the `Local Group Policy Editor`: `Local Computer Policy -> Computer Configuration -> Administrative Templates -> System -> Filesystem` set `Enable Win32 long paths` to `Enabled` (Works
182-
only for Windows 10).
180+
1. Clone the `haskell-ide-engine` to a short path, for example the root of your logical drive (e.g. to
181+
`C:\hie`). If this doesn't work or you want to use a longer path, try the second option.
183182

184-
2. Clone the `haskell-ide-engine` to the root of your logical drive (e.g. to
185-
`C:\hie`)
183+
2. If the `Local Group Policy Editor` is available on your system, go to: `Local Computer Policy -> Computer Configuration -> Administrative Templates -> System -> Filesystem` set `Enable Win32 long paths` to `Enabled`. If you don't have the policy editor you can use regedit by using the following instructions [here](https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#enable-long-paths-in-windows-10-version-1607-and-later). You also need to configure git to allow longer paths by using unicode paths. To set this for all your git repositories use `git config --system core.longpaths true` (you probably need an administrative shell for this) or for just this one repository use `git config core.longpaths true`.
186184

187185
#### Download the source code
188186

@@ -224,7 +222,7 @@ For brevity, only the `stack`-based commands are presented in the following sect
224222

225223
Although you can use hie for stack based projects (those which have a `stack.yaml` in the project base directory) without having cabal installed, you will need it for cabal based projects (with only a `<projectName>.cabal` file or a `cabal.project` one in the project base directory).
226224

227-
You can install an appropiate cabal version using stack by running:
225+
You can install an appropriate cabal version using stack by running:
228226

229227
```bash
230228
stack ./install.hs stack-install-cabal
@@ -590,42 +588,13 @@ Install HIE, and then add the following to your `.spacemacs` config,
590588
;; ...
591589
dotspacemacs-configuration-layers
592590
'(
591+
(haskell :variables haskell-completion-backend 'lsp)
593592
lsp
594-
(haskell :variables ;; Or optionally just haskell without the variables.
595-
haskell-completion-backend 'ghci
596-
haskell-process-type 'stack-ghci)
597593
)
598-
dotspacemacs-additional-packages '(
599-
(lsp-haskell :location (recipe :fetcher github :repo "emacs-lsp/lsp-haskell"))
600-
)
601-
;; ...
602594
))
603595
```
604596

605-
and then activate [`lsp-haskell`](https://github.com/emacs-lsp/lsp-haskell) in your `user-config` section,
606-
607-
```lisp
608-
(defun dotspacemacs/user-config ()
609-
"..."
610-
(setq lsp-haskell-process-path-hie "hie-wrapper")
611-
(require 'lsp-haskell)
612-
(add-hook 'haskell-mode-hook #'lsp)
613-
)
614-
```
615-
616-
Now you should be able to use HIE in Spacemacs. I still recommend checking out [lsp-ui](https://github.com/emacs-lsp/lsp-ui) and [lsp-mode](https://github.com/emacs-lsp/lsp-mode).
617-
618-
### Using HIE with Spacemacs on Nix Based Projects
619-
620-
If you use HIE with spacemacs on nix-built haskell projects, you may want to try
621-
out [this spacemacs layer](https://github.com/benkolera/spacemacs-hie-nix). It
622-
has installation instructions which includes a nix expression to install
623-
everything that hie needs in your environment. It wraps the hie binary calls to
624-
use nix-sandbox to find the closest ancestor directory that has nixfiles.
625-
626-
It is still pretty new and may change drastically as the author understands the
627-
lsp, lsp-ui, lsp-haskell, hie stack a bit better. PRs and feedback are very
628-
welcome on the layer's repo if you find it useful and/or lacking in some way.
597+
Now you should be able to use HIE in Spacemacs.
629598

630599
### Using HIE with Oni
631600

docs/Build.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Each `stack-*.yaml` contains references to packages in the submodules. Calling `
3838

3939
`hie` depends on a correct environment in order to function properly:
4040

41-
* `cabal-install`: This dependency is required by `hie` to handle correctly projects that are not `stack` based (without `stack.yaml`). You can install an appropiate version using `stack` with the `stack-install-cabal` target.
41+
* `cabal-install`: This dependency is required by `hie` to handle correctly projects that are not `stack` based (without `stack.yaml`). You can install an appropriate version using `stack` with the `stack-install-cabal` target.
4242
* The `hoogle` database: `hoogle generate` needs to be called with the most-recent `hoogle` version.
4343

4444
### Steps to build `hie`

docs/Report-2015-12.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ Both of these are well in hand, and if anyone would like to join in the discussi
6262
- Create a diff type [#95](https://github.com/haskell/haskell-ide-engine/issues/95)
6363
- Replace logging package [#112](https://github.com/haskell/haskell-ide-engine/issues/112)
6464
- Split between haskell-ide-engine and haskell-plugin-api [#118](https://github.com/haskell/haskell-ide-engine/issues/118)
65-
- Document existance of `module-management` package and ghc-vis [#124](https://github.com/haskell/haskell-ide-engine/issues/124)
65+
- Document existence of `module-management` package and ghc-vis [#124](https://github.com/haskell/haskell-ide-engine/issues/124)
6666
- Provide ghc-modi transport? [#125](https://github.com/haskell/haskell-ide-engine/issues/125)
6767
- Sort out ghc-mod session management [#127](https://github.com/haskell/haskell-ide-engine/issues/127)
6868
- Git integration [#128](https://github.com/haskell/haskell-ide-engine/issues/128)

hie-plugin-api/Haskell/Ide/Engine/ModuleCache.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ deleteCachedModule uri = do
471471
-- | A ModuleCache is valid for the lifetime of a CachedModule
472472
-- It is generated on need and the cache is invalidated
473473
-- when a new CachedModule is loaded.
474-
-- Allows the caching of arbitary data linked to a particular
474+
-- Allows the caching of arbitrary data linked to a particular
475475
-- TypecheckedModule.
476476
-- TODO: this name is confusing, given GhcModuleCache. Change it
477477
class Typeable a => ModuleCache a where

hie-plugin-api/Haskell/Ide/Engine/PluginApi.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-- | This module provides an API that software intented to be
1+
-- | This module provides an API that software intended to be
22
-- integrated into HIE can use, so that they can make use of the
33
-- shared BIOS features.
44

hie-plugin-api/hie-plugin-api.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: hie-plugin-api
2-
version: 1.0.0.0
2+
version: 0.14.0.0
33
synopsis: Haskell IDE API for plugin communication
44
license: BSD3
55
license-file: LICENSE

install/hie-install.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ library
1919
, Env
2020
, Help
2121
build-depends: base >= 4.9 && < 5
22-
, shake == 0.17.8
22+
, shake >= 0.16.4 && < 0.19
2323
, directory
2424
, filepath
2525
, extra

install/shake.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Used to provide a different environment for the shake build script
2-
resolver: lts-13.18 # GHC 8.6.4
2+
resolver: lts-14.11 # GHC 8.6.5
33
packages:
44
- .
55

0 commit comments

Comments
 (0)