HiliteWord — Авто-подсветка вхождений слова под курсором

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by John Doe »

Ненавязчиво подсвечиваются все вхождения слова под курсором.
При перемещении курсора и редактировании текста подсветка соответственно автоматически обновляется.
  • LCtrl+LAlt - фиксирует текущее слово.
  • LCtrl+LAlt+Up/Down - навигация по вхождениям слова.


Для работы необходима настройка InterfaceSettings / [x] Use VirtualTerminal for rendering.
Или же можно color перенастроить на более простой цвет.

P.S.
Как лучше подсвечивать слово я пока для себя не решил.
В закомментированной строке коде color настроен на подчёркивание (для этого требуется соответствующая поддержка терминалом).
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by John Doe »

Latest post of the previous page:

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

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

Что думаете?

P.S.
И ещё.
Учитывая пересечение функциональности со штатным Editor.ColorWord.moon, возможно стоит добавить/заменить шорткат фиксации слова на F5?
https://t.me/FarManager — Telegram чат
User avatar
Wave
Posts: 1900
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 16 times
Been thanked: 29 times

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by Wave »

Если в тексте всего два одинаковых слова (я для теста одно слово продублировал и попрыгал между ними), то LCtrl+LAlt+Up/Down с ЛЮБОГО слова срывает курсор на эти два, если они в направлении up/down. Я б всё же ожидал, что если курсор стоит на слове, которое не дублируется больше, то и срывать его не должно.

А вот подсветка сходу не заработала. Пошёл включил опцию Use VirtualTerminal for rendering, переоткрыл файл — всё равно не заработала. Дело в ConEmu, в том, что до сих пор стоит ФАР 6071, или в чём-то ещё?
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by HaRT »

John Doe wrote: Mon 19 May, 2025 18:43 есть ли вхождения за пределами экрана, отдельно не нужна: если они меня интересуют, то самого это факта не достаточно, всё равно требуется туда перейти
Зато может быть достаточно обратного: если по подсветке понятно, что за пределами экрана вхождений нет, то и ходить никуда не нужно.
John Doe wrote: Mon 19 May, 2025 18:43 Видеть уникально ли текущее слово тоже не знаю для чего.
Искать так опечатки не очень эффективно, хотя бы потому что уникальные вызовы функций не редкость.
Не могу согласиться. Наитипичнейший сценарий — определить ф-ю или переменную и ниже её использовать один или более раз. Если, встав на идентификатор в определении/использовании, мы видим, что он уникальный, то что-то пошло не так. (Да, об этом предупредит и линтер, но не всегда, позже и с бОльшим количеством телодвижений.) И более общо, если по смыслу в нескольких местах должно быть одно и то же слово, а мы вдруг видим, что оно уникальное, значит где-то опечатались.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by John Doe »

Wave wrote: Mon 19 May, 2025 18:59 Если в тексте всего два одинаковых слова (я для теста одно слово продублировал и попрыгал между ними), то LCtrl+LAlt+Up/Down с ЛЮБОГО слова срывает курсор на эти два, если они в направлении up/down.
Вероятно вы случайно зафиксировали слово одиночным CtrlAlt. Аргумент в пользу замены на F5.
Дело в ConEmu, в том, что до сих пор стоит ФАР 6071, или в чём-то ещё?
Даже не знаю, попробуйте обновить.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by HaRT »

John Doe wrote: Mon 19 May, 2025 18:54 Что думаете?
Совсем непонятно, что за начальная точка, какой паттерн её захватывает и какие практические последствия это имеет. Хотелось бы получить объяснение как для простого пользователя.
John Doe wrote: Mon 19 May, 2025 18:54 Учитывая пересечение функциональности со штатным Editor.ColorWord.moon, возможно стоит добавить/заменить шорткат фиксации слова на F5?
Думаю, что это лишнее. ColorWord мне удобен именно в его нынешнем виде, с поддержкой произвольного выделенного фрагмента и очень броской подсветкой. А HiliteWord, как изначально было отмечено, даёт ненавязчивую подсветку слов и хорош в других сценариях.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by John Doe »

HaRT wrote: Mon 19 May, 2025 19:25 если по подсветке понятно, что за пределами экрана вхождений нет
Как я уже упоминал, я (лично я) всё равно сразу перехожу к конкретному месту, не ищу его на экране.
HaRT wrote: Mon 19 May, 2025 19:25 Если, встав на идентификатор в определении/использовании, мы видим, что он уникальный, то что-то пошло не так.
Я вовсе не спорю, что можно из этого какую-то пользу извлечь в принципе. Просто это не соответствует лично моей практике.
Линтер это всё равно не заменит.
Что до телодвижений, то представьте реализацию: файл необходимо весь прочитать и проиндексировать.
А колорер например периодически за тормоза ругают...
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by John Doe »

HaRT wrote: Mon 19 May, 2025 19:31 Совсем непонятно, что за начальная точка, какой паттерн её захватывает и какие практические последствия это имеет. Хотелось бы получить объяснение как для простого пользователя.
editor.SetPosition
Представьте курсор на слове SetPosition, а матчится оно вместе с точкой, т.е. подсвечиваются вхождения .SetPosition.
Преимущество в том, что не будет захвачен совершенно другой одноимённый отдельный идентификатор SetPosition.
HaRT wrote: Mon 19 May, 2025 19:31 ColorWord мне удобен именно в его нынешнем виде, с поддержкой произвольного выделенного фрагмента и очень броской подсветкой.
Произвольные фрагменты это полезно, правда у меня за них другой скрипт отвечает (внезапно IncSearch).
Но если вы фиксируете слово, разве это не тот же самый юзкейс, что у ColorWord? Не вижу ни одного отличия (кроме поддержки выделения, и цвета, который настраивается).
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by HaRT »

John Doe wrote: Mon 19 May, 2025 20:12 Представьте курсор на слове SetPosition, а матчится оно вместе с точкой, т.е. подсвечиваются вхождения .SetPosition.
Ох, в одних ЯП это точка, в других двоеточие, в третьих бэкслэш. А, например, в C++ логично сюда же присовокупить ещё -> и ::. Предлагаете делать настройку по типу файла? На мой взгляд, это уже сильно выбивается из концепции HiliteWord, хотя вы как автор, разумеется, вольны менять концепцию как угодно.
John Doe wrote: Mon 19 May, 2025 20:12если вы фиксируете слово, разве это не тот же самый юзкейс, что у ColorWord? Не вижу ни одного отличия (кроме поддержки выделения, и цвета, который настраивается).
Когда я фиксирую слово, я теряю подсветку слова под кареткой (кстати, зачем так?). И вообще для меня HiliteWord — ненавязчивая долгоживущая подсветка, а ColorWord — броская кратковременная. Да и подсветкой выделенного я пользуюсь нередко.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by John Doe »

Ох, в одних ЯП это точка, в других двоеточие, в третьих бэкслэш.
И верно. Нет, по типу файла не предлагаю, но можно было бы скопом.
HaRT wrote: Mon 19 May, 2025 20:34 Когда я фиксирую слово, я теряю подсветку слова под кареткой
Фиксируете, а не теряете. Это соответствует моему использованию: если у меня в фокусе один идентификатор, зачем мне произвольное мелькание других?
Но если вам надо, тогда действительно, вам нужны оба скрипта.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

HiliteWord — Авто-подсветка вхождений слова под курсором

Post by John Doe »

При переходе по вхождениям слова если очередное вхождение находится за пределами видимой части файла, то найденная строка теперь позиционируется в центр экрана.
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Обсуждение макросов”