AZJIO

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Skif_off Цитата: подсвечивать "*two" как указатель нельзя | тут можно либо проверить пробел впереди, потому что "one *two" как умножение выглядит плохим видом, либо проверить, что перед указателем нет числа или буквы, то есть начало строки или разделители [(=,\r\n] точнее: Код: [^\w\t ][\t ]*(\*[\d_a-zA-Z]++) | В AutoIt3 самописные предпочтительно начинать с "_", если такового нет, то да, либо как то приоритет поменять, сначала подсветить встроенные, а потом оставшееся самописные. Либо использовать "подсветить внутри подсвеченного". Вот для функций. Первая строка перечисление всех встроенных функций, вторая строка - оставшиеся неподсвеченные предыдущей строкой, то есть прочие. Код: 1 "(?i)\b(append|binary|bload|bsave|close|encoding|alias|freefile|beep|input)(?=\s*\()" "\1=(0,#AAA6DB,0) " 1 "\b([\d_a-zA-Z]{3,})(?=\s*\()" "\1=(0,#7D8AE6,0) " | А почему функции тоже как ${IF} подсвечены? Там есть Append как ключевое слово без скобок, а lof как функция со скобками. И оба ${IF}. Я думаю со скобками это функции должны подсвечиваться как функции, а без скобок как ключевое слово. Надо ещё почитать, может это как макрос в AutoIt3, то есть функция без параметров и без возврата ошибок, просто возвращает в позицию вызова результат. Я перепаковал русскую справку FreeBasic, скачать с чёрным стилем. Функции WinAPI (PostMessage, CreateWindowEx) не отличаются ничем, как и константы WM_CREATE, WM_DESTROY. По сути для них, для самых популярных можно выделить отдельный цвет. Типы данных тоже можно подсветить, ведь это объявление, а не действие, перменная ${VAR} вроде как не подходит для этого. Добавил... универсальный тип после "As" захватывает и WinAPI типы. Код: QuotesRE: ; типы ; 0 "\b(byte|ubyte|short|ushort|long|ulong|integer|uinteger|longint|ulongint|single|double|const|pointer|ptr|unsigned|string|zstring|wstring|object)\b" "\1=(0,#ddFF00,0)" 0 "\b(as) ([\d_a-zA-Z]+)\b" "\1=(0,${IF},0) \2=(0,#ddFF00,0)" ; Указатель "*" исключает умножение 1 "(?:[^\d_a-zA-Z\t ][\t ]|^)\K(\*[_a-zA-Z][\d_a-zA-Z]*)" "\1=(0,#F3CF70,0) " ; сообщения ; 1 "\b(WM_[A-Z]+)\b" "\1=(0,#D998DE,0) " ; WinAPI константы 1 "\b([A-Z]+_[A-Z]+)\b" "\1=(0,#D998DE,0) " ; элемент структуры 1 "([\d_a-zA-Z]+?)\.([\d_a-zA-Z]+?)" "\1=(0,#F666FF,0) \2=(0,#FFA704,0) " 1 "^[\t ]*\.([\d_a-zA-Z]+)" "\1=(0,#FFA704,0) " 1 "\b([\d_a-zA-Z]+)(?=\.)" "\1=(0,#F666FF,0) " Delimiters: 1 0 ${DEL1} 0 } 1 0 ${DEL1} 0 { Words: 0 0 ${DEL1} 0 _ |
| Всего записей: 4682 | Зарегистр. 03-05-2006 | Отправлено: 05:54 21-07-2025 | Исправлено: AZJIO, 17:35 21-07-2025 |
|