Ctags: ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языка Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Nix (Nix / NixOS)

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 7 ΠΌΠ°Ρ€. 2015  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: universal-ctags/ctags

ОписаниС: 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 ΠΈ поэтому ΠΌΠ°Π»ΠΎ знаю
ΠΎΠ± этом языкС я сам.

Parser buenhancement

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠ² статус этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹?

ВсС 4 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

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.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠ² статус этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹?

Запрос Π½Π° вытягиваниС привСтствуСтся.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

EvanCarroll picture EvanCarroll  Β·  14ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

lvc picture lvc  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

cweagans picture cweagans  Β·  13ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

liuchengxu picture liuchengxu  Β·  8ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

cweagans picture cweagans  Β·  8ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ