Конфликтующие флаги типов в ack

179
Chris Connett

Я добавил пользовательский тип в мой .ackrc, и он делает то, что я хочу.

--type-set=test:match:/_test\b/ 

Это соответствует файлам модульного теста. Так как я не хочу видеть тестовые использования чаще, чем я, я также установил

--notest 

Однако, когда я хочу искать тесты, я пытаюсь добавить --testв командную строку, но я не получаю результатов. Я надеялся, что --testэто перезапишет --notest, но они объединяются, чтобы ничего не дать. Страница man подтверждает, что они ORed вместе.

Любые предложения для того, что я пытаюсь сделать?

0

1 ответ на вопрос

0
Chris Connett

Since ack's behavior is to OR all the type expressions together, there isn't a way to do this directly in the .ackrc without changing ack.

However, I was able to write a bash function wrapping ack that adds --notest unless --test is passed.

function ack { test_flag='--notest' for arg in "$*"; do case "$arg" in --test) test_flag='' ;; esac done command ack "$*" $testflag } 

Похожие вопросы