Aller au tampon de documentation avec le mode entreprise
10
Je suis récemment passé de auto-complete-modeà company-modeet je m'amuse. Récemment, j'ai dû écrire du code Lisp Emacs. Je commence à taper ma fonction, les candidats à l'achèvement sont affichés, j'appuie sur F1et la documentation s'ouvre dans un autre tampon. Je voudrais passer au tampon de documentation , mais, au fur et à mesure que je tape, C-x oil se ferme. Un indice?
Juste pour être complet: voici le problème que j'ai ouvert sur le référentiel du projet GitHub, et ils ont suggéré de suivre cette voie.
petrux
Je voulais juste publier mon petit ajustement au cas où vous voudriez que cette fenêtre soit également sélectionnée (defun my-company-show-doc-buffer () "Afficher temporairement le tampon de documentation pour la sélection." (Interactif) (let * ((sélectionné (nth company-selection company-Candidates)) (doc-buffer (ou (company-call-backend 'doc-buffer selected) (erreur "Aucune documentation disponible"))))) (with-current-buffer doc-buffer (goto -char (point-min))) (fenêtre de sélection (tampon d'affichage doc-tampon t)))))
Que se passe-t-il lorsque vous appuyez sur F1 en mode entreprise
Il utilise pop-to-window pour afficher le tampon d'aide, mais le masque avant la commande suivante (sauf si cette commande est scroll-other-window ou scroll-other-window-down).
Sur cette base, vous pouvez uniquement faire défiler le tampon de documentation, pas y accéder.
Mais, en regardant le code de pour company-show-doc-buffer, je remarquai qu'il utilise company--electric-do, qui fera appel de manière interactive toutes les commandes company--electric-commands. Normalement, il ne contient que scroll-other-windowet scroll-other-window-down, mais vous pouvez peut-être ajouter other-windowà cette liste.
Je viens de tester comme ça: (defvar company--electric-commands '(scroll-other-window scroll-other-window-down other-window) "List of Commands that won't break out of electric commands.")mais ça ne marche pas. Au fur et à mesure que je tape, C-...le tampon d'aide se ferme. La même mise (add-to-list 'company--electric-commands 'other-window)dans mon fichier init.
petrux
Ouais, ressemble à l'entreprise - electric-do utilise save-window-excursionpour enregistrer / restaurer la configuration de la fenêtre, donc cela ne fonctionnera pas. Vous feriez mieux de lier votre propre commande 'show doc' à une clé dans le company-active-map.
Commentaire de l'auteur sur une page comparant le mode entreprise à la saisie semi-automatique :
Sur cette base, vous pouvez uniquement faire défiler le tampon de documentation, pas y accéder.
Mais, en regardant le code de pour
company-show-doc-buffer
, je remarquai qu'il utilisecompany--electric-do
, qui fera appel de manière interactive toutes les commandescompany--electric-commands
. Normalement, il ne contient quescroll-other-window
etscroll-other-window-down
, mais vous pouvez peut-être ajouterother-window
à cette liste.la source
(defvar company--electric-commands '(scroll-other-window scroll-other-window-down other-window) "List of Commands that won't break out of electric commands.")
mais ça ne marche pas. Au fur et à mesure que je tape,C-...
le tampon d'aide se ferme. La même mise(add-to-list 'company--electric-commands 'other-window)
dans mon fichier init.save-window-excursion
pour enregistrer / restaurer la configuration de la fenêtre, donc cela ne fonctionnera pas. Vous feriez mieux de lier votre propre commande 'show doc' à une clé dans lecompany-active-map
.