Page 75 of 99

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

Posted: Mon May 19, 2014 5:39 pm
by Skif_off
Instructor
Т.е. в качестве разделителей только 35 символов из Параметров? Так подумал, но после этого засомневался.

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

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

Posted: Tue May 20, 2014 10:04 am
by Serge Yolkin
Да, и ещё: а \W тогда что будет обозначать? Всё, что не \w ?

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

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

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

Posted: Wed May 21, 2014 4:15 pm
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 немного попроще будет...

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

Posted: Thu May 22, 2014 2:33 am
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 вот, например, ведет себя так, как мне и хотелось...


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

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

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

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

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

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