Skip to content
Snippets Groups Projects
Commit c5387333 authored by Andreas Bayha's avatar Andreas Bayha
Browse files

Merge branch '4299' into 'master'

4299: Add comment handling to source editor (for highlighting)

See merge request !203
parents de9712a6 d2102637
No related branches found
No related tags found
1 merge request!2034299: Add comment handling to source editor (for highlighting)
......@@ -2,6 +2,6 @@ AdvancedTreeViewerEditorBase.java 9d9eded6848ee78991d1416592d1136efd71d2b7 GREEN
FormsEditorBase.java b113501b98ffffcac362ca9f474ad02a42bde186 GREEN
GEFEditorBase.java e668f596f45f07215994cbbd3929a9438331718f GREEN
SourceEditorBase.java 47e69e2e6788b9897339c384cd03f9a22755037c GREEN
SourceEditorConfigurationBase.java e8b810c0d974c475f0a8e6f21aa5b6fd9e17c33a GREEN
SourceEditorConfigurationBase.java 67c674248e31d467937ed33e455c07587ad0b3b1 GREEN
SourceEditorUndoRedo.java 08127a8e0afb4f9c2f4c21294ca3220282c25bf0 GREEN
TreeViewerEditorBase.java 1c59689ff57c4f3cc180d85f13021fc03461ecb0 GREEN
/*-------------------------------------------------------------------------+
| Copyright 2012 fortiss GmbH |
| Copyright 2023 fortiss GmbH |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
......@@ -19,6 +19,7 @@ import static java.lang.Character.isLetterOrDigit;
import static org.eclipse.jface.text.IDocument.DEFAULT_CONTENT_TYPE;
import static org.eclipse.wb.swt.SWTResourceManager.getColor;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
......@@ -29,6 +30,7 @@ import org.eclipse.jface.text.rules.IRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.ITokenScanner;
import org.eclipse.jface.text.rules.IWordDetector;
import org.eclipse.jface.text.rules.PatternRule;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.rules.WordRule;
import org.eclipse.jface.text.source.IAnnotationHover;
......@@ -53,12 +55,21 @@ public abstract class SourceEditorConfigurationBase<T extends EObject>
this.editor = editor;
}
/** Color constant used to display code dark red. */
/** Color constant used to display code in dark red. */
protected Color DARK_RED = getColor(128, 0, 0);
/** Color constant used to display code dark blue. */
/** Color constant used to display code in dark blue. */
protected Color DARK_BLUE = getColor(0, 0, 128);
/** Color constant used to display comments (green). */
protected Color COMMENT_COLOR = getColor(0, 148, 0);
/** Identifier for the start of a comment. */
public static final String COMMENT_START_IDENTIFIER = "/*";
/** Identifier for the end of a comment. */
public static final String COMMENT_END_IDENTIFIER = "*/";
/** Detector used to create the scanners. */
protected IWordDetector detector = new IWordDetector() {
/** {@inheritDoc} */
......@@ -99,10 +110,17 @@ public abstract class SourceEditorConfigurationBase<T extends EObject>
/** Returns the rule based scanner. */
private RuleBasedScanner getScannerForSyntaxHighlighting() {
List<WordRule> rules = getCommonRules();
rules.add(getRuleSpecificToEditor());
List<IRule> allRules = new ArrayList<IRule>();
allRules.addAll(getCommonRules());
allRules.add(getRuleSpecificToEditor());
allRules.add(getCommentRuleSpecificToEditor());
IRule[] rules = allRules.toArray(new IRule[0]);
RuleBasedScanner scanner = new RuleBasedScanner();
scanner.setRules(rules.toArray(new IRule[0]));
scanner.setRules(rules);
return scanner;
}
......@@ -112,6 +130,9 @@ public abstract class SourceEditorConfigurationBase<T extends EObject>
/** Returns a rule specific to the editor. */
abstract protected WordRule getRuleSpecificToEditor();
/** Returns the comment rule specific to the editor. */
abstract protected PatternRule getCommentRuleSpecificToEditor();
/** Adds the words to the rule with the given token. */
protected void addWordsToRule(List<String> words, WordRule rule, IToken token) {
for(String word : words) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment