Если вы не получите ответ, основанный на области действия, вы можете сделать это с большим количеством работы с помощью подхода на основе регулярных выражений.Использование такого расширения, как Highlight , которое позволяет указать подсветку синтаксиса для строк, которые могут быть захвачены с помощью регулярных выражений.Например,
"highlight.regexes": {
"(\\b.*\\.)([^(\\s]*)(\\s*\\(.*\\))": {
"regexFlags": "g",
"filterLanguageRegex": "(java|cpp)",
\\ "filterFileRegex" : ".*\\.java",
"decorations" : [
{}, // first capture group, " do nothing
{ "color": "red",
"fontWeight": "bold",
"padding": "3px", // only pads top and bottom unfortunately
"backgroundColor": "darkgreen",
// "border": "1px solid white",
// "borderRadius": "4px"
},
{} // third capture group, ", do nothing
]
},
"((?:void|int)\\s+)([^(\\s]*)(\\s*\\(.*\\))": {
"regexFlags": "g",
"filterLanguageRegex": "(java|cpp)",
\\ "filterFileRegex" : ".*\\.java",
"decorations" : [
{}, // first capture group, " do nothing
{ "color": "red",
"fontWeight": "bold",
"padding": "3px", // only pads top and bottom unfortunately
"backgroundColor": "darkgreen",
// "border": "1px solid white",
// "borderRadius": "4px"
},
{} // third capture group, ", do nothing
]
}
Первый из этих перехватов звонит как someClass.Foo("blah" , 2);
с Foo
во второй группе перехвата.
Второй из этих перехватов звонит как public void Foo(String s, int d)
с Foo
во второй группе захвата.
Я немного упростил второе регулярное выражение (я добавил только void
и int
, но вы могли бы легко добавить другие альтернативы).