Пример скрипта с адаптацией под EDT
Для работы скрипта необходима версия TurboConf 5.15.7718.26478 и выше
Разрешаем скрипту работать в EDT
//@global_mode 1
//@filter - 1C:Enterprise Development Tools
Выполнение кода в зависимости от IDE
Если ТК.ЭтоЕДТ Тогда
ТК.КонтролКлавиша(Клавиши.OemQuestion);
Иначе
ТК.КонтролКлавиша(Клавиши.Divide);
КонецЕсли;
Исходный код
//ВНИМАНИЕ! Этот файл будет перезаписан при следующем обновлении программы!
//Для настройки оформления комментариев, внесите необходимые изменения в файле ./settings/AuthorComments/Settings.os
//@script_name AuthorComments
//@script_display_name Авторские комментарии
//@script_description Вставляет в модуль комментарии об авторе добавления, изменения и удаления кода
//@script_author m.bolsun
//@script_developer_url https://turboconf.ru
//@script_url https://turboconf.ru/Forum/Details/1524#AuthorComments
//@script_section Редактирование
//@script_hotkey Alt+A ВставитьДобавление Вставить добавление
//@script_hotkey Alt+X ВставитьУдаление Вставить удаление
//@script_hotkey Alt+C ВставитьИзменение Вставить изменение
//@retain_clipboard 1
//@enterprise_mode 0
//@hide_actions 1
//@script_version 3
//@global_mode 1
//@filter - 1C:Enterprise Development Tools
//Изменен nytlenc 05.06.18
//Изменен m.bolsun 09.10.18 Добавлена вставка идентификатора текущей задачи OneTracker
//Изменен m.bolsun 29.01.20 Идентификатор текущей задачи теперь вставляется через Настройки
//Изменен m.bolsun 11.02.20 Добавлена совместимость с предыдущей версией настроек пользователя Settings.os
Перем Настройки;
Процедура ВставитьДобавление()
ВставитьКомментарий("добавление")
КонецПроцедуры
Процедура ВставитьИзменение()
ВставитьКомментарий("изменение")
КонецПроцедуры
Процедура ВставитьУдаление()
ВставитьКомментарий("удаление")
КонецПроцедуры
Процедура ВставитьКомментарий(ВидКомментария)
ТК = Новый ТурбоКонф;
Поз = 0;
ВыделенныйТекст = "";
// Комментируем весь выделенный текст с помощью платформы
Если ТК.ЭтоЕДТ Тогда
ТК.КонтролКлавиша(Клавиши.OemQuestion);
Иначе
ТК.КонтролКлавиша(Клавиши.Divide);
КонецЕсли;
Текст = ТК.ПолучитьТекстМодуля(ВыделенныйТекст, Поз);
// Вычисляем сколько нужно вставить символов табуляции
ПозКурсораX = 0;
ПозКурсораY = 0;
ТекСтрока = ТК.ПолучитьПозициюПоИндексу(Текст, Поз, ПозКурсораX, ПозКурсораY);
Табуляция = "";
Для Индекс = 1 По СтрДлина(ТекСтрока) Цикл
ТекСимвол = Сред(ТекСтрока, Индекс, 1);
Если ТекСимвол = Символы.Таб Тогда
Табуляция = Табуляция + ТекСимвол;
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
Если ВидКомментария = "добавление" Тогда
ТекстШаблона = Настройки.ШаблонДобавлено;
ИначеЕсли ВидКомментария = "изменение" Тогда
ТекстШаблона = Настройки.ШаблонИзменено;
ИначеЕсли ВидКомментария = "удаление" Тогда
ТекстШаблона = Настройки.ШаблонУдалено;
КонецЕсли;
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%ИмяПользователя%", Настройки.ИмяПользователя);
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%CurrentUser%", ПеременныеСреды()["USERNAME"]);
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%Компания%", Настройки.Компания);
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%CurrentUserDomain%", ПеременныеСреды()["USERDNSDOMAIN"]);
ТекДата = Формат(ТекущаяДата(), Настройки.ФорматДаты);
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%ТекДата%", ТекДата);
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%ЗакомментированныйТекст%", СокрП(ВыделенныйТекст));
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%Табуляция%", Табуляция);
//Для совместимости со старыми версиями настроек, проверим наличие ИдентификаторТекущейЗадачи
Если Настройки.Свойство("ИдентификаторТекущейЗадачи") Тогда
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%_CurrentTaskID_%", Настройки.ИдентификаторТекущейЗадачи);
Иначе
ИдентификаторТекущейЗадачи = ТК.ИдентификаторТекущейЗадачи;
Если ИдентификаторТекущейЗадачи = "" Тогда
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%_CurrentTaskID_%", "");
Иначе
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%_CurrentTaskID_%", " " + СокрЛП(ИдентификаторТекущейЗадачи));
КонецЕсли;
КонецЕсли;
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%Табуляция%", Табуляция);
// Раскомментируем весь выделенный текст с помощью платформы
Если ТК.ЭтоЕДТ Тогда
ТК.КонтролКлавиша(Клавиши.OemQuestion);
Иначе
ТК.КонтролШифтКлавиша(Клавиши.OemQuestion);
КонецЕсли;
Текст = ТК.ПолучитьТекстМодуля(ВыделенныйТекст, Поз);
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%ВставляемыйТекст%", СокрП(ВыделенныйТекст));
ПозКурсора = СтрНайти(ТекстШаблона, "%_SetCursorPos_%");
ТекстШаблона = СтрЗаменить(ТекстШаблона, "%_SetCursorPos_%", "");
ТекСтрока = ТК.ПолучитьПозициюПоИндексу(Текст, Поз, ПозКурсораX, ПозКурсораY);
ТК.ВставитьТекст(ТекстШаблона);
Если ПозКурсора > 0 Тогда
НомКолонки = 0;
НомСтроки = 0;
ТК.ПолучитьПозициюПоИндексу(ТекстШаблона, ПозКурсора, НомКолонки, НомСтроки);
ТК.ПерейтиВПозицию(1, ПозКурсораY + НомСтроки)
КонецЕсли;
КонецПроцедуры
ФайлНастроекПоУмолчанию = "settings/AuthorComments/DefaultSettings.os";
ФайлНастроекПользователя = "settings/AuthorComments/Settings.os";
Файл = Новый Файл(ФайлНастроекПользователя);
Если Файл.Существует() Тогда
Настройки = ЗагрузитьСценарий(ФайлНастроекПользователя).Настройки;
Иначе
Настройки = ЗагрузитьСценарий(ФайлНастроекПоУмолчанию).Настройки;
КонецЕсли;
Авторские комментарии (с поддержкой EDT)
8
|
|
|
1. Откройте маркетплейс из главного меню TurboConf или из меню в панели уведомлений.
2. Найдите нужную разработку.
3. Нажмите кнопку Установить.
TurboConf все установит автоматически!