Syn (Lister plugin)

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
KF-121
Сообщения: 90
Зарегистрирован: Пн фев 13, 2006 11:00

Сообщение KF-121 »

И всеже про регекспы:
Почему у тебя и у тотала разные регекспы.
Например у ТС блабла.*албалб - это распознается как в однойстроке где втречается блабла, а в оставшейся части он находит албалб.
У тебя же это приводит к выделению всего текста между блабла и албалб жаде если они не находятся в одной строчке.
Не хорошо.
Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121
sepa
Сообщения: 42
Зарегистрирован: Ср июл 12, 2006 17:53

Сообщение sepa »

В тотале сделано не по стандарту. По умолчанию в php и perl регекспы жадные (greedy), и в JavaScript по-моему тоже. Мне так тоже привычнее.
evkogan
Сообщения: 19
Зарегистрирован: Чт авг 25, 2005 09:02

Сообщение evkogan »

Уже реализована возможность использовать naming patterns в регекс строках
Да действительно
Для правильно
\n\s*?(?P<type>[a-z\*]+)(\s+[_a-z]+)?\s+(?P<name>[a-z_\~][a-z0-9_\:]*)\s*?(?P<param>\([^)]*\))\s*?
При этом остаются ложные срабатывания на строках типа
else if ((fd.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)==0)
Но как это исключить я не знаю.

А что по поводу ^ и $
Почему он их не находит?
sepa
Сообщения: 42
Зарегистрирован: Ср июл 12, 2006 17:53

Сообщение sepa »

Но как это исключить я не знаю.
ну в данном случае что ты привел, можно просто
^\s*?(?P<type>[a-z\*]+)(\s+[_a-z]+)?\s+(?P<name>[a-z_\~][a-z0-9_\:]+)\s*?(?P<param>\([^\(\)]*\))\s*?
или след. символ после обращения к функции должен быть ; или { а не =.
Почему он их не находит?
в каком случае не находит? это начало и конец строки, поиск идет с модификатором М, у меня нормально находит.
mai62
Сообщения: 8
Зарегистрирован: Ср сен 06, 2006 01:38
Откуда: Россия

Сообщение mai62 »

Предлагаю модифицированный вариант регулярного выражения для C++
^\s*?(?P<type>[\w\*]+)(\s+\w+)?\s+(?P<name>[\w\~][\w\:]+)\s*?(?P<param>\(([^\(\)!=<>]+\s[^\(\)!=<>\s]+\s*|\s*void\s*)\))\s*?
sepa
Сообщения: 42
Зарегистрирован: Ср июл 12, 2006 17:53

Сообщение sepa »

Спасибо. Вы только с evkogan договоритесь, а то мне С++ не на чем тестить. У него вон считается что в name могут еще быть '_'. И я обновлю в след версии.
mai62
Сообщения: 8
Зарегистрирован: Ср сен 06, 2006 01:38
Откуда: Россия

Сообщение mai62 »

\w - буквенно-цифровой символ или "_"
evkogan
Сообщения: 19
Зарегистрирован: Чт авг 25, 2005 09:02

Сообщение evkogan »

Согласен с вариантом mai62.
evkogan
Сообщения: 19
Зарегистрирован: Чт авг 25, 2005 09:02

Сообщение evkogan »

Баг

Код: Выделить всё

Текст типа
10.24.10.101 {(Unresolved Name)}
HP JetDirect
10.24.10.117 {(Unresolved Name)}
HP JetDirect
10.24.10.22 {(Unresolved Name)}
HP JetDirect

Поиск
}\r\n

Замена
};
Заменить Все
В результате в первой строке в начале добавляется лишняя 1
Аватара пользователя
Sam Dark
Сообщения: 484
Зарегистрирован: Пн апр 25, 2005 15:55
Откуда: Voronezh, Russia
Контактная информация:

Сообщение Sam Dark »

mai62
Должно быть:
\w = только буква! И никак иначе.
sepa
Сообщения: 42
Зарегистрирован: Ср июл 12, 2006 17:53

Сообщение sepa »

v 1.4
  • Сброс выделения из истории при открытии файла
  • В контекстное меню дерева добавлен пункт включения сортировки
  • Позиция в строке теперь отсчитывается от нуля в статусбаре
  • Внутренний дизайнер можно ассоциировать с *.hgl файлами
  • Панель буфера обмена
  • Символы ASCII
  • Исправлен расчет гуттера когда шрифт гуттера отличался от шрифта текста
  • Исправлено неверное уменьшение ширины гуттера при свертывании строк
  • Баг с самым первым символом файла при Replace All
  • Опция для отключения хинтов в дереве (если неправильно перерисовывается дерево)
  • Подсветка текущего отступа для курсора
  • Пропуск ключевого слова CodeFolding'a если оно было найдено в "строке"/коментарии и его тип Character (Нет поддержки для типа Keyword пока)
\w = только буква! И никак иначе.
Действительно, я посмотрел в справке php, в \w входит _
\w any "word" character
A "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word".
к тому же проверить это было не трудно =)
mai62
Сообщения: 8
Зарегистрирован: Ср сен 06, 2006 01:38
Откуда: Россия

Сообщение mai62 »

Sam Dark писал(а):mai62
Должно быть:
\w = только буква! И никак иначе.
Это же не я придумал, так оно в документации, так и в реальности.
Аватара пользователя
KF-121
Сообщения: 90
Зарегистрирован: Пн фев 13, 2006 11:00

Сообщение KF-121 »

В всерсии 1.3 Сильно глючит подсветка для строки заключенной в "". Сбивается диапазон и все красится в цвет этой строки. После нескольких манипуляций все возвращается на места свои. а именно открываешь дизайнер на подсветки и просто кликаешь ок. и будет тебе счатье. Подсветка своя. но сделанно на основе VBS.
Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121
sepa
Сообщения: 42
Зарегистрирован: Ср июл 12, 2006 17:53

Сообщение sepa »

Ну зашли подсветку и как баг увидеть на мыло. Или в 1.4 уже нет бага?
Аватара пользователя
KF-121
Сообщения: 90
Зарегистрирован: Пн фев 13, 2006 11:00

Сообщение KF-121 »

Тока поставил 1,4 пока баг не наблюдается, если что напишу.
Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121
Ответить