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

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

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

--notest

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

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

1 ответ1

0

Поскольку ack ведет себя как OR для всех выражений типа вместе, нет способа сделать это напрямую в .ackrc без изменения ack.

Тем не менее, я смог написать bash-функцию, которая добавляет --notest если только не --test .

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .