我无法使用intero获得在emacs中出现的hlint建议.
~/.emacs文件中我读过解决方案是:
(flycheck-add-next-checker 'intero
'(warning . haskell-hlint))
Run Code Online (Sandbox Code Playgroud)
但我不知道我应该怎么做.如果我将其添加到我的~/.emacs文件中,则emacs会在启动时失败.
(其余的似乎没问题 - 当我打开一个Haskell文件时,intero会启动 - 错误会在我输入时立即被标记.)
如何获得Hlint建议?
我正在尝试让 intero运行。安装后,从现有堆栈项目中打开 Haskell 文件会导致:
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
signal(wrong-type-argument (stringp nil))
flycheck-buffer()
flycheck-buffer-automatically()
flycheck-perform-deferred-syntax-check()
set-window-buffer(#<window 1 on Lib.hs> #<buffer Lib.hs>)
window--display-buffer(#<buffer Lib.hs> #<window 1 on Lib.hs> reuse ((inhibit-same-window)))
display-buffer-same-window(#<buffer Lib.hs> ((inhibit-same-window)))
display-buffer(#<buffer Lib.hs> (display-buffer-same-window (inhibit-same-window)))
pop-to-buffer(#<buffer Lib.hs> (display-buffer-same-window (inhibit-same-window)) nil)
pop-to-buffer-same-window(#<buffer Lib.hs>)
find-file("~/test/src/Lib.hs" t)
funcall-interactively(find-file "~/test/src/Lib.hs" t)
call-interactively(find-file nil nil)
command-execute(find-file)
Run Code Online (Sandbox Code Playgroud)
当我flycheck-buffer在同一个缓冲区中运行时,即使源代码中有错误,也没有任何反应。
这是我的.emacs文件的内容:
(setq debug-on-error t)
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(package-initialize)
(package-refresh-contents)
(package-install 'intero)
(add-hook 'haskell-mode-hook 'intero-mode)
Run Code Online (Sandbox Code Playgroud)
由于我在 Mac …
当intero-mode试图自动安装关于Interotube,它产生以下错误:
Intero is not installed in the Stack environment.
Installing intero-0.1.23 automatically ...
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for intero-0.1.23:
ghc-8.2.2 from stack configuration does not match >=7.8 && <8.2.2 (latest matching version
is 8.2.1)
needed since intero is a build target.
Some potential ways to resolve this:
* Recommended action: try adding the following to your extra-deps
in <project directory>\stack.yaml:
- ghc-8.2.1
* Set 'allow-newer: true' to ignore …Run Code Online (Sandbox Code Playgroud) 我刚刚安装了 Stack 使用
curl -sSL https://get.haskellstack.org/ | sh
Run Code Online (Sandbox Code Playgroud)
安装顺利,但尝试使用 Stack 安装 Intero 时失败
ffriis@BNEC02QR6Y0G8WN ~> stack install hlint intero
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for intero-0.1.32:
ghc-8.4.4 from stack configuration does not match >=7.8 && <=8.4.3 (latest matching version is 8.4.3)
needed since intero is a build target.
Some different approaches to resolving this:
* Set 'allow-newer: true' in /Users/ffriis/.stack/config.yaml to ignore all version constraints and build anyway.
* Consider trying …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行Haskero来使用VSCode进行Haskell编辑.但是,它在初始化时失败,出现以下错误:
Initializing Haskero...
Spawning process 'stack' with command 'stack ghci --with-ghc intero "--ghci-options=-ignore-dot-ghci -Wall" --no-build --no-load'
(node:3726) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: reason.indexOf is not a function
(node:3726) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Run Code Online (Sandbox Code Playgroud)
当我从控制台中的错误运行命令时,我收到以下错误:
$ stack ghci --with-ghc intero "--ghci-options=-ignore-dot-ghci -Wall" --no-build --no-load
The following GHC options are incompatible with GHCi and have not been passed to …Run Code Online (Sandbox Code Playgroud) 我无法在新的堆栈项目上使用 emacs,因为 intero 无法构建。
stack new play 当我尝试在 emacs 中打开源文件时,它无法构建 intero
Intero is not installed in the Stack environment.
Installing intero-0.1.24 automatically ...
intero-0.1.24: configure
intero-0.1.24: build
-- While building custom Setup.hs for package intero-0.1.24 using:
/home/wmorgan/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_2.0.1.0_ghc-8.2.2 --builddir=.stack-work/dist/x86_64-linux/Cabal-2.0.1.0 build --ghc-options " -ddump-hi -ddump-to-file"
Process exited with code: ExitFailure 1
Logs have been written to: /home/wmorgan/haskell/play/.stack-work/logs/intero-0.1.24.log
Configuring intero-0.1.24...
Preprocessing executable 'intero' for intero-0.1.24..
Building executable 'intero' for intero-0.1.24..
[1 of 8] …Run Code Online (Sandbox Code Playgroud)我在emacs下使用Intero来编辑我的新Haskell项目.我向我的代码添加了第三方库的导入,以查看Intero是否会自动添加必要的依赖项,但事实并非如此.所以我.cabal手动编辑了文件以添加必要的依赖项.现在我该怎么做 - 没有重启emacs?
我尝试cabal install --dependencies-only; cabal configure在命令行运行并且它们成功运行,但是flycheck缓冲区仍然显示错误.
我目前得到的错误是:
File error: http://melpa.org/packages/haskell-mode-20161110.316.tar, Not found
Run Code Online (Sandbox Code Playgroud)
安装intero 时。我该如何解决这个问题?
谢谢!