Skip to content

Commit 77dda30

Browse files
authored
Merge pull request #147 from Sir4ur0n/feat/multiCradleHieTemplates
Feature(hie-bios): Multi-cradle, ignore directories
2 parents 2186df0 + 27d3557 commit 77dda30

File tree

6 files changed

+99
-43
lines changed

6 files changed

+99
-43
lines changed

Diff for: README.md

+21-9
Original file line numberDiff line numberDiff line change
@@ -497,15 +497,27 @@ args = ["--lsp"]
497497

498498
### Hacking on haskell-language-server
499499

500-
Haskell-language-server can be used on its own project. We have supplied
501-
preset samples of `hie.yaml` files for stack and cabal, simply copy
502-
the appropriate template to `hie.yaml` and it should work.
500+
Haskell-language-server can be used on itself. We provide
501+
preset samples of `hie.yaml` for Cabal and Stack.
503502

504-
- `hie.yaml.cbl` for cabal
505-
- `hie.yaml.stack` for stack
503+
Note: the `./install/` folder is not directly tied to the project so it has dedicated `./install/hie.yaml.[cbl|stack]`
504+
templates.
506505

507-
Two sample `hie.yaml` files are provided, `hie.yaml.stack` for stack
508-
usage, `hie.yaml.cbl` for cabal. Simply copy the relevant one to be
509-
`hie.yaml` and it should work.
506+
#### Using Cabal
510507

511-
The developers tend to hang out at [our IRC channel](https://webchat.freenode.net/?channels=haskell-ide-engine) at `#haskell-ide-engine` on `freenode`.
508+
```shell
509+
$ cp hie.yaml.cbl hie.yaml
510+
$ cp install/hie.yaml.cbl install/hie.yaml
511+
```
512+
513+
#### Using Stack
514+
515+
Note: Stack project must also be built once until [this issue](https://github.com/commercialhaskell/stack/issues/5213) is fixed.
516+
517+
```shell
518+
$ cp hie.yaml.stack hie.yaml
519+
$ cp install/hie.yaml.stack install/hie.yaml
520+
$ stack build --test --no-run-tests
521+
$ cd install
522+
$ stack build
523+
```

Diff for: hie.yaml.cbl

+30-18
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,37 @@
22
# in hie, using cabal as the build system. To use is, copy it to a
33
# file called 'hie.yaml'
44
cradle:
5-
cabal:
5+
multi:
6+
- path: "./test/testdata/"
7+
config: { cradle: { none: } }
68

7-
- path: "./test/functional/"
8-
component: "haskell-language-server:func-test"
9+
- path: "./"
10+
config:
11+
cradle:
12+
cabal:
13+
- path: "./test/functional/"
14+
component: "haskell-language-server:func-test"
915

10-
- path: "./test/utils/"
11-
component: "haskell-language-server:func-test"
16+
- path: "./test/utils/"
17+
component: "haskell-language-server:func-test"
18+
19+
- path: "./exe/Main.hs"
20+
component: "haskell-language-server:exe:haskell-language-server"
21+
22+
- path: "./exe/Arguments.hs"
23+
component: "haskell-language-server:exe:haskell-language-server"
1224

13-
- path: "./exe/Main.hs"
14-
component: "haskell-language-server:exe:haskell-language-server"
25+
- path: "./exe/Wrapper.hs"
26+
component: "haskell-language-server:exe:haskell-language-server-wrapper"
27+
28+
- path: "./src"
29+
component: "lib:haskell-language-server"
1530

16-
- path: "./exe/Wrapper.hs"
17-
component: "haskell-language-server:exe:haskell-language-server-wrapper"
18-
19-
- path: "./src"
20-
component: "lib:haskell-language-server"
21-
22-
- path: "./ghcide/src"
23-
component: "ghcide:lib:ghcide"
24-
25-
- path: "./ghcide/exe"
26-
component: "ghcide:exe:ghcide"
31+
- path: "./.stack-work/"
32+
component: "lib:haskell-language-server"
33+
34+
- path: "./ghcide/src"
35+
component: "ghcide:lib:ghcide"
36+
37+
- path: "./ghcide/exe"
38+
component: "ghcide:exe:ghcide"

Diff for: hie.yaml.stack

+29-16
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,37 @@
22
# in hie, using stack as the build system. To use is, copy it to a
33
# file called 'hie.yaml'
44
cradle:
5-
stack:
6-
- path: "./test/functional/"
7-
component: "haskell-language-server:func-test"
5+
multi:
6+
- path: "./test/testdata/"
7+
config: { cradle: { none: } }
88

9-
- path: "./test/utils/"
10-
component: "haskell-language-server:func-test"
9+
- path: "./"
10+
config:
11+
cradle:
12+
stack:
13+
- path: "./test/functional/"
14+
component: "haskell-language-server:func-test"
1115

12-
- path: "./exe/Main.hs"
13-
component: "haskell-language-server:exe:haskell-language-server"
16+
- path: "./test/utils/"
17+
component: "haskell-language-server:func-test"
1418

15-
- path: "./exe/Wrapper.hs"
16-
component: "haskell-language-server:exe:haskell-language-server-wrapper"
19+
- path: "./exe/Main.hs"
20+
component: "haskell-language-server:exe:haskell-language-server"
21+
22+
- path: "./exe/Arguments.hs"
23+
component: "haskell-language-server:exe:haskell-language-server"
1724

18-
- path: "./src"
19-
component: "haskell-language-server:lib"
25+
- path: "./exe/Wrapper.hs"
26+
component: "haskell-language-server:exe:haskell-language-server-wrapper"
27+
28+
- path: "./src"
29+
component: "haskell-language-server:lib"
2030

21-
- path: "./ghcide/src"
22-
component: "ghcide:lib:ghcide"
23-
24-
- path: "./ghcide/exe"
25-
component: "ghcide:exe:ghcide"
31+
- path: "./.stack-work/"
32+
component: "haskell-language-server:lib"
33+
34+
- path: "./ghcide/src"
35+
component: "ghcide:lib:ghcide"
36+
37+
- path: "./ghcide/exe"
38+
component: "ghcide:exe:ghcide"

Diff for: install/hie.yaml.cbl

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
cradle:
2+
cabal:
3+
component: "lib:hls-install"

Diff for: install/hie.yaml.stack

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
cradle:
2+
stack:
3+
component: "hls-install:lib"

Diff for: install/stack.yaml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
resolver: lts-14.27 # Last 8.6.5
2+
3+
packages:
4+
- .
5+
6+
extra-deps:
7+
- cabal-install-parsers-0.3.0.1
8+
- Cabal-3.2.0.0
9+
- binary-instances-1.0.0.1
10+
- lukko-0.1.1.2
11+
12+
nix:
13+
packages: [ icu libcxx zlib ]

0 commit comments

Comments
 (0)