Description: https://nixos.org/nix/manual/#ch -expression-language
Il y a une configuration très basique sur 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/
J'ai (espérons-le) amélioré cela un peu localement:
--regex-NIX=/([^ \t*]*)[ \t]*=.*:/\1/f/
Mais c'est encore trop basique et nécessiterait probablement un analyseur séparé.
Je suis moi-même nouveau sur Nix / NixOS, et n'ai donc pas beaucoup de connaissances
à propos de cette langue moi-même.
Nix lui-même analyse le langage - il utilise des outils standard d'analyse et de lexing https://github.com/NixOS/nix/tree/master/src/libexpr (probablement le plus utile dans le contexte de ce problème). Ensuite, je connais certaines choses dans haskell https://github.com/peti/language-nix , et il existe des surligneurs de syntaxe pour divers éditeurs (ou bibliothèques de surlignage).
En tant que version initiale, une implémentation basée sur une expression régulière est correcte; c'est toujours mieux que rien.
Bien que je doive repenser les structures de répertoires, optlib est le premier moyen de classe d'implémenter un analyseur.
Vous pouvez écrire un analyseur basé sur C plus tard. Le point important est la compatibilité des "genres" entre les regex
analyseur basé et analyseur basé sur C. Si la compatibilité des genres est conservée, personne ne s'occupe du mode de mise en œuvre.
Cependant, si l'implémentation nix a un véritable analyseur, pourquoi ne l'utilisez-vous pas? Mon xmcd est fait pour vous.
Voir data / optlib / cofee.ctags et libexec / drivers / coffeetags.
Salut, quel est le statut de ce problème?
Une demande de tirage est la bienvenue.
Commentaire le plus utile
Salut, quel est le statut de ce problème?