[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/haskell-tng-mode ad5967b 236/385: simpler installation
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/haskell-tng-mode ad5967b 236/385: simpler installation |
Date: |
Tue, 5 Oct 2021 23:59:38 -0400 (EDT) |
branch: elpa/haskell-tng-mode
commit ad5967b9f35087ef8c5a137424ce8125af312f76
Author: Tseen She <ts33n.sh3@gmail.com>
Commit: Tseen She <ts33n.sh3@gmail.com>
simpler installation
---
README.md | 93 ++++++++++++++++-----------------------------------------------
1 file changed, 23 insertions(+), 70 deletions(-)
diff --git a/README.md b/README.md
index d31d2a2..6d0afc4 100644
--- a/README.md
+++ b/README.md
@@ -28,98 +28,59 @@ If it is possible to implement a feature using another
minor mode, or command li
## Install
-Check out the source code repository and enable with
[`use-package`](https://github.com/jwiegley/use-package):
+Check out the source code repository and enable with
[`use-package`](https://github.com/jwiegley/use-package).
+
+A full installation may look like the following
```lisp
(use-package haskell-tng-mode
- ;; these 3 lines are only needed for local checkouts
:ensure nil
- :load-path "/path/to/haskell-tng.el"
- :mode ("\\.hs\\'" . haskell-tng-mode)
+ :load-path "/path/to/git/clone"
+ :mode ((rx ".hs" eos) . haskell-tng-mode)
+
+ :config
+ (require 'haskell-tng-hsinspect)
+ (require 'haskell-tng-contrib)
+ (require 'haskell-tng-contrib-company)
+ (require 'haskell-tng-contrib-projectile)
+ (require 'haskell-tng-contrib-smartparens)
+ (require 'haskell-tng-contrib-yasnippet)
:bind
(:map
- haskell-tng-compilation-mode-map
- (("C-c c" . haskell-tng-compile)
- ("C-c e" . next-error)))
- (:map
haskell-tng-mode-map
("RET" . haskell-tng-newline)
("C-c c" . haskell-tng-compile)
("C-c e" . next-error)))
```
-Giving the following commands
-
-- `C-c c` compile, prompt on first use
- - `C-u C-c c` always prompt
- - `C-- C-c c` clean project
- - `C-c e` jump to error
-
-Built-in navigation commands such as `forward-symbol`, `forward-sexp` and
`imenu` work as expected (although
[`popup-imenu`](https://github.com/ancane/popup-imenu) is recommended).
-
## `hsinspect`
-```lisp
- :config
- (require 'haskell-tng-hsinspect)
-```
-
-The optional command line tool `hsinspect` provides semantic information by
using the `ghc` api.
-
-<!-- `hsinspect` must be installed separately for each version of `ghc` that
you are using. -->
+The optional command line tool
[`hsinspect`](https://gitlab.com/tseenshe/hsinspect) provides semantic
information by using the `ghc` api.
-At the moment only one version of `ghc` is supported at a time (change
`ghc-8.4.4` to your current `ghc` version):
+For now, only one version of `ghc` is supported at a time (change `ghc-8.4.4`
to your current `ghc` version):
```
git clone https://gitlab.com/tseenshe/hsinspect.git
cd hsinspect
-cabal v2-install -O2 hsinspect --overwrite-policy=always -w ghc-8.4.4
-```
-
-<!-- TODO these installation instructions don't work
https://github.com/haskell/cabal/issues/6179 -->
-<!-- ```bash -->
-<!-- for v in ghc-8.4.4 ghc-8.6.5 ; do -->
-<!-- cabal v2-install hsinspect --program-suffix=-$v -w $v -->
-<!-- done -->
-<!-- ``` -->
-
-with recommended binding
-
-```lisp
- :bind
- (:map haskell-tng-mode-map
- ("C-c C-i s" . haskell-tng-fqn-at-point))
+cabal v2-install hsinspect --overwrite-policy=always -w ghc-8.4.4
```
-### Known Problems
-
To use `hsinspect` commands, generate a `.hsinspect.env` file by running `M-x
haskell-tng-hsinspect` for a project. This is only needed when the dependencies
change, but the project must be compilable.
-See [the gory details](https://gitlab.com/tseenshe/hsinspect) for more
information and known caveats. Hopefully there will be no need for
`haskell-tng-hsinspect` in a future release.
+The `haskell-tng-contrib-company` package will automatically complete symbols
that are in scope.
-## Contrib
+To find out which module a symbol belongs to, use `M-x
haskell-tng-fqn-at-point`.
-Integrations are provided for common libraries and external applications
(installed separately), enable them from `use-package` with
+The are some limitations to this tool in addition to known bugs. See [the gory
details](https://gitlab.com/tseenshe/hsinspect) for more information. Hopefully
there will be no need for `M-x haskell-tng-hsinspect` or the `.hsinspect.env`
files in a future release.
-```lisp
- :config
- (require 'haskell-tng-contrib)
- (require 'haskell-tng-contrib-company)
- (require 'haskell-tng-contrib-projectile)
- (require 'haskell-tng-contrib-smartparens)
- (require 'haskell-tng-contrib-yasnippet)
+## Contrib
- :bind
- (:map
- haskell-tng-mode-map
- (("C-c C" . haskell-tng-stack2cabal)
- ("C-c C-r f" . haskell-tng-stylish-haskell)))
-```
+Integrations are provided for common libraries and external applications.
-providing project navigation, enchanced matched parenthesis handling, and
templates that can be expanded with your `yas-expand` hotkey.
+The installation instructions above enable all the integrations. Remove the
`require` lines for packages that are unwanted.
-Ensure that third party Haskell tools are available (e.g. via `cabal
v2-install`) for:
+Third party Haskell tools must be installed separately (e.g. via `cabal
v2-install`) for:
- `C-c C` invoke
[`stack2cabal`](https://hackage.haskell.org/package/stack2cabal)
- `C-c C-r f` invoke
[`stylish-haskell`](https://hackage.haskell.org/package/stylish-haskell)
@@ -155,14 +116,6 @@ This is the status of core features:
- [x] `stack`, `nix`, `shake`, etc support (customise
`haskell-tng--compile-*`)
- [ ] `comint-mode` based `ghc` repl
-### Next
-
-Semantic tooling will likely take the form of a standalone cli tool that is
called from Emacs:
-
-1. fully qualified name and type of symbol at point
-2. search for symbol and typesig (e.g. import symbol at point)
-3. jump to source of symbol at point
-
### Blue Sky
- `lsp-mode` /
[`haskell-ide-engine`](https://github.com/haskell/haskell-ide-engine) for more
advanced IDE features.
- [nongnu] elpa/haskell-tng-mode 9bc086a 187/385: easier install, (continued)
- [nongnu] elpa/haskell-tng-mode 9bc086a 187/385: easier install, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 4f40db3 218/385: fast-tags is stack compatible by default, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 59640ce 234/385: cleanups thanks to MELPA review, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 35d3830 306/385: cache improvements, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode c0b1b6b 301/385: change the compile-always-ask default, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 907c8fa 153/385: ImplicitParams indentation, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode ca00f1f 183/385: thot, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 611711a 208/385: address melpa review, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 89c5c80 223/385: improve smartparens workaround, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode e270647 228/385: more robust calls to hsinspect, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode ad5967b 236/385: simpler installation,
ELPA Syncer <=
- [nongnu] elpa/haskell-tng-mode 599d4f0 283/385: import symbol at point, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 9b334f7 275/385: ghcflags, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode f221f95 173/385: introduce types and constraints to the grammar, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode ae1d399 268/385: backslashes are only keywords when used in lambdas, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 1d74d5f 279/385: backslash bughunting, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 499c77f 261/385: abbrev-mode support, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode e2e3490 382/385: hide-show supports BOILERPLATE START ... BOILERPLATE END, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode a34e796 368/385: improve debugging, ELPA Syncer, 2021/10/06