4

我最近遇到了一个我一直无法弄清楚的 astyle 使用问题。我不确定这是否是一个错误,或者我只是错误地使用了 astyle 工具。我正在尝试使用“--exclude”选项从处理中省略文件和目录,但继续得到“不匹配”的排除错误并且 astyle 终止:

bwallace$ ls -l foo.c
-rw-r--r-- 1 bwallace 1767304860 22 Aug 1 21:36 foo.c

bwallace$ astyle ./foo.c --exclude=./foo.c -v
Artistic Style 2.04 08/03/2014
Exclude (unmatched) ./foo.c
Artistic Style has terminated

当我通过“-i”(忽略排除错误)时,astyle 按预期处理文件。因此,“排除”语句似乎有问题。

bwallace$ astyle ./foo.c --exclude=./foo.c -v -i
Artistic Style 2.04 08/03/2014
Exclude (unmatched) ./foo.c
Unchanged ./foo.c
0 formatted 1 unchanged 0.00 seconds 2 lines

这是一个错误吗?我是否错误地使用了astyle?任何帮助,将不胜感激。

4

2 回答 2

2

使用包含匹配而不是匹配实际目录的简单字符串来排除目录。我一直有同样的问题,并通过查看源代码解决这个问题。

添加很多选项有点乏味。我发现创建一个选项文件是最简单的。astyle 网站上有关于放置位置的说明。

要排除多个文件或目录,您需要在文件中有多个“--exclude”选项:

--exclude=dir/subdir1
--exclude=dir/subdir2
于 2015-02-04T21:53:05.693 回答
0

试试这个:astyle "*.c" --exclude=foo.c- 这应该可以解决问题。

.您的排除声明中是问题之一。使用通配符作为 Astyle 的输入 ("*.c")似乎也是必需的。这在 Astyle 方面绝对是奇怪的行为。

不匹配的排除标志会导致“排除错误”并且 AStyle 终止。当您添加 时--ignore-exclude-errors,尽管出现此错误,AStyle 仍会继续。我通常将此标志添加到我的选项文件中。

作为记录 - 我正在使用 AStyle 3.1,所以这可能是在此期间有所改进。

于 2018-10-22T14:39:34.460 回答