Next: , Previous: , Up: Содействие   [Contents][Index]


22.3 Совершенная установка

Совершенная установка для программирования Guix — это лучший способ разработки Guix (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). Для удобной разработки Guix обязательно настройте Guile для загрузки файлов из вашей инстанции:

;; Assuming the Guix checkout is in ~/src/guix.
(with-eval-after-load 'geiser-guile
  (add-to-list 'geiser-guile-load-path "~/src/guix"))

Вообще, для редактирования кода, в Emacs уже есть Scheme mode. Но также обратите внимание на Paredit. Данный пакет предоставляет средства для непосредственной работы с синтаксическим деревом, такие как объявление s-выражений, их упаковка, отклонение следующего s-выражения и т.д.

We also provide templates for common git commit messages and package definitions in the etc/snippets directory. These templates can be used to expand short trigger strings to interactive text snippets. If you use YASnippet, you may want to add the etc/snippets/yas snippets directory to the yas-snippet-dirs variable. If you use Tempel, you may want to add the etc/snippets/tempel/* path to the tempel-path variable in 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]