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.

• Инициализация модуля
• Функции модуля
• Значения модуля
• Разное для модулей
• Нелокальные вызовы в модулях

Copyright © 1990-1996, 1998-2022 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