Перейти на главную страничку сайта (список статей, файлы для скачивания)
ФОРУМ (здесь можно обсудить эту статью, а также любые
проблемы программирования на различных макроязыках и в скриптовых средах)
Плагин SciColorer для платформы OpenConf
Данная статья последовательно описывает историю развития плагина и дополняется по мере выхода новых версий. За время своего развития плагин изменился очень существенно. Если Вы здесь впервые, внимательно прочитайте до конца, не скачивайте первую попавшуюся версию.
Автор плагина - Бердаков Дмитрий.
Назначение и установка
Плагин отрисовывает gutter (вертикальная полоска слева в текстовом редакторе Конфигуратора) и предоставляет следующий функционал:
- Подсвечивает "парные" синтаксические конструкции (скобки, Если...КонецЕсли и т.п.).
- Обеспечивает возможность быстрого перехода к "парной скобке" синтаксической конструкции (переход по скобкам, переход с "Если" на "КонецЕсли" и т.п.).
- Обеспечивает возможность быстрого выделения блока текста между "парными скобками".
- Обеспечивает возможность быстрого выделения блока текста внутри "парных скобок", без самих скобок.
- Обеспечивает возможность выделение блока текста мышью с использованием клавиши Shift.
- Обеспечивает возможность вызывать codejump плагина Телепат по Ctrl+click на слове.
- Показывает границы процедур и функций на gutter'е и обеспечивает возможность свёртки/развёртки текста процедур и функций (code folding).
Установка:
- Скопируйте файл OColorer.dll в подкаталог \BIN\Config\ каталога установки 1С:Предприятия.
- Скопируйте файл скрипта OColorer.vbs в подкаталог config\scripts\OColorer\ каталога исполняемых файлов 1С:Предприятия. Примечание: в принципе, папку "OColorer" можно и не создавать, положив скрипт прямо в "config\scripts\".
- Если 1С:Предприятие было запущено, перезапустите его.
Примечание: использовать плагин без скрипта невозможно.
Использование
Свёртка/развёртка процедур и функций стала результатом скорее интереса, чем практического использования, т.к. у неё много "особенностей", связанных с редактором текстов модулей Конфигуратора:
- При свёртке/развёртке процедур фактически удаляется/добавляется текст документа, отсюда появление признака модифицированности и связанные с этим вопросы о сохранении при закрытии.
- Не отлавливается момент Undo и другие программные изменения документа,
т.е. свернули процедуру, сделали Undo - процедура на экране восстановилась, но так и считается свёрнутой.
- В свёрнутом виде процедура идентифицируется только по её названию, в связи с этим, если свернуть процедуру и изменить её название, то развернуть её потом не получится, т.к. это будет уже новая процедура. Если свернуть процедуру, удалить её, а потом завести такую же, она будет считаться свёрнутой, и при разворачивании восстановит текст старой. В связи с этим изменять свёрнутую процедуру/функцию не рекомендуется!
- Поскольку непонятно, как сворачивать процедуры, записанные на одной строке или другими подобными способами, сворачиваются только "нормально" задекларированные процедуры и функции, т.е. такие, где слова "Процедура", "Функция", "КонецПроцедуры", "КонецФункции" записаны на отдельных строках.
- Тексты свёрнутых методов исключаются из анализа скриптом Intellisense, т.к. их фактически нет.
- Процедуры и функции сворачиваются не в одну строку, как в 8-ой версии 1С, а в две. Второй строкой добавляется КонецФункции/КонецПроцедуры, чтобы работал список методов модуля, codejump телепата, синтаксический контроль и т.д.
- Плагин не даёт закрыть окно/конфигурацию/конфигуратор если открыты окна со свёрнутыми процедурами. Однако, всё же остаётся возможность потерять текст свёрнутых процедур, например, если свернуть процедуру, сохранить конфигурацию, развернуть процедуру и закрыть конфигурацию, отказавшись от сохранения.
На всякий случай тексты процедур и функций при свёртке сохраняются в файлах в каталоге КаталогИБ + "OColorer_Temp\" + "НазваниеДокумента_НазваниеМетода".
Скрипт OColorer.vbs содержит следующие полезные макросы (горячие клавиши для макросов задаются через меню "OpenConf" - "Макросы" - "Клавиатура..."):
| Макрос | Рекомендуемая клавиша | Описание |
| CollapseAll | Ctrl+Shift+NumMinus |
Cвернуть все процедуры/функции модуля. |
| ExpandAll | Ctrl+Shift+NumPlus |
Развернуть все процедуры/функции модуля. |
| JumpToPairBracket | Ctrl+ъ |
Перейти к "парной скобке". Примечание: эта функция работает несколько иначе, чем стандартные клавиши Конфигуратора Ctrl+[ и Ctrl+] (просто попробуйте, чтобы увидеть различия). |
| SelectPairBlock | Ctrl+Shift+ъ |
Выделить текст между "парными скобками". Примечание: эта функция работает несколько иначе, чем стандартные клавиши Конфигуратора Ctrl+Shift+[ и Ctrl+Shift+] (просто попробуйте, чтобы увидеть различия). |
| SelectInnerBlock | Ctrl+Alt+ъ |
Выделить текст между "парными скобками", исключая сами скобки. |
Для открывающей и закрывающей "скобки" можно настроить собственный вариант подсветки. Настраиваются цвет шрифта, цвет фона, цвет рамки, и цвет подчеркивания - см. комментарии в тексте скрипта OColorer.vbs.
Можно настроить подсветку "скобок" в двух вариантах: только когда курсор на скобке, или из любого места внутри блока - см. комментарии в тексте скрипта OColorer.vbs.
Замеченные неприятности:
- К сожалению, плагин стабильно работает не на всех системах, иногда наблюдается неверная отрисовка закладок и границ процедур на gutter'е, а также неверная отрисовка "парных скобок" в коде (и то, и другое - значительно выше, чем надо).
- В конце модулей при свёртке процедур возможно некоторое "помешательство" в коде, которое восстанавливается после прокрутки мышью.
- Может быть некорректной прорисовка скобок при горизонтальном скроллинге текста (мышью за нижнюю полосу прокрутки).
Вы можете скачать плагин здесь (версия 0.9.0.1 от 26.02.2007г., 318 295 байт).
Версия 0.9.1.1
Вы можете скачать плагин здесь (версия 0.9.1.1 от 07.12.2007г., 173 850 байт).
Плагин стабилизировался, исправлены многие ошибки.
Установка:
- Скопируйте SciColorer.dll и SciLexer.dll в каталог плагинов \Bin\Config\, скрипт SciColorer.vbs - в каталог скриптов \Bin\Config\Scripts.
- Для корректной работы подсказок необходима специальная новая версия плагина "Телепат" 2.0.0.0t, которую можно взять здесь.
Скрипт SciColorer.vbs содержит следующие полезные макросы (горячие клавиши для макросов задаются через меню "OpenConf" - "Макросы" - "Клавиатура..."):
| Макрос | Рекомендуемая клавиша | Описание |
| CollapseAll |
Ctrl + Shift + Num - |
Cвернуть все процедуры/функции модуля. |
| ExpandAll |
Ctrl + Shift + Num + |
Развернуть все процедуры/функции модуля. |
| ToggleCurrent |
Ctrl + Num * |
Свернуть/развернуть текущий блок. |
| ToggleCurrentWithSubLevels |
Ctrl + Shift + Num * |
Свернуть/развернуть текущий блок вместе с вложенными блоками. |
| ShowSettings |
Вызовите этот макрос один раз "вручную" через Ctrl+M и установите флажок "интегрироваться в меню «Текст»". После этого диалог настроек будет всегда доступен через меню "Текст" - "Настройки...". |
Вызов диалога настроек. |
| SelectCurrentBlock |
Ctrl + Num 5 |
Выделить текущий блок. |
Некоторые важнейшие приёмы работы:
- Свернуть / развернуть текущий блок вместе с вложенными блоками - Ctrl + Click на маркере свёртки кода.
- Комментировать / раскомментировать блок - Shift + Click / Ctrl + Shift + Click на маркере свёртки кода.
- Тщательно изучите диалог настроек (там очень много возможностей) и установите нужные вам опции.
Версия 0.9.1.3
Вы можете скачать плагин здесь (версия 0.9.1.3 от 26.12.2007г., 175 909 байт).
Начиная с версии 0.9.1.2, когда курсор находится в начале свернутого блока:
- Если блок свёрнут и нажата клавиша {RIGHT}, блок разворачивается.
- Если блок развёрнут и нажата клавиша {LEFT}, блок сворачивается.
Также сделан ряд небольших изменений и исправлений ошибок. Подробности - см. в файле history.txt в архиве.
Версия 0.9.1.6
Вы можете скачать плагин здесь (версия 0.9.1.6 от 27.01.2008г., 182 704 байт).
Сделан ряд доработок, расширяющих функционал. В частности, добавлен режим "только чтение" и подсветка модифицированных строк. Подробности - см. в файле history.txt в архиве.
Версия 0.9.1.7
Вы можете скачать плагин здесь (версия 0.9.1.7 от 05.03.2008г., 184 192 байт).
Сделан ряд доработок, расширяющих функционал, исправлены некоторые ошибки. Подробности - см. в файле history.txt в архиве.
Версия 0.9.1.8
Вы можете скачать плагин здесь (версия 0.9.1.8 от 20.04.2008г., 185 730 байт).
Сделан ряд доработок, расширяющих функционал, исправлены некоторые ошибки. Подробности - см. в файле history.txt в архиве.
Версия 0.9.2.0
Вы можете скачать плагин здесь (версия 0.9.2.0 от 27.05.2008г., 190 487 байт).
Сделан ряд доработок, расширяющих функционал, исправлены некоторые ошибки. Полный перечень - см. в файле history.txt в архиве. Важно:
- Добавлена возможность устанавливать цвет фона для строк (c версии 0.9.1.9).
- Добавлен функционал "гиперссылок". При наведении мыши на идентификаторы модуля при нажатом Ctrl они подчеркиваются и выделяются цветом (добавлен стиль "гиперссылка"), а при клике генерируется "Событие". Обрабатывается это событие следующим образом: в OpenConf есть возможность настроить 16 доп. кнопок для вызова произвольных макросов. В меню "OpenConf" - "Макросы" - "Настройка комманд" добавляем новую команду, сопоставляем макрос (в прилагаемом SciColorer.vbs есть макрос ColorerOnHotSpotClick, который вызывает "кодеджамп" плагина "Телепат"). В настройках SciColorer указываем порядковый номер вышесозданной команды (от 1 до 16).
- Скрипт SciColorer.vbs дополнен макросами для всех команд плагина.
Версия 0.9.2.1
Вы можете скачать плагин здесь (версия 0.9.2.1 от 05.08.2008г., 321 490 байт).
Устранены некоторые проблемы совместимости с элементом управления 1sci. Новых функций не добавлено.
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.info При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.