Eu estou tentando me familiarizar com o Emacs Lisp, sua sintaxe, estruturas de dados etc.
info
? Arquivo Alguns built-in funções são explicadas e detalhadas.
Eu estou tentando me familiarizar com o Emacs Lisp, sua sintaxe, estruturas de dados etc.
info
? Arquivo Alguns built-in funções são explicadas e detalhadas.
Respostas:
Posso recomendar o Modo Ruby ruby-mode.el
e o Modo Python python.el
, para alguns aspectos de sua implementação. O primeiro é uma fonte particularmente excelente para recuo avançado e código de navegação baseado no novo mecanismo SMIE. No entanto, nenhum deles utiliza estruturas de dados de maneira particularmente inteligente ou avançada.
Eu também recomendaria algumas partes do Org Mode 8, por seu design. Notavelmente, a estrutura exportadora da Org 8 mostra como criar uma estrutura genérica, extensível e parecida com um objeto no Emacs Lisp simples. No entanto, eu recomendaria contra a maioria das outras partes da organização, por razões já declaradas nos comentários: É antiga e cheia de práticas legadas e prejudiciais (por exemplo, find-file-noselect
para ler arquivos de maneira não interativa).
Diz-se também que o Gnus tem um bom código, mas, novamente, eu seria cuidadoso em determinar o quão bem mantida é a parte específica do código que você está olhando.
Como o próprio Emacs é muito antigo, e apenas superficialmente mantido em muitos lugares, a qualidade média de seu código é realmente bastante baixa para os padrões modernos. Há muitas coisas herdadas lá. Por exemplo, mesmo em partes principais, como o compilador de bytes, você encontrará “TODO” e “DUNNO” datando de anos, se não décadas. Além disso, como o Emacs é muito lento para receber código e desenvolvedores da comunidade "externa" devido às políticas restritivas estabelecidas pela FSF, a qualidade geral aumenta apenas lentamente.
No geral, é mais provável que você encontre um bom código em pacotes populares de terceiros mantidos por membros da comunidade de alto nível, como Magit, Projectile, etc.
debbugs
?) ...