ghcid
stack
Our great sponsors
ghcid | stack | |
---|---|---|
12 | 47 | |
1,120 | 3,945 | |
- | 0.3% | |
4.0 | 9.9 | |
27 days ago | about 22 hours ago | |
Haskell | Haskell | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ghcid
-
Static-ls - a low memory Haskell language server based on hiedb and hiefiles
With a combination of ghcid, an hiedb filewatcher and the -fdefer-type-errors flag you can get pretty solid IDE behavior. Currently only ghc 9.4.4 is supported but happy to personally help people set this up if interested!
- Open source projects for beginners
-
TDD for AoC?
In addition, for Haskell, I usually have ghcid running, which likewise re-runs on every file change, but gives faster feedback about any type errors than the full compiler, and also is configured to evaluate
-
Most braindead easy end to end haskell workflow?
VS Code + Haskell extension is usually best, but ghcid is an alternative which is much simpler, easier to set up, less pretty and powerful but still pretty easy and effective to use. Here's a workflow:
-
Fast way to run Haskell script from nvim?
you should also checkout the ghci vim plugin https://github.com/ndmitchell/ghcid/tree/master/plugins/nvim
-
Can't get things to work. It is normal to learn haskell with plain vim?
I just went through the same thing. I settled on using stack and ghcid. All it does is recompile on any change to source code so you at least get lightning fast feedback. Both stack and ghcid have been easy to install and use so far.
-
Why Clojure?
Have you tried out ghcid? It basically just runs ghci on your program every time you save, and gives an updated list of errors and warnings. Not interactive in the sense that you don't manually test your functions with it, but like 95% of debugging in Haskell is just fixing errors at compilation time. I find it to be a very nice developer experience. Just need a text editor and a terminal with ghcid open and you get immediate feedback as you program.
stack
-
Leaving Haskell Behind
Ah, didn't run into this issue, as I don't use vscode.
Apparently there is some work being done to improve the stack <> hls experience, but I wouldn't know how it's going and when it's being delivered: https://github.com/commercialhaskell/stack/issues/6154
-
ANN: stack-2.11.1
Fix incorrect warning if allow-newer-deps are specified but allow-newer is false. See #6068.
See https://haskellstack.org/ for installation and upgrade instructions.
-
PEP 582 rejected - consensus among the community needed
Fair enough! Thanks for the suggestion, then. In fact, the non-Python language I develop most in (Haskell, with the Stack package manager) has exactly that behaviour as a default: new packages are installed to a sandboxed local directory, and it takes an explicit request to install something globally. (And even then, you can switch between different global "known good configurations" of package versions which work well together – a pretty handy feature.)
- Any open source projects to contribute to for beginners
-
ANN: stack-2.9.3
In YAML configuration files, the hackage-security key of the package-index key or the package-indices item can be omitted, and the Hackage Security configuration for the item will default to that for the official Hackage server. See #5870.
See https://haskellstack.org/ for installation and upgrade instructions.
-
[ANN] First release candidate for stack-2.9.3
Yes, that is correct. Stack's allow-newer: true configuration has always actually meant 'ignore bounds'. However, the author of the allow-newer-deps development has in mind a further development that will introduce an actual ignore-bounds key with the same expressive syntax that is used by Cabal. This is discussed at Stack #5910.
You can download binaries for this pre-release from: Release rc/v2.9.2.1 (release candidate) · commercialhaskell/stack · GitHub.
-
how do I specify cabal fields to stack?
I'm trying to use the cabal mixins feature to automatically replace every implicit prelude import with a custom prelude (in this case relude). apparently it doesn't play well with `stack repl` https://github.com/commercialhaskell/stack/issues/5077 but I don't really use it anyway.
What are some alternatives?
ghcup-hs - THIS REPO IS A MIRROR, BUG REPORTS GO HERE:
Cabal - Official upstream development repository for Cabal and cabal-install
ghci-ng
ghcide - A library for building Haskell IDE tooling
castle - A tool to manage shared cabal-install sandboxes.
haskell-language-server - Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.
profiterole - GHC prof manipulation script
hlint - Haskell source code suggestions
implicit-hie - Auto generate a stack or cabal multi component hie.yaml file
bisect-binary - Tool to determine relevant parts of binary data
stack-yaml - parse stack.yaml files