Пакет apheleia.el обновился до версии 4.4.3.Несколько месяцев назад я полностью отказался от MELPA и MELPA Stable, поэтому об обновлении узнал только зайдя на сайт проекта.Если в буфере активен режим apheleia-mode, при сохранении вызывается соответствующее средство автоматического форматирования.В отличие от format-all, apheleia старается сохранить позицию курсора, чтобы вам не нужно было вспоминать на какой строке вы были до того, как внешний форматтер покорёжил разметку.Настройки:;; 📦 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))Можно вызывать вручную, можно автоматически, через F12.
Похожие каналы
Все →Последние посты
До 1 апреля осталось совсем немного, и я не знаю, будет ли после этой даты без КВН работать Telegram. Пути отхода:1. Boosty: https://boosty.to/simple-emacs2. GitHub: https://github.com/emacs-ru/3. Личный блог. ОТКРЫВАЙТЕ ОСТОРОЖНО, ТАМ НЕ ТОЛЬКО ТЕХНИНА, НО ЕЩЁ НЫТЬЁ И МАТ: https://dunaevsky-ms.ru/Наиболее перспективным вижу такой путь: в личном блоге сделать раздел, где будут посты только про Emacs, и писать туда.Если вы знаете вариант получше, напишите в комментариях.
Наглядная демонстрация
Я годами держал в init.el код, связывающий [M-'] с функцией comment-or-uncomment-region. И совершенно зря, ведь к [M-;] уже привязана куда более удобная и умная функция comment-dwim:1. Если ничего не выделено, то в текущей строке будет добавлено начало комментария.2. Если активен регион, то функция посмотрит, является ли он комментарием. Если да — раскомментирует. Если нет — закомментирует. Одним словом, ведёт себя как comment-or-uncomment-region.3. Если курсор находится в незакомментированной строки, нажатие [M-;] приведёт к перемещению курсора за пределы строки и вставки начала комментария.
Есть такая система разметки Typst. Это такой LaTeX с человеческим лицом. Во всяком случае, порог вхождения у него на порядок ниже.Emacs поддерживает эту разметку, но нужно выполнить несколько условий.1. Нужна версия не ниже 29.2. Нужна поддержка TreeSitter.Дальше всё просто:1. Установите пакет typst-ts-mode.el.2. Выполните команду typst-ts-mc-install-grammar. В книге описан способ установки через treesit-language-source-alist, чтобы единообразно было. Однако, авторов пакета можно похвалить за то, что они добавили команду, которая может сделать всё за нас.3. Включите нужные дополнительные режимы.
Напоминаю, что у нас есть проект emacs-from-scratch: настройки базовой функциональности Emacs, без сторонних пакетов.Оставляйте ваши Issue и Pull Request'ы, сделаем Emacs ближе к людям!https://github.com/emacs-ru/emacs-from-scratch
Для тех, кто использует TreeSitter. В Emacs довольно старая версия нужной библиотеки, поэтому с течением времени вы будете всё чаще видеть эти 2 ошибки:⛔️ Warning (treesit): Cannot activate tree-sitter, because language grammar for rust is unavailable (version-mismatch): 15⛔️ Warning (treesit): The installed language grammar for rust cannot be located or has problems (version-mismatch): 15Что делать?Вариантов несколько:1. Не используйте режим на базе TreeSitter, берите обычный. Также удалите код, добавляющий сбойную грамматику в treesit-language-source-alist.2. Идите в репозиторий грамматики и посмотрите историю релизов и коммитов. Методом проб и ошибок найдите ревизию кода, которая соберётся с вашей версией Emacs.3. Обновите Emacs. Возможно, потребуется собрать его из исходного кода. Этот способ я не рекомендую ввиду его сложности для большинства людей.
Версия книги полугодовой давности.
Немножко подкрутил настройки savehist:;; SAVE-HIST;; Встроенный пакет для запоминания истории команд(use-package savehist :hook (server-done . savehist-save) (kill-emacs . savehist-save) :config (add-to-list 'delete-frame-functions 'savehist-save) (add-to-list 'savehist-additional-variables 'compile-history) (add-to-list 'savehist-additional-variables 'regexp-search-ring) (add-to-list 'savehist-additional-variables 'search-ring) (add-to-list 'savehist-additional-variables 'shell-command-history) (savehist-mode t))В такой конфигурации он будет запоминать историю поиска по обычным и регулярным выражениям, историю команд компиляции и историю команд, выполняемых с помощью shell-command.Возможно, есть и другие переменные, в имени которых есть слово history, но пока хватит и этого.
Шо, опять?https://www.opennet.ru/opennews/art.shtml?num=64725