Вверх ↑
Этот топик читают: Гость
Ответов: 3889
Рейтинг: 362
#1: 2011-10-10 01:11:33 ЛС | профиль | цитата
== Панель быстрого поиска элемента в папке conf и вставка его в буфер обмена ==== позволяет найти по первым буквам и многократно вставлять из буфера обмена элементы, лежащие в папке conf текущего пакета, не зависимо от их наличия в палитре элементов ==
== [burl=/getfile/25458]Версия 1.06[/burl] ==

показать скриншот
На рисунке видна работа одновременно с четырьмя панелями для разных пакетов, расставленными лесенкой для удобства съемки. На практике они могут перемещаться и открыватьсязакрываться независимо друг от друга. При определённой сноровке, плагин заметно ускоряет составление схем, а при использовании скрытых и нестандартных элементов, не установленных в палитру - просто незаменим.

Установка:
Вариант №1: Скачать [burl=/getfile/25458]Архив QSearch[/burl], извлечь схему qsearch.sha, скомпилировать и скопировать получившуюся библиотеку (qsearch.dll) в папку HiAsmIntplugs. Желательно установить пользователю, от имени которого будет запускаться конструктор, полные права на эту папку. Перезапустить конструктор.

Вариант №2: Извлечь из [burl=/getfile/25458]Архива QSearch[/burl] библиотеку qsearch.dll, которую достаточно скопировать в папку HiAsmIntplugs и перезапустить конструктор.

Использование:
Одна из техник работы (для двурукого правши со штатным набором пальцев, стандатрной клавиатурой и мышью, естественно) примерно такая:

Мизинцем левой руки зажимаем CTRL, другим пальцем щёлкаем по пробелу (появляетсяактивируется нужная панель, клавиатура автоматически переключается на английскую раскладку), этой же рукой набираем несколько первых символов имени компонента (например, "MT", регистр не важен) , правой рукой прокручиваем колесо мыши, пока не видим нужное имяописаниеиконку компонента, либо вызываем выпадающий список кнопкой справа от поля ввода и ищем тем же колёсиком нужный нам компонент. Набор клавишами при этом продолжает работать, равно как и перебор вариантов кнопками вверхвниз. После выбора или набора имени вручную компонент сам попадает в буфер обмена. Вставляем его в схему любым удобным способом, как мышью, так и CTRL+V левой рукой.
подробнее...
После запуска конструктора плагин ожидает нажатия на рабочем поле комбинации Ctrl+Space. По нажатии данного сочетания появляется панель быстрого поиска элемента, соответствующая пакету текущего открытого проекта. Одновременно на экране допустимо (но не рекомендуется) работать с несколькими панелями, соответствующими различным пакетам.

Панель не мешает работе со средой, может быть перемещена в любое место или закрыта до повторного вызова комбинацией горячих клавиш (содержимое и позиция будут сохранены). Если панель потеряла фокус, щелчок по её заголовку выделяет всё содержимое поля ввода, можно набирать текст, который полностью заменит содержимое. Щелчок сразу по полю ввода поставит курсор в указанное место, без выделения. Двойной щелчок по полю ввода выделит весь текст в нём. Ещё один способ поставить фокус на панель, соответствующую пакету, проект на базе которого открыт в текущем рабочем поле - нажать при активном рабочем поле ещё раз комбинацию горячих клавиш CTRL+Space.

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

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

Обращаю внимание (особенно - начинающих) пользователей, что перебирать варианты подстановки имён элементов можно не только кнопками клавиатуры вверх и вниз, но и колесом прокрутки мыши.

Известные ограничения и ньюансы:
осознать тяжесть бытия
Плагин тестировался на и оптимизировался под версию конструктора 4.04 b185 и новее. Работа на более старых версиях конструктора не проверялась и не гарантируется, рекомендуется обновиться по ссылке из моей подписи. Использована экспериментальная технология и недокументированные функции конструктора, соответственно, автор каких либо гарантий не даёт и ответственности за последствия пользования плагином не несёт. После первичной регистрации панели, конструктор не даёт плагину обновлять содержимое списков (ограничение среды). Список элементов не фильтруется на наличие служебных (кому-то даже плюс). При перерегистрации панелей HiAsm может иногда выдавать ошибки (ограничение среды), по-этому, хотя и желательно ограничить количество одновременно открытых панелей, но не рекомендуется закрывать их без необходимости - конструктор может не дать их открыть вновь (ограничение среды, возможно, в последней версии плагина больше не проявится). Внимательно следите за тем, что Вы копируете на рабочее поле HiAsm, некоторые компоненты не зря были скрыты Так как элементы копируются в буфер обмена только при изменении поля ввода (да, угадали, это - очередное ограничение среды, которое решено не обходить дабы не затирать буфер обмена почём зря), то, чтобы не набирать заново имя элемента, который уже в поле, при переходе на него (поле) фокуса достаточно прокрутить на шаг вышениже и обратно варианты кнопками вверхвниз или колесом мыши. Также слева или справа от имени можно напечатать пробел, при поиске элемента они обрезаются.
карма: 1

5
файлы: 6quicksearch_button.sha [2KB] [560], quicksearch_context_menu_key.sha [2.4KB] [397], quicksearch_context_menu_key_source.sha [2.4KB] [386], qsearch_.png [12.1KB] [378], qsearch106.7z [46.6KB] [210], qsearch106.zip [47.3KB] [239]
Голосовали:login, CriDos, Konst, tom-it, Assasin
Ответов: 1429
Рейтинг: 50
#2: 2011-10-10 01:24:19 ЛС | профиль | цитата
[offtop]удалил[/offtop]
карма: 0

0
Ответов: 3889
Рейтинг: 362
#3: 2011-10-10 01:32:43 ЛС | профиль | цитата
login писал(а):
Хочется ее при помощи Escape закрывать

Во-первых, окон может быть несколько, все сразу закрывать? Во-вторых, у среды серьёзное ограничение - панели полностью закрывать нельзя, иначе потом их не откроете больше (ограничение среды конструктора), их можно только делать невидимыми. В-третьих, зачем вам скрывать панель, оттащите в уголок и работайте спокойно, пока не понадобится При желании, конечно, могу попробовать(могу быть сильно ограничен некоторыми особенностями среды) сокрытие сделать, по таймеру или кнопкам.
карма: 1

0
Ответов: 1429
Рейтинг: 50
#4: 2011-10-10 01:35:49 ЛС | профиль | цитата
1nd1g0, нет, что вы, не нужно. Это я импульсивно. И так отлично!
карма: 0

0
Ответов: 3889
Рейтинг: 362
#5: 2011-10-10 02:21:18 ЛС | профиль | цитата
Выпущена новая ревизия плагина, убрана фильтрация дубликатов, добавлен тримминг пробелов и непечатных символов в поле ввода, жёстко задан шрифт и формат надписи, обозначающей пакет, которому принадлежит конкретный экземпляр панели поиска.
карма: 1

0
Ответов: 3889
Рейтинг: 362
#6: 2011-10-11 13:14:52 ЛС | профиль | цитата
Обновлён [burl=http://forum.hiasm.com//getfile/25430]плагин[/burl] для опытных пользователей HiAsm, позволяющий максимально быстро найти и (многократно) вставить в схему из буфера обмена любой элемент по его имени, даже если его нет в палитре:

+ панель поиска стала меньше;
+ имя пакета, по папке которого ведётся поиск, прописано в заголовке панели;
+ горячие клавиши CTRL+Space, нажатые при открытой панели текущего пакета, переводят на неё фокус с выделением всего содержимого поля ввода (то есть теперь не придётся отнимать рук от клавиатуры чтобы поставить фокус на панель, если она уже была зарегистрирована и висит на экране), при нескольких открытых одновременно, плагин сам найдёт окно нужной панели, подходящей к текущей схеме на рабочем поле;
~ добавлена превентивная защита от многократного вызова регистрации панели в несколько потоков по авто повтору клавиш, не известно, в этом ли была проблема редких ошибок конструктора, но на всякий случай пускай будет;
~ оптимизирован и красиво оформлен исходный код плагина.
------------ Дoбавленo в 13.14:
Обращаю внимание (особенно - начинающих) пользователей, что перебирать варианты подстановки имён элементов можно не только кнопками клавиатуры вверх и вниз, но и колесом прокрутки мыши. То есть одна из техник работы (для двурукого правши со штатным набором пальцев, стандатрной клавиатурой и мышью, естественно) примерно такая:

Убеждаемся, что раскладка клавиатуры содержит латинские буквы. Мизинцем левой руки зажимаем CTRL, другим пальцем щёлкаем по пробелу, этой же рукой набираем пару символов, правой рукой прокручиваем колесо мыши, пока не видим нужное имя компонента, либо вызываем выпадающий список кнопкой справа от поля ввода и ищем тем же колёсиком нужный нам компонент. Набор клавишами при этом продолжает работать. После выбора или набора имени вручную компонент сам попадает в буфер обмена. Вставляем его в схему любым удобным способом, как мышью, так и CTRL+V левой рукой.
карма: 1

1
Голосовали:login
Ответов: 1429
Рейтинг: 50
#7: 2011-10-11 14:05:53 ЛС | профиль | цитата
1nd1g0, из полезных фич, осталась одна.
Поиск по фрагменту имени.

К примеру, если пишу midi_io - он находит.
А если пишу просто _io - не находит.

Опять же, если нет желания или трудно то не стоит.
карма: 0

0
Ответов: 3889
Рейтинг: 362
#8: 2011-10-11 14:11:54 ЛС | профиль | цитата
login писал(а):
если пишу просто _io - не находит

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

0
Ответов: 1429
Рейтинг: 50
#9: 2011-10-11 14:21:07 ЛС | профиль | цитата
1nd1g0, не могу, увлекся секвенсером.
И схемка у вас не простая
карма: 0

0
Ответов: 3889
Рейтинг: 362
#10: 2011-10-11 18:37:16 ЛС | профиль | цитата
login писал(а):
схемка у вас не простая

То, что Вы хотите, потребует совсем другой схемы и технологии, так что можно на мою не смотреть. Моя использует индусские методы создания схем .sha с панелями в реальном времени и работы с ними через WM_ - сообщения, т.к. конструкторский интерфейс к плагинам не доделан (не документирован?) до состояния, в котором можно было бы делать это удобнее, пришлось импровизировать. В Вашем случае уже целесообразнее писать внешнее приложение со своим интерфейсом и обращаться к нему из плагина. Хотя я не говорил, что нельзя этого сделать через генерацию .sha, сообщения и т.п. Но индусский индекс такого подхода зашкаливает
------------ Дoбавленo в 18.37:
В очередной раз обновился [burl=http://forum.hiasm.com//getfile/25434]ПЛАГИН QSearch для HiAsm 4.04[/burl], добавляющий в конструктор панели быстрого поиска элементов для всех корректно установленных в конструктор пакетов.

+ Плагин стал визуальнее и умнее. Теперь на панели отображается иконка элемента, который был скопирован в буфер обмена. Для каждой панели иконка ищется в подпапке HiAsm/Elements/имя_пакета/icon/ и должна совпадать по имени с тем, что Вы ввели в поле поиска. Таким образом, быстрый поиск элемента стал ещё нагляднее и удобнее

~ Плагин автоматически переключается между папками иконок в зависимости от того, на какой пакет настроена конкретная панель быстрого поиска.

- Иконка рисуется один раз, перед копированием элемента в буфер обмена, после затирания краем экрана или другим окном иконка не восстанавливается. Такое поведение оставлено намеренно, т.к. отслеживание затирания или постоянную перерисовку по таймеру пришлось бы делать нецелесообразно индусскими способами в силу отсутствия таких инструментов в самой среде. На данный момент, из-за этих ограничений, и так приходится пользоваться нетривиальными методами интерфейса с пользователем и вывода графики. Свои функции информирования о том, что попало в буфер обмена, иконка на данный момент выполняет более чем "неплохо". Как всегда, желающие могут рискнуть доработать плагин м поделиться результатами, в схеме для этого уже кое-что предусмотрено.
карма: 1

0
Ответов: 1429
Рейтинг: 50
#11: 2011-10-11 18:59:32 ЛС | профиль | цитата
Класс! Добавьте в сборку среды.
карма: 0

0
Ответов: 3889
Рейтинг: 362
#12: 2011-10-11 21:09:15 ЛС | профиль | цитата
Для тех, кто по каким-то причинам не может скомпилировать плагин самостоятельно, публикуется:
СКРИНШОТ
На рисунке видна работа одновременно с тремя панелями разных пакетов, расставленными столбиком для удобства съемки. На практике они могут перемещаться и закрываться независимо друг от друга.
------------ Дoбавленo в 19.08:
Также выкладывается [burl=/getfile/25438]Скомпилированная версия плагина QSearch[/burl]. Внутри архива - библиотека qsearch.dll, которую достаточно скопировать в папку HiAsmIntplugs и перезапустить конструктор.
------------ Дoбавленo в 21.09:
Обновлена и переформатирована шапка темы, рекомендуется начинать изучение плагина с её прочтения.
карма: 1

0
Ответов: 3889
Рейтинг: 362
#13: 2011-10-13 19:00:42 ЛС | профиль | цитата
Уважаемые коллеги. Автор считает своим долгом сообщить, что плагин альтернативного поиска элементов поднялся вверх на пару ступенек эволюции и обрёл гордую [burl=http://forum.hiasm.com/xf/attach/prg/qsearch106.zip]версию 1.06[/burl], в связи с чем:

+ Плагин нарастил свой IQ и теперь не просто индексирует файлы в папках conf, но ещё извлекает из них описание компонента и отображает его всплывающей подсказкой при каждом копировании в буфер обмена, наряду с иконкой

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

+ При активации панели поиска сочетанием клавиш CTRL + Space, раскладка клавиатуры переключается на английскую автоматически

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

1
Голосовали:Konst
13
Сообщение
...
Прикрепленные файлы
(файлы не залиты)