Descripción: https://nixos.org/nix/manual/#ch -expression-language
Hay una configuración muy básica en https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/misc/ctags/wrapped.nix :
--langdef=NIX
--langmap=NIX:.nix
--regex-NIX=/([^ \t*]*)[ \t]*=/\1/f/
He (con suerte) mejorado esto un poco localmente:
--regex-NIX=/([^ \t*]*)[ \t]*=.*:/\1/f/
Pero todavía es demasiado básico y probablemente necesitaría un analizador independiente.
Yo mismo soy nuevo en Nix / NixOS y, por lo tanto, no tengo muchos conocimientos
sobre este idioma yo mismo.
El propio Nix analiza el idioma: utiliza herramientas estándar de análisis y lexización https://github.com/NixOS/nix/tree/master/src/libexpr (probablemente las más útiles en el contexto de este problema). Entonces sé algunas cosas en haskell https://github.com/peti/language-nix , y hay resaltadores de sintaxis para varios editores (o bibliotecas de resaltado).
Como versión inicial, una implementación basada en expresiones regulares está bien; siempre es mejor que nada.
Aunque tengo que repensar las estructuras de directorio, optlib es la primera forma de implementar un analizador.
Puede escribir un analizador basado en C más tarde. El punto importante es la compatibilidad de "tipos" entre expresiones regulares
analizador basado en C y analizador basado en C. Si se mantiene la compatibilidad de tipos, nadie se ocupa de la forma de implementación.
Sin embargo, si la implementación de nix tiene un analizador real, ¿por qué no lo utiliza? Mi xmcd es para ti.
Consulte data / optlib / cofee.ctags y libexec / drivers / coffeetags.
Hola, ¿cuál es el estado de este problema?
Una solicitud de extracción es bienvenida.
Comentario más útil
Hola, ¿cuál es el estado de este problema?