2017-09-24 2 views
0

Je regarde le code responsable du repliement du code spacemacs lorsque l'origami est activé. Tout ce que je vois est hs-mode activé et les touches liées aux fonctions de pliage de l'origami.Comment fonctionne le pliage spacemacs?

Lorsque je le mets dans ma configuration emacs (pas spacemacs), le pliage ne fonctionne pas comme dans les spacemacs. Ce qui suit est ce que j'ai trouvé de .emacs.d/layers/+spacemacs/spacemacs-editing/packages.el.

(use-package origami 
    :defer t 
    :init 
    (progn 
    (origami-global-mode 1) 
    (define-key evil-normal-state-map "za" 'origami-forward-toggle-node) 
    (define-key evil-normal-state-map "zc" 'origami-close-node) 
    (define-key evil-normal-state-map "zC" 'origami-close-node-recursively) 
    ...) 
    ...) 

Lorsque vous ajoutez cela à ma config emacs:

1) pliage ne fonctionne pas lorsqu'un sexp est en ligne 1

2) pliage fonctionne avec defun mais pas utiliser paquet ou autre fonctions

Je veux trouver l'espace spécifique de l'analyseur spacemacs pour définir les plis afin que je puisse le répliquer dans mes propres emacs. Mais je ne comprends pas comment le pliage fonctionne.

Par exemple, il est de me confondre que lorsque je vérifie la liaison de za par exemple avec describe-key, je vois la clé est liée à evil-toggle-fold plutôt que origami-toggle-fold qui est ce que j'attendais.

Répondre

0

Depuis describe-key montre que za est lié à evil-toggle-fold, je suppose que la couche est en fait pas activé, et le comportement de pliage est tout simplement hs-minor-mode. Vous pouvez essayer d'activer hs-minor-mode et basculer le sexp avec C-c @ C-c.

+0

Vous avez raison le calque n'a pas été activé. Je ne suis toujours pas sûr de la façon dont spacemacs obtient réellement le pliage de travailler. Habituellement, avec le mal, il va dire "Pliage n'est pas pris en charge dans l'un de ces modes majeurs/mineurs", mais dans pliage spacemacs fonctionne simplement. Avez-vous une idée de l'endroit où je peux chercher pour savoir pourquoi? – Piglet

+0

Evil pliant simplement déléguer à l'un des modes de repli disponibles, l'action est mappée dans la variable 'evil-fold-list'. Quand il est dit "Pliage non supporté ...", il suffit d'activer soit "mode mineur-mineur", "mode mineur-mode" ou "mode-origami" puis il suffit de travailler. – tungd