Скрипт Преобразования процедуры в функцию и обратно работает только если курсор стоит на Процедура / КонецПроцедуры

Карточка с форума разработчиков Ну или Функция/КонецФункции

Комментарии

Поддержка TurboConf
#1, 21 ноября 2018 11:27

Можно попробовать добавить первым действием

//Сворачиваем текущую группу, для позиционирования на начале метода
ТК.ControlKey(Keys.Subtract);

но если будем находится в Области, то не сработает. Но может лучше чем ничего.


Поддержка TurboConf
#2, 21 ноября 2018 12:17

@alextimashov, это решает проблему?


Поддержка TurboConf
#3, 21 ноября 2018 12:18

@bolsun Еще не пробовал, чуть позже отпишусь


Поддержка TurboConf
#4, 21 ноября 2018 12:54

@bolsun Ну если группировки в принципе включены, то вроде работает. 😃


Поддержка TurboConf
#5, 21 ноября 2018 13:00

@alextimashov а еще могут быть включены группировки на условия и циклы. И если мы просто внутри условия, то не получится. Получается слишком костыльно.


Поддержка TurboConf
#6, 21 ноября 2018 13:01

Как вариант использовать ТК.ControlShiftKey(Keys.Subtract);
Это свернет все группы, но тоже не очень хорошо.
Вообще изначально предполагалось использование при позиционировании на Процедура или КонецПроцедуры.

Может это не является багом 😃


Поддержка TurboConf
#7, 21 ноября 2018 13:02

@bolsun А просто вверх до Процедура/Функция дойти сложно будет?


Поддержка TurboConf
#8, 21 ноября 2018 13:08

@alextimashov это можно, но сильно усложнит логику и надежность скрипта. Сейчас все просто сделано и красиво


Поддержка TurboConf
#9, 21 ноября 2018 14:19

@bolsun А затратно вообще получить текст модуля и распарсить его хотя бы на процедуры/функции для отдачи через АПИ?
И вообще там через АПИ как-то не очень здорово с работой с текстом модуля, как мне кажется.


Поддержка TurboConf
#10, 22 ноября 2018 09:51

@alextimashov планировал заняться дальнейшими улучшениями API, когда будут желающие писать скрипты. Пока их очень мало и функций API хватает для реализации почти любых фич. Что не так с работой с текстом?


Поддержка TurboConf
#11, 22 ноября 2018 09:51

@alextimashov по поводу этой задачи у меня есть одна идея. Сейчас проверю.


Поддержка TurboConf
#12, 22 ноября 2018 10:16

Пользователь прикрепил(а) вложение ProcFunc.os
https://trello-attachments.s3.amazonaws.com/5aec736d7dec7207a7f7c6df/5bf50e8884fb830521a7870a/ca24cdbf85692af606e1c290af2085bb/ProcFunc.os


Поддержка TurboConf
#13, 22 ноября 2018 10:16

Нашел способ перейти в начало метода. Попробуй скрипт во вложении.


Поддержка TurboConf
#14, 22 ноября 2018 19:55

Получилось попробовать?


Поддержка TurboConf
#15, 23 ноября 2018 09:27

@bolsun Срабатывает, да, но курсор в конец процедуры прыгает


Поддержка TurboConf
#16, 23 ноября 2018 09:46

@bolsun По поводу API я наверное в отдельной карточке напишу


Поддержка TurboConf
#17, 31 января 2019 07:17

@board кто-то уже пользуется этой версией скрипта? нормально работает, можно включать его в основную поставку?

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


Поддержка TurboConf
#18, 31 января 2019 08:13

@bolsun Вроде нормально
Курсор хотелось бы, чтобы в то же место вставал, правильно отработал или нет может анимацией какой-то показывать? Ну там на полсекунды всплывает текст "Процедура Тест >>> Функция Тест".
"Процедура Тест" и "Функция Тест" брать прямо из текста модуля.
Или это сложно?


Поддержка TurboConf
#19, 01 февраля 2019 14:59

@alextimashov надо подумать, там несколько вызовов функции ПолучитьТекст придется делать


Поддержка TurboConf
#20, 20 июня 2019 12:55

@board Добавлена всплывающая подсказка о преобразовании.

То что курсор не ставится назад - не является багом. Считаю эту доработку нецелесообразной, из-за сильного усложнения и замедления скрипта.
Желающие могут модифицировать скрипт используя методы
ПолучитьТекстСПозицией() и ПерейтиВПозицию() и выложить, возможно я ошибаюсь и это будет работать нормально))


Поддержка TurboConf
#21, 20 июня 2019 12:55

bolsun переместил(а) эту карточку из списка Баги новые и на выяснении в список Завершено


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера