Зависание и последующий вылет при поиске с регулярками по целым словам в редакторе

Здесь можно сообщить о найденных багах в Far.
Volodya
Posts: 324
Joined: Thu 31 Mar, 2005 19:41
Has thanked: 71 times
Been thanked: 2 times

Зависание и последующий вылет при поиске с регулярками по целым словам в редакторе

Post by Volodya »

Открываем любой файл на редактирование. По F7 подбираем первое слово. Нажимаю Show All. После долгого раздумья Far
Far x86 3.0.6554
Версия макроса 1.5.7
Last edited by HaRT on Wed 17 Sep, 2025 11:15, edited 1 time in total.
Reason: Добавлена ссылка на исходную Тему
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

У меня тоже ФАР зависал (до улёта я не дожидался). Причём даже на очень маленьких файликах и не обязательно первое слово. Удаление этого макроса и перезагрузка макросов ситуацию не исправляла. После перезапуска ФАРа повторить зацикливание не удалось пока. Есть у меня подозрение, что где-то макрос наткнулся на ошибку ФАРа
Last edited by buniak_a_h on Wed 17 Sep, 2025 02:23, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

Во! Удалось повторить. Искал образец \w+ Регэкспы включены. Если при этом включить Whole words, то вот и зависает. Видимо всё же Regular expressions несовместим с Whole words. Что, в принципе, понятно.
P/S. Завис возникает независимо от наличия этого скрипта.
Last edited by buniak_a_h on Wed 17 Sep, 2025 02:32, edited 1 time in total.
Yegor
Posts: 1506
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 52 times
Been thanked: 94 times

Синхронизация редактора с результатами поиска (Show All)

Post by Yegor »

buniak_a_h wrote: Wed 17 Sep, 2025 02:29 P/S. Завис возникает независимо от наличия этого скрипта.
Нажмите Esc пару раз. Kadaner, не к вам ли с этим?
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Синхронизация редактора с результатами поиска (Show All)

Post by HaRT »

buniak_a_h wrote: Wed 17 Sep, 2025 02:29 Искал образец \w+ Регэкспы включены. Если при этом включить Whole words, то вот и зависает.
… если нажать [All] — подтверждаю, FAR BSOD: — без плагинов и с настройками по умолчанию.

P.S. Если своевременно нажать Esc и подтвердить отмену, то появится , по которому можно понять, что поиск зацикливается на последнем слове первой задействованной строки.
Last edited by HaRT on Wed 17 Sep, 2025 04:23, edited 1 time in total.
Reason: Добавлен постскриптум
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

Yegor wrote: Wed 17 Sep, 2025 02:47 Нажмите Esc пару раз.
Если нажать сразу - всё ок. Если подождать и потом нажать - долго (чем дольше тянули с Esc, тем дольше) ждём до появления окна результатов, а потом долго ждём при закрытии ФАРа. Очень похоже на утечку памяти…
Last edited by buniak_a_h on Wed 17 Sep, 2025 03:52, edited 1 time in total.
User avatar
zg
zero-gravity
Posts: 6207
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 206 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by zg »

buniak_a_h wrote: Wed 17 Sep, 2025 03:51Очень похоже на утечку памяти…
а на основании чего вы решили, что это утечка памяти?
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

zg wrote: Wed 17 Sep, 2025 04:15 а на основании чего вы решили, что это утечка памяти?
Чем дольше выполняется некий цикл, тем дольше потом длится закрытие ФАРа. Я предположил, что это время требуется на освобождение ранее выделенных ресурсов.
User avatar
Kadaner
Posts: 70
Joined: Sun 28 Jan, 2018 05:00
Has thanked: 7 times
Been thanked: 3 times

Синхронизация редактора с результатами поиска (Show All)

Post by Kadaner »

zg wrote: Tue 16 Sep, 2025 11:01 на них надо отдельно подписываться с помощью far.SubscribeDialogDrawEvents. вот так, работает:
Спасибо, идею понял. Конкретно, посмотрю позже.
zg wrote: Tue 16 Sep, 2025 11:01 что реализовали, то и есть. не очень понятно, зачем развивать устаревшее апи, которое есть только для совместимости и имеет, в том числе, вот такие вот проблемы.
А которое из них устаревшее? Простите, я всё еще очень плохо ориентируюсь в нюансах Plugin / Lua API. Я сделал это так, как я уже делал это раз или два. Тогда это подписали и смёржили, и выглядело так, что все были довольны. Я думал, что так и надо.
User avatar
Kadaner
Posts: 70
Joined: Sun 28 Jan, 2018 05:00
Has thanked: 7 times
Been thanked: 3 times

Синхронизация редактора с результатами поиска (Show All)

Post by Kadaner »

buniak_a_h wrote: Tue 16 Sep, 2025 13:12 Ничего, если без ссылки на Вас?
Да, конечно, нет проблем. Извините, что не смог сразу ответить, я разбираю личную почту только вечерами.
User avatar
zg
zero-gravity
Posts: 6207
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 206 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by zg »

buniak_a_h wrote: Wed 17 Sep, 2025 04:26 Чем дольше выполняется некий цикл, тем дольше потом длится закрытие ФАРа. Я предположил, что это время требуется на освобождение ранее выделенных ресурсов.
так если ресурсы освобождаются — это же не утечка, не?
User avatar
zg
zero-gravity
Posts: 6207
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 206 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by zg »

Yegor wrote: Wed 17 Sep, 2025 02:47Нажмите Esc пару раз. Kadaner, не к вам ли с этим?
как я понял при поиске с регэкспом, если мы что-то нашли, дальше ищем со следующего символа от начала найденного. если поиск с целыми словами, то вот тут начало поиска корректируется до первого символа после текущего слова. но если слово находится в конце строки и после него ничего нет, то позиция поиска снова оказывается на начале этого слова и поиск зацикливается. видно и при обычном поиске shift-f7 остаётся на начале последнего слова в текущей строке.
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

zg wrote: Wed 17 Sep, 2025 04:53 так если ресурсы освобождаются — это же не утечка, не?
Освобождаются при закрытии процесса, а до тех пор только выделяются (пока есть; потом - крах). Может и не утечка, но бесконечное выделение ресурса - то же самое.
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

С поисками всё стало совсем странно… На версии 5959 поиск образца \w+ приводил к поиску слов (т.е. "+" - "жадный" квалификатор; искомый образец заканчивается либо с концом слова. либо с концом строки). Продолжался поиск с символа, следующего за найденным образцом. Вот пример поиска регэкспа \w+ в версии 5959:
image.png
Теперь поиск продолжается с символа, следующего за первым символом найденного образца. Как правильнее я не знаю, но старая логика была полезнее.
Вот результат поиска в версии 6550:
image.png
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Синхронизация редактора с результатами поиска (Show All)

Post by buniak_a_h »

P/S. Это поведение не зависит от настройки editor -> Cursor at the end, что немного странно…
Post Reply

Return to “Глюки и баги”