Uwielbiam narzędzie wyszukiwania kodu ack
. Jest wystarczająco sprytny, aby przejrzeć pliki Makefile, ale nie wie o plikach SConstruct i SConscript, których używa scons. Jak mogę dodać te pliki do plików, które będą wyglądać?Dodaj pliki SCons do wyszukiwania AC
Odpowiedz
Nie można tego zrobić za pomocą zestawów znaków ack. Makefiles and Rakefiles are hard-coded w źródle. Myślałem, że możesz dodać typ scons, modyfikując $HOME/.ackrc
i dodając --type-set=scons=SConstruct,SConscript
, ale to będzie szukać pliku, który kończy się na ".SConstruct" lub ".SConscript".
Najprostszym rozwiązaniem jest dodanie flagi -a (wszystkie typy plików) do potwierdzenia.
Jeśli chcesz, aby ack szukał i mógł filtrować SConstruct w jakiś sposób, możesz dodać #!/usr/bin/python
jako pierwszą linię pliku SConstruct. Następnie Ack potraktuje plik jako kod źródłowy Pythona i można go filtrować przy pomocy --python
.
Oto poprawkę, która traktuje pliki SCons jak uczynić pliki:
--- ~/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';
Używam pakietu deb wersji 1.92 na Ubuntu 10.04, a ta sama łatka może być ręcznie zastosowana do /usr/share/perl5/App/Ack.pm na linii 476. –
Nowa ack2 jest w rozwoju, który umożliwi dokładne dopasowanie pliku w pliku .ackrc. To ułatwi obsługę Scons i Jam.
Zobacz http: // stackoverflow. com/questions/9508431/ack-binding-an-actual-file-name-to-a-filetype - więcej informacji na ten temat. –
- 1. Dodaj ścieżkę do ścieżki wyszukiwania Erlanga?
- 2. Dodaj pęku kluczy do listy wyszukiwania?
- 3. Dodaj wszystkie niewersjonowane pliki do SVN
- 4. Dodaj pliki cookie do retrofitu 2 żądanie
- 5. Git - Dodaj wszystkie nowe pliki do repozytorium
- 6. Konfigurowanie SCons na Autolint
- 7. StreamCorruptedException: nieprawidłowy kod typu: AC
- 8. scons dziedziczenie środowiska budowlanego
- 9. Spring Data Rest - Dodaj link do wyszukiwania w punkcie końcowym
- 10. Dodaj ikonę wyszukiwania na pasku działań Android
- 11. Zmuszanie scons do korzystania ze starszego kompilatora?
- 12. Jak dołączyć pliki nagłówkowe do ścieżki wyszukiwania GCC?
- 13. uzyskiwanie katalogu głównego scons
- 14. SCONS: Cykle zależności?
- 15. SCons lub CUpewnij zamiast qmake
- 16. Skrypt wyszukiwania PowerShell, który ignoruje pliki binarne
- 17. SCons generuje zmienną liczbę celów
- 18. Jak dodać konsolę jak element do programu aC# winforms
- 19. RubyMine: wykluczyć określone pliki z wyszukiwania
- 20. Generowanie kodu SCons i VariantDir
- 21. vim dodaj pliki otwarte przez CLI do: e historia
- 22. Dodaj istniejące pliki XAML do wizualnego studia 2012
- 23. Git dodaj tylko wszystkie nowe pliki, niezmodyfikowane pliki
- 24. Jaka jest różnica między "Dodaj pliki JAR" i "Dodaj zewnętrzne pliki JAR" w środowisku Eclipse?
- 25. Dodaj istniejące pliki obrazów w Dropzone
- 26. Klasa AC# z pustym obszarem nazw
- 27. Zależność SCons od plików generowanych podczas kompilacji
- 28. Dodaj hiperłącze do WPF WPF
- 29. dodaj indeks do pola jsonb
- 30. scons: src i zawierają katalogi
To wydaje się działać tylko dla plików .scons, a nie SConstruct lub SConscript. – jblocksom
Gah, masz rację. Wystarczy sprawdzić źródło - "makefile" i "rakefile" są zakodowanymi wyjątkami. – richq
Dzięki za to. Udało mi się zmodyfikować moją lokalną wersję, aby dodać SConstruct i SConscript w taki sam sposób, w jaki są tam pliki Makefile, może wyślę łatkę. Muszę powiedzieć, że nie szaleję za decyzją o projektowaniu sconsów, aby używać rozszerzeń plików w/out, chociaż widziałem inne systemy kompilacji, które robią to samo. – jblocksom