MELPA

Нужна ли на самом деле MELPA?

Пакеты (в других местах это называется «плагины») Emacs может устанавливать разными способами, но наиболее распространённый — использование архивов пакетов.

Основных архивов 4:

ELPA — от Emacs Lisp Packages Archive.

В актуальных версиях Emacs последние два архива используются по умолчанию, а вот MELPA и MELPA Stable надо подключать вручную.

Долгое время я ставил пакеты из MELPA, ведь это самый большой архив, и пакеты в нём самых последних версий. Однако, это создаёт и определённые трудности. Пакеты в MELPA — это самые свежие версии кода в соответствующих репозиториях, при том часто сломанные.

MELPA Stable эту проблему не решает, так как содержит версии кода, отмеченные тегами. Тег не является гарантией качества или стабильности.

Пакеты в GNU ELPA и NonGNU ELPA всегда казались мне старыми. Однако, когда я начал писать книгу про Emacs, то понял, что я не могу и не должен давать своим читателям примеры плохих практик. Если редактор будет постоянно ломаться, то зачем он нужен?

Поэтому я и решил поставить эксперимент над собой, и убрал из init.el код, добавляющий архивы MELPA и MELPA Stable в список известных.

Несколько пакетов оттуда мне всё ещё нужны, но эту проблему можно легко решить, достаточно использовать атрибут :vc в use-package:

;; 📦 APHELEIA
;; https://github.com/radian-software/apheleia
;; Автоформат буфера перед сохранением.
(use-package apheleia
  :vc
  (:url "https://github.com/radian-software/apheleia.git"
        :rev "v4.4.3")
  :custom
  (apheleia-mode-lighter " ɑ" "Вместо длинного Apheleia")
  :bind
  (:map global-map
        ("<f12>" . apheleia-format-buffer))
  :hook
  ((emacs-lisp-mode
    python-mode
    python-ts-mode
    ruby-mode
    ruby-ts-mode
    yaml-ts-mode) . apheleia-mode))

;; 📦 RUSSIAN-TECHWRITER
;; Метод ввода для технических писателей.
;; В отличие от russian-computer, позволяет использовать лигатуры.
;; https://github.com/dunmaksim/emacs-russian-techwriter-input-method
(use-package russian-techwriter
  :vc (:url "https://github.com/dunmaksim/emacs-russian-techwriter-input-method.git"
            :rev :newest)
  :custom
  (default-input-method "russian-techwriter" "Метод ввода по умолчанию.")
  (default-transient-input-method "russian-techwriter" "Временный метод ввода"))

Всего 2 пакета, из них один — мой собственный.

Примерно год я пользуюсь только GNU ELPA и NonGNU ELPA. Не вижу причин что-то менять и снова пользоваться MELPA и MELPA Stable.

Создано при помощи Hugo
Тема Stack, дизайн Jimmy