标签: haskell-mode

Emacs的Haskell缩进模式有什么相似之处和不同之处?

通过仔细检查文档,我了解到Emacs haskell-mode提供了三种不同的,互斥的自动缩进方法.他们被称为haskell-indentation,haskell-indenthaskell-simple-indent.谁能解释这些方法是如何相似的以及它们是如何不同的?我不仅对个人特征感兴趣,而且如果一个是事实上的标准,或者如果不再保留一个或两个,我感兴趣.

emacs haskell haskell-mode

39
推荐指数
1
解决办法
1861
查看次数

使用haskell-mode在Emacs中进行Haskell自动完成

我安装haskel-mode在emacs中.然后我写了我的.emacs:

(load "~/.emacs.d/haskell-mode/haskell-site-file")
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
(add-hook 'haskell-mode-hook 'haskell-font-lock-symbols t)
(put 'downcase-region 'disabled nil)
Run Code Online (Sandbox Code Playgroud)

我必须在我的conf文件中添加哪些内容,emacs可以为Haskell自动完成?还是Haskell模式没有这种可能性?

emacs haskell autocomplete haskell-mode

20
推荐指数
5
解决办法
7235
查看次数

haskellmode-vim死了吗?

我刚刚haskellmode-vim从我的插件配置中禁用.基本上这有三个原因:

  1. 我更喜欢neocomplcache我的自动完成需求.
  2. 显然它自2010年以来没有更新.
  3. 它似乎不兼容 cabal

我希望有人跳进坑中并指出我只是错误配置了整个事情(就像我在自述文件中配置了最基本的东西).提出这个问题:

是否可以设置haskellmode,以便......

  • ...它从cabal得到它的配置?
  • ...它没有设置`completefunc'以便neocomplcache仍然可以工作?

vim haskell haskell-mode

11
推荐指数
1
解决办法
1730
查看次数

Haskell模式不适合我的项目,找不到模块

这是我的场景:

我正在开发一个包含以下目录/模块的项目:

|--proj
   |-- src
       |-- Foo
           |-- FooModule1.hs
           |-- FooModule2.hs
       |-- Bar
           |-- BarModule1.hs
Run Code Online (Sandbox Code Playgroud)

BarModule1.hs 看起来像这样:

module BarModule1 where

import Foo.FooModule1
...
Run Code Online (Sandbox Code Playgroud)

我还有一个.cabal文件指定srchs-source-dirs当然,其中列出了两个模块.

当我BarModule1.hs在Emacs 中的文件中时,我这样C-c C-l说:

proj/src/Bar/BarModule1.hs:3:8:
    Could not find module `Foo.FooModule1'
    Use -v to see a list of the files searched for.
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)

我也想使用hlint,flymake-haskell-multi-load如果我激活该模式M-x flymake-haskell-multi-load,hlint将始终显示它无法找到模块的错误Foo.FooModule1,因为它不知道该.cabal文件,我在其中指定hs-source-dirs: src.

所以我的问题是:我如何制作haskell-modeflymake …

emacs haskell haskell-mode

11
推荐指数
1
解决办法
1923
查看次数

Emacs:在Haskell模式下重新定义命令(haskell-mode-hook)

在haskell-mode的emacs中,我想更改命令

  • "Cx Cs"

  • "Cx Cs"后跟"Cc Cl".

从以下提示:Haskell.org:Emacs/Keybindings和简单用法我尝试将以下变体插入.emacs文件但它们不起作用.关于如何实现上述功能的任何建议都将受到欢迎!谢谢.

变式1

(defun haskell-hook ()
  (define-key haskell-mode-map (kbd "C-x C-s") (kbd "C-x C-s C-c C-l"))

(add-hook 'haskell-mode-hook 'haskell-hook)
Run Code Online (Sandbox Code Playgroud)

变体2

(defun haskell-hook ()
  (define-key haskell-mode-map (kbd "C-x C-s") 'my-haskell-mode-save-buffer)

(defun my-haskell-mode-save-buffer ()
  (interactive)
  (execute-kbd-macro [?\C-s ?\C-x ?\C-c ?\C-l return]))

(add-hook 'haskell-mode-hook 'haskell-hook)
Run Code Online (Sandbox Code Playgroud)

[编辑1] @Tikhon Jelvis:这绝对是一个很好的学习练习!谢谢.使用帖子中列出的方法,我将您的功能更改为:

(defun my-haskell-mode-save-buffer ()
  (interactive)
  (save-buffer)
  (inferior-haskell-load-file)
  (other-window 1))
Run Code Online (Sandbox Code Playgroud)

最后一行以编程方式将光标切换到交互式窗口.谢谢.

[EDIT2]其他变种包括:

(defun my-haskell-mode-save-buffer ()
  (interactive)
  (execute-kbd-macro (read-kbd-macro "C-c C-l"))
  (other-window 1)) 
Run Code Online (Sandbox Code Playgroud)

并且:

(defun my-haskell-mode-save-buffer ()
  (interactive)
  (execute-kbd-macro …
Run Code Online (Sandbox Code Playgroud)

emacs macros haskell elisp haskell-mode

8
推荐指数
1
解决办法
788
查看次数

在emacs中的haskell repl

嗨,我开始使用haskell,并尝试设置我的emacs进行开发.

我已经haskell-modghc-mod在最新的emacs 24.3.1.GHC是7.6.3

我创建了一个haskell文件first.hs,当我这样做时C-c C-l 问:

start a new project named haskell ? y or n
Run Code Online (Sandbox Code Playgroud)

我的目录名是haskell.我按了y

Set the cabal directory
Run Code Online (Sandbox Code Playgroud)

我已尝试使用〜/ .cabal和我当前的目录命名 haskell

Set the current directory
Run Code Online (Sandbox Code Playgroud)

只需按下输入,因为它有haskell目录

它显示错误消息:

haskell-process-start: cl-ecase failed: cabal-rep, (ghci quote cabal-repl quote cabal-ghci quote cabal-dev quote)
Run Code Online (Sandbox Code Playgroud)

如何获得repl?

我读到我可能需要降级ghc版本才能使其正常工作.那是好的解决方案吗?

方案:

custom-set-variables在init.el中有多个,它导致了问题.

emacs haskell read-eval-print-loop haskell-mode

8
推荐指数
1
解决办法
5313
查看次数

如何设置haskell-mode来生成标签?

我正在尝试为haskell设置emacs.我用el-get下载了haskell-mode,有些部分正在工作(比如缩进,启动ghci等),但我无法让代码生成 工作.

Hasktags已安装,并 (load "~/.emacs.d/el-get/haskell-mode/haskell-site-file")已添加到我的init文件中.

hasktags是否需要在某个目录中?(我添加了目录PATH,但没有成功.)

haskell-process-generate-tags功能不可用M-x.当我(load "~/.emacs.d/el-get/haskell-mode/haskell-process.el")手动添加到init文件时,该功能可用但不生成TAGS文件.

(PS:我正在使用带有linux的emacs 24.1)

emacs haskell haskell-mode

6
推荐指数
1
解决办法
1289
查看次数

在haskell-indentation模式下自定义缩进宽度

我目前正在使用Emacs作为我开发Haskell代码的主要IDE,到目前为止我真的很满意.但目前我无法弄清楚一个小细节,即如何自定义缩进宽度为4而不是2.

目前,我已经把上haskell-indentationhaskell-mode,但我想不出我有设置自定义压痕宽度什么变化.到目前为止,我已尝试设置,'(haskell-indent-spaces 4)但这似乎没有任何影响......

请提前获取任何帮助!

emacs haskell haskell-mode

4
推荐指数
1
解决办法
666
查看次数

如何在emacs中运行haskell应用程序 - haskell模式?

helloworld.hs中的代码:

main = do
putStrLn"你好,你叫什么名字?"
name < - getLine
putStrLn("嘿"++名称++",你摇滚!")

终端应用测试:

optimight @ optimight:〜$ ghc --make helloworld
[1 of 1]编译Main(helloworld.hs,helloworld.o)
链接helloworld ...
optimight @ optimight:〜$ ./helloworld
你好,你叫什么名字?
约翰
嘿约翰,你摇滚!

在emacs中加载helloworld.hs - haskell主要模式:

GHCi,版本7.4.1:http ://www.haskell.org/ghc/:?求助于
加载包ghc-prim ...链接...完成.
加载包integer-gmp ...链接...完成.
加载包基...链接...完成.
Prelude>:load"/home/optimight/helloworld.hs"
[1/1]编译Main(/home/optimight/helloworld.hs,解释)
好的,模块已加载:Main.
*主要>

现在,如何(程序是什么?)在emacs - haskell模式环境中测试它?(我相信,当我使用emacs - haskell模式时,不需要切换到终端.)

emacs haskell haskell-platform haskell-mode

3
推荐指数
1
解决办法
2131
查看次数

让haskellmode-vim与cabal项目合作

当我在vim中构建一个cabal项目时,使用

:set makeprg=cabal\ build
:make
Run Code Online (Sandbox Code Playgroud)

haskellmode-vim似乎没有找到类型信息.否则_t,当光标在foo给我的"福键入不知道".

如何让haskellmode-vim从cabal构建中获取类型信息?

cabal haskell-mode

2
推荐指数
1
解决办法
496
查看次数