|
Карточка с форума разработчиков Как периодически выяснятся, те функции которые я считаю полезными, пользователям наоборот могут доставлять неудобства в работе. Изначально T9 планировалась как просто набор слов, которые можно быстро ввести, если штатной подсказки нет. Но потом разрослась: ввод методов со скобками, контекстный словарь, шаблоны, определение типа, подсказка полей и т.д. В последней версии мне удалось увеличить скорость работы подсказки, но это не предел. На очень больших модулях (от 50000 строк) формирование списка может занимать время от 500 мс. Что нужно в списке? (можно выбрать несколько) А. Оставить как сейчас (все хорошо) Б. Слова которые есть в синтаксисе 1С, свойства и методы объектов встроенного языка. (быстро) В. Подсказка полей запросов, таблиц, структур (эвристика). Г. Слова которые встречаются в коде текущего модуля (быстро) Д. Слова, которые встречаются в строках текущего модуля Е. Слова, которые встречаются в комментариях текущего модуля (отключено) Ж. Можно убрать скобки для методов (оставить просто название) З. Сортировка: последние к позиции курсора - встают выше. И. Вместо сортировки по позиции - последние вставленные из подсказки встают выше.
Что нужно в списке: Б. Слова которые есть в синтаксисе 1С, свойства и методы объектов встроенного языка. Г. Слова которые встречаются в коде текущего модуля (если быть точным важны конретно переменные и методы текущего модуля - остальное в топку) Д. Слова, которые встречаются в строках текущего модуля -< мешает Е. Слова, которые встречаются в комментариях текущего модуля -< мешает еще сильнее Ж. Можно убрать скобки для методов (оставить просто название) -< можно, опытный программист все равно знает метод это или нет
@nytlenc добавил еще про сортировку З И
Этот вариант намного лучше: И. Вместо сортировки по позиции - последние вставленные из подсказки встают выше. чем этот: З. Сортировка: последние к позиции курсора - встают выше.
thumbs up 👍
Оставить: Б. В. Г. И. последние вставленные из подсказки встают выше - это очень нужно. --- Ж - ни в коем случае не убирать вставку скобок! Просто нужно сделать вставку скобок интеллектуальной: Два вложенных условия: 1. если это вызов процедуры - вставляем (); если вызов функции (после =, или в условии) - вставляем (). 2. Если есть параметры - курсор ставить внутри скобок (|);, если нет параметра - то после скобок или точки с запятой.
thumbs up 👍
@ec6bf12f29c84a32a07f1b5e265797bf 1. думаю можно сделать 2. проблема в том, что я не знаю есть там параметры или нет, у меня нет доступа к такой информации.
@board я правильно понимаю, что основной сценарий использования T9 - это когда штатная не может определить тип (для параметров) и не выводит подсказку? Или кто-то использует всегда T9 вместо штатной?
@board в отличие от Снегопата у меня нет доступа к контексту, все с чем я могу работать это - текущий текст модуля, словарь синтакс-помощника, получать данные из штатного меню (может вызывать подтормаживания). Я не могу менять содержимое штатной подсказки, но могу определять, что штатной нет и выводить T9. Поэтому T9 в основном предназначается для быстрого ввода слов, хотя бы чтобы вручную не набирать.
Согласен с предыдущими ответами. Сортировка - только И Если нельзя получить состав стандартной подсказки, то включать Т9 только если штатной нет (или сделать опционально) В списке выбора только слова текущего модуля (может даже текущей процедуры/функции?) Вообще иной раз удобнее писать код модуля в VSC с установленным плагином для bsl, чем в самом конфигураторе. Вот там подсказка идет как раз по тому, что есть в справке (часть плагина) и/или по тому, что уже было набрано (часть самой VSC)
Пользователь прикрепил(а) вложение t9_struct1.gif https://trello-attachments.s3.amazonaws.com/5aec736d7dec7207a7f7c6df/5bfff4a8dfac6931dddad012/362ea4e07e0d5a85a6500f1e6d3ba23a/t9_struct1.gif
@board @johnydeath по умолчанию T9 показывается только если штатная не всплыла. Понятно что там будут всякие левые слова, т.к. тип неизвестен. Но ввести слова быстрее она вроде помогает. Вот пример. Такое устраивает поведение?
@bolsun Наличие параметров у бОльшей части функций/процедур - информация доступная. Есть же встроенные функции/методы - о них мы знаем всё, в том числе и наличие-отсутствие параметров. И о функциях/процедурах текущего модуля тоже все знаем. В примере Количество() - оно всегда без параметров... Количество таких встроенных функций конечно, они же в каком-то списке хранятся, там же нужно и пометки проставить - есть/нет параметры. Готов заняться подготовкой такой таблицы, если нужно.
Еще очень полезная фича была у Снегопата - сортировка закрывающих конструкций. Т. е. анализ довольно простой (как мне кажется), если выше по коду есть открытое Если - Тогда, то КонецЕсли становится первым в списке. Есил есть открытый Пока - Цикл (или Для - Цикл) - то первым становится КонецЦикла. Если есть Попытка - То Исключение и КонецПопытки вверх. Функция - КонецФункции Процедура - КонецПроцедуры Вроде и все. Мелочь, но за год человеко день сэкономит.
@ec6bf12f29c84a32a07f1b5e265797bf по параметрам методов - посмотрю, попробую автоматически сформировать
@ec6bf12f29c84a32a07f1b5e265797bf по закрывающим вопрос. Зачем это? Зачем набирать Если, КонецЕсли ведь есть встроенные в ТК шаблоны. Сейчас гифку сделаю.
Пользователь прикрепил(а) вложение t9_templates1.gif https://trello-attachments.s3.amazonaws.com/5aec736d7dec7207a7f7c6df/5bfff4a8dfac6931dddad012/a1b5c3d02920aefa33eddd2d27498bb2/t9_templates1.gif
@bolsun Это все здорово, но не всегда получается писать так, используя шаблоны. Часто нужно писать построчно, или редактировать старый код, или копировать куски с условиями - началами циклов. В общем, не знаю, как кому - а мне лично этой фичи не хватает постоянно. Нужно набирать КонецЦикла, а мне зачем-то КонецЕсли предлагает.
@ec6bf12f29c84a32a07f1b5e265797bf согласен, звучит логично
@board скоро выложу версию с новой сортировкой, плюс еще нашел ошибку из-за которой после точки появлялись абсолютно лишние значения.
Пользователь прикрепил(а) вложение TurboConf.zip
@board во вложении новая версия
@board https://trello.com/c/KXN9tFJZ
bolsun переместил(а) эту карточку из списка Информация в список Принятые предложения
bolsun переместил(а) эту карточку из списка Принятые предложения в список Завершено
@board новый опрос. Прошу участвовать :)