ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: https://nixos.org/nix/manual/#ch -expression-language
Π 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/
Π― (Π½Π°Π΄Π΅ΡΡΡ) ΡΠ»ΡΡΡΠΈΠ» ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ:
--regex-NIX=/([^ \t*]*)[ \t]*=.*:/\1/f/
ΠΠΎ ΠΎΠ½ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡ ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ°.
Π― ΡΠ°ΠΌ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² Nix / NixOS ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ°Π»ΠΎ Π·Π½Π°Ρ
ΠΎΠ± ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Ρ ΡΠ°ΠΌ.
Nix ΡΠ°ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠ·ΡΠΊ - ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ https://github.com/NixOS/nix/tree/master/src/libexpr (Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ). ΠΠ°ΡΠ΅ΠΌ Ρ Π·Π½Π°Ρ ΠΊΠΎΠ΅-ΡΡΠΎ Π² haskell https://github.com/peti/language-nix , ΠΈ Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΡΠΈΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ² (ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΈ).
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ; ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ Π½ΠΈΡΠ΅Π³ΠΎ.
Π₯ΠΎΡΡ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΡΠΌΡΡΠ»ΠΈΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², optlib - ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠ»Π°ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΡΠ΅Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ C. ΠΠ°ΠΆΠ½ΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ "Π²ΠΈΠ΄ΠΎΠ²" ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΏΠ°ΡΡΠ΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ C. ΠΡΠ»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π²ΠΈΠ΄ΠΎΠ² ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ, Π½ΠΈΠΊΡΠΎ Π½Π΅ Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ nix Π΅ΡΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΏΠ°ΡΡΠ΅Ρ, ΠΏΠΎΡΠ΅ΠΌΡ Π±Ρ Π²Π°ΠΌ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ? ΠΠΎΠΉ xmcd Π΄Π»Ρ Π²Π°Ρ.
Π‘ΠΌ. Data / optlib / cofee.ctags ΠΈ libexec / drivers / coffeetags.
ΠΡΠΈΠ²Π΅Ρ, ΠΊΠ°ΠΊΠΎΠ² ΡΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
ΠΠ°ΠΏΡΠΎΡ Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΡΡΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΈΠ²Π΅Ρ, ΠΊΠ°ΠΊΠΎΠ² ΡΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?