albatros | texte
Samstag, 4. November 2023

Emacs 29.1.90 III

Meine M-x emacs-init-time liegt mittlerweile nochmal ein bisschen niedriger, bei 2 Sekunden.

In den letzten Tagen vor allem an den completion-at-point-functions geschraubt. Bei einem der letzten Updates setzte irgendetwas bei Company aus. Ich kann es leider nicht nachvollziehen.

Eine lebhafte Diskussion auf emacs-devel vergangene Woche lenkte jedenfalls meine Aufmerksamkeit auf die Alternative Corfu mit Cape. Es wurde vorgeschlagen, Company in Emacs zu integrieren, und Corfu wurde als bessere Lösung hingestellt. Das kann ich nach einem ersten Test durchaus bestätigen. Darüber hinaus habe ich ich mir aber auch die Completion bei AUCTeX endlich mal näher angesehen.

Derzeit läuft bei mir diese Lösung sehr schön:

(use-package corfu
  :init
  (global-corfu-mode)
  :config 
  (setq corfu-auto t)
  (setq corfu-auto-prefix 4)
  (setq completion-styles '(basic))
  )
(use-package cape
  :init
  (add-to-list 'completion-at-point-functions #'cape-dabbrev)
  (add-to-list 'completion-at-point-functions #'cape-tex)
  (add-to-list 'completion-at-point-functions #'cape-elisp-block)
  (add-to-list 'completion-at-point-functions #'TeX--completion-at-point)
  )

(use-package tex
  :ensure auctex
  :defer nil
  :config
  (setq TeX-parse-self t) ;; parse on load
  (setq TeX-auto-save t)  ;; parse on save
  (setq-default TeX-master t)
  (setq TeX-auto-untabify t)
  (setq-default TeX-engine 'luatex)
  (setq TeX-electric-escape t)
  (setq TeX-insert-braces t)
  (setq LaTeX-electric-left-right-brace t)
  )
(use-package reftex
  :config
  (add-hook 'LaTeX-mode-hook 'turn-on-reftex)
  (add-hook 'latex-mode-hook 'turn-on-reftex)
  )

Bin mir noch nicht sicher, ob ich auf cape-tex ganz verzichten kann, wenn ich TeX--completion-at-point reinnehme. Geklärt ist nur, dass diese Funktion bei Cape konfiguriert werden muss, und zwar als letzte in der Liste. Sie wird erst zusammen mit AUCTeX geladen und steht erst bereit, nachdem mindestens ein (La)TeX-Buffer geöffnet wurde. Ansonsten gibt es eine Fehlermeldung, und Corfu/Cape funktionieren gar nicht mehr.

Für die Completion im Mini-Buffer nutze ich weiterhin Ivy mit Swiper und Counsel. Im Buffer zum Schreiben jetzt: Corfu mit Cape.

Schön auch zu sehen, dass die Entwicklung solcher Ergänzungen mittlerweile bei Emacs ein Tempo angenommen hat, das so groß ist, dass selbst das EmacsWiki und teilweise auch der StackExchange nicht mehr mitkommen.

Sie sind nicht angemeldet