Как лучше реализовать функцию спойлера в AP д/include-файло

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 157
Joined: Thu Nov 26, 2015 8:03 pm
Location: Rostov-on-Don

Как лучше реализовать функцию спойлера в AP д/include-файло

Post by Eskander88 »

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

Обратил внимание, что часто бывают такие ситуации с кодом, когда видишь строку с включением внешних файлов и необходимо зайти посмотреть что там.. фрагмент д/примера:

Code: Select all

# LISTING:
INCLUDE D:/SERVER/CONF/SETTING.CONF
INCLUDE D:/SERVER/CONF/CHARSET.CONF
INCLUDE D:/SERVER/CONF/VIRTHOS.CONF
INCLUDE D:/SERVER/CONF/CONNECT.CONF
#       INCLUDE etc...
содержимое SETTING.CONF к примеру:

Code: Select all

ServerRoot D:/SERVER/ROOT/
ErrorLog   D:/SERVER/LOGS/errors.log
CustomLog  D:/SERVER/LOGS/access.log
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
#          etc...

В AkelPad есть такая функция, которая расспознаёт протоколы www.  http://  file://  ftp://  (и т.п) и автоматически делает из неё подсвеченный текст и кликабельную ссылку . После клика на текст инициализируется открытие согласно ссылки обработчика системы, прим: для http:// открывается в браузере а file:// в проводнике Windows.

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

Когда парсер находит в тексте необходимое выражение, например: «INCLUDE D:/SERVER/CONF/SETTING.CONF» то по типу обработки ссылки выделяется «INCLUDE D:/SERVER/CONF/SETTING.CONF». После клика по такой ссылке из «D:/SERVER/CONF/SETTING.CONF» выполняется скрипт сворачивание спойлера - подтягивается текст и как бы спойлер раскрывается, фрагмент превращается в:

Code: Select all

# LISTING:
# [-] INCLUDE D:/SERVER/CONF/SETTING.CONF
ServerRoot D:/SERVER/ROOT/
ErrorLog   D:/SERVER/LOGS/errors.log
CustomLog  D:/SERVER/LOGS/access.log
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
INCLUDE D:/SERVER/CONF/CHARSET.CONF
INCLUDE D:/SERVER/CONF/VIRTHOS.CONF
INCLUDE D:/SERVER/CONF/CONNECT.CONF
#       INCLUDE etc.
# └──[-]
После нажатия на заголовок спойлера «# ┌[-] INCLUDE D:/SERVER/CONF/SETTING.CONF» выполняется скрипт сворачивание спойлера, который сворачивает блок, а его содержимое помещает в «D:/SERVER/CONF/SETTING.CONF». Либо можно сохранить файл в таком состоянии.

Основные задачи концепта:
- Обработку парсера ссылок хотелось сделать кастомной, чтобы можно было настроить скажем на «include(%filepath%)»
- Скрипты «разворачивания» и «сворачивания» по типу Scripts::Main, чтобы можно было изменять действия д/обработки открытия/закрытия спойлера
- Формат оконцовки и начала спойлера настраиваемый
- Настройка стиля подсветки спойлера

Может ли данная идея быть реализована через Scirpt-ы или необходимо делать плагин? Может быть вообще необходимо исходники приложения AkelPad-а править?
Есть ли готовые решения или что-то похожее?
Post Reply