Так как файлы настроек gschem представляют собой скрипты на языке Scheme, в них заложена возможность расширения функциональности gschem с помощью определения новых функций обработки объектов и страниц.
В gschem (и других утилитах gEDA/gaf, таких как, например,
gnetlist) для обеспечения возможности написания
скриптов на Scheme используется Guile
Scheme, и в распоряжении разработчика оказываются все возможности языка
Guile. Справочное руководство по Guile [Guile Reference Manual]
можно найти либо в формате Info (info guile на
большинстве систем), либо в формате HTML на
веб-странице Guile.
Для доступа к объектам и страницам gEDA и для их изменения имеется набор
модулей, называемый gEDA Scheme API. Есть и Справочное руководство по
Scheme в gEDA [gEDA Scheme Reference Manual] в формате Info
(info geda-scheme).
Действия — это отложенные вычисления [thunks], то есть процедуры Scheme, не принимающие аргументов. Чтобы программа gschem могла их найти, они должны быть определены в верхнеуровневом модуле, поэтому для добавления действия необходимо предпринять один из следующих шагов:
load) из одного из файлов настроек;use-modules) из файлов настроек.
Затем как обычно — с помощью global-set-key — процедуру можно будет
привязать к сочетанию клавиш.
gschem позволяет регистрировать функции, называемые функциями перехвата
[hooks], которые должны выполняться при выполнении пользователем
встроенной функции. Возможность работы с ними предоставляется модулем Guile
(gschem hook). Более подробную информацию об этом см. в разделе
Hooks в gEDA Scheme Reference Manual.
В дополнение к функциям gEDA Scheme API, в gschem для удобства разработчиков расширений предусмотрено несколько вспомогательных процедур.
| Функция | Описание | 
|---|---|
| gschem-print | Экспорт в выходной файл в формате PostScript (см. раздел Печать), имя которого либо задаётся с помощью ключа командной строки -o, либо, если данный ключ не задан, устанавливается в значение по умолчанию, определённое в самой функции. | 
| gschem-postscript ИМЯ_ФАЙЛА | Экспорт PostScript в файл ИМЯ_ФАЙЛА. | 
| gschem-image ИМЯ_ФАЙЛА | Экспорт изображения (см. раздел Экспорт изображений) в выходной файл, указанный с помощью ключа -o, или, если данный ключ не задан, в файлИМЯ_ФАЙЛА. | 
| gschem-exit | Немедленный выход из gschem. Внимание: если у пользователя были несохранённые изменения в схемах, возможности их сохранить у него уже не будет. | 
| gschem-log СООБЩЕНИЕ | Записать СООБЩЕНИЕв журнал gschem. | 
| gschem-msg СООБЩЕНИЕ | Открыть информационное диалоговое окно с текстом СООБЩЕНИЕ. | 
| gschem-confirm СООБЩЕНИЕ | Открыть диалоговое окно подтверждения с кнопками «Да» [«Yes»] и «Нет» [«No»] и текстом СООБЩЕНИЕ. Возвратить#t, если пользователь выберет «Да», или#fв противном случае. | 
| gschem-filesel СООБЩЕНИЕ ШАБЛОН ФЛАГИ | Открыть диалоговое окно выбора файла с текстом СООБЩЕНИЕв заголовке и установленным по умолчанию именем файлаШАБЛОН.ФЛАГИуправляют поведением диалогового окна выбора файла, и должны быть списком строк. В спискеФЛАГИможно задавать следующие строки:"may_exist", если допускается, что выбранный файл уже существует;"must_exist", если выбранный файл уже должен существовать;"must_not_exist", если выбранный файл ещё не должен существовать;"save"для вызова диалогового окна сохранения файла;"open"для вызова диалогового окна открытия файла. |