Next: Альтернативные настройки, Previous: Запуск Guix перед его установкой, Up: Содействие [Contents][Index]
Совершенная установка для программирования Guix — это, по сути, совершенная установка, используемая для программирования на Guile (see Using Guile in Emacs in Guile Reference Manual). Во-первых, вам нужно нечто, большее, чем текстовый редактор, вам нужен Emacs, дополненный замечательным Geiser. Чтобы установить всё это, введите:
guix install emacs guile emacs-geiser emacs-geiser-guile
Geiser добавляет возможности интерактивной пошаговой разработки внутри Emacs: компиляция и запуск кода в буферах, доступ к онлайн-документации (docstrings), контекстные дополнения, M-. для перемещения к определениям объектов, REPL для тестирования кода и многое другое (see Introduction in Geiser User Manual). Если вы позволите Emacs загружать файл .dir-locals.el в корне ветки вашего проекта, Geiser автоматически добавит локальные исходники Guix в пути Guile.
Вообще, для редактирования кода, в Emacs уже есть классный Scheme режим. Но также обратите внимание на Paredit. Данный пакет предоставляет средства для непосредственной работы с синтаксическим деревом, такие как объявление s-выражений, их упаковка, отклонение следующего s-выражения и т.д.
Мы также предоставляем шаблоны для стандартных git-коммитов и определений пакетов в каталоге etc/snippets. Эти шаблоны могут быть использованы для расширения коротких строк триггера до интерактивных фрагментов текста. Если вы используете YASnippet, возможно вы захотите добавить каталог сниппетов etc/snippets/yas в переменную yas-snippet-dirs. Если вы используете Tempel, возможно вы захотите добавить путь etc/snippets/tempel/* в переменную tempel-path в Emacs.
;; Assuming the Guix checkout is in ~/src/guix. ;; Yasnippet configuration (with-eval-after-load 'yasnippet (add-to-list 'yas-snippet-dirs "~/src/guix/etc/snippets/yas")) ;; Tempel configuration (with-eval-after-load 'tempel ;; Ensure tempel-path is a list -- it may also be a string. (unless (listp 'tempel-path) (setq tempel-path (list tempel-path))) (add-to-list 'tempel-path "~/src/guix/etc/snippets/tempel/*"))
Тексты сообщений коммитов зависят от отображения затронутых файлов
Magit. Во время редактирования сообщения коммита
типа add
нажмите TAB после его ввода, чтобы вставить шаблон
сообщения коммита добавления пакета; редактируя тип update
, нажмите
TAB, чтобы вставить шаблон обновления пакета; тип https
-
кнопка TAB вставит шаблон изменения адреса домашней страницы пакета на
HTTPS.
Основной код для scheme-mode
вызывается при вводе package...
и
кнопки TAB. Этот код также вставляет строку триггера origin...
,
который может быть расширен в дальнейшем. Код origin...
, в свою
очередь, может вставить строки других триггеров, завершающихся ...
,
который также может быть расширен в дальнейшем.
Мы дополнительно обеспечиваем автоматическое обновление информации об авторских правах в etc/copyright.el. Вы можете указать свое полное имя, почту и загрузить файл.
(setq user-full-name "Alice Doe") (setq user-mail-address "alice@mail.org") ;; Assuming the Guix checkout is in ~/src/guix. (load-file "~/src/guix/etc/copyright.el")
Чтобы ввести авторское право в текущей строке, вызовите M-x
guix-copyright
.
Для обновления авторских прав необходимо указать
copyright-names-regexp
.
(setq copyright-names-regexp
(format "%s <%s>" user-full-name user-mail-address))
Вы можете проверить актуальность своих авторских прав, вызвав M-x
copyright-update
. Если вы хотите делать это автоматически после каждого
сохранения в буфер, то добавьте (add-hook 'after-save-hook
'copyright-update)
в Emacs.
Next: Альтернативные настройки, Previous: Запуск Guix перед его установкой, Up: Содействие [Contents][Index]