mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
correctly detect verbose syntax when flags is passed as keyword argument (PY-8143)
This commit is contained in:
@@ -75,8 +75,15 @@ public class PythonRegexpInjector implements LanguageInjector {
|
||||
}
|
||||
|
||||
private static boolean isVerbose(PyExpression expr) {
|
||||
if (expr instanceof PyKeywordArgument) {
|
||||
PyKeywordArgument keywordArgument = (PyKeywordArgument)expr;
|
||||
if (!"flags".equals(keywordArgument.getName())) {
|
||||
return false;
|
||||
}
|
||||
return isVerbose(keywordArgument.getValueExpression());
|
||||
}
|
||||
if (expr instanceof PyReferenceExpression) {
|
||||
return "VERBOSE".equals(((PyReferenceExpression) expr).getReferencedName());
|
||||
return "VERBOSE".equals(((PyReferenceExpression)expr).getReferencedName());
|
||||
}
|
||||
if (expr instanceof PyBinaryExpression) {
|
||||
return isVerbose(((PyBinaryExpression)expr).getLeftExpression()) || isVerbose(((PyBinaryExpression)expr).getRightExpression());
|
||||
|
||||
8
python/testData/regexp/verboseAsKwArg.py
Normal file
8
python/testData/regexp/verboseAsKwArg.py
Normal file
@@ -0,0 +1,8 @@
|
||||
import re
|
||||
|
||||
linkfinder = re.compile(r"""\[ # ein link beginnt mit eckiger klammer, escaped da [ sonst re-zeichen ist
|
||||
( # nur der INHALT der [inhalt] Links ist gefragt
|
||||
[^\[]+ # akzeptiere alles ausser oeffnender Klammer [ damit die Greediness umgangen wird.
|
||||
)
|
||||
\]
|
||||
""", flags=re.VERBOSE)
|
||||
@@ -51,6 +51,10 @@ public class PyRegexpTest extends PyTestCase {
|
||||
doTestHighlighting();
|
||||
}
|
||||
|
||||
public void testVerboseAsKwArg() { // PY-8143
|
||||
doTestHighlighting();
|
||||
}
|
||||
|
||||
private void doTestHighlighting() {
|
||||
myFixture.testHighlighting(true, false, true, "regexp/" + getTestName(true) + ".py");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user