Dodanie typu pliku do potwierdzenia na stałe

16

Niedawno nauczyłem się, w jaki sposób ack może obsługiwać więcej typów plików (dodając następujące do .ackrc):

--type-add
latte=.latte

Niestety tworzy to linię informacyjną przy każdym wyszukiwaniu potwierdzenia, którego używam, nawet z 0 wynikami.

$ ack --latte dump
ack: --type-add: Type "latte" does not exist, creating with ".latte" ...

Czy istnieje sposób, aby uczynić to bardziej trwałym dodatkiem? (tj. pozbyć się tego wiersza informacyjnego). Wygląda mi to na dodanie tego nowego typu przy każdym wywołaniu potwierdzenia. Czy to jest problem z moją instalacją Ack?

Jestem na Mac OS X 10.5.8 z ack 1.92 (działam pod Perlem 5.10.1)

Martin Tóth
źródło
Odnośnie 10.6-> 10.5.8: Naprawdę nie mam pojęcia, dlaczego napisałem 10.6, zawsze miałem 10.5.8 ... A kiedy zdałem sobie z tego sprawę, zmieniłem to ...
Martin Tóth
1
Historia nieparzystych wersji: @Mehper rozpoczął edycję w ciągu 5 minutowego okresu karencji, a następnie (po uruchomieniu Mehpera , ale zanim uratował ) Martin zmienił „10.6” na „10.5.8”. Następnie zmiana została cofnięta, gdy Mehper zapisał zmiany w (wówczas) starszym tekście - który dla historii był wciąż tą samą wersją ze względu na okres karencji, dlatego też wymienił Mehper jako zmianę wersji. Jeśli Ci to przeszkadza, zastanów się nad głosowaniem na Po zapisaniu, powiadom, kiedy post został zapisany przez kogoś innego .
Arjan
+1 Korzystałem z zestawu typów zgodnie z dokumentacją, ale nie miałem pojęcia, że ​​typy powinny być w nowej linii
Marcelo Diniz

Odpowiedzi:

18

Wydaje mi się, że dokumentacja twierdzi, że --type-setzamiast tego potrzebujesz :

--type-set
latte=.latte

Podczas gdy --type-add, podkreśl moje:

Pliki o danych ROZSZERZENIACH są rozpoznawane jako ( istniejące ) typu TYPE.

Arjan
źródło
1
+1 Mówi także: „Jeśli chcesz zdefiniować nowy typ lub całkowicie przedefiniować istniejący typ, użyj --type-set”.
Wstrzymano do odwołania.
Hmmm ... Przeczytałem tę sekcję kilka razy, ale nie zdawałem sobie sprawy z tego, że odpowiadam moim potrzebom! Dzięki!
Martin Tóth,
-1

Hmmm ... ackjest w zasadzie skryptem Perla ... który jest dość łatwy do edycji:

%mappings = (
    actionscript => [qw( as mxml )],
    ada         => [qw( ada adb ads )],
...
    latte       => [qw( latte )],
...
    yaml        => [qw( yaml yml )],
    xml         => [qw( xml dtd xslt ent )],
);

Ale czy istnieje na to inne rozwiązanie?

Martin Tóth
źródło
4
Jeśli sam edytujesz ack-grep, tracisz korzyści z kolejnych aktualizacji, ponieważ aktualizacja zastąpiłaby twoje zmiany. Konfigurację można wykonać w .ackrc, co jest doskonałym rozwiązaniem.
Niels Bom,