Ctags: Soporte para el lenguaje de expresión Nix (Nix / NixOS)

Creado en 7 mar. 2015  ·  4Comentarios  ·  Fuente: universal-ctags/ctags

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.

Parser buenhancement

Comentario más útil

Hola, ¿cuál es el estado de este problema?

Todos 4 comentarios

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.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

cweagans picture cweagans  ·  13Comentarios

songouyang picture songouyang  ·  15Comentarios

trevordmiller picture trevordmiller  ·  9Comentarios

alphaCTzo7G picture alphaCTzo7G  ·  7Comentarios

sparkcanon picture sparkcanon  ·  3Comentarios