Me encanta la utilidad de búsqueda de código ack
. Es lo suficientemente inteligente como para buscar a través de Makefiles, pero no conoce los archivos SConstruct y SConscript que usa scons. ¿Cómo agrego esos a los archivos que buscará?Agregar archivos SCONS a las búsquedas de Ack
Respuesta
Esto no se puede hacer utilizando los conjuntos de tipos de ack. Makefiles and Rakefiles are hard-coded en la fuente. Pensé que podría agregar un tipo de scon modificando $HOME/.ackrc
y agregando --type-set=scons=SConstruct,SConscript
, pero eso buscará un archivo que termine en ".SConstruct" o ".SConscript".
La solución más sencilla es añadir la -a (todos los tipos de archivos) a la bandera ACK.
Si simplemente desea buscar y poder filtrar el SConstruct de alguna manera, entonces puede agregar #!/usr/bin/python
como la primera línea del archivo SConstruct. Ack tratará el archivo como código fuente de Python y puede filtrar con --python
.
Aquí es un parche que trata los archivos SCons gusta hacer que los archivos:
--- ~/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';
estoy ejecutando el paquete deb de la versión 1.92 ACK en Ubuntu 10.04, y el mismo parche se puede aplicar manualmente a /usr/share/perl5/App/Ack.pm en torno a la línea 476. –
Un nuevo ack2 está en desarrollo que permitirá a juego exacto del archivo en el archivo .ackrc. Eso permitirá un soporte más fácil para Scons y Jam.
Ver http: // stackoverflow. com/questions/9508431/ack-binding-an-real-file-name-to-a-filetype para obtener más información al respecto. –
- 1. Configuración de SCons a Autolint
- 2. ¿Cómo hacer que ack incluya archivos .conf?
- 3. equivalente a "touch" en scons?
- 4. Optimización de las búsquedas de tabla virtual
- 5. Obstrucciones geográficas en las búsquedas de radio
- 6. SCons depende de los archivos generados en tiempo de compilación
- 7. no se muestran las búsquedas recientes, las sugerencias personalizadas son
- 8. búsquedas LDAP insensibles a mayúsculas
- 9. ¿Cómo dejar que ack admita más tipos de archivos?
- 10. implementando ack sobre UDP?
- 11. ack-grep: caracteres escapando
- 12. SCons: Ciclos de dependencia?
- 13. Activar Ack en MacVIm
- 14. SCons Salida en el directorio de compilación
- 15. Deshabilitar ACK retrasados de TCP
- 16. scons: anulando las opciones de compilación para un archivo
- 17. ¿Cómo funcionan las búsquedas de hash de diccionario de Python?
- 18. ¿Ocultar el teclado después de las búsquedas del usuario?
- 19. Ack: árbol de directorios de búsqueda para archivos con una extensión particular
- 20. Agregar archivos no versionados a la subversión
- 21. Agregar borde a las imágenes
- 22. Agregar tuplas a las listas
- 23. scons herencia del entorno de construcción
- 24. Crear una compilación jerárquica con SCons
- 25. Agregar BOM a archivos UTF-8
- 26. ¿Agregar archivos a un archivo ZIP?
- 27. 7Zip agregar cifrado a los archivos
- 28. Agregar información personalizada a archivos CSPROJ
- 29. Agregar metadatos personalizados a archivos jpeg
- 30. Forzando a los scons a usar un compilador anterior?
Parece que solo funciona para archivos .scons, no SConstruct o SConscript. – jblocksom
Gah, tienes razón. Acabo de comprobar el origen: "archivo de creación" y "archivo de seguimiento" son excepciones codificadas. – richq
Gracias por buscar eso. Pude modificar mi versión local para agregar SConstruct y SConscript de la misma manera que los archivos make están ahí, tal vez envíe un parche. Debo decir que no estoy loco por la decisión del diseño de scons de usar archivos sin extensiones, aunque he visto otros sistemas de compilación que hacen lo mismo. – jblocksom