Ctags: Suporte para a linguagem de expressão Nix (Nix / NixOS)

Criado em 7 mar. 2015  ·  4Comentários  ·  Fonte: universal-ctags/ctags

Descrição: https://nixos.org/nix/manual/#ch -expression-language

Existem algumas configurações básicas em 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/

Eu (espero) melhorei isso um pouco localmente:

--regex-NIX=/([^ \t*]*)[ \t]*=.*:/\1/f/

Mas ainda é muito básico e provavelmente precisaria de um analisador separado.

Sou novo no Nix / NixOS e, portanto, não tenho muito conhecimento
sobre esta linguagem eu mesmo.

Parser buenhancement

Comentários muito úteis

Olá, qual é a situação deste problema?

Todos 4 comentários

O próprio Nix analisa a linguagem - ele usa ferramentas de análise e lexagem padrão https://github.com/NixOS/nix/tree/master/src/libexpr (provavelmente mais útil no contexto deste problema). Então eu sei sobre algumas coisas em haskell https://github.com/peti/language-nix , e há realçadores de sintaxe para vários editores (ou bibliotecas de realce).

Como uma versão inicial, uma implementação baseada em expressão regular está ok; é sempre melhor do que nada.
Embora eu tenha que repensar as estruturas de diretório, optlib é a primeira forma de implementar um analisador.
Você pode escrever um analisador baseado em C mais tarde. O ponto importante é a compatibilidade de "tipos" entre regex
analisador baseado e analisador baseado em C. Se a compatibilidade dos tipos for mantida, ninguém se preocupará com a forma de implementação.

No entanto, se a implementação do nix tem um analisador real, por que você não o utiliza? Meu xmcd é para você.
Veja data / optlib / cofee.ctags e libexec / drivers / coffeetags.

Olá, qual é a situação deste problema?

Uma solicitação de pull é bem-vinda.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

sparkcanon picture sparkcanon  ·  3Comentários

cweagans picture cweagans  ·  4Comentários

masatake picture masatake  ·  18Comentários

jespinal picture jespinal  ·  8Comentários

blackb1rd picture blackb1rd  ·  8Comentários