我喜欢代码搜索实用程序ack
。浏览 Makefile 足够聪明,但不知道 scons 使用的 SConstruct 和 SConscript 文件。如何将这些添加到 ack 将查看的文件中?
问问题
230 次
3 回答
3
这是一个将 SCons 文件视为 make 文件的补丁:
--- ~/bin/ack-old 2011-06-01 15:43:51.000000000 -0600
+++ ~/bin/ack 2011-06-01 15:42:09.000000000 -0600
@@ -1583,6 +1583,8 @@
return 'skipped' unless is_searchable( $basename );
+ return ('python',TEXT) if $basename eq 'SConstruct' || $basename eq 'SConscript';
+
my $lc_basename = lc $basename;
return ('make',TEXT) if $lc_basename eq 'makefile' || $lc_basename eq 'gnumakefile';
return ('rake','ruby',TEXT) if $lc_basename eq 'rakefile';
于 2011-06-01T21:51:20.003 回答
2
这不能使用 ack 的类型集来完成。Makefile 和 Rakefile在源代码中是硬编码的。$HOME/.ackrc
我认为您可以通过修改和添加来添加 scons 类型--type-set=scons=SConstruct,SConscript
,但这将搜索以“.SConstruct”或“.SConscript”结尾的文件。
最简单的解决方法是将 -a(所有文件类型)标志添加到 ack。
如果您只想 ack 搜索并能够以某种方式过滤 SConstruct,那么您可以添加#!/usr/bin/python
为 SConstruct 文件的第一行。然后 Ack 会将文件视为 python 源代码,您可以使用--python
.
于 2010-12-28T19:16:30.203 回答
1
一个新的ack2正在开发中,它将允许在 .ackrc 文件中进行精确的文件匹配。这将使对 Scons 和 Jam 的支持更加容易。
于 2012-01-26T19:49:57.357 回答