我如何使用erl_tidy和erl_lint?

时间:2011-08-01 20:13:49

标签: erlang lint

我知道文档解释了这些工具,但我不明白这个解释。有人可以提供一两个例子吗?

1 个答案:

答案 0 :(得分:4)

erl_tidy中,最简单的方法 - 也是最直接的,如果你一直在源目录中运行一个,就是直接从Eshell使用它,如

$ erl
1> m(erl_tidy).
% output snipped
2> erl_tidy:dir().  % recursively tidy the present directory and its children
% output snipped
3> erl_tidy:dir("", [{recursive, false}]).  % just the present directory
reading module `./bad.erl'.
made backup of file `./bad.erl'.
writing to file `./bad.erl'.
4>

在这种情况下,bad.erl来自

-module(bad).
-compile(export_all).

bad(0)->1;bad(1)->2;bad(N)->3.bad()->0.

整理

-module(bad).

-compile(export_all).

bad ( 0 ) -> 1 ; bad ( 1 ) -> 2 ; bad ( N ) -> 3 . bad ( ) -> 0 .

......好吧,这不是魔术师: - )

erl_tidy也可以通过erl的参数调用,如

$ # unix prompt
$ erl -s erl_tidy dir
tidying directory `./wesnoth'.
tidying directory `./wesnoth/Vix'.
tidying directory `./wesnoth/Vix/utils'.
...
然而

erl_lint 完全不同。要了解如何使用它,首先要了解this string evaluation example中发生了什么。 erl_lint旨在作用于Erlang源的中间表示,而不是它的字符串。