Sinalizadores de tipo conflitantes em ack

0

Eu adicionei um tipo personalizado ao meu .ackrc e ele faz exatamente o que eu quero.

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

Ele corresponde aos arquivos de teste da unidade. Como não quero ver os usos de teste com mais frequência do que eu, também definimos

--notest

No entanto, quando quero pesquisar testes, tento adicionar --test à linha de comando, mas não obtenho resultados. Minha esperança era que --test sobrescrevesse --notest , mas eles se combinam para não dar nada. A página man confirma que eles são ORed juntos.

Alguma sugestão para o que estou tentando fazer?

    
por Chris Connett 24.03.2016 / 01:07

1 resposta

0

Como o comportamento do ack é para OR todas as expressões de tipo juntas, não há uma maneira de fazer isso diretamente no .ackrc sem alterar o ack.

No entanto, eu consegui escrever uma função bash que continha o ack que adiciona --notest a menos que --test fosse passado.

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

Tags