Что нового

Мечты о новых инструментах программирования

AZJIO

Меценат
Меценат
Сообщения
2,766
Репутация
1,154
Есть инструмент авто-завершение функции. В Notepad++ он слегка постарадал, вместо продвинутости получили новое не лучшее поведение. Сама идея автозавершения имеет много плюсов по сравнению со сниппсетами, сокращениями и другими способами.
1. Сравним со сниппсетами. Во первых надо менять фокус, трогать мышь, чтобы перевести курсор на выбор библиотеки сниппсетов или на строку поиска сниппсетов (потом ещё переводить фокус в окно выбора), да ещё и кликать 2 раза (на существующих в данный момент плагах)
2. Сравним с сокращениями. Большой минус в невидимости, то есть надо запоминать сокращения или задумывать сокращения. Опять же используя чужие наработки надо запоминать сокращения или правила.
Всплытие релевантных (наиболее отвечающие ожиданию) пунктов позволяет более интерактивно взаимодействовать. Возьмём SciTE, при вводе он сразу ограничивает список только соответствующих введённому, в то время как Notepad++ v6.5.3 выдаёт весь список позиционируя в пункты отвечающие вводимому.
Теперь к главному, то что хочется мне. Во первых список должен быть не в один столбец. Как определять столбцы должно быть в настройках, например выбор их количества и порядок следования. Во вторых элементы списка могут быть многострочным текстом, то есть выбрав пункт можно вставить целую конструкцию/абзац (сниппсет). Если строка пункта длинная, то обрезается до определённого количества символов, взависимости от количества столбцов. Если в одном из столбцов нет результатов соответствующих критерию поиска, то этот столбец подкрашивается в светло- красный цвет, а в настройках должно быть разное поведение для этого случая: "Пропускать неактивные колонки" и "Не показывать неактивные колонки", "Показывать название колонки".
У списков должно быть несколько форматов. Итак, формат обычных функций, вводим слово, показывает результаты по началу, следующий формат - поиск по части слова в любом месте, указать число символов для активации поиска, например только после ввода 3 символов активируется возможность этого поиска. И формат сниппсетов, который содержит отображаемое имя не зависящее от вставляемого, то есть здесь и по аналогу сокращения можно сделать. Кстати не обязательно грузить все сниппсеты в память, а только имена для поиска.
Навигация по списку(ам). В принципе как обычно, стрелками вправо/влево выбираем столбец, вверх/вниз - переход по пунктам списка, при чем в настройках вариант "Сохранять позицию в списке при навигации по колонкам" и "Сохранять только для текущей колонки" или "Переход в туже позицию в любой колонке". Также в настройках должна быть возможность задать индивидуально ширину для каждой колонки. Также опция "Если список не умещается под вводимым текстом, то разрешить перекрывать место ввода всплывающим меню пунктов. Также опция количество отображаемых пунктов (остальные в прокрутке)
Почему несколько колонок? Потому что для разных типов проще передвинуть курсор стрелкой в нужную колонку, а уж ней выбрать пункт, потому что искать среди общего списка можно иметь внушительный список, когда известно что сниппсет по текущему сокращению один и проще передвинуть вправо, чем 50 раз вниз.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Мне нравится как это реализовано в стандартном редакторе PureBasic.
 
Верх