Deskripsi: https://nixos.org/nix/manual/#ch -expression-language
Ada beberapa konfigurasi yang sangat mendasar di 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/
Saya (semoga) telah meningkatkan ini sedikit secara lokal:
--regex-NIX=/([^ \t*]*)[ \t]*=.*:/\1/f/
Tapi itu masih terlalu mendasar dan mungkin membutuhkan parser terpisah.
Saya sendiri baru mengenal Nix / NixOS, dan karenanya tidak memiliki banyak pengetahuan
tentang bahasa ini sendiri.
Nix sendiri mengurai bahasanya - ia menggunakan alat parsing dan lexing standar https://github.com/NixOS/nix/tree/master/src/libexpr (mungkin paling berguna dalam konteks masalah ini). Kemudian saya tahu tentang beberapa hal di haskell https://github.com/peti/language-nix , dan ada penyorot sintaks untuk berbagai editor (atau perpustakaan penyorotan).
Sebagai versi awal, implementasi berbasis ekspresi reguler tidak masalah; itu selalu lebih baik daripada tidak sama sekali.
Meskipun saya harus memikirkan kembali struktur direktori, optlib adalah cara kelas pertama untuk mengimplementasikan parser.
Anda dapat menulis parser berbasis C nanti. Poin pentingnya adalah kompatibilitas "jenis" antara regex
parser berbasis dan parser berbasis C. Jika kompatibilitas jenis disimpan, tidak ada yang memperhatikan cara penerapan.
Namun, jika implementasi nix memiliki parser yang sebenarnya, mengapa Anda tidak menggunakannya? Xmcd saya untuk Anda.
Lihat data / optlib / cofee.ctags dan libexec / drivers / coffeetags.
Hai, apa status masalah ini?
Permintaan tarik diterima.
Komentar yang paling membantu
Hai, apa status masalah ini?