在Eclipse中用于Clojure的代码格式化工具

22

我正在使用Counterclockwise,但不幸的是他们还没有实现此功能。您有任何想法如何以“lispy”方式自动格式化我的Clojure代码吗?


7
在IntelliJ IDEA(La Clojure插件)中,按下Ctrl-Alt-L可以重新缩进整个文件。这是原帖作者寻找的功能吗?我认为可以下载免费的IntelliJ IDEA来解决问题(我在不同的地方使用Emacs和Eclipse,但IntelliJ IDEA是我唯一付费使用的软件 - 我与他们无关)。 - andrew cooke
是的,那正是我正在寻找的。虽然我几周前试用了 IntelliJ IDEA,但我并不满意。 - Adam Arold
@Bill C-M-\ 是 indent-region:它只重新缩进。我的问题特别涉及到 reformatting,这意味着更改换行符。 - Marko Topolnik
2
我并不是在谈论Emacs。 - Adam Arold
Adam,你的问题和评论都没有明确表达你实际想要什么。重新格式化一个已有的Clojure文件?语法高亮?还是只是在未完成的s-expression中输入新行时自动缩进?我大约一年前使用了Counterclockwise,除了重新格式化现有文件(我对此一无所知)以外,几乎所有功能都是正常工作的。高亮,格式化,执行等等。请具体说明你想要的。 - Alex
显示剩余8条评论
3个回答

7
在最新版本的Counterclockwise IDE中,您可以简单地在文件中选中所有内容Ctrl+A,然后按Ctrl+I进行"缩进当前行"以正确缩进整个文件。
当光标位于某一行时,按下Tab键(不管光标位置如何)会对该行执行相同的操作,但是当所有行都被选中时,它将无法工作。

3
在Eclipse中似乎没有“完成”的Clojure缩进器,而我对Eclipse的了解不足以编写一个。但是,在Clojure(contrib)本身中有可用的漂亮打印功能。因此,如果我处于你的情况并且真的厌倦了无法缩进代码,我会编写一个小型GUI应用程序(你可以在Clojure中进行编写以获得乐趣和实践),它允许您将代码剪切并粘贴到TextArea中,按需重新格式化,并将格式化的代码放回剪贴板。这是一个笨拙的解决方案,但相对容易实现。详情请参考:http://richhickey.github.com/clojure-contrib/pprint-api.html

@章鱼请指示是否愿意接受此消息。对我来说并不重要,因为我已经开始使用另一个集成开发环境。 - Adam Arold
你的意思是授予悬赏,对吗?我不能接受你问题的答案。我正在等待看是否有其他答案。 - octopusgrabbus

1

逆时针版本0.20.0(2013年10月)增加了“重新缩进所选内容”的功能。我知道这不是你想要的全部,但这是一个开始。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接