1.1 --- a/python.editor/src/org/netbeans/modules/python/editor/PythonSemanticHighlighter.java Fri Jun 05 21:20:53 2015 +0200
1.2 +++ b/python.editor/src/org/netbeans/modules/python/editor/PythonSemanticHighlighter.java Fri Jun 05 19:10:55 2015 +0200
1.3 @@ -166,12 +166,12 @@
1.4 if (scope != null) {
1.5 if (scope.isUnused(name)) {
1.6 OffsetRange r = PythonAstUtils.getNameRange(info, node);
1.7 - if (scope.isParameter(name)) {
1.8 + if (scope.isParameter(name) && !name.equals("self")) {
1.9 highlights.put(r, EnumSet.of(ColoringAttributes.UNUSED, ColoringAttributes.PARAMETER));
1.10 } else {
1.11 highlights.put(r, EnumSet.of(ColoringAttributes.UNUSED));
1.12 }
1.13 - } else if (scope.isParameter(name)) {
1.14 + } else if (scope.isParameter(name) && !name.equals("self")) {
1.15 OffsetRange r = PythonAstUtils.getNameRange(info, node);
1.16 highlights.put(r, ColoringAttributes.PARAMETER_SET);
1.17 }
2.1 --- a/python.editor/src/org/netbeans/modules/python/editor/lexer/PythonLexer.java Fri Jun 05 21:20:53 2015 +0200
2.2 +++ b/python.editor/src/org/netbeans/modules/python/editor/lexer/PythonLexer.java Fri Jun 05 19:10:55 2015 +0200
2.3 @@ -697,21 +697,28 @@
2.4 char c2 = s.charAt(1);
2.5
2.6 switch (c1) {
2.7 - case 'a': // and, as, assert
2.8 + case 'a': // and, as, assert, async, await
2.9 switch (c2) {
2.10 case 'n': // and
2.11 if (TokenUtilities.textEquals(s, "and")) { // NOI18N
2.12 return PythonTokenId.ANY_KEYWORD;
2.13 }
2.14 break;
2.15 - case 's': // as, assert
2.16 + case 's': // as, assert, async
2.17 if (length == 2) { // as
2.18 return PythonTokenId.ANY_KEYWORD;
2.19 }
2.20 if (length == 6 && TokenUtilities.textEquals(s, "assert")) { // NOI18N
2.21 return PythonTokenId.ANY_KEYWORD;
2.22 }
2.23 + if (length == 5 && TokenUtilities.textEquals(s, "async")) { // NOI18N
2.24 + return PythonTokenId.ANY_KEYWORD;
2.25 + }
2.26 break;
2.27 + case 'w': // await
2.28 + if (length == 5 && TokenUtilities.textEquals(s, "await")) { // NOI18N
2.29 + return PythonTokenId.ANY_KEYWORD;
2.30 + }
2.31 }
2.32 break;
2.33 case 'b': // break
2.34 @@ -841,6 +848,10 @@
2.35 }
2.36 }
2.37 break;
2.38 + case 's': // self
2.39 + if (length == 4 && TokenUtilities.textEquals(s, "self")) { // NOI18N
2.40 + return PythonTokenId.ANY_KEYWORD;
2.41 + }
2.42 case 't': // try
2.43 if (length == 3 && TokenUtilities.textEquals(s, "try")) { // NOI18N
2.44 return PythonTokenId.TRY;
2.45 @@ -862,6 +873,18 @@
2.46 return PythonTokenId.ANY_KEYWORD;
2.47 }
2.48 break;
2.49 + case 'F': // False
2.50 + if (length == 5 && TokenUtilities.textEquals(s, "False")) { // NOI18N
2.51 + return PythonTokenId.ANY_KEYWORD;
2.52 + }
2.53 + case 'N': // None
2.54 + if (length == 4 && TokenUtilities.textEquals(s, "None")) { // NOI18N
2.55 + return PythonTokenId.ANY_KEYWORD;
2.56 + }
2.57 + case 'T': // True
2.58 + if (length == 4 && TokenUtilities.textEquals(s, "True")) { // NOI18N
2.59 + return PythonTokenId.ANY_KEYWORD;
2.60 + }
2.61 }
2.62
2.63 return null;