Erlang 我如何使用erl_tidy和erl_lint?

Erlang 我如何使用erl_tidy和erl_lint?,erlang,lint,Erlang,Lint,我知道文档解释了这些工具,但我不理解这些解释。有人能提供一两个例子吗?关于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, fa

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

关于
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\u
也可以通过
erl
的参数调用,如中所示

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

然而,
erl_lint
是完全不同的。要想了解如何使用它,首先要了解系统中发生了什么
erl_lint
被设计为作用于Erlang源代码的中间表示,而不是它的字符串。

谢谢!有没有办法在预览模式下运行erl_tidy(),使其不会实际更改文件?是的,要运行erl_tidy而不更改任何文件(仅打印有关更改的信息),请通过“test”或“{test,true}”作为选项。请注意,我已经很久没有写这个程序了,所以有很多事情它没有做。我编写了一个shell脚本,将ehrlich化名为erl_tidy:dir。你应该很少(如果有的话)需要自己跑步。它总是在编译模块时运行。