Muitos modos do Emacs usam formas (algo como): a interface de personalização é uma delas, o modo de mensagem (leia-se: parte do cabeçalho) é outra; existem mais deles, infelizmente nem sempre são muito parecidos. Por "formulário", quero dizer aqui um buffer com partes somente leitura e locais designados para inserir texto; pode ou não conter botões (provavelmente deve aceitar C-c C-c
como a chave de confirmação / confirmação, independentemente da presença de um botão OK ).
Estou particularmente interessado no preenchimento automático nos campos (e, em particular, em ativar campos com listas de valores de algum conjunto designado, por exemplo, separado por vírgula). Minha pergunta é: existe alguma biblioteca do Emacs que permita a criação fácil (por "fácil", quero dizer, de não reinventar a roda) de tais formas, ou devo codificar tudo sozinha?
(Eu imagino que o que devo fazer neste último caso seria (1) definir algumas partes do buffer de somente leitura, (2) preparar um modo maior especial, de modo que, por exemplo TAB
e S-TAB
alternar entre "campos", e (3) talvez use algo como Sincelos ou Helm para preenchimento automático.)
Respostas:
Veja bibliotecas
cus-edit.el
ewid-edit.el
(e suas bibliotecas de nível superiorcustom.el
ewidget.el
, e bibliotecas de componentes associadas), incluídas no GNU Emacs. O primeiro faz uso do último. O último define coisas básicas (e não tão básicas) de entrada de formulário, chamadas " widgets ", em uma hierarquia. Você pode usar esses widgets e funções predefinidos na biblioteca para criar seus próprios widgets e tipos de widget.No entanto, esteja ciente de que o código dessas bibliotecas, particularmente o de
wid-edit.el
, não é muito fácil de seguir. Sua melhor aposta é começar reutilizando os widgets existentes ou usando o código de definição de widget existente como guia.(Duas bibliotecas de extensão menores para isso são
cus-edit+.el
ewid-edit+.el
. Eles também apresentam alguns exemplos de uso.)Existe um manual de informações para widgets, distribuído com o GNU Emacs, intitulado " The Emacs Widget Library ".
Há também uma biblioteca
forms.el
, incluída no GNU Emacs, mas não estou familiarizada com isso. Talvez alguém tenha algo útil a dizer sobre isso. Existe um manual para formulários, distribuído com o GNU Emacs, intitulado " Modo de formulários ".fonte
\(custom\|widget\).el
e\(cus\|wid\)-edit.el
um pouco? Eu acho especialmente esta parte dos Widgets incompreensível manual:(require 'widget) (eval-when-compile (require 'wid-edit))
.cus-edit.el
ewid-edit.el
. Os outros arquivos mencionados são de nível superior; os*-edit.el
arquivos têm o código que eu estava interessado. Não sei muito mais do que isso; desculpa. A dificuldade real é o próprio código, que usa um estilo semi-OOP específico que não se presta bem à autodocumentação do Emacs (para dizer o mínimo) ou ao depurador do Emacs. Você pode investigar por conta própria ou tentar entrar em contato com o autor (boa sorte com isso!). Talvez outros aqui ajudem.