Bug 572862: [R-Editor] Add seperate text style type for pipe operator
Change-Id: I164618b44af710f61f18e3590fcb92199058b6b4
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RTerminal.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RTerminal.java
index 3173626..c4549d3 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RTerminal.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RTerminal.java
@@ -17,6 +17,8 @@
import static org.eclipse.statet.r.core.rsource.RSourceConstants.LANG_VERSION_4_0;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.LANG_VERSION_4_1;
+import java.util.List;
+
import org.eclipse.statet.jcommons.lang.NonNull;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.util.Version;
@@ -181,10 +183,10 @@
public static final String S_INF= "Inf"; //$NON-NLS-1$
- public static String[] textArray(final RTerminal[] list) {
- final String[] texts= new @NonNull String[list.length];
+ public static @NonNull String[] textArray(final List<RTerminal> list) {
+ final var texts= new @NonNull String[list.size()];
for (int i= 0; i < texts.length; i++) {
- texts[i]= list[i].text;
+ texts[i]= list.get(i).text;
}
return texts;
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/Messages.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/Messages.java
index 23416d9..0618faa 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/Messages.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/Messages.java
@@ -63,6 +63,8 @@
public static String RSyntaxColoring_Assignment_description;
public static String RSyntaxColoring_Assignment_Equalsign_label;
public static String RSyntaxColoring_Assignment_Equalsign_description;
+ public static String RSyntaxColoring_Assignment_Pipe_label;
+ public static String RSyntaxColoring_Assignment_Pipe_description;
public static String RSyntaxColoring_Operators_label;
public static String RSyntaxColoring_Operators_description;
public static String RSyntaxColoring_Operators_Logical_label;
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/Messages.properties b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/Messages.properties
index 643eeee..4601b25 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/Messages.properties
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/Messages.properties
@@ -52,6 +52,8 @@
RSyntaxColoring_Assignment_description= The style used in the R editor for the assignment operators
RSyntaxColoring_Assignment_Equalsign_label= Equal Sign
RSyntaxColoring_Assignment_Equalsign_description= The extra style used optionally in the R editor for the \nsingle equal sign
+RSyntaxColoring_Assignment_Pipe_label= Pipe Operator
+RSyntaxColoring_Assignment_Pipe_description= The extra style used optionally in the R editor for the \npipe operators
RSyntaxColoring_Operators_label= Common Operators
RSyntaxColoring_Operators_description= The style used in the R editor for arithmetic and \nother operators
RSyntaxColoring_Operators_Logical_label= Logical Operators
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java
index 906c4db..bd9883e 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java
@@ -21,6 +21,8 @@
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.editors.text.EditorsUI;
+import org.eclipse.statet.jcommons.collections.ImList;
+
import org.eclipse.statet.ecommons.preferences.core.Preference;
import org.eclipse.statet.ecommons.preferences.core.Preference.StringArrayPref;
import org.eclipse.statet.ecommons.preferences.core.util.PreferenceUtils;
@@ -135,47 +137,62 @@
SyntaxNode.createUseNoExtraStyle(RUIPreferenceConstants.R.TS_NUMBERS_ROOT),
SyntaxNode.createUseCustomStyle() }, null ),
}),
- new StyleNode(Messages.RSyntaxColoring_SpecialConstants_label, addListToTooltip(Messages.RSyntaxColoring_SpecialConstants_description, IRTextTokens.SPECIALCONST),
+ new StyleNode(Messages.RSyntaxColoring_SpecialConstants_label,
+ addListToTooltip(Messages.RSyntaxColoring_SpecialConstants_description, IRTextTokens.SPECIALCONST),
RUIPreferenceConstants.R.TS_SPECIAL_CONSTANTS_ROOT, new SyntaxNode.UseStyle[] {
SyntaxNode.createUseCustomStyle()
}, null ),
- new StyleNode(Messages.RSyntaxColoring_LogicalConstants_label, addListToTooltip(Messages.RSyntaxColoring_LogicalConstants_description, IRTextTokens.LOGICALCONST),
+ new StyleNode(Messages.RSyntaxColoring_LogicalConstants_label,
+ addListToTooltip(Messages.RSyntaxColoring_LogicalConstants_description, IRTextTokens.LOGICALCONST),
RUIPreferenceConstants.R.TS_LOGICAL_CONSTANTS_ROOT, new SyntaxNode.UseStyle[] {
SyntaxNode.createUseCustomStyle()
}, null ),
- new StyleNode(Messages.RSyntaxColoring_Flowcontrol_label, addListToTooltip(Messages.RSyntaxColoring_Flowcontrol_description, IRTextTokens.FLOWCONTROL),
+ new StyleNode(Messages.RSyntaxColoring_Flowcontrol_label,
+ addListToTooltip(Messages.RSyntaxColoring_Flowcontrol_description, IRTextTokens.FLOWCONTROL),
RUIPreferenceConstants.R.TS_FLOWCONTROL_ROOT, new SyntaxNode.UseStyle[] {
SyntaxNode.createUseCustomStyle()
}, null ),
- new StyleNode(Messages.RSyntaxColoring_Separators_label, addListToTooltip(Messages.RSyntaxColoring_Separators_description, IRTextTokens.SEPARATOR),
+ new StyleNode(Messages.RSyntaxColoring_Separators_label,
+ addListToTooltip(Messages.RSyntaxColoring_Separators_description, IRTextTokens.SEPARATOR),
RUIPreferenceConstants.R.TS_SEPARATORS_ROOT, new SyntaxNode.UseStyle[] {
SyntaxNode.createUseCustomStyle()
}, null ),
- new StyleNode(Messages.RSyntaxColoring_Assignment_label, addListToTooltip(Messages.RSyntaxColoring_Assignment_description, new String[] { "<-", "->", "<<-", "->>", addExtraStyleNoteToTooltip("= ({0})") }), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+ new StyleNode(Messages.RSyntaxColoring_Assignment_label,
+ addListToTooltip(Messages.RSyntaxColoring_Assignment_description, new String[] { "<-", "->", "<<-", "->>", addExtraStyleNoteToTooltip("= ({0})") }), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
RUIPreferenceConstants.R.TS_ASSIGNMENT_ROOT, new SyntaxNode.UseStyle[] {
SyntaxNode.createUseCustomStyle()
}, new SyntaxNode[] {
- new StyleNode(Messages.RSyntaxColoring_Assignment_Equalsign_label, addListToTooltip(Messages.RSyntaxColoring_Assignment_Equalsign_description, new String[] { "=" }), //$NON-NLS-1$
+ new StyleNode(Messages.RSyntaxColoring_Assignment_Equalsign_label,
+ addListToTooltip(Messages.RSyntaxColoring_Assignment_Equalsign_description, IRTextTokens.ASSIGN_SUB_EQUAL),
RUIPreferenceConstants.R.TS_ASSIGNMENT_SUB_EQUALSIGN_ROOT, new SyntaxNode.UseStyle[] {
SyntaxNode.createUseNoExtraStyle(RUIPreferenceConstants.R.TS_ASSIGNMENT_ROOT),
SyntaxNode.createUseCustomStyle()
}, null ),
+ new StyleNode(Messages.RSyntaxColoring_Assignment_Pipe_label,
+ addListToTooltip(Messages.RSyntaxColoring_Assignment_Pipe_description, IRTextTokens.ASSIGN_SUB_PIPE),
+ RUIPreferenceConstants.R.TS_ASSIGNMENT_SUB_PIPE_ROOT, new SyntaxNode.UseStyle[] {
+ SyntaxNode.createUseNoExtraStyle(RUIPreferenceConstants.R.TS_ASSIGNMENT_ROOT),
+ SyntaxNode.createUseCustomStyle()
+ }, null ),
}),
new StyleNode(Messages.RSyntaxColoring_Operators_label, Messages.RSyntaxColoring_Operators_description,
RUIPreferenceConstants.R.TS_OTHER_OPERATORS_ROOT, new SyntaxNode.UseStyle[] {
SyntaxNode.createUseCustomStyle()
}, new SyntaxNode[] {
- new StyleNode(Messages.RSyntaxColoring_Operators_Logical_label, addListToTooltip(Messages.RSyntaxColoring_Operators_Logical_description, IRTextTokens.OP_SUB_LOGICAL),
+ new StyleNode(Messages.RSyntaxColoring_Operators_Logical_label,
+ addListToTooltip(Messages.RSyntaxColoring_Operators_Logical_description, IRTextTokens.OP_SUB_LOGICAL),
RUIPreferenceConstants.R.TS_OPERATORS_SUB_LOGICAL_ROOT, new SyntaxNode.UseStyle[] {
SyntaxNode.createUseNoExtraStyle(RUIPreferenceConstants.R.TS_OTHER_OPERATORS_ROOT),
SyntaxNode.createUseCustomStyle()
}, null ),
- new StyleNode(Messages.RSyntaxColoring_Operators_Relational_label, addListToTooltip(Messages.RSyntaxColoring_Operators_Relational_description, IRTextTokens.OP_SUB_RELATIONAL),
+ new StyleNode(Messages.RSyntaxColoring_Operators_Relational_label,
+ addListToTooltip(Messages.RSyntaxColoring_Operators_Relational_description, IRTextTokens.OP_SUB_RELATIONAL),
RUIPreferenceConstants.R.TS_OPERATORS_SUB_RELATIONAL_ROOT, new SyntaxNode.UseStyle[] {
SyntaxNode.createUseNoExtraStyle(RUIPreferenceConstants.R.TS_OTHER_OPERATORS_ROOT),
SyntaxNode.createUseCustomStyle()
}, null ),
- new StyleNode(Messages.RSyntaxColoring_Operators_Userdefined_label, addListToTooltip(Messages.RSyntaxColoring_Operators_Userdefined_description, new String[] { "%\u2026%" }), //$NON-NLS-1$
+ new StyleNode(Messages.RSyntaxColoring_Operators_Userdefined_label,
+ addListToTooltip(Messages.RSyntaxColoring_Operators_Userdefined_description, new String[] { "%\u2026%" }), //$NON-NLS-1$
RUIPreferenceConstants.R.TS_OPERATORS_SUB_USERDEFINED_ROOT, new SyntaxNode.UseStyle[] {
SyntaxNode.createUseNoExtraStyle(RUIPreferenceConstants.R.TS_OTHER_OPERATORS_ROOT),
SyntaxNode.createUseCustomStyle()
@@ -240,7 +257,7 @@
textStyles );
}
- protected String addListToTooltip(final String tooltip, final RTerminal[] listItems) {
+ protected String addListToTooltip(final String tooltip, final ImList<RTerminal> listItems) {
return addListToTooltip(tooltip, RTerminal.textArray(listItems));
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreviewCode.txt b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreviewCode.txt
index c1c125b..5ac4b6b 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreviewCode.txt
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreviewCode.txt
@@ -1,24 +1,25 @@
-#' Compute the sample median.
+#' Computes the sample median.
#'
-#' @param x an object for which a method has been defined, or a numeric
-#' vector containing the values whose median is to be computed.
+#' @param x a numeric vector containing the values whose median is to be
+#' computed.
#' @param na.rm a logical value indicating whether 'NA' values should be
-#' stripped before the computation proceeds.
+#' stripped before the computation proceeds.
median <- function (x, na.rm = FALSE) {
- if (is.factor(x) || mode(x) != "numeric")
- stop("need numeric data") # TODO: Translate message
- if (na.rm)
- x <- x[!is.na(x)]
- else if (any(is.na(x)))
- return(NA)
- n <- length(x)
- if (n == 0)
- return(NA)
- half <- (n + 1)/2
- if (n%%2 == 1) {
- sort(x, partial = half)[half]
- }
- else {
- sum(sort(x, partial = c(half, half + 1))[c(half, half + 1)])/2
- }
+ if (is.factor(x) || mode(x) != "numeric")
+ stop("need numeric data") # TODO: Translate message
+ if (na.rm) {
+ x <- x[!is.na(x)]
+ } else if (any(is.na(x))) {
+ return(NA)
+ }
+ n <- length(x)
+ if (n == 0)
+ return(NA)
+ half <- (n + 1)/2
+ if (n %% 2 == 1) {
+ sort(x, partial = half)[half]
+ }
+ else {
+ sort(x, partial = c(half, half + 1))[c(half, half + 1)] |> sum() / 2
+ }
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/RUIPreferenceConstants.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/RUIPreferenceConstants.java
index 0b461fc..eedb7e7 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/RUIPreferenceConstants.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/RUIPreferenceConstants.java
@@ -81,6 +81,7 @@
String TS_SEPARATORS_ROOT = IRTextTokens.SEPARATOR_KEY;
String TS_ASSIGNMENT_ROOT = IRTextTokens.ASSIGN_KEY;
String TS_ASSIGNMENT_SUB_EQUALSIGN_ROOT = IRTextTokens.ASSIGN_SUB_EQUAL_KEY;
+ String TS_ASSIGNMENT_SUB_PIPE_ROOT = IRTextTokens.ASSIGN_SUB_PIPE_KEY;
String TS_OTHER_OPERATORS_ROOT = IRTextTokens.OP_KEY;
String TS_OPERATORS_SUB_LOGICAL_ROOT = IRTextTokens.OP_SUB_LOGICAL_KEY;
String TS_OPERATORS_SUB_RELATIONAL_ROOT = IRTextTokens.OP_SUB_RELATIONAL_KEY;
@@ -249,6 +250,13 @@
pref.putBoolean(R.TS_ASSIGNMENT_SUB_EQUALSIGN_ROOT + TEXTSTYLE_UNDERLINE_SUFFIX, false);
pref.putBoolean(R.TS_ASSIGNMENT_SUB_EQUALSIGN_ROOT + TEXTSTYLE_STRIKETHROUGH_SUFFIX, false);
+ pref.put(R.TS_ASSIGNMENT_SUB_PIPE_ROOT + TEXTSTYLE_USE_SUFFIX, R.TS_ASSIGNMENT_ROOT);
+ pref.put(R.TS_ASSIGNMENT_SUB_PIPE_ROOT + TEXTSTYLE_COLOR_SUFFIX, defaultColor);
+ pref.putBoolean(R.TS_ASSIGNMENT_SUB_PIPE_ROOT + TEXTSTYLE_BOLD_SUFFIX, false);
+ pref.putBoolean(R.TS_ASSIGNMENT_SUB_PIPE_ROOT + TEXTSTYLE_ITALIC_SUFFIX, false);
+ pref.putBoolean(R.TS_ASSIGNMENT_SUB_PIPE_ROOT + TEXTSTYLE_UNDERLINE_SUFFIX, false);
+ pref.putBoolean(R.TS_ASSIGNMENT_SUB_PIPE_ROOT + TEXTSTYLE_STRIKETHROUGH_SUFFIX, false);
+
color = theme.getColorPrefValue(IWaThemeConstants.CODE_OPERATOR_COLOR);
pref.put(R.TS_OTHER_OPERATORS_ROOT + TEXTSTYLE_COLOR_SUFFIX, color);
pref.putBoolean(R.TS_OTHER_OPERATORS_ROOT + TEXTSTYLE_BOLD_SUFFIX, false);
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/IRTextTokens.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/IRTextTokens.java
index 18b6a93..115a9d3 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/IRTextTokens.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/IRTextTokens.java
@@ -14,6 +14,9 @@
package org.eclipse.statet.r.ui.text.r;
+import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.collections.ImList;
+
import org.eclipse.statet.r.core.rsource.RTerminal;
@@ -23,148 +26,133 @@
*/
public interface IRTextTokens {
- public static final RTerminal[] SYMBOL = new RTerminal[] {
- RTerminal.SYMBOL,
-// RTerminal.SYMBOL_G, // colored like a string because of partitioning
- };
- public static final RTerminal[] STRING = new RTerminal[] {
- RTerminal.STRING_D,
- RTerminal.STRING_S,
- RTerminal.STRING_R,
- };
- public static final RTerminal[] NUM = new RTerminal[] {
- RTerminal.NUM_NUM,
- };
- public static final RTerminal[] NUM_SUB_INT = new RTerminal[] {
- RTerminal.NUM_INT,
- };
- public static final RTerminal[] NUM_SUB_CPLX = new RTerminal[] {
- RTerminal.NUM_CPLX,
- };
- public static final RTerminal[] SPECIALCONST = new RTerminal[] {
- RTerminal.NULL,
- RTerminal.NA,
- RTerminal.NA_REAL,
- RTerminal.NA_INT,
- RTerminal.NA_CPLX,
- RTerminal.NA_CHAR,
- RTerminal.INF,
- RTerminal.NAN,
- };
- public static final RTerminal[] LOGICALCONST = new RTerminal[] {
- RTerminal.TRUE,
- RTerminal.FALSE,
- };
+ static final ImList<RTerminal> SYMBOL= ImCollections.newList(
+ RTerminal.SYMBOL );
+// RTerminal.SYMBOL_G ); // colored like a string because of partitioning
- public static final RTerminal[] FLOWCONTROL = new RTerminal[] {
- RTerminal.IF,
- RTerminal.ELSE,
- RTerminal.FOR,
- RTerminal.IN,
- RTerminal.WHILE,
- RTerminal.REPEAT,
- RTerminal.NEXT,
- RTerminal.BREAK,
- RTerminal.FUNCTION,
- RTerminal.FUNCTION_B,
- };
- public static final RTerminal[] GROUPING = new RTerminal[] {
- RTerminal.BLOCK_OPEN,
- RTerminal.BLOCK_CLOSE,
- RTerminal.GROUP_OPEN,
- RTerminal.GROUP_CLOSE,
- };
- public static final RTerminal[] SEPARATOR = new RTerminal[] {
- RTerminal.COMMA,
- RTerminal.SEMICOLON,
- };
- public static final RTerminal[] NSGET = new RTerminal[] {
- RTerminal.NS_GET,
- RTerminal.NS_GET_INT,
- };
- public static final RTerminal[] SUBACCESS = new RTerminal[] {
- RTerminal.SUB_INDEXED_S_OPEN,
- RTerminal.SUB_INDEXED_D_OPEN,
- RTerminal.SUB_INDEXED_CLOSE,
- RTerminal.SUB_NAMED_PART,
- RTerminal.SUB_NAMED_SLOT,
- };
- public static final RTerminal[] ASSIGN = new RTerminal[] {
- RTerminal.ARROW_LEFT_S,
- RTerminal.ARROW_LEFT_D,
- RTerminal.ARROW_RIGHT_S,
- RTerminal.ARROW_RIGHT_D,
- RTerminal.COLON_EQUAL,
- RTerminal.PIPE_RIGHT,
- };
- public static final RTerminal[] ASSIGN_SUB_EQUAL = new RTerminal[] {
- RTerminal.EQUAL,
- };
- public static final RTerminal[] OP = new RTerminal[] {
- RTerminal.PLUS,
- RTerminal.MINUS,
- RTerminal.MULT,
- RTerminal.DIV,
- RTerminal.POWER,
- RTerminal.SEQ,
- RTerminal.TILDE,
- RTerminal.QUESTIONMARK,
- };
- public static final RTerminal[] OP_SUB_LOGICAL = new RTerminal[] {
- RTerminal.NOT,
- RTerminal.AND,
- RTerminal.AND_D,
- RTerminal.OR,
- RTerminal.OR_D,
- };
- public static final RTerminal[] OP_SUB_RELATIONAL = new RTerminal[] {
- RTerminal.REL_EQ,
- RTerminal.REL_GT,
- RTerminal.REL_GE,
- RTerminal.REL_LE,
- RTerminal.REL_LT,
- RTerminal.REL_NE,
- };
+ static final ImList<RTerminal> STRING= ImCollections.newList(
+ RTerminal.STRING_D, RTerminal.STRING_S,
+ RTerminal.STRING_R );
- public static final RTerminal[] UNDEFINED = new RTerminal[] {
- RTerminal.UNKNOWN,
- };
- public static final RTerminal[] COMMENT = new RTerminal[] {
- RTerminal.COMMENT, RTerminal.ROXYGEN_COMMENT,
- };
+ static final ImList<RTerminal> NUM= ImCollections.newList(
+ RTerminal.NUM_NUM );
+
+ static final ImList<RTerminal> NUM_SUB_INT= ImCollections.newList(
+ RTerminal.NUM_INT );
+
+ static final ImList<RTerminal> NUM_SUB_CPLX= ImCollections.newList(
+ RTerminal.NUM_CPLX );
+
+ static final ImList<RTerminal> SPECIALCONST= ImCollections.newList(
+ RTerminal.NULL,
+ RTerminal.NA,
+ RTerminal.NA_REAL,
+ RTerminal.NA_INT,
+ RTerminal.NA_CPLX,
+ RTerminal.NA_CHAR,
+ RTerminal.INF,
+ RTerminal.NAN );
+
+ static final ImList<RTerminal> LOGICALCONST= ImCollections.newList(
+ RTerminal.TRUE,
+ RTerminal.FALSE );
+
+ static final ImList<RTerminal> FLOWCONTROL= ImCollections.newList(
+ RTerminal.IF, RTerminal.ELSE,
+ RTerminal.FOR, RTerminal.IN,
+ RTerminal.WHILE,
+ RTerminal.REPEAT,
+ RTerminal.NEXT, RTerminal.BREAK,
+ RTerminal.FUNCTION, RTerminal.FUNCTION_B );
+
+ static final ImList<RTerminal> GROUPING= ImCollections.newList(
+ RTerminal.BLOCK_OPEN, RTerminal.BLOCK_CLOSE,
+ RTerminal.GROUP_OPEN, RTerminal.GROUP_CLOSE );
+
+ static final ImList<RTerminal> SEPARATOR= ImCollections.newList(
+ RTerminal.COMMA,
+ RTerminal.SEMICOLON );
+
+ static final ImList<RTerminal> NSGET= ImCollections.newList(
+ RTerminal.NS_GET,
+ RTerminal.NS_GET_INT );
+
+ static final ImList<RTerminal> SUBACCESS= ImCollections.newList(
+ RTerminal.SUB_INDEXED_S_OPEN, RTerminal.SUB_INDEXED_D_OPEN, RTerminal.SUB_INDEXED_CLOSE,
+ RTerminal.SUB_NAMED_PART,
+ RTerminal.SUB_NAMED_SLOT );
+
+ static final ImList<RTerminal> ASSIGN= ImCollections.newList(
+ RTerminal.ARROW_LEFT_S, RTerminal.ARROW_LEFT_D,
+ RTerminal.ARROW_RIGHT_S, RTerminal.ARROW_RIGHT_D,
+ RTerminal.COLON_EQUAL );
+
+ static final ImList<RTerminal> ASSIGN_SUB_EQUAL= ImCollections.newList(
+ RTerminal.EQUAL );
+
+ static final ImList<RTerminal> ASSIGN_SUB_PIPE= ImCollections.newList(
+ RTerminal.PIPE_RIGHT );
+
+ static final ImList<RTerminal> OP= ImCollections.newList(
+ RTerminal.PLUS,
+ RTerminal.MINUS,
+ RTerminal.MULT,
+ RTerminal.DIV,
+ RTerminal.POWER,
+ RTerminal.SEQ,
+ RTerminal.TILDE,
+ RTerminal.QUESTIONMARK );
+
+ static final ImList<RTerminal> OP_SUB_LOGICAL= ImCollections.newList(
+ RTerminal.NOT,
+ RTerminal.AND, RTerminal.AND_D,
+ RTerminal.OR, RTerminal.OR_D );
+
+ static final ImList<RTerminal> OP_SUB_RELATIONAL= ImCollections.newList(
+ RTerminal.REL_EQ, RTerminal.REL_NE,
+ RTerminal.REL_GT, RTerminal.REL_GE,
+ RTerminal.REL_LT, RTerminal.REL_LE );
+
+ public static final ImList<RTerminal> UNDEFINED= ImCollections.newList(
+ RTerminal.UNKNOWN );
+
+ public static final ImList<RTerminal> COMMENT= ImCollections.newList(
+ RTerminal.COMMENT,
+ RTerminal.ROXYGEN_COMMENT );
- public static final String ROOT = "text_R_"; //$NON-NLS-1$
+ public static final String ROOT= "text_R_"; //$NON-NLS-1$
- public static final String SYMBOL_KEY = ROOT+"rDefault"; //$NON-NLS-1$
- public static final String SYMBOL_SUB_ASSIGN_KEY = SYMBOL_KEY + ".Assignment"; //$NON-NLS-1$
- public static final String SYMBOL_SUB_LOGICAL_KEY = SYMBOL_KEY + ".Logical"; //$NON-NLS-1$
- public static final String SYMBOL_SUB_FLOWCONTROL_KEY = SYMBOL_KEY + ".Flowcontrol"; //$NON-NLS-1$
- public static final String SYMBOL_SUB_CUSTOM1_KEY = SYMBOL_KEY + ".Custom2"; //$NON-NLS-1$
- public static final String SYMBOL_SUB_CUSTOM2_KEY = SYMBOL_KEY + ".Custom1"; //$NON-NLS-1$
+ public static final String SYMBOL_KEY= ROOT+"rDefault"; //$NON-NLS-1$
+ public static final String SYMBOL_SUB_ASSIGN_KEY= SYMBOL_KEY + ".Assignment"; //$NON-NLS-1$
+ public static final String SYMBOL_SUB_LOGICAL_KEY= SYMBOL_KEY + ".Logical"; //$NON-NLS-1$
+ public static final String SYMBOL_SUB_FLOWCONTROL_KEY= SYMBOL_KEY + ".Flowcontrol"; //$NON-NLS-1$
+ public static final String SYMBOL_SUB_CUSTOM1_KEY= SYMBOL_KEY + ".Custom2"; //$NON-NLS-1$
+ public static final String SYMBOL_SUB_CUSTOM2_KEY= SYMBOL_KEY + ".Custom1"; //$NON-NLS-1$
- public static final String STRING_KEY = ROOT+"rString"; //$NON-NLS-1$
- public static final String NUM_KEY = ROOT+"rNumbers"; //$NON-NLS-1$
- public static final String NUM_SUB_INT_KEY = NUM_KEY+".Integer"; //$NON-NLS-1$
- public static final String NUM_SUB_CPLX_KEY = NUM_KEY+".Complex"; //$NON-NLS-1$
+ public static final String STRING_KEY= ROOT+"rString"; //$NON-NLS-1$
+ public static final String NUM_KEY= ROOT+"rNumbers"; //$NON-NLS-1$
+ public static final String NUM_SUB_INT_KEY= NUM_KEY+".Integer"; //$NON-NLS-1$
+ public static final String NUM_SUB_CPLX_KEY= NUM_KEY+".Complex"; //$NON-NLS-1$
- public static final String SPECIALCONST_KEY = ROOT+"rSpecialConstants"; //$NON-NLS-1$
- public static final String LOGICALCONST_KEY = ROOT+"rLogicalConstants"; //$NON-NLS-1$
- public static final String GROUPING_KEY = ROOT+"rGrouping"; //$NON-NLS-1$
- public static final String SEPARATOR_KEY = ROOT+"rSeparators"; //$NON-NLS-1$
- public static final String SUBACCESS_KEY = ROOT+"rIndexing"; //$NON-NLS-1$
- public static final String ASSIGN_KEY = ROOT+"rAssignment"; //$NON-NLS-1$
- public static final String ASSIGN_SUB_EQUAL_KEY = ASSIGN_KEY + ".Equalsign"; //$NON-NLS-1$
- public static final String FLOWCONTROL_KEY = ROOT+"rFlowcontrol"; //$NON-NLS-1$
- public static final String OP_KEY = ROOT+"rOtherOperators"; //$NON-NLS-1$
- public static final String OP_SUB_LOGICAL_KEY = OP_KEY + ".Logical"; //$NON-NLS-1$
- public static final String OP_SUB_RELATIONAL_KEY = OP_KEY + ".Relational"; //$NON-NLS-1$
- public static final String OP_SUB_USERDEFINED_KEY = OP_KEY + ".Userdefined"; //$NON-NLS-1$
+ public static final String SPECIALCONST_KEY= ROOT+"rSpecialConstants"; //$NON-NLS-1$
+ public static final String LOGICALCONST_KEY= ROOT+"rLogicalConstants"; //$NON-NLS-1$
+ public static final String GROUPING_KEY= ROOT+"rGrouping"; //$NON-NLS-1$
+ public static final String SEPARATOR_KEY= ROOT+"rSeparators"; //$NON-NLS-1$
+ public static final String SUBACCESS_KEY= ROOT+"rIndexing"; //$NON-NLS-1$
+ public static final String ASSIGN_KEY= ROOT+"rAssignment"; //$NON-NLS-1$
+ public static final String ASSIGN_SUB_EQUAL_KEY= ASSIGN_KEY + ".Equalsign"; //$NON-NLS-1$
+ public static final String ASSIGN_SUB_PIPE_KEY= ASSIGN_KEY + ".Pipe"; //$NON-NLS-1$
+ public static final String FLOWCONTROL_KEY= ROOT+"rFlowcontrol"; //$NON-NLS-1$
+ public static final String OP_KEY= ROOT+"rOtherOperators"; //$NON-NLS-1$
+ public static final String OP_SUB_LOGICAL_KEY= OP_KEY + ".Logical"; //$NON-NLS-1$
+ public static final String OP_SUB_RELATIONAL_KEY= OP_KEY + ".Relational"; //$NON-NLS-1$
+ public static final String OP_SUB_USERDEFINED_KEY= OP_KEY + ".Userdefined"; //$NON-NLS-1$
- public static final String COMMENT_KEY = ROOT+"rComment"; //$NON-NLS-1$
- public static final String TASK_TAG_KEY = ROOT+"taskTag"; //$NON-NLS-1$
- public static final String ROXYGEN_KEY = ROOT + "rRoxygen"; //$NON-NLS-1$
- public static final String ROXYGEN_TAG_KEY = ROOT + "rRoxygenTag"; //$NON-NLS-1$
- public static final String UNDEFINED_KEY = ROOT+"rUndefined"; //$NON-NLS-1$
+ public static final String COMMENT_KEY= ROOT+"rComment"; //$NON-NLS-1$
+ public static final String TASK_TAG_KEY= ROOT+"taskTag"; //$NON-NLS-1$
+ public static final String ROXYGEN_KEY= ROOT + "rRoxygen"; //$NON-NLS-1$
+ public static final String ROXYGEN_TAG_KEY= ROOT + "rRoxygenTag"; //$NON-NLS-1$
+ public static final String UNDEFINED_KEY= ROOT+"rUndefined"; //$NON-NLS-1$
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java
index e3aeafa..c0ac619 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java
@@ -24,6 +24,8 @@
import org.eclipse.jface.text.rules.ITokenScanner;
import org.eclipse.jface.text.rules.Token;
+import org.eclipse.statet.jcommons.collections.ImList;
+
import org.eclipse.statet.ecommons.text.core.input.DocumentParserInput;
import org.eclipse.statet.ecommons.text.ui.presentation.ITextPresentationConstants;
import org.eclipse.statet.ecommons.text.ui.settings.TextStyleManager;
@@ -50,9 +52,10 @@
}
}
- protected static void putAll(final Map<RTerminal, IToken> map, final RTerminal[] types, final IToken token) {
- for (int i= 0; i < types.length; i++) {
- map.put(types[i], token);
+ protected static void putAll(final Map<RTerminal, IToken> map, final ImList<RTerminal> types,
+ final IToken token) {
+ for (final RTerminal terminal : types) {
+ map.put(terminal, token);
}
}
@@ -189,6 +192,7 @@
putAll(map, IRTextTokens.SEPARATOR, getToken(IRTextTokens.SEPARATOR_KEY));
putAll(map, IRTextTokens.ASSIGN, getToken(IRTextTokens.ASSIGN_KEY));
putAll(map, IRTextTokens.ASSIGN_SUB_EQUAL, getToken(IRTextTokens.ASSIGN_SUB_EQUAL_KEY));
+ putAll(map, IRTextTokens.ASSIGN_SUB_PIPE, getToken(IRTextTokens.ASSIGN_SUB_PIPE_KEY));
putAll(map, IRTextTokens.OP, getToken(IRTextTokens.OP_KEY));
putAll(map, IRTextTokens.OP_SUB_LOGICAL, getToken(IRTextTokens.OP_SUB_LOGICAL_KEY));
putAll(map, IRTextTokens.OP_SUB_RELATIONAL, getToken(IRTextTokens.OP_SUB_RELATIONAL_KEY));