• Stars
    star
    201
  • Rank 194,491 (Top 4 %)
  • Language
    Haskell
  • License
    BSD 3-Clause "New...
  • Created over 4 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Auto generate a stack or cabal multi component hie.yaml file

implicit-hie

cd your-stack-or-cabal-package
stack install implicit-hie # or cabal install implicit-hie
gen-hie > hie.yaml

gen-hie should be run the root of a cabal or stack project. The config type (cabal or stack) is determined by the existence of dist-newstyle, .stack-work, stack.yaml, if none are found the default is cabal. You can use --cabal, or --stack options to override config type.

Cabal Multi project example

❯ git clone https://github.com/well-typed/optics.git
❯ cd optics
❯ gen-hie
cradle:
  cabal:
    - path: "indexed-profunctors/src"
      component: "lib:indexed-profunctors"

    - path: "optics-th/src"
      component: "lib:optics-th"

    - path: "optics-th/tests"
      component: "optics-th:test:optics-th-tests"

    - path: "optics-vl/src"
      component: "lib:optics-vl"

    - path: "codegen/./Subtypes.hs"
      component: "optics-codegen:exe:optics-codegen-subtypes"

    - path: "optics-core/src"
      component: "lib:optics-core"

    - path: "optics-sop/src"
      component: "lib:optics-sop"

    - path: "optics-extra/src"
      component: "lib:optics-extra"

    - path: "template-haskell-optics/src"
      component: "lib:template-haskell-optics"

    - path: "optics/src"
      component: "lib:optics"

    - path: "optics/tests"
      component: "optics:test:optics-tests"

    - path: "metametapost/src/Cli.hs"
      component: "metametapost:exe:metametapost-optics"

Features

All common Cabal and Stack configurations should just work. If you use more advanced features, the generated config may not be complete.

  • multi component cabal, stack projects
  • multiple executables under a single path
  • multiple paths provided to hs-source-dirs
  • lookup nested packages in cabal.project or stack.yaml
  • Handle Exe and Bench other-modules
  • common stanzas

Work, Twitter

More Repositories

1

sundial-gc-design

type safe, concurrent, pauseless, copying, generational GC. Implementation https://github.com/Avi-D-coder/sundial-gc
31
star
2

FiraCode-italic

An italic variant of FiraCode
28
star
3

fira-mono-italic

zwaldowski's italics rebased with Mozilla master with manual width corrections
HTML
27
star
4

fzf-wordnet.vim

Terminal/Vim dictionary/completion powered by fzf and wordnet
Vim Script
26
star
5

sundial-gc

WIP: my Tweag open source fellowship project
Rust
7
star
6

lsp-diff-server

WIP: Sits between an LSP client and server splitting big changes into smaller granular changes.
Rust
5
star
7

coc-rust-analyzer

You should use https://github.com/fannheyward/coc-rust-analyzer
TypeScript
4
star
8

implicit-hie-cradle

Auto generate stack or cabal multi component hie-bios Cradles, used by HLS and ghcide.
Haskell
4
star
9

lsp-range-unit-survey

A survey to determine what char units language server protocol implementers use.
3
star
10

ropey-iterator

A fork of the ropey UTF-8 ropes library with DoubleEndedIterator over lines
Rust
2
star
11

concise_thoughts

My Blog's source. Made with hugo
Shell
1
star
12

locked-resource

Allows you to pass a lock (StdinLock) with it's resource (Stdin).
Rust
1
star
13

hackerrank-haskell

Haskell
1
star
14

rg_replace

A wrapper around ripgrep that makes `--replace` work interactively or generate a patch.
Rust
1
star
15

iter_fallback

Drive two iters, exhaust first then fallback on the rest of second
Rust
1
star
16

highlight-inherit.vim

Extend/Inherit highlight groups
Vim Script
1
star
17

grep_json_deserialize

A parser for the output of ripgrep --json
Rust
1
star
18

watch-trace

Haskell
1
star
19

passing-arg-iter

Add an argument to Iterator::Item without losing Sized
Rust
1
star
20

perfect-hash

Hash + IntMap = No Collisions!
Rust
1
star
21

clogparse-fork

It an updated version of the tar from:
Haskell
1
star