Библиотека сообщений

Со временем то, что начиналось как одна функция для отправки сообщений, превратилось в набор связанных функций. Эти функции теперь составляют основу Библиотеки сообщений, предназначенной для обработки вывода в различные места назначения, такие как графический интерфейс пользователя, консоль ошибок и терминал.

Почему библиотека сообщений?

По мере роста наших потребностей обработка сообщений на нескольких выходах требует более модульного и расширяемого подхода. Вместо одной функции, которая делает все, мы разбили процесс на повторно используемые компоненты, что обеспечивает большую гибкость. Эту библиотеку теперь можно использовать как инструмент обмена сообщениями общего назначения, который могут заимствовать другие плагины или функции.

Что делает библиотека сообщений?

Библиотека сообщений в настоящее время включает в себя следующие функции:

  • send-to-gui: отправляет сообщения в диалоговое окно Lumi GUI.
  • send-to-error-console: отправляет сообщения в консоль ошибок Lumi.
  • send-to-terminal: отправляет сообщения в окно терминала.
  • send-message: функция диспетчера, которая направляет сообщения на соответствующий выход.
  • validate-message: гарантирует, что сообщение и выходные данные действительны перед отправкой.

Расширение библиотеки

Библиотека сообщений может быть легко расширена для поддержки дополнительных выходов. Например:

  • отправить в файл: сохранять сообщения в файл журнала.
  • отправка в регистратор: интеграция с внешней системой журналирования.
  • отправить на уведомление: отображать сообщения как системные уведомления.

Следуя той же схеме модульного дизайна и многократного использования функций, эта библиотека может превратиться в комплексный инструмент для решения всех видов задач обмена сообщениями.

Преимущества библиотеки сообщений

  • Повторное использование: функции можно повторно использовать в разных плагинах или проектах.
  • Модульность: каждая функция выполняет одну конкретную задачу, что упрощает поддержку и расширение кода.
  • Согласованность: использование одних и тех же функций проверки и обработки сообщений обеспечивает согласованное поведение во всем приложении.

Библиотека сообщений — это начало более широкой структуры, которая может упростить управление сообщениями в вашем проекте. По мере роста библиотеки новые плагины могут легко подключаться к ней и отправлять сообщения куда угодно.

Мы можем настроить структуру файла:

/home/your-username/code/
  ├── script-fu/
      ├── library/
      │     └── send-message.scm -> messaging.scm
      └── plug-ins/
            └── hello-world/
                  └── hello-world.scm

И не забудьте настроить load в основном плагине:

# !/usr/bin/env lumi-scheme-interpreter-0.1

(load "/home/mark/code/github/script-plugins/funky-library/messaging.scm")

(define (scheme-hello-world)
  (let ((message "Hello world!\n"))
    (send-message message 'gui)
    (send-message message 'error-console)
    (send-message message 'terminal)))

(scheme-register-procedure "scheme-hello-world"
  "Hello world!"
  "A Scheme procedure plug-in refactored"
  "Mark Sweeney"
  "Under GNU GENERAL PUBLIC LICENSE Version 3"
  "2024")

(scheme-menu-register
  "scheme-hello-world"
  "<Image>/Funky")