Bugs / Найденные баги (1)

Russian main discussion
Locked
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Skif_off wrote:Возвращаясь к \w:
как-то все-таки не так работает, ищу \.\w, Notepad++ и SynWrite нормально находят, а AkelPad до кучи находит и :(
AkelHelp-Rus.htm wrote:\w Соответствует любому символу, составляющему слово (любому символу, который не является разделителем).

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Т.е. в качестве разделителей только 35 символов из Параметров? Так подумал, но после этого засомневался.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Skif_off wrote:Т.е. в качестве разделителей только 35 символов из Параметров?
Это наводит на мысль, что в AkelPad.ini/Registry имеет смысл добавить настройку, описывающую поведение \w. По умолчанию (пустое значение) это был бы любой символ, кроме разделителей, а при желании можно было бы явно указать [a-zA-Z0-9_] и т.д.

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

DV
На первый взгляд - здраво, но, боюсь, появится много проблем. В первую очередь здесь, на форуме: Почему у меня не работает... ?"
Те же файлы подсветки, в общем случае, будут зависеть от этой настройки. Да и вопросов с поиском по регуляркам здесь было не мало. Спрашивает человек: как найти, а ему отвечают: а что у тебя означает \w...

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

Да, и ещё: а \W тогда что будет обозначать? Всё, что не \w ?

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

DV wrote:Это наводит на мысль, что в AkelPad.ini/Registry имеет смысл добавить настройку, описывающую поведение \w.
Скорее наводит на мысль, что в текущей реализации такое \w вообще ни к чему, т.к. получается что-то совсем непонятное.
Обычное и понятное всем программам:
\w = [A-Za-z0-9_]
\W = [^A-Za-z0-9_]
+ зависимость от локализации (так понял, если включена - отличные от латиницы буквы текущей локали тоже попадут в список). Тогда для полного понимания проще вернуть как было. Ну или прикручивать PCRE, но программа подрастет в размере, что не очень подходит.

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Skif_off wrote:вернуть как было.
А вот не надо, как было... непонятно, что непонятного в текущей реализации? Имхо, это самая гибкая и универсальная реализация.
\w - [[:word:]] -Буквенный или цифровой символ или знак подчёркивания
\W - [^[:word:]] - Любой символ, кроме буквенного или цифрового символа или знака подчёркивания.
И в текущей реализации, как раз имеем то же самое, только список того, что является:
\W - Любой символ, кроме буквенного или цифрового символа или знака подчёркивания.
- мы можем настраивать самостоятельно. Причем всё это независимо от локализации.
Что не так?

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

YuS wrote:Что не так?
ищу \.\w, Notepad++ и SynWrite нормально находят, а AkelPad до кучи находит и .» Как вы себе представляете добавление в разделители Любого символа, кроме буквенного или цифрового символа или знака подчёркивания?
Раньше было очевидно: \w=[A-Za-z0-9_], да, только латиница, зато очевидно. Сейчас у нас что-то между только латиница и латиница+буквы других алфавитов (я сейчас только обуквах, с цифрами и _ все как было) и проще забить на \w и пользоваться диапазоном.

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Skif_off wrote: ищу \.\w, Notepad++ и SynWrite нормально находят, а AkelPad до кучи находит и .» Как вы себе представляете добавление в разделители Любого символа, кроме буквенного или цифрового символа или знака подчёркивания?
Таблица символов (charmap.exe) и копируйте, что душе угодно в те самые разделители... это нужно проделать один раз и пользоваться.
Skif_off wrote: Раньше было очевидно: \w=[A-Za-z0-9_], да, только латиница, зато очевидно.
Очевидно, но ненастраиваемо и неудобно.
Skif_off wrote: Сейчас у нас что-то между только латиница и латиница+буквы других алфавитов (я сейчас только обуквах, с цифрами и _ все как было) и проще забить на \w и пользоваться диапазоном.
Ничего не понял. Сейчас есть набор символов, перечисленных как разделители и соответственно, всё остальное - в чем проблема? Вот, что непонятно.
А диапазоны можно и сейчас использовать, только \W и \w немного попроще будет...

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

YuS wrote:Ничего не понял. Сейчас есть набор символов, перечисленных как разделители и соответственно, всё остальное - в чем проблема? Вот, что непонятно.
Еще раз: в Notepad++ и SynWrite \w находит [A-Za-z0-9_]+буквы других алфавитов, AkelPad находит еще до фига всего лишнего. Смысл символьного класса \w - буквы: либо латиница, либо латиница+буквы других алфавитов, не все подряд, а _буквы_.
YuS wrote:Таблица символов (charmap.exe) и копируйте, что душе угодно в те самые разделители... это нужно проделать один раз и пользоваться.
Таки вы серьезно? :)

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Skif_off wrote: Еще раз: в Notepad++ и SynWrite \w находит [A-Za-z0-9_]+буквы других алфавитов, AkelPad находит еще до фига всего лишнего. Смысл символьного класса \w - буквы: либо латиница, либо латиница+буквы других алфавитов, не все подряд, а _буквы_.
Не надо больше разов... с пониманием этого момента - всё в порядке. :wink:
Skif_off wrote:
YuS wrote:Таблица символов (charmap.exe) и копируйте, что душе угодно в те самые разделители... это нужно проделать один раз и пользоваться.
Таки вы серьезно? :)
А что Вас смущает? Это такой "великий труд"?
Ну, ок, попробую с аргументированными примерами:
Гипотетически, у меня есть некоторые тексты, в которых в качестве разделителей используются символы "0x01c0" "0x01c1" "0x01c2", ну или "0x046a" ( :D ) - как поведёт себя с ними Npp (\w)? AP вот, например, ведет себя так, как мне и хотелось...


ЗЫ символы не отображаются движком форума, пришлось добавлять их коды

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

YuS wrote:Гипотетически, у меня есть некоторые тексты, в которых в качестве разделителей используются символы "0x01c0" "0x01c1" "0x01c2", ну или "0x046a" ( :D ) - как поведёт себя с ними Npp (\w)? AP вот, например, ведет себя так, как мне и хотелось...
"Как хотелось" или "как правильно"? "0x046a" - буква кириллицы, должна находиться, если есть полная поддержка юникода, остальное - не буквы алфавита и находиться не должны. Гипотетически :) \w точно не включает "»". Хм.. gedit ведет себя так же как Npp... В общем, ну всй это нафиг, надеюсь, диапазонами обойдусь :))
YuS wrote:А что Вас смущает? Это такой "великий труд"?
Ага, я же не знаю, с чем столкнусь, а символов, мягко говоря - до фига. Собственно, написал, т.к. запорол полтора десятка файлов (работал с копиями, не всё было неправильно и времени жалко).

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Skif_off wrote: "Как хотелось" или "как правильно"? "0x046a" - буква кириллицы, должна находиться, если есть полная поддержка юникода, остальное - не буквы алфавита и находиться не должны.
Говорю же: настраиваемо, т.е. как хотелось. :)
К тому же, должно - не должно, это не разговор, ссылку бы на стандарты... ну, чтобы можно было говорить о "правильно или неправильно".
Хоть остальное и не буквы алфавита, но это точно символы юникода, так что почему бы их и не использовать? От осознания того, что какая-то функция в редакторе будет "правильной", легче не станет, т.к. воспользоваться ею в данном случае не получится. А вот если список разделителей настраиваемый, то и функция вполне юзабельна.
Skif_off wrote: Гипотетически :) \w точно не включает "»".
Так надо добавить в список разделителей этот символ и все дела... а расширенный список можно и здесь уже выложить, чтобы облегчить пользование другим.
И у Npp, кстати, разве можно глянуть весь список разделителей? По-моему нет. Ведь практически, можно тоже застрять в самый неожиданный момент, а у AP хоть можно подсмотреть, что и как и всё будет вполне ожидаемым.
Skif_off wrote: Ага, я же не знаю, с чем столкнусь, а символов, мягко говоря - до фига.
Глаза боятся, а руки делают. :wink:

ЗЫ В общем, это точно не баг, скорее особенность реализации... имхо.

Offline
Posts: 4
Joined: Sat May 24, 2014 8:38 am

Post by Itons »

Опять повторилась ситуация о которой я уже писал не так давно: при завершении поиска перестало появляться диалоговое окно "Поиск завершен". При этом окно "Достигнута граница файла" продолжало появляться. Не заметил ничего необычного перед этим. Хотя, с другой стороны удобно - не надо закрывать диалоговое окно :) Только вот приходится всматриваться - найдено что-то или нет.

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Видимо, какая-то проблема с настройкой «Следить за изменением файла».
Берем скрипт для удаления текущего файла: https://gist.github.com/Infocatcher/6200149, назначаем какой-нибудь хоткей (например, Alt+D).
Запускаем хоткеем: «Delete file?» -> OK
Запускаем еще раз: «File already deleted» -> OK
Далее сообщение закрывается, фокус переходит на редактор и выдается стандартное «Невозможно открыть файл "путь\к\файлу"», AkelPad при этом зависает.
Locked