Перейти на главную страничку сайта (список статей, файлы для скачивания)
ФОРУМ (здесь можно обсудить эту статью, а также любые
проблемы программирования на различных макроязыках и в скриптовых средах)
Плагин 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. Новых функций не добавлено.
Версия 0.9.2.2
Вы можете скачать плагин здесь (версия 0.9.2.2 от 16.09.2008г., 324 030 байт).
Сделан ряд доработок, расширяющих функционал, исправлены некоторые ошибки. Подробности - см. в файле history.txt в архиве.
Версия 1.0.0.2
Вы можете скачать плагин здесь (версия 1.0.0.2 от 31.10.2008г., 331 379 байт).
- Плагин преобразован в OLE-плагин с возможностью программного управления и генерации событий.
- Добавлено событие OnLineNumbersContextMenu - вызывается при контекстном меню на отступе с номерами строк.
- Добавлен метод ReloadSettings - перечитать настройки из ini файла.
- Добавлены три списка дополнительных ключевых слов и три стиля отображения к ним.
При обновлении необходимо также обновить и скрипт, идущий в комплекте.
Версия 1.0.0.4
Вы можете скачать плагин здесь (версия 1.0.0.4 от 30.12.2008г., 333 275 байт).
По сравнению с версией 1.0.0.2:
- Добавлена поддержка перетаскивания из синтакс-помощника.
- Добавлена поддержка возможности штатного редактора перетаскивать текст правой кнопкой мыши с вызовом контекстного меню "Переместить - Копировать - Отмена".
- Добавлена возможность "бросать" на редактор любые файлы, в этом случае в текст вставляется путь к этому файлу.
- При наведении курсора мыши на вертикальные пунктирные линии, отображающие границы выравнивания текста табуляцией, появляется всплывающая подсказка с текстом первой и последней строки блока.
Версия 1.0.0.7
Вы можете скачать плагин здесь (версия 1.0.0.7 от 19.03.2009г., 336 262 байт).
По сравнению с версией 1.0.0.4:
- Добавлена функция подсветки выделенного слова во всём тексте (новый стиль "Выделенное слово").
- Сделана подсветка не только слов, но и любого выделенного текста в пределах одной строки.
- Исправлен тройной клик правой кнопкой мыши, выделявший всю строку.
- Подсветка глобальных методов и переменных (стиль "Глобальные методы").
- Подсветка реквизитов справочников и документов, модуль которых редактируется в даный момент. Для отчетов и обработок подсвечиваются идентификаторы элементов формы (стиль "Реквизиты объекта МД"). Если модуль объекта загружается с помощью директивы "ЗагрузитьИзФайла", то в первой строке текстового файла с модулем возможна прямая типизация данного объекта в виде //:Документ.<ВидДокумента> или //:Справочник.<ВидСправочника>
- Возможность отключить в настройках функцию подсветки выделенного слова во всем тексте.
- Клавиша end заработала по принципу home, т.е переходит в конец строки/к первому значимому символу с конца строки.
Версия 1.0.0.9
Вы можете скачать плагин здесь (версия 1.0.0.9 от 02.04.2009г., 336 520 байт).
По сравнению с версией 1.0.0.7:
- Добавлено распознавание глобальных переменных в виде:
Перем п1 Экспорт , п2 //:ТаблицаЗначений
Экспорт;
- Фон текущей строки теперь не перекрывает фон других стилей.
- Исправлены некоторые ошибки.
Версия 1.0.1.0
Вы можете скачать плагин здесь (версия 1.0.1.0 от 10.05.2009г., 337 480 байт).
По сравнению с версией 1.0.0.9:
- В диалоге выбора шрифта добавлено поле для выбора набора символов.
- Добавлена возможность отображения непечатаемых символов (флажок в настройках и новая команда в скрипте).
- Исправлены некоторые ошибки.
Версия 1.0.1.1
Вы можете скачать плагин здесь (версия 1.0.1.1 от 07.06.2009г., 337 967 байт).
По сравнению с версией 1.0.1.0:
- Добавлен новый стиль подсветки "Фон заголовков методов", для возможности установки фона строки с названием процедуры.
- Если в начале блока комментария первым символом стоит "\", то при открытии модуля такой блок не будет свёрнут.
Людоговский Александр
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.