Написание динамически загружаемых модулей
В этом разделе описывается 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-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