если я напишу функцию следующим образом:
int foo(int bar)
{}
Возвышенное подчеркивает foo
правильно. Однако в этом случае:
int foo
(int bar)
{}
foo
теряет всю подсветку.
Одна из вещей, которые мне нравятся в C++, это то, что он не заботится о пробелах. Есть ли способ, которым я могу сделать возвышенное освещение этого кода правильно?
Редактировать:
После получения некоторых указателей и просмотра файлов синтаксиса defualt, это:
<string>(?x)
(?: ^ # begin-of-line
|
(?: (?= \s ) (?<!else|new|return) (?<=\w) # or word + space before name
| (?= \s*[A-Za-z_] ) (?<!&&) (?<=[*&>]) # or type modifier before name
)
)
(\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\s*\()
(
(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name
(?: (?<=operator) (?: [-*&<>=+!]+ | \(\) | \[\] ) ) # if it is a C++ operator
)
\s*(?=\()</string>
кажется, это регулярное выражение, которое работает со сбоями. Однако я не могу понять, почему он не получает мой код; последняя строка, \s*(?=\()
, должно соответствовать любому количеству пробелов или новых строк перед открывающей пареней, нет?