Gostaria de configurar minha franja do Emacs para mostrar seções de dobragem de código.
Por exemplo, o BBEdit no Mac mostraria o seguinte ao editar um arquivo JSON:
As próprias marcas são acionáveis: clicar em uma marca expandiria ou reduziria a seção de código correspondente. Quando o documento não possui um modo compatível com dobra de código, a margem não é mostrada.
É possível expandir a funcionalidade da franja do Emacs de tal maneira?
fonte
Hideshowvis.el
funciona muito bem, obrigado! Eu tive alguns problemas para que ele funcionasse em arquivos JSONjs3-mode
; Para contornar esses problemas que eu tinha que ter certeza de que hideshowvis só é ativado depois que todas as ações na fila, por exemplo:(dolist (hook '(emacs-lisp-mode-hook c++-mode-hook)) (add-hook hook 'hideshowvis-enable)) (defun hideshowvis-enable-immediately () (run-at-time "0 seconds" nil 'hideshowvis-enable)) (add-hook 'js3-mode-hook 'hideshowvis-enable-immediately)
Embora eu não ache que os itens adicionais possam receber cliques diretamente (talvez eu esteja errado), um possível hack seria vincular
(kbd "<left-fringe> <double-mouse-1>")
Como o primeiro clique moveria o ponto para o início da linha que corresponde ao ícone de franja, testar o valor de
(point)
sua função hipotética (des) dobrável permitiria identificar qual parte do código (des) dobrar ou se você precisa fazer qualquer coisa (caso nenhum ícone de franja esteja presente para esta linha)exemplo com um buffer de modo organizacional:
Clicar duas vezes na franja alterna a subárvore correspondente.
fonte