QSearch plugin
- Author
- Message
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Последние годы я стараюсь минимизировать изменения в GUI. Это связано с тем, что при использовании WinAPI разграничение отношений Model-View приходится делать руками, что в случае плагина QSearch, в котором такое разграничение не было сделано на этапе проектирования, вынуждает переписать много кода. Чего мне не хочется делать. Ведь: 1) всё и так работает; 2) добавление нового функционала/логики происходит быстрее и занимает меньше времени, чем обновление GUI. (С этой точки зрения, идеальный для разработчика подход избран в Sublime Text, где _вообще_ нет GUI для настроек. Это, однако, сказывается на конечных пользователях, которым для элементарного изменения цвета выделенного текста приходится пройти семь кругов ада.)
Выше был приведен макет нового диалога настроек для вида (формата) результатов поиска. Речь идёт об отдельном диалоге настроек, потому что там довольно много конфигурабельных элементов. Почему я не люблю возиться с подобного рода GUI, это потому, что для каждого отдельного элемента нужно руками прописывать все обработчики, плюс ещё играться с размещением элементов. Это только кажется, что там мало, что делать - для примера см. диалог настроек плагина XBrackets: "Source\XBrackets\SettingsDlg.c", 24 кБ кода.
Выше был приведен макет нового диалога настроек для вида (формата) результатов поиска. Речь идёт об отдельном диалоге настроек, потому что там довольно много конфигурабельных элементов. Почему я не люблю возиться с подобного рода GUI, это потому, что для каждого отдельного элемента нужно руками прописывать все обработчики, плюс ещё играться с размещением элементов. Это только кажется, что там мало, что делать - для примера см. диалог настроек плагина XBrackets: "Source\XBrackets\SettingsDlg.c", 24 кБ кода.
-
Offline
- Posts: 276
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
Понятно почему всё так красиво получилосьDV wrote:для примера см. диалог настроек плагина XBrackets: 24 кБ кода

Только переключатель Line <-> Match only, мне кажется, хорошо бы вынести (или продублировать) поближе, в контекстное меню кнопки, например. Я, к примеру, буду им часто пользоваться.
Last edited by yozhic on Wed Mar 27, 2019 6:35 pm, edited 1 time in total.
-
Offline
- Posts: 276
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
Не знаю как выглядят мои хотелки со стороны, но понимание трудоемкости и уважение к чужим силам и времени в них всегда неизменно подразумевались. Я Вам за любое решение благодарен, но еще одно предложение-просьбу внесу (если еще не утомил)DV wrote:Это только кажется, что там мало, что делать

Может Вам такой вариант будет небезинтересен/приемлем. Компромиссный, т.е. чтоб и Вам не накладно, и пользователям по-удобней (за всех, естественно, не говорю, но надеюсь, что народ поддержит; ну а нет, так нет). Щелчки мышью при зажатой клавише-модификаторе. Например, если бы можно было щёлкать ЛКМ при зажатом Ctrl (или Alt) по надписи Whole word и менялись бы по кругу режимы Простой->Wildcards->RegExp. Стало бы существенно удобнее (чем через контекстное меню, в котором еще много строк и не сразу выхватываешь нужную), а визуально это уже «заложено» в виде значков в верхнем регистре: Whole word -> Whole word* -> Whole word^. И, по аналогии, если бы можно было щёлкать ЛКМ при зажатом Ctrl (или Alt) по кнопке Найти все и менялись бы по кругу режимы Line <-> Match only. А визуально это можно было бы отобразить символами * и = на самой кнопке.
Last edited by yozhic on Wed Mar 27, 2019 6:36 pm, edited 1 time in total.
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Мне кажется, удобнее колесом мыши щелкать, а уже с модификаторами – в качестве дублирующего варианта.yozhic wrote:Щелчки мышью при зажатой клавише-модификаторе. Например, если бы можно было щёлкать ЛКМ при зажатом Ctrl (или Alt) по надписи Whole word и менялись бы по кругу режимы Простой->Wildcards->RegExp.
-
Offline
- Posts: 276
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
-
Offline
- Posts: 276
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
По мне, так Ctrl достаточно – она же наиболее удобная, т.к. крайняя.DV wrote:можно на пару и Alt+LBM
Может, кратко во всплывающей подсказке второй строкой: Ctrl+LBM switches search modes (Ctrl+ЛКМ переключает режимы поиска)? Хотя, наверное, это и не очень информативно, и может кому-то показаться громоздким, но зато способно напомнить о том что функционал имеется, либо подвигнуть к мысли открыть справку и прочитать что же всё это значит. А в справке (ReadMe) уже поподробней, что да как.DV wrote:Только как дать знать пользователю о такой возможности?
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Новая версия на пробу:
https://github.com/d0vgan/AkelPad-Plugs ... 63c-190407
Включает в себя новый диалог настроек отображения результатов поиска, пока только с английским текстом, без перевода. Название диалога и какие-то элементы, возможно, могут иметь более удачные названия.
Не забываем, что в настройках плагина ("QSearch.ini") следует указать
https://github.com/d0vgan/AkelPad-Plugs ... 63c-190407
Включает в себя новый диалог настроек отображения результатов поиска, пока только с английским текстом, без перевода. Название диалога и какие-то элементы, возможно, могут иметь более удачные названия.
Не забываем, что в настройках плагина ("QSearch.ini") следует указать
Code: Select all
new_ui=2
-
Offline
- Posts: 276
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
КрасотаDV wrote:Новая версия на пробу

Но вот что замечено. Стандартный диалог Поиск/Замена этой регуляркой захватывает всю строку от начала до \n.
Code: Select all
(?-s)^(?!\t|\n|#|\x20|\{\{).+
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Пожелания и предложения.DV wrote:Новая версия на пробу:
https://github.com/d0vgan/AkelPad-Plugs ... 63c-190407
Включает в себя новый диалог настроек отображения результатов поиска, пока только с английским текстом, без перевода.
В контекстном меню «Search results format...», как мне кажется, нагляднее заменить на «Search options...» (и можно отделить этот пункт разделителем).
И в самом окне настроек заголовок можно тоже по аналоги: QSearch - Find All - Search options.
По расположению есть предложение сделать что-то такое, чтобы было как в итоговой выдаче:
Code: Select all
[v] Header: …
[v] Position [v] Length (*) Whole line ( ) Match only
[v] Footer: …
[v] Apply the color scheme
И насчет «Сл. целиком», конечно, все же хотелось бы поддержку клика колёсиком.
Как бы там ни было, удобная штука выходит, спасибо!
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Это настройка 'adj_incompl_regexp'.yozhic wrote:Стандартный диалог Поиск/Замена этой регуляркой захватывает всю строку от начала до \n.Code: Select all
(?-s)^(?!\t|\n|#|\x20|\{\{).+
Когда она активна, обычное поведение регулярного выражения возвращается добавлением ещё одного '+' в конец. (Сейчас это полуофициальное решение, работающее только тому, что AkelPad позволяет указывать регулярки типа "x++". В новой версии QSearch плагин будет сам отсекать последний символ "+" перед передачей в AkelPad).
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Или "More options..."Infocatcher wrote:В контекстном меню «Search results format...», как мне кажется, нагляднее заменить на «Search options...»
Пока остановился на вертикальном варианте - он дает более широкие (почти каламбур!) возможности для перевода строк.Infocatcher wrote:Code: Select all
[v] Header: … [v] Position [v] Length (*) Whole line ( ) Match only [v] Footer: …
OK. (Небольшой нюанс: как оказалось, при нажатии Ctrl+MButton уже показанное контекстное меню не исчезает, в отличие от Ctrl+LButton).Infocatcher wrote:И насчет «Сл. целиком», конечно, все же хотелось бы поддержку клика колёсиком.
-
Offline
- Posts: 276
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
Ого, спасибо, всё понятно. Я не менял этот ключик, значит по умолчанию там 1. А может быть лучше сделать умолчательное значение 2? Только потому, чтоDV wrote:Это настройка 'adj_incompl_regexp'.
Справка wrote:Квантификаторы регулярных выражений (*, +, {n,}) являются по умолчанию жадными.
Или "Output options..." (Настройка вывода...) Тем более, что слово Output уже присутствует в наименованиях: Find all: Log output, Find all: File output. И, да, сепаратором эту строчку хорошо бы сверху отбить.DV wrote:Или "More options..."
Хм... Мне почему-то показалось, что Infocatcher имел в виду просто MButton, без Ctrl.DV wrote:как оказалось, при нажатии Ctrl+MButton
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact: