Fix language pattern randomness issue

This commit is contained in:
2021-04-24 22:29:52 +02:00
parent 2e397fd971
commit f235ab1f75
3 changed files with 188 additions and 5 deletions

View File

@@ -3,7 +3,10 @@ package app.model.languages;
import java.net.URL;
import java.util.AbstractMap;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.AbstractMap.SimpleEntry;
import java.util.Map.Entry;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -30,11 +33,12 @@ public class Java implements ProgrammingLanguage {
};
private static Entry<Pattern, String> e(String k, String v) {
return new AbstractMap.SimpleEntry<>(Pattern.compile(k), v);
return new SimpleEntry<>(Pattern.compile(k), v);
}
private static final Map<Pattern, String> pattern =
Map.ofEntries(
private static final List<Entry<Pattern, String>> patternList =
List.of(
e("\"([^\"\\\\]|\\\\.)*\"", "string"),
e("\\bthis\\b", "this"),
e("\\btrue\\b", "true"),
@@ -50,6 +54,14 @@ public class Java implements ProgrammingLanguage {
"keyword"),
e("(?://.*)|/\\*(?:\\n|.)*?\\*/", "comment")
);
private static Map<Pattern, String> pattern;
public Java() {
pattern = new LinkedHashMap<>();
patternList
.forEach(e -> pattern.put(e.getKey(), e.getValue()));
}
public String getName() {
return this.name;
@@ -60,6 +72,7 @@ public class Java implements ProgrammingLanguage {
}
public Map<Pattern, String> getPatternMap() {
return Java.pattern;
}

View File

@@ -3,6 +3,8 @@ package app.model.languages;
import java.net.URL;
import java.util.AbstractMap;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Pattern;
@@ -19,8 +21,8 @@ public class Markdown implements ProgrammingLanguage {
return new AbstractMap.SimpleEntry<>(Pattern.compile(k), v);
}
private static final Map<Pattern, String> pattern =
Map.ofEntries(
private static final List<Entry<Pattern, String>> patternList =
List.of(
e("<!--(?:.|\n)*-->", "comment"),
e("##### .*", "ssssheader"),
e("#### .*", "sssheader"),
@@ -38,6 +40,14 @@ public class Markdown implements ProgrammingLanguage {
e("\\[\\d+\\]: .*", "source")
);
private static Map<Pattern, String> pattern;
public Markdown() {
pattern = new LinkedHashMap<>();
patternList
.forEach(e -> pattern.put(e.getKey(), e.getValue()));
}
public String getName() {
return this.name;
}