From de8d1e9756ca0dc3b812344b71b1dc301d8c69ab Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 26 Apr 2021 14:41:47 +0200 Subject: [PATCH] Clean up ProgrammingLanguage code --- .../java/app/model/ProgrammingLanguage.java | 17 ++++++++--------- src/main/java/app/model/languages/Java.java | 7 +++++-- src/main/java/app/model/languages/Markdown.java | 6 +++++- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/main/java/app/model/ProgrammingLanguage.java b/src/main/java/app/model/ProgrammingLanguage.java index 8c4c553..65bbd44 100644 --- a/src/main/java/app/model/ProgrammingLanguage.java +++ b/src/main/java/app/model/ProgrammingLanguage.java @@ -5,22 +5,21 @@ import java.util.regex.Pattern; /** * An interface describing functions required for a class to - * provide language specific details and functionality to the - * editor + * provide language specific details and functionality. */ public interface ProgrammingLanguage { /** - * The name of the programming language + * @return The name of the programming language */ public String getName(); /** - * The map containing the regex and corresponding style-classes to be used for syntax highlighting + * @return The map containing the regexes and corresponding style-classes to be used for syntax highlighting */ public Map getPatternMap(); /** - * The pattern containing all regexes for syntax highlighting + * @return A combined regex for syntax highlighting */ public Pattern getPattern(); @@ -39,8 +38,8 @@ public interface ProgrammingLanguage { public String unCommentLine(String line); /** - * Whether or not a line is commented * @param line The text of the line + * @return Whether or not a line is commented */ public boolean isCommentedLine(String line); @@ -52,15 +51,15 @@ public interface ProgrammingLanguage { public String commentSelection(String selection); /** - * Uncomment a line - * @param selection The text of the line to uncomment + * Uncomment an area of text + * @param selection The text of the area to uncomment * @return The uncommented area */ public String unCommentSelection(String selection); /** - * Whether or not an area of text is commented * @param selection The content of the area + * @return Whether or not an area of text is commented */ public boolean isCommentedSelection(String selection); diff --git a/src/main/java/app/model/languages/Java.java b/src/main/java/app/model/languages/Java.java index f531914..9dd2d2b 100644 --- a/src/main/java/app/model/languages/Java.java +++ b/src/main/java/app/model/languages/Java.java @@ -15,6 +15,7 @@ import app.model.ProgrammingLanguage; public class Java implements ProgrammingLanguage { private String name = "Java"; + private static Map pattern; private static final String[] keywords = new String[] { "abstract", "assert", "boolean", "break", "byte", @@ -52,9 +53,11 @@ public class Java implements ProgrammingLanguage { e("(?://.*)|/\\*(?:\\n|.)*?\\*/", "comment") ); - private static Map pattern; - public Java() { + this.initializePatternMap(); + } + + private void initializePatternMap() { pattern = new LinkedHashMap<>(); patternList .forEach(e -> pattern.put(e.getKey(), e.getValue())); diff --git a/src/main/java/app/model/languages/Markdown.java b/src/main/java/app/model/languages/Markdown.java index 4acc047..0aff825 100644 --- a/src/main/java/app/model/languages/Markdown.java +++ b/src/main/java/app/model/languages/Markdown.java @@ -14,6 +14,7 @@ import app.model.ProgrammingLanguage; public class Markdown implements ProgrammingLanguage { private String name = "Markdown"; + private static Map pattern; private static Entry e(String k, String v) { return new AbstractMap.SimpleEntry<>(Pattern.compile(k), v); @@ -38,9 +39,12 @@ public class Markdown implements ProgrammingLanguage { e("\\[\\d+\\]: .*", "source") ); - private static Map pattern; public Markdown() { + this.initializePatternMap(); + } + + private void initializePatternMap() { pattern = new LinkedHashMap<>(); patternList .forEach(e -> pattern.put(e.getKey(), e.getValue()));