Что нужно, а что не нужно от T9?

Карточка с форума разработчиков Как периодически выяснятся, те функции которые я считаю полезными, пользователям наоборот могут доставлять неудобства в работе. Изначально T9 планировалась как просто набор слов, которые можно быстро ввести, если штатной подсказки нет. Но потом разрослась: ввод методов со скобками, контекстный словарь, шаблоны, определение типа, подсказка полей и т.д. В последней версии мне удалось увеличить скорость работы подсказки, но это не предел. На очень больших модулях (от 50000 строк) формирование списка может занимать время от 500 мс. Что нужно в списке? (можно выбрать несколько) А. Оставить как сейчас (все хорошо) Б. Слова которые есть в синтаксисе 1С, свойства и методы объектов встроенного языка. (быстро) В. Подсказка полей запросов, таблиц, структур (эвристика). Г. Слова которые встречаются в коде текущего модуля (быстро) Д. Слова, которые встречаются в строках текущего модуля Е. Слова, которые встречаются в комментариях текущего модуля (отключено) Ж. Можно убрать скобки для методов (оставить просто название) З. Сортировка: последние к позиции курсора - встают выше. И. Вместо сортировки по позиции - последние вставленные из подсказки встают выше.

Комментарии

Поддержка TurboConf
#1, 29 ноября 2018 17:34

@board новый опрос. Прошу участвовать 😃


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

Что нужно в списке:
Б. Слова которые есть в синтаксисе 1С, свойства и методы объектов встроенного языка.
Г. Слова которые встречаются в коде текущего модуля (если быть точным важны конретно переменные и методы текущего модуля - остальное в топку)
Д. Слова, которые встречаются в строках текущего модуля -< мешает
Е. Слова, которые встречаются в комментариях текущего модуля -< мешает еще сильнее
Ж. Можно убрать скобки для методов (оставить просто название) -< можно, опытный программист все равно знает метод это или нет


Поддержка TurboConf
#3, 29 ноября 2018 17:54

@nytlenc добавил еще про сортировку З И


Поддержка TurboConf
#4, 29 ноября 2018 18:01

Этот вариант намного лучше:
И. Вместо сортировки по позиции - последние вставленные из подсказки встают выше.

чем этот:
З. Сортировка: последние к позиции курсора - встают выше.


Поддержка TurboConf
#5, 29 ноября 2018 18:01

thumbs up 👍


Поддержка TurboConf
#6, 29 ноября 2018 18:16

Оставить: Б. В. Г. И. последние вставленные из подсказки встают выше - это очень нужно.

Ж - ни в коем случае не убирать вставку скобок! Просто нужно сделать вставку скобок интеллектуальной:
Два вложенных условия: 1. если это вызов процедуры - вставляем (); если вызов функции (после =, или в условии) - вставляем ().
2. Если есть параметры - курсор ставить внутри скобок (|);, если нет параметра - то после скобок или точки с запятой.


Поддержка TurboConf
#7, 29 ноября 2018 18:16

thumbs up 👍


Поддержка TurboConf
#8, 29 ноября 2018 18:22

@ec6bf12f29c84a32a07f1b5e265797bf

  1. думаю можно сделать
  2. проблема в том, что я не знаю есть там параметры или нет, у меня нет доступа к такой информации.


Поддержка TurboConf
#9, 29 ноября 2018 18:24

@board я правильно понимаю, что основной сценарий использования T9 - это когда штатная не может определить тип (для параметров) и не выводит подсказку? Или кто-то использует всегда T9 вместо штатной?


Поддержка TurboConf
#10, 29 ноября 2018 18:25

@board в отличие от Снегопата у меня нет доступа к контексту, все с чем я могу работать это - текущий текст модуля, словарь синтакс-помощника, получать данные из штатного меню (может вызывать подтормаживания).
Я не могу менять содержимое штатной подсказки, но могу определять, что штатной нет и выводить T9.
Поэтому T9 в основном предназначается для быстрого ввода слов, хотя бы чтобы вручную не набирать.


Поддержка TurboConf
#11, 30 ноября 2018 07:43

Согласен с предыдущими ответами.
Сортировка - только И
Если нельзя получить состав стандартной подсказки, то включать Т9 только если штатной нет (или сделать опционально)
В списке выбора только слова текущего модуля (может даже текущей процедуры/функции?)
Вообще иной раз удобнее писать код модуля в VSC с установленным плагином для bsl, чем в самом конфигураторе. Вот там подсказка идет как раз по тому, что есть в справке (часть плагина) и/или по тому, что уже было набрано (часть самой VSC)


Поддержка TurboConf
#12, 30 ноября 2018 09:28

Пользователь прикрепил(а) вложение t9_struct1.gif
https://trello-attachments.s3.amazonaws.com/5aec736d7dec7207a7f7c6df/5bfff4a8dfac6931dddad012/362ea4e07e0d5a85a6500f1e6d3ba23a/t9_struct1.gif


Поддержка TurboConf
#13, 30 ноября 2018 09:28

@board @johnydeath по умолчанию T9 показывается только если штатная не всплыла.
Понятно что там будут всякие левые слова, т.к. тип неизвестен. Но ввести слова быстрее она вроде помогает.

Вот пример. Такое устраивает поведение?


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

@bolsun Наличие параметров у бОльшей части функций/процедур - информация доступная. Есть же встроенные функции/методы - о них мы знаем всё, в том числе и наличие-отсутствие параметров. И о функциях/процедурах текущего модуля тоже все знаем. В примере Количество() - оно всегда без параметров... Количество таких встроенных функций конечно, они же в каком-то списке хранятся, там же нужно и пометки проставить - есть/нет параметры. Готов заняться подготовкой такой таблицы, если нужно.


Поддержка TurboConf
#15, 30 ноября 2018 12:33

Еще очень полезная фича была у Снегопата - сортировка закрывающих конструкций. Т. е. анализ довольно простой (как мне кажется), если выше по коду есть открытое Если - Тогда, то КонецЕсли становится первым в списке.
Есил есть открытый Пока - Цикл (или Для - Цикл) - то первым становится КонецЦикла.
Если есть Попытка - То Исключение и КонецПопытки вверх.
Функция - КонецФункции
Процедура - КонецПроцедуры

Вроде и все. Мелочь, но за год человеко день сэкономит.


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

@ec6bf12f29c84a32a07f1b5e265797bf по параметрам методов - посмотрю, попробую автоматически сформировать


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

@ec6bf12f29c84a32a07f1b5e265797bf по закрывающим вопрос. Зачем это? Зачем набирать Если, КонецЕсли ведь есть встроенные в ТК шаблоны. Сейчас гифку сделаю.


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

Пользователь прикрепил(а) вложение t9_templates1.gif
https://trello-attachments.s3.amazonaws.com/5aec736d7dec7207a7f7c6df/5bfff4a8dfac6931dddad012/a1b5c3d02920aefa33eddd2d27498bb2/t9_templates1.gif


Поддержка TurboConf
#19, 30 ноября 2018 12:59

@bolsun Это все здорово, но не всегда получается писать так, используя шаблоны. Часто нужно писать построчно, или редактировать старый код, или копировать куски с условиями - началами циклов. В общем, не знаю, как кому - а мне лично этой фичи не хватает постоянно.
Нужно набирать КонецЦикла, а мне зачем-то КонецЕсли предлагает.


Поддержка TurboConf
#20, 30 ноября 2018 13:11

@ec6bf12f29c84a32a07f1b5e265797bf согласен, звучит логично


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

@board скоро выложу версию с новой сортировкой, плюс еще нашел ошибку из-за которой после точки появлялись абсолютно лишние значения.


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

Пользователь прикрепил(а) вложение TurboConf.zip


Поддержка TurboConf
#23, 30 ноября 2018 13:48

@board во вложении новая версия


Поддержка TurboConf
#24, 03 декабря 2018 10:38

@board https://trello.com/c/KXN9tFJZ


Поддержка TurboConf
#25, 03 декабря 2018 11:22

bolsun переместил(а) эту карточку из списка Информация в список Принятые предложения


Поддержка TurboConf
#26, 12 декабря 2018 15:07

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


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