Added Antlr icon, adjusted some coloring
diff --git a/java/languages.antlr/licenseinfo.xml b/java/languages.antlr/licenseinfo.xml
index a3acf1b..b2f810e 100644
--- a/java/languages.antlr/licenseinfo.xml
+++ b/java/languages.antlr/licenseinfo.xml
@@ -27,6 +27,10 @@
<file>src/org/antlr/parser/antlr4/LexerAdaptor.java</file>
<license ref="BSD-antlr4-grammar" />
</fileset>
+ <fileset>
+ <file>src/org/netbeans/modules/languages/antlr/resources/antlr.png</file>
+ <license ref="BSD-antlr-icons" />
+ </fileset>
<!--fileset>
<file>src/org/antlr/parser/antlr4/ANTLRv4Lexer.java</file>
<file>src/org/antlr/parser/antlr4/ANTLRv4Parser.java</file>
diff --git a/java/languages.antlr/nbproject/project.xml b/java/languages.antlr/nbproject/project.xml
index 77d4c82..7de043e 100644
--- a/java/languages.antlr/nbproject/project.xml
+++ b/java/languages.antlr/nbproject/project.xml
@@ -96,6 +96,15 @@
</run-dependency>
</dependency>
<dependency>
+ <code-name-base>org.netbeans.modules.editor.settings</code-name-base>
+ <build-prerequisite/>
+ <compile-dependency/>
+ <run-dependency>
+ <release-version>1</release-version>
+ <specification-version>1.75</specification-version>
+ </run-dependency>
+ </dependency>
+ <dependency>
<code-name-base>org.netbeans.modules.lexer</code-name-base>
<build-prerequisite/>
<compile-dependency/>
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrLexer.java b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrLexer.java
index 6c2f8ee..a87c761 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrLexer.java
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrLexer.java
@@ -52,98 +52,97 @@
@Override
public Token<AntlrTokenId> nextToken() {
- try {
- org.antlr.v4.runtime.Token nextToken;
- if (preFetchedToken != null) {
- nextToken = preFetchedToken;
- lexer.getInputStream().seek(preFetchedToken.getStopIndex() + 1);
- preFetchedToken = null;
- } else {
- nextToken = lexer.nextToken();
- }
- if (nextToken.getType() == EOF) {
- return null;
- }
- switch (nextToken.getType()) {
- case TOKEN_REF:
- return token(TOKEN);
- case RULE_REF:
- return token(RULE);
+ org.antlr.v4.runtime.Token nextToken;
+ if (preFetchedToken != null) {
+ nextToken = preFetchedToken;
+ lexer.getInputStream().seek(preFetchedToken.getStopIndex() + 1);
+ preFetchedToken = null;
+ } else {
+ nextToken = lexer.nextToken();
+ }
+ if (nextToken.getType() == EOF) {
+ return null;
+ }
+ switch (nextToken.getType()) {
+ case TOKEN_REF:
+ return token(TOKEN);
+ case RULE_REF:
+ return token(RULE);
- case DOC_COMMENT:
- case BLOCK_COMMENT:
- case LINE_COMMENT:
- return token(AntlrTokenId.COMMENT);
+ case DOC_COMMENT:
+ case BLOCK_COMMENT:
+ case LINE_COMMENT:
+ return token(AntlrTokenId.COMMENT);
- case INT:
- return token(NUMBER);
+ case INT:
+ return token(NUMBER);
- case STRING_LITERAL:
- case UNTERMINATED_STRING_LITERAL:
- return token(STRING);
+ case LEXER_CHAR_SET:
+ case STRING_LITERAL:
+ case UNTERMINATED_STRING_LITERAL:
+ return token(STRING);
- case OPTIONS:
- case TOKENS:
- case CHANNELS:
- case IMPORT:
- case FRAGMENT:
- case LEXER:
- case PARSER:
- case GRAMMAR:
- case PROTECTED:
- case PUBLIC:
- case PRIVATE:
- case RETURNS:
- case LOCALS:
- case THROWS:
- case CATCH:
- case FINALLY:
- case MODE:
- return token(KEYWORD);
+ case OPTIONS:
+ case TOKENS:
+ case CHANNELS:
+ case IMPORT:
+ case FRAGMENT:
+ case LEXER:
+ case PARSER:
+ case GRAMMAR:
+ case PROTECTED:
+ case PUBLIC:
+ case PRIVATE:
+ case RETURNS:
+ case LOCALS:
+ case THROWS:
+ case CATCH:
+ case FINALLY:
+ case MODE:
+ return token(KEYWORD);
- case COLON:
- case COLONCOLON:
- case COMMA:
- case SEMI:
- case LPAREN:
- case RPAREN:
- case LBRACE:
- case RBRACE:
- case RARROW:
- case LT:
- case GT:
- case ASSIGN:
- case QUESTION:
- case STAR:
- case PLUS_ASSIGN:
- case PLUS:
- case OR:
- case DOLLAR:
- case RANGE:
- case DOT:
- case AT:
- case POUND:
- case NOT:
- case BEGIN_ACTION:
- case END_ACTION:
- return token(PUNCTUATION);
+ case COLON:
+ case COLONCOLON:
+ case LT:
+ case GT:
+ case BEGIN_ACTION:
+ case END_ACTION:
+ case AT:
+ case PLUS_ASSIGN:
+ case POUND:
+ case LBRACE:
+ case RBRACE:
+ case RARROW:
+ case ASSIGN:
+ case COMMA:
+ case SEMI:
+ return token(PUNCTUATION);
- case WS:
- return token(WHITESPACE);
+ case LPAREN:
+ case RPAREN:
+ case QUESTION:
+ case STAR:
+ case PLUS:
+ case OR:
+ case DOLLAR:
+ case RANGE:
+ case DOT:
+ case NOT:
+ return token(REGEXP_CHARS);
- case ACTION_CONTENT:
+ case WS:
+ return token(WHITESPACE);
+
+ case ACTION_CONTENT:
+ preFetchedToken = lexer.nextToken();
+ while (preFetchedToken.getType() == ACTION_CONTENT) {
preFetchedToken = lexer.nextToken();
- while (preFetchedToken.getType() == ACTION_CONTENT) {
- preFetchedToken = lexer.nextToken();
- }
- lexer.getInputStream().seek(preFetchedToken.getStartIndex());
- return token(ACTION);
-
- default:
- return token(ERROR);
- }
- } catch (IndexOutOfBoundsException ex) {
- return token(ERROR);
+ }
+ lexer.getInputStream().seek(preFetchedToken.getStartIndex());
+ return token(ACTION);
+
+ default:
+ return token(ERROR);
}
}
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrTokenId.java b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrTokenId.java
index 8eb63a4..cb5f5b2 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrTokenId.java
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrTokenId.java
@@ -47,6 +47,7 @@
KEYWORD("keyword"),
NUMBER("number"),
PUNCTUATION("punctuation"),
+ REGEXP_CHARS("regexp-chars"),
RULE("rule"),
STRING("string"),
TOKEN("token"),
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/Bundle.properties b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/Bundle.properties
index 423ea4b..9d857db 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/Bundle.properties
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/Bundle.properties
@@ -28,6 +28,7 @@
keyword=Keyword
number=Number
punctuation=Punctuations
+regexp-chars=Regular Expression Special Characters
rule=Parser Rule
string=String
token=Lexer Token
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/FlatLafDark-FontAndColors.xml b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/FlatLafDark-FontAndColors.xml
new file mode 100644
index 0000000..1e971ab
--- /dev/null
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/FlatLafDark-FontAndColors.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<!DOCTYPE fontscolors PUBLIC "-//NetBeans//DTD Editor Fonts and Colors settings 1.1//EN" "http://www.netbeans.org/dtds/EditorFontsColors-1_1.dtd">
+<fontscolors>
+ <fontcolor name="action" default="keyword"/>
+ <fontcolor name="comment" default="comment"/>
+ <fontcolor name="error" default="error"/>
+ <fontcolor name="number" default="number"/>
+ <fontcolor name="keyword" default="keyword"/>
+ <fontcolor name="number" default="number"/>
+ <fontcolor name="punctuation" default="operator"/>
+ <fontcolor name="regexp-chars" foreColor="33ffcc">
+ <font style="bold"/>
+ </fontcolor>
+ <fontcolor name="rule" foreColor="b2b200">
+ <font style="bold"/>
+ </fontcolor>
+ <fontcolor name="string" default="string">
+ <font style="bold"/>
+ </fontcolor>
+ <fontcolor name="token" foreColor="e500e5">
+ <font style="bold" />
+ </fontcolor>
+ <fontcolor name="whitespace" default="whitespace"/>
+</fontscolors>
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/FontAndColors.xml b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/FontAndColors.xml
index c9e4564..666fdd2 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/FontAndColors.xml
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/FontAndColors.xml
@@ -25,15 +25,19 @@
<fontcolor name="comment" default="comment"/>
<fontcolor name="error" default="error"/>
<fontcolor name="number" default="number"/>
- <fontcolor name="keyword" default="keyword">
- <font style="bold" />
- </fontcolor>
+ <fontcolor name="keyword" default="keyword"/>
<fontcolor name="number" default="number"/>
- <fontcolor name="punctuation" default="operator" bgColor="ffe3f2e1">
+ <fontcolor name="punctuation" default="operator"/>
+ <fontcolor name="regexp-chars" foreColor="bf4040">
+ <font style="bold"/>
</fontcolor>
- <fontcolor name="rule" default="identifier"/>
- <fontcolor name="string" default="string"/>
- <fontcolor name="token" default="identfier">
+ <fontcolor name="rule" foreColor="47478e">
+ <font style="bold"/>
+ </fontcolor>
+ <fontcolor name="string" default="string">
+ <font style="bold"/>
+ </fontcolor>
+ <fontcolor name="token" foreColor="660e7a">
<font style="bold" />
</fontcolor>
<fontcolor name="whitespace" default="whitespace"/>
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/layer.xml b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/layer.xml
index b05cd6b..a691529 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/layer.xml
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/layer.xml
@@ -26,6 +26,13 @@
<folder name="x-antlr4">
<attr name="displayName" bundlevalue="org.netbeans.modules.languages.antlr.Bundle#Editors/text/x-antlr4"/>
<folder name="FontsColors">
+ <folder name="FlatLafDark">
+ <folder name="Defaults">
+ <file name="FontAndColors.xml" url="FlatLafDark-FontAndColors.xml">
+ <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.languages.antlr.Bundle"/>
+ </file>
+ </folder>
+ </folder>
<folder name="NetBeans">
<folder name="Defaults">
<file name="FontAndColors.xml" url="FontAndColors.xml">
@@ -37,6 +44,16 @@
</folder>
</folder>
</folder>
+ <folder name="Loaders">
+ <folder name="text">
+ <folder name="x-antlr3">
+ <attr name="iconBase" stringvalue="org/netbeans/modules/languages/antlr/resources/antlr.png"/>
+ </folder>
+ <folder name="x-antlr4">
+ <attr name="iconBase" stringvalue="org/netbeans/modules/languages/antlr/resources/antlr.png"/>
+ </folder>
+ </folder>
+ </folder>
<folder name="OptionsDialog">
<folder name="PreviewExamples">
<folder name="text">
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/resources/antlr.png b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/resources/antlr.png
new file mode 100644
index 0000000..cea8293
--- /dev/null
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/resources/antlr.png
Binary files differ
diff --git a/nbbuild/licenses/BSD-antlr-icons b/nbbuild/licenses/BSD-antlr-icons
new file mode 100644
index 0000000..4b754bb
--- /dev/null
+++ b/nbbuild/licenses/BSD-antlr-icons
@@ -0,0 +1,31 @@
+Use of Antlr Icon(s) are originated from ANTLR Intelli-J Plugin from:
+https://github.com/antlr/intellij-plugin-v4 repository which at the time of
+writing is governed by the terms of the license below:
+
+Copyright (c) 2013, Terence Parr
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice, this
+ list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+
+ Neither the name of the {organization} nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.