From a3e8adfa80cff8b4cfb8930157484dff55321764 Mon Sep 17 00:00:00 2001 From: Jonathan Feinberg Date: Mon, 7 Apr 2014 15:06:32 -0400 Subject: [PATCH] Permit modes to provide their own TokenMarker implementation while still using the keywords.txt file. --- app/src/processing/app/Mode.java | 7 ++++++- app/src/processing/app/syntax/TokenMarker.java | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/processing/app/Mode.java b/app/src/processing/app/Mode.java index 963d950a1..15045a2ba 100644 --- a/app/src/processing/app/Mode.java +++ b/app/src/processing/app/Mode.java @@ -43,7 +43,7 @@ public abstract class Mode { protected File folder; - protected PdeKeywords tokenMarker = new PdeKeywords(); + protected TokenMarker tokenMarker; protected HashMap keywordToReference = new HashMap(); @@ -94,6 +94,7 @@ public abstract class Mode { public Mode(Base base, File folder) { this.base = base; this.folder = folder; + tokenMarker = createTokenMarker(); // Get paths for the libraries and examples in the mode folder examplesFolder = new File(folder, "examples"); @@ -912,6 +913,10 @@ public abstract class Mode { public TokenMarker getTokenMarker() { return tokenMarker; } + + protected TokenMarker createTokenMarker() { + return new PdeKeywords(); + } // abstract public Formatter createFormatter(); diff --git a/app/src/processing/app/syntax/TokenMarker.java b/app/src/processing/app/syntax/TokenMarker.java index 363bb61e3..0e414e901 100644 --- a/app/src/processing/app/syntax/TokenMarker.java +++ b/app/src/processing/app/syntax/TokenMarker.java @@ -25,6 +25,8 @@ import javax.swing.text.Segment; */ public abstract class TokenMarker { + abstract public void addColoring(String keyword, String coloring); + /** * A wrapper for the lower-level markTokensImpl method * that is called to split a line up into tokens.