#180367 Correct python syntax coloring options
authorJulien Enselme <jenselme@netbeans.org>
Fri, 27 Nov 2015 17:13:35 +0100
changeset 183541625747870fd
parent 18353 ead8bd425602
child 18356 bbedcb3e351a
#180367 Correct python syntax coloring options

- clean the categories
- extend the example to show more options
python.editor/src/org/netbeans/modules/python/editor/resources/BlueTheme-Python-fontsColors.xml
python.editor/src/org/netbeans/modules/python/editor/resources/Bundle.properties
python.editor/src/org/netbeans/modules/python/editor/resources/fontsColors.xml
python.source/src/org/netbeans/modules/python/source/PythonExample.py
python.source/src/org/netbeans/modules/python/source/lexer/PythonLexer.java
python.source/src/org/netbeans/modules/python/source/lexer/PythonTokenId.java
     1.1 --- a/python.editor/src/org/netbeans/modules/python/editor/resources/BlueTheme-Python-fontsColors.xml	Mon Nov 30 20:19:12 2015 +0100
     1.2 +++ b/python.editor/src/org/netbeans/modules/python/editor/resources/BlueTheme-Python-fontsColors.xml	Fri Nov 27 17:13:35 2015 +0100
     1.3 @@ -46,83 +46,38 @@
     1.4  <!DOCTYPE fontscolors PUBLIC "-//NetBeans//DTD Editor Fonts and Colors settings 1.1//EN" "http://www.netbeans.org/dtds/EditorFontsColors-1_1.dtd">
     1.5  
     1.6  <fontscolors>
     1.7 -    <fontcolor name="CLASS_VAR" foreColor="EDDD3D">
     1.8 -        <font style="bold+italic"/>
     1.9 -    </fontcolor>
    1.10 -    
    1.11 +    <fontcolor name="COMMENT" default="comment" />
    1.12      <fontcolor name="INT_LITERAL" default="number"/>
    1.13      <fontcolor name="FLOAT_LITERAL" default="number"/>
    1.14      <fontcolor name="ANY_OPERATOR" default="8AA6C1"/>
    1.15 -    <fontcolor name="INSTANCE_VAR" foreColor="EDDD3D">
    1.16 -        <font style="bold"/>
    1.17 -    </fontcolor>
    1.18 -    <fontcolor name="GLOBAL_VAR" foreColor="EDDD3D">
    1.19 -        <font style="italic"/>
    1.20 -    </fontcolor>
    1.21 +    <fontcolor name="STRING_BEGIN" default="string"/>
    1.22 +    <fontcolor name="STRING_END" default="string"/>
    1.23      <fontcolor name="STRING_LITERAL" default="string"/>
    1.24 -    <fontcolor name="DOUBLE_LITERAL" default="number"/>
    1.25 -    <fontcolor name="LONG_LITERAL" default="number"/>
    1.26 -    <fontcolor name="REGEXP_LITERAL" foreColor="CA4344"/>
    1.27      <fontcolor name="ERROR" default="error"/>
    1.28 -    <fontcolor name="LINE_COMMENT" default="comment"/>
    1.29 -    <fontcolor name="CONSTANT" foreColor="8AA6C1"/>
    1.30 -    <fontcolor name="TYPE_SYMBOL" foreColor="B53B3C"/>
    1.31      <fontcolor name="IDENTIFIER" default="identifier"/>
    1.32      <fontcolor name="WHITESPACE" default="whitespace"/>
    1.33      <fontcolor name="ANY_KEYWORD" default="keyword"/>
    1.34      <fontcolor name="TODO" foreColor="ff99006b">
    1.35          <font style="bold"/>
    1.36      </fontcolor>
    1.37 -    <fontcolor name="QUOTED_STRING_LITERAL" default="string"/>
    1.38 -    <fontcolor foreColor="green" name="TRUE">
    1.39 -        <font style="bold"/>
    1.40 -    </fontcolor>
    1.41 -    <fontcolor foreColor="green" name="FALSE">
    1.42 -        <font style="bold"/>
    1.43 -    </fontcolor>
    1.44 -    <fontcolor foreColor="green" name="NONE">
    1.45 +    <fontcolor foreColor="green" name="BOOL">
    1.46          <font style="bold"/>
    1.47      </fontcolor>
    1.48      <fontcolor name="BUILTIN_FUNCTION" foreColor="cyan" />
    1.49  
    1.50      <!--"semantic" highlighting:-->
    1.51      <fontcolor name="mod-unused" waveUnderlined="ff8888"/>
    1.52 -    <fontcolor name="mod-field" foreColor="EDDD3D" >
    1.53 -        <font style="bold" />
    1.54 -    </fontcolor>
    1.55 -    <fontcolor name="mod-local-variable" />
    1.56      <fontcolor name="mod-parameter" foreColor="8AA6C1"/>
    1.57      <fontcolor name="mod-method">
    1.58          <font style="italic" />
    1.59      </fontcolor>
    1.60 -    <fontcolor name="mod-constructor" >
    1.61 -        <font style="bold" />
    1.62 -    </fontcolor>
    1.63      <fontcolor name="mod-class" />
    1.64      <fontcolor name="mod-deprecated" strikeThrough="404040" />
    1.65      <fontcolor name="mark-occurrences" bgColor="38566F"/>
    1.66  
    1.67 -    <!-- embedded strings and colors -->
    1.68 -    <fontcolor name="STRING_INVALID" foreColor="ffff006b" strikeThrough="ffff006b" >
    1.69 -        <font style="bold"/>
    1.70 -    </fontcolor>
    1.71 -    <fontcolor name="STRING_TEXT" default="string"/>
    1.72 -    <fontcolor name="STRING_ESCAPE" foreColor="EDDD37">
    1.73 -        <font style="bold"/>
    1.74 -    </fontcolor>
    1.75 -    
    1.76 -    <fontcolor name="COMMENT_TODO" foreColor="ff99006b">
    1.77 -        <font style="bold"/>
    1.78 -    </fontcolor>
    1.79 -
    1.80 -    <!-- Code Coverage -->
    1.81 -    <!--
    1.82 -    <fontcolor name="covered" bgColor="ff006633"/>
    1.83 -    <fontcolor name="uncovered" bgColor="ff602a2a"/>
    1.84 -    <fontcolor name="inferred" bgColor="ff1e6633"/>
    1.85 -    -->
    1.86 -    <fontcolor name="covered" bgColor="ff122e31"/>
    1.87 +    <!-- Code Coverage (not supported yet) -->
    1.88 +<!--    <fontcolor name="covered" bgColor="ff122e31"/>
    1.89      <fontcolor name="uncovered" bgColor="ff321e31"/>
    1.90 -    <fontcolor name="inferred" bgColor="ff122831"/>
    1.91 +    <fontcolor name="inferred" bgColor="ff122831"/>-->
    1.92      
    1.93  </fontscolors>
     2.1 --- a/python.editor/src/org/netbeans/modules/python/editor/resources/Bundle.properties	Mon Nov 30 20:19:12 2015 +0100
     2.2 +++ b/python.editor/src/org/netbeans/modules/python/editor/resources/Bundle.properties	Fri Nov 27 17:13:35 2015 +0100
     2.3 @@ -39,65 +39,29 @@
     2.4  # Portions Copyrighted 2008 Sun Microsystems, Inc.
     2.5  
     2.6  ERROR=Error
     2.7 -CLASS_VAR=Class Variable
     2.8 -REGEXP_LITERAL=Regular Expression
     2.9  DECORATOR=Decorator
    2.10 -LINE_COMMENT=Line Comment
    2.11 -CONSTANT=Constant
    2.12  INT_LITERAL=Number
    2.13  IDENTIFIER=Identifier
    2.14 -keyword=Keyword
    2.15  ANY_KEYWORD=Keyword
    2.16  WHITESPACE=Whitespace
    2.17  FLOAT_LITERAL=Floating Point Number
    2.18  ANY_OPERATOR=Operator
    2.19 -INSTANCE_VAR=Instance
    2.20 -STRING_INVALID=Invalid String
    2.21 -GLOBAL_VAR=Global Variable
    2.22  STRING_LITERAL=String
    2.23 -DOUBLE_LITERAL=Double
    2.24 -BLOCK_COMMENT=Block Comment
    2.25 -STRING_TEXT=String
    2.26 -QUOTED_STRING_LITERAL=Quoted String
    2.27 -LONG_LITERAL=Long
    2.28 -STRING_ESCAPE=String Escape
    2.29 -DOCUMENTATION=Documentation
    2.30 -COMMENT_TEXT=Comment Text
    2.31 -COMMENT_TODO=Comment TODO Text
    2.32 -COMMENT_HTMLTAG=Comment HTML Tag
    2.33 -COMMENT_LINK=Comment Link
    2.34 -COMMENT_BOLD=Bold Comment
    2.35 -COMMENT_ITALIC=Italic Comment
    2.36 -TYPE_SYMBOL=Type Symbol
    2.37 -REGEXP_TEXT=Regular Expression
    2.38 -REGEXP_META=Regular Expression Metachar
    2.39 -REGEXP_INVALID=Invalid Regular Expression
    2.40 -EMBEDDED_PYTHON=Embedded Python
    2.41 +COMMENT=Comment
    2.42 +BOOL=Boolean
    2.43 +BUILTIN_FUNCTION=Builtin functions
    2.44  
    2.45  #"Semantic" highlighting:
    2.46  mod-unused=Unused Element
    2.47 -mod-abstract=Abstract Element
    2.48 -mod-field=Field
    2.49 -mod-local-variable=Local Variable
    2.50  mod-parameter=Parameter
    2.51  mod-method=Method
    2.52 -mod-constructor=Constructor
    2.53  mod-class=Class
    2.54 -mod-interface=Interface
    2.55 -mod-annotation-type=Annotation
    2.56 -mod-enum=Enum
    2.57  mod-deprecated=Deprecated Element
    2.58 -mod-static=Static Member
    2.59 -mod-private=Private Member
    2.60 -mod-package-private=Package Private Member
    2.61 -mod-protected=Protected Member
    2.62 -mod-public=Public Member
    2.63 -mod-type-parameter-declaration=Type Parameter
    2.64 -mod-type-parameter-use=Type Parameter Use
    2.65  mod-undefined=Undefined Element
    2.66  
    2.67  mark-occurrences=Mark Occurrences
    2.68  
    2.69 -covered=Covered
    2.70 -uncovered=Not Covered
    2.71 -inferred=Inferred Covered
    2.72 +# Code coverage is not supported.
    2.73 +#covered=Covered
    2.74 +#uncovered=Not Covered
    2.75 +#inferred=Inferred Covered
     3.1 --- a/python.editor/src/org/netbeans/modules/python/editor/resources/fontsColors.xml	Mon Nov 30 20:19:12 2015 +0100
     3.2 +++ b/python.editor/src/org/netbeans/modules/python/editor/resources/fontsColors.xml	Fri Nov 27 17:13:35 2015 +0100
     3.3 @@ -5,43 +5,23 @@
     3.4      <!-- See http://ui.netbeans.org/docs/ui/editor_fonts_colors/Editor_fonts_and_colors.htm#ruby -->
     3.5      <!-- A couple of things are not accurate yet; globals are not bold, and method calls are
     3.6           black and bold instead of green (which would be identical to fields) -->
     3.7 -    
     3.8 -    <fontcolor name="CLASS_VAR" foreColor="ff098618">
     3.9 -        <font style="bold+italic"/>
    3.10 -    </fontcolor>
    3.11  
    3.12 +    <fontcolor name="COMMENT" default="comment" />
    3.13      <fontcolor name="INT_LITERAL" default="number"/>
    3.14      <fontcolor name="FLOAT_LITERAL" default="number"/>
    3.15      <fontcolor name="ANY_OPERATOR" default="operator"/>
    3.16 -    <fontcolor name="INSTANCE_VAR" default="field"/>
    3.17 -    <fontcolor name="GLOBAL_VAR" foreColor="black">
    3.18 -        <font style="italic"/>
    3.19 -    </fontcolor>
    3.20 +    <fontcolor name="STRING_BEGIN" default="string"/>
    3.21 +    <fontcolor name="STRING_END" default="string"/>
    3.22      <fontcolor name="STRING_LITERAL" default="string"/>
    3.23 -    <fontcolor name="DOUBLE_LITERAL" default="number"/>
    3.24 -    <fontcolor name="LONG_LITERAL" default="number"/>
    3.25 -    <fontcolor name="REGEXP_LITERAL" foreColor="9933CC"/>
    3.26      <fontcolor name="DECORATOR" foreColor="9933CC"/>
    3.27      <fontcolor name="ERROR" default="error"/>
    3.28 -    <fontcolor name="LINE_COMMENT" default="comment"/>
    3.29 -    <fontcolor name="CONSTANT" foreColor="black">
    3.30 -        <font style="italic"/>
    3.31 -    </fontcolor>
    3.32 -    <fontcolor name="TYPE_SYMBOL" foreColor="2E92C7"/>
    3.33      <fontcolor name="IDENTIFIER" default="identifier"/>
    3.34      <fontcolor name="WHITESPACE" default="whitespace"/>
    3.35      <fontcolor name="ANY_KEYWORD" default="keyword"/>
    3.36      <fontcolor name="TODO" foreColor="ff99006b">
    3.37          <font style="bold"/>
    3.38      </fontcolor>
    3.39 -    <fontcolor name="QUOTED_STRING_LITERAL" default="string"/>
    3.40 -    <fontcolor name="TRUE" foreColor="000066">
    3.41 -        <font style="bold" />
    3.42 -    </fontcolor>
    3.43 -    <fontcolor name="FALSE" foreColor="000066">
    3.44 -        <font style="bold" />
    3.45 -    </fontcolor>
    3.46 -    <fontcolor name="NONE" foreColor="000066">
    3.47 +    <fontcolor name="BOOL" foreColor="000066">
    3.48          <font style="bold" />
    3.49      </fontcolor>
    3.50      <fontcolor name="ERROR" foreColor="CC3300" />
    3.51 @@ -49,25 +29,20 @@
    3.52  
    3.53      <!--"semantic" highlighting:-->
    3.54      <fontcolor name="mod-unused" waveUnderlined="999999"/>
    3.55 -    <fontcolor name="mod-field" default="field"/>
    3.56 -    <fontcolor name="mod-local-variable" />
    3.57      <fontcolor name="mod-parameter" foreColor="A06001"/> 
    3.58  
    3.59      <fontcolor name="mod-method">
    3.60          <font style="bold" />
    3.61      </fontcolor>
    3.62 -    <fontcolor name="mod-constructor" >
    3.63 -        <font style="bold" />
    3.64 -    </fontcolor>
    3.65      <fontcolor name="mod-class">
    3.66          <font style="bold" />
    3.67      </fontcolor>
    3.68      <fontcolor name="mod-deprecated" strikeThrough="404040" />
    3.69      <fontcolor name="mark-occurrences" bgColor="ECEBA3"/>
    3.70  
    3.71 -    <!-- Code Coverage -->
    3.72 -    <fontcolor name="covered" bgColor="ccffcc"/>
    3.73 +    <!-- Code Coverage (not supported yet) -->
    3.74 +<!--    <fontcolor name="covered" bgColor="ccffcc"/>
    3.75      <fontcolor name="uncovered" bgColor="ffcccc"/>
    3.76 -    <fontcolor name="inferred" bgColor="e0ffe0"/>
    3.77 +    <fontcolor name="inferred" bgColor="e0ffe0"/>-->
    3.78  
    3.79  </fontscolors>
     4.1 --- a/python.source/src/org/netbeans/modules/python/source/PythonExample.py	Mon Nov 30 20:19:12 2015 +0100
     4.2 +++ b/python.source/src/org/netbeans/modules/python/source/PythonExample.py	Fri Nov 27 17:13:35 2015 +0100
     4.3 @@ -5,6 +5,14 @@
     4.4  class Foo(Bar):
     4.5      """Class doc"""
     4.6  
     4.7 -    def __init__(self,args=''):
     4.8 +    CLASS_VARIABLE = True
     4.9 +
    4.10 +    def __init__(self, args=''):
    4.11          # Comment
    4.12 -        print 1+2.0
    4.13 +        print 1 + 2.0
    4.14 +        self.do()
    4.15 +
    4.16 +    @decorator
    4.17 +    def do(self):
    4.18 +        # TODO: make it useful
    4.19 +        pass
     5.1 --- a/python.source/src/org/netbeans/modules/python/source/lexer/PythonLexer.java	Mon Nov 30 20:19:12 2015 +0100
     5.2 +++ b/python.source/src/org/netbeans/modules/python/source/lexer/PythonLexer.java	Fri Nov 27 17:13:35 2015 +0100
     5.3 @@ -1129,17 +1129,17 @@
     5.4              break;
     5.5          case 'F': // False
     5.6              if (length == 5 && TokenUtilities.textEquals(s, "False")) { // NOI18N
     5.7 -                return PythonTokenId.FALSE;
     5.8 +                return PythonTokenId.BOOL;
     5.9              }
    5.10              break;
    5.11          case 'N': // None
    5.12              if (length == 4 && TokenUtilities.textEquals(s, "None")) { // NOI18N
    5.13 -                return PythonTokenId.NONE;
    5.14 +                return PythonTokenId.BOOL;
    5.15              }
    5.16              break;
    5.17          case 'T': // True
    5.18              if (length == 4 && TokenUtilities.textEquals(s, "True")) { // NOI18N
    5.19 -                return PythonTokenId.TRUE;
    5.20 +                return PythonTokenId.BOOL;
    5.21              }
    5.22              break;
    5.23          case '_': // Special symbols of python
     6.1 --- a/python.source/src/org/netbeans/modules/python/source/lexer/PythonTokenId.java	Mon Nov 30 20:19:12 2015 +0100
     6.2 +++ b/python.source/src/org/netbeans/modules/python/source/lexer/PythonTokenId.java	Fri Nov 27 17:13:35 2015 +0100
     6.3 @@ -79,7 +79,6 @@
     6.4      WHITESPACE(null, WHITESPACE_CAT),
     6.5      NEWLINE(null, WHITESPACE_CAT),
     6.6      DECORATOR(null, OPERATOR_CAT), // NOI18N
     6.7 -    //    CONTINUED_LINE(null, WHITESPACE_CAT), // NOI18N
     6.8      COMMENT(null, COMMENT_CAT),
     6.9      BUILTIN_FUNCTION(null, KEYWORD_CAT), // NOI18N
    6.10      LPAREN("(", SEPARATOR_CAT), // NOI18N
    6.11 @@ -108,9 +107,7 @@
    6.12      FINALLY("finally", KEYWORD_CAT), // NOI18N
    6.13      IMPORT("import", KEYWORD_CAT), // NOI18N
    6.14      FROM("from", KEYWORD_CAT), // NOI18N
    6.15 -    TRUE("True", KEYWORD_CAT), // NOI18N
    6.16 -    FALSE("False", KEYWORD_CAT), // NOI18N
    6.17 -    NONE("None", KEYWORD_CAT), // NOI18N
    6.18 +    BOOL(null, KEYWORD_CAT), // NOI18N
    6.19      TRY("try", KEYWORD_CAT), // NOI18N
    6.20      DOT(".", OPERATOR_CAT), // NOI18N
    6.21      COMMA(",", OPERATOR_CAT), // NOI18N