Skip to content

Commit 9b6985e

Browse files
committed
Для редактора монако реализована возможность включить две дополнительные
команды в контекстном меню для работы с буфером обмена #562
1 parent e615828 commit 9b6985e

File tree

4 files changed

+111
-2
lines changed
  • src/Инструменты/src
    • CommonForms/УИ_НастройкиИнструментов
    • CommonModules
      • УИ_РедакторКодаКлиентСервер
      • УИ_РедакторКодаКлиент

4 files changed

+111
-2
lines changed

src/Инструменты/src/CommonForms/УИ_НастройкиИнструментов/Form.form

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,49 @@
447447
<showInFooter>true</showInFooter>
448448
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
449449
</items>
450+
<items xsi:type="form:FormField">
451+
<name>ИспользоватьКомандыРаботыСБуферомВКонтекстномМеню</name>
452+
<id>88</id>
453+
<visible>true</visible>
454+
<enabled>true</enabled>
455+
<userVisible>
456+
<common>true</common>
457+
</userVisible>
458+
<dataPath xsi:type="form:DataPath">
459+
<segments>ИспользоватьКомандыРаботыСБуферомВКонтекстномМеню</segments>
460+
</dataPath>
461+
<extendedTooltip>
462+
<name>ИспользоватьКомандыРаботыСБуферомВКонтекстномМенюРасширеннаяПодсказка</name>
463+
<id>90</id>
464+
<visible>true</visible>
465+
<enabled>true</enabled>
466+
<userVisible>
467+
<common>true</common>
468+
</userVisible>
469+
<type>Label</type>
470+
<autoMaxWidth>true</autoMaxWidth>
471+
<autoMaxHeight>true</autoMaxHeight>
472+
<extInfo xsi:type="form:LabelDecorationExtInfo">
473+
<horizontalAlign>Left</horizontalAlign>
474+
</extInfo>
475+
</extendedTooltip>
476+
<contextMenu>
477+
<name>ИспользоватьКомандыРаботыСБуферомВКонтекстномМенюКонтекстноеМеню</name>
478+
<id>89</id>
479+
<visible>true</visible>
480+
<enabled>true</enabled>
481+
<userVisible>
482+
<common>true</common>
483+
</userVisible>
484+
<autoFill>true</autoFill>
485+
</contextMenu>
486+
<type>CheckBoxField</type>
487+
<editMode>Enter</editMode>
488+
<showInHeader>true</showInHeader>
489+
<headerHorizontalAlign>Left</headerHorizontalAlign>
490+
<showInFooter>true</showInFooter>
491+
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
492+
</items>
450493
<visible>true</visible>
451494
<enabled>true</enabled>
452495
<userVisible>
@@ -1713,6 +1756,23 @@
17131756
<common>true</common>
17141757
</edit>
17151758
</attributes>
1759+
<attributes>
1760+
<name>ИспользоватьКомандыРаботыСБуферомВКонтекстномМеню</name>
1761+
<title>
1762+
<key>ru</key>
1763+
<value>Использовать команды работы с буфером в контекстном меню</value>
1764+
</title>
1765+
<id>17</id>
1766+
<valueType>
1767+
<types>Boolean</types>
1768+
</valueType>
1769+
<view>
1770+
<common>true</common>
1771+
</view>
1772+
<edit>
1773+
<common>true</common>
1774+
</edit>
1775+
</attributes>
17161776
<formCommands>
17171777
<name>Применить</name>
17181778
<title>

src/Инструменты/src/CommonForms/УИ_НастройкиИнструментов/Module.bsl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@
158158
ВысотаСтрок = ПараметрыРедактора.Monaco.ВысотаСтрок;
159159
ОтображатьПробелыИТабуляции = ПараметрыРедактора.Monaco.ОтображатьПробелыИТабуляции;
160160
ИспользоватьСтандартныеШаблоныКода = ПараметрыРедактора.Monaco.ИспользоватьСтандартныеШаблоныКода;
161+
ИспользоватьКомандыРаботыСБуферомВКонтекстномМеню = ПараметрыРедактора.Monaco.ИспользоватьКомандыРаботыСБуферомВКонтекстномМеню;
161162

162163
КаталогиИсходныхФайловКонфигурации.Очистить();
163164
Элементы.КаталогиИсходныхФайловКонфигурацииИсточник.СписокВыбора.Очистить();
@@ -285,7 +286,8 @@
285286
ПараметрыРедактораКода.Monaco.ВысотаСтрок = ВысотаСтрок;
286287
ПараметрыРедактораКода.Monaco.ОтображатьПробелыИТабуляции = ОтображатьПробелыИТабуляции;
287288
ПараметрыРедактораКода.Monaco.ИспользоватьСтандартныеШаблоныКода = ИспользоватьСтандартныеШаблоныКода;
288-
289+
ПараметрыРедактораКода.Monaco.ИспользоватьКомандыРаботыСБуферомВКонтекстномМеню = ИспользоватьКомандыРаботыСБуферомВКонтекстномМеню;
290+
289291
Для Каждого ТекСтрока Из КаталогиИсходныхФайловКонфигурации Цикл
290292
Если Не ЗначениеЗаполнено(ТекСтрока.Каталог) Тогда
291293
Продолжить;

src/Инструменты/src/CommonModules/УИ_РедакторКодаКлиент/Module.bsl

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,16 @@
190190
ЭтотОбъект, ПараметрыОповещения));
191191
КонецЕсли;
192192
КонецЕсли;
193-
193+
ИначеЕсли ТекущееСобытие.ИмяСобытия = "TOOLS_UI_1C_COPY_TO_CLIPBOARD" Тогда
194+
ВыделенныйТекст = ВыделенныйТекстРедактораЭлементаФормы(Форма, ТекущееСобытие.Элемент);
195+
УИ_БуферОбменаКлиент.НачатьКопированиеСтрокиВБуфер(ВыделенныйТекст,
196+
Новый ОписаниеОповещения("НачатьКопированиеВыделенногоТекстаВБуферОбменаЗавершение",
197+
ЭтотОбъект, ДополнительныеПараметры));
198+
ИначеЕсли ТекущееСобытие.ИмяСобытия = "TOOLS_UI_1C_PASTE_FROM_CLIPBOARD" Тогда
199+
УИ_БуферОбменаКлиент.НачатьПолучениеСтрокиИзБуфера(Новый ОписаниеОповещения("НачатьВставкуИзБуферОбменаЗавершениеПолученияТекста",
200+
ЭтотОбъект, ДополнительныеПараметры));
194201
КонецЕсли;
202+
195203
КонецЦикла;
196204

197205
Форма.УИ_РедакторКодаКлиентскиеДанные.События.Очистить();
@@ -335,6 +343,11 @@
335343
ДокументView.setOption("generateModificationEvent", Истина);
336344
КонецЕсли;
337345

346+
Если ПараметрыРедактора.ПараметрыРедактора.ИспользоватьКомандыРаботыСБуферомВКонтекстномМеню Тогда
347+
ДокументView.addContextMenuItem("Копировать", "TOOLS_UI_1C_COPY_TO_CLIPBOARD");
348+
ДокументView.addContextMenuItem("Вставить", "TOOLS_UI_1C_PASTE_FROM_CLIPBOARD");
349+
КонецЕсли;
350+
338351
ДокументView.clearMetadata();
339352

340353
ОписаниеКонфигурацииДляИнициализации = ОписаниеМетаданныйДляИнициализацииРедактораMonaco();
@@ -1528,6 +1541,25 @@
15281541

15291542
#Область СлужебныйПрограммныйИнтерфейс
15301543

1544+
// Начать вставку из буфер обмена завершение получения текста.
1545+
//
1546+
// Параметры:
1547+
// Результат - Строка - Результат
1548+
// ДополнительныеПараметры - Структура -Дополнительные параметры:
1549+
// * Форма - ФормаКлиентскогоПриложения
1550+
// * Элемент - ПолеФормы
1551+
Процедура НачатьВставкуИзБуферОбменаЗавершениеПолученияТекста(Результат, ДополнительныеПараметры) Экспорт
1552+
Если Результат = Неопределено Тогда
1553+
Возврат;
1554+
КонецЕсли;
1555+
1556+
ВставитьТекстПоПозицииКурсораЭлементаФормы(ДополнительныеПараметры.Форма, ДополнительныеПараметры.Элемент, Результат);
1557+
КонецПроцедуры
1558+
1559+
Процедура НачатьКопированиеВыделенногоТекстаВБуферОбменаЗавершение(Результат, ПараметрыВызова, ДополнительныеПараметры) Экспорт
1560+
1561+
КонецПроцедуры
1562+
15311563
// Начать загрузку кода из сервиса завершение ввода ссылки.
15321564
//
15331565
// Параметры:

src/Инструменты/src/CommonModules/УИ_РедакторКодаКлиентСервер/Module.bsl

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,20 @@
336336
Возврат Варианты.Авто;
337337
КонецФункции
338338

339+
// Параметры редактора monaco по умолчанию.
340+
//
341+
// Возвращаемое значение:
342+
// Структура - Параметры редактора monaco по умолчанию:
343+
// * ВысотаСтрок - Число -
344+
// * Тема - Строка -
345+
// * ЯзыкСинтаксиса - Строка -
346+
// * ИспользоватьКартуКода - Булево -
347+
// * СкрытьНомераСтрок - Булево -
348+
// * ОтображатьПробелыИТабуляции - Булево -
349+
// * КаталогиИсходныхФайлов - Массив Из Строка -
350+
// * ФайлыШаблоновКода - Массив из Строка-
351+
// * ИспользоватьСтандартныеШаблоныКода - Булево -
352+
// * ИспользоватьКомандыРаботыСБуферомВКонтекстномМеню - Булево -
339353
Функция ПараметрыРедактораMonacoПоУмолчанию() Экспорт
340354
ПараметрыРедактора = Новый Структура;
341355
ПараметрыРедактора.Вставить("ВысотаСтрок", 0);
@@ -347,6 +361,7 @@
347361
ПараметрыРедактора.Вставить("КаталогиИсходныхФайлов", Новый Массив);
348362
ПараметрыРедактора.Вставить("ФайлыШаблоновКода", Новый Массив);
349363
ПараметрыРедактора.Вставить("ИспользоватьСтандартныеШаблоныКода", Истина);
364+
ПараметрыРедактора.Вставить("ИспользоватьКомандыРаботыСБуферомВКонтекстномМеню", Ложь);
350365

351366
Возврат ПараметрыРедактора;
352367
КонецФункции

0 commit comments

Comments
 (0)