Spec-Zone.ru › Elisp

Написание динамически загружаемых модулей

В этом разделе описывается API модулей Emacs и рассказывается, как использовать его при написании модулей расширения для Emacs. API модулей определён на языке программирования C, поэтому описание и примеры в этом разделе предполагают, что модуль написан на C. Для других языков программирования потребуются соответствующие привязки, интерфейсы и средства для вызова кода на C. Для кода Emacs на C требуется компилятор, поддерживающий C99 или более позднюю версию стандарта (см. Диалект C), поэтому примеры кода в этом разделе также соответствуют этому стандарту.

Написание модуля и его интеграция в Emacs состоят из следующих задач:

  • Написание кода инициализации модуля.
  • Написание одной или нескольких функций модуля.
  • Обмен значениями и объектами между Emacs и функциями модуля.
  • Обработка ошибок и нелокальных выходов.

В следующих подразделах эти задачи и сам API описаны подробнее.

После написания модуля скомпилируйте его, чтобы создать разделяемую библиотеку, следуя соглашениям используемой платформы. Затем поместите разделяемую библиотеку в каталог, указанный в load-path (см. Поиск библиотек), где Emacs сможет её найти.

Чтобы проверить соответствие модуля динамическому API модулей Emacs, запустите Emacs с параметром --module-assertions. См. раздел Начальные параметры в Руководстве GNU Emacs.

  • Код инициализации модуля
  • Написание функций модуля
  • Преобразование значений между Lisp и модулем
  • Различные вспомогательные функции для модулей
  • Нелокальные выходы в модулях

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Writing-Dynamic-Modules.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API