2023年6月12日17:12:55
parent
976f6bcc74
commit
afa4cbbf46
|
|
@ -8,6 +8,7 @@ import com.zhangmeng.tools.languages.ProcessHtml;
|
||||||
import com.zhangmeng.tools.languages.ProcessJava;
|
import com.zhangmeng.tools.languages.ProcessJava;
|
||||||
import com.zhangmeng.tools.languages.ProcessSql;
|
import com.zhangmeng.tools.languages.ProcessSql;
|
||||||
import com.zhangmeng.tools.utils.AlertUtils;
|
import com.zhangmeng.tools.utils.AlertUtils;
|
||||||
|
import javafx.application.Platform;
|
||||||
import javafx.beans.property.SimpleIntegerProperty;
|
import javafx.beans.property.SimpleIntegerProperty;
|
||||||
import javafx.beans.value.ChangeListener;
|
import javafx.beans.value.ChangeListener;
|
||||||
import javafx.beans.value.ObservableValue;
|
import javafx.beans.value.ObservableValue;
|
||||||
|
|
@ -112,7 +113,7 @@ public class FileEditController {
|
||||||
Stage stage = new Stage();
|
Stage stage = new Stage();
|
||||||
FileChooser dc = new FileChooser();
|
FileChooser dc = new FileChooser();
|
||||||
dc.setTitle("文件选择");
|
dc.setTitle("文件选择");
|
||||||
dc.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("文件类型", "*.java", "*.go", "*.txt", "*.json","*.sql"));
|
dc.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("文件类型", "*.java", "*.go", "*.txt", "*.json", "*.sql"));
|
||||||
File file = dc.showOpenDialog(stage);
|
File file = dc.showOpenDialog(stage);
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
refresh(file, true);
|
refresh(file, true);
|
||||||
|
|
@ -269,9 +270,13 @@ public class FileEditController {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!(FileUtils.sizeOf(file) > 50 * 1024 * 1024 )){
|
if (!(FileUtils.sizeOf(file) > 10 * 1024 * 1024)) {
|
||||||
codeArea.textProperty().addListener((obs, oldText, newText) -> {
|
codeArea.textProperty().addListener((obs, oldText, newText) -> {
|
||||||
codeArea.setStyleSpans(0, computeHighlighting(newText, type));
|
new Thread(() -> {
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
codeArea.setStyleSpans(0, computeHighlighting(newText, type));
|
||||||
|
});
|
||||||
|
}).start();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
codeArea.replaceText(0, 0, file_content);
|
codeArea.replaceText(0, 0, file_content);
|
||||||
|
|
@ -355,14 +360,24 @@ public class FileEditController {
|
||||||
flag = false;
|
flag = false;
|
||||||
}
|
}
|
||||||
if (flag) {
|
if (flag) {
|
||||||
Type type = Type.JAVA;
|
Type type = null;
|
||||||
|
|
||||||
|
if (extension.equals("java")) {
|
||||||
|
type = Type.JAVA;
|
||||||
|
}
|
||||||
|
|
||||||
if (extension.equals("go")) {
|
if (extension.equals("go")) {
|
||||||
type = Type.GO;
|
type = Type.GO;
|
||||||
}
|
}
|
||||||
if (extension.equals("html")) {
|
if (extension.equals("html")) {
|
||||||
type = Type.HTML;
|
type = Type.HTML;
|
||||||
}
|
}
|
||||||
|
if (extension.equals("sql")) {
|
||||||
|
type = Type.SQL;
|
||||||
|
}
|
||||||
|
if (type == null) {
|
||||||
|
type = Type.JAVA;
|
||||||
|
}
|
||||||
open_file(file, type);
|
open_file(file, type);
|
||||||
} else {
|
} else {
|
||||||
AlertUtils.alert_warning("该文件不支持!");
|
AlertUtils.alert_warning("该文件不支持!");
|
||||||
|
|
@ -416,20 +431,20 @@ public class FileEditController {
|
||||||
|
|
||||||
if (type.equals(Type.HTML)) {
|
if (type.equals(Type.HTML)) {
|
||||||
styleClass = matcher.group("PAREN") != null ? "paren" :
|
styleClass = matcher.group("PAREN") != null ? "paren" :
|
||||||
matcher.group("BRACE") != null ? "brace" :
|
matcher.group("BRACE") != null ? "brace" :
|
||||||
matcher.group("BRACKET") != null ? "bracket" :
|
matcher.group("BRACKET") != null ? "bracket" :
|
||||||
matcher.group("SEMICOLON") != null ? "semicolon" :
|
matcher.group("SEMICOLON") != null ? "semicolon" :
|
||||||
matcher.group("STRING") != null ? "string" :
|
matcher.group("STRING") != null ? "string" :
|
||||||
matcher.group("COMMENT") != null ? "comment" :
|
matcher.group("COMMENT") != null ? "comment" :
|
||||||
matcher.group("ANNOTATION") != null ? "annotation" :
|
matcher.group("ANNOTATION") != null ? "annotation" :
|
||||||
matcher.group("PARAMS") != null ? "parameter" :
|
matcher.group("PARAMS") != null ? "parameter" :
|
||||||
matcher.group("METHOD") != null ? "method" :
|
matcher.group("METHOD") != null ? "method" :
|
||||||
matcher.group("HTMLKEYWORDS") != null ? "html-keyword" : //html 标签
|
matcher.group("HTMLKEYWORDS") != null ? "html-keyword" : //html 标签
|
||||||
matcher.group("HTMLKEYWORDS2") != null ? "html-keyword2" : //html 属性
|
matcher.group("HTMLKEYWORDS2") != null ? "html-keyword2" : //html 属性
|
||||||
null; /* never happens */
|
null; /* never happens */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type.equals(Type.SQL)){
|
if (type.equals(Type.SQL)) {
|
||||||
styleClass = matcher.group("PAREN") != null ? "paren" :
|
styleClass = matcher.group("PAREN") != null ? "paren" :
|
||||||
matcher.group("BRACE") != null ? "brace" :
|
matcher.group("BRACE") != null ? "brace" :
|
||||||
matcher.group("BRACKET") != null ? "bracket" :
|
matcher.group("BRACKET") != null ? "bracket" :
|
||||||
|
|
@ -441,7 +456,7 @@ public class FileEditController {
|
||||||
matcher.group("METHOD") != null ? "method" :
|
matcher.group("METHOD") != null ? "method" :
|
||||||
matcher.group("HTMLKEYWORDS") != null ? "html-keyword" : //html 标签
|
matcher.group("HTMLKEYWORDS") != null ? "html-keyword" : //html 标签
|
||||||
matcher.group("HTMLKEYWORDS2") != null ? "html-keyword2" : //html 属性
|
matcher.group("HTMLKEYWORDS2") != null ? "html-keyword2" : //html 属性
|
||||||
null;
|
null; /* never happens */
|
||||||
}
|
}
|
||||||
assert styleClass != null;
|
assert styleClass != null;
|
||||||
spansBuilder.add(Collections.emptyList(), matcher.start() - lastKwEnd);
|
spansBuilder.add(Collections.emptyList(), matcher.start() - lastKwEnd);
|
||||||
|
|
|
||||||
|
|
@ -12,13 +12,13 @@ public class ProcessSql {
|
||||||
public static final String[] HTMLKEYWORDS = new String[] {
|
public static final String[] HTMLKEYWORDS = new String[] {
|
||||||
"CREATE","create", "drop", "DROP", "INSERT","insert",
|
"CREATE","create", "drop", "DROP", "INSERT","insert",
|
||||||
"SELECT", "select","UPDATE","update","DELETE","delete", "FORMAT", "SUM","DATE",
|
"SELECT", "select","UPDATE","update","DELETE","delete", "FORMAT", "SUM","DATE",
|
||||||
"title","img", "hr", "a", "table","div","span",
|
"CONSTRAINT","FOREIGN","REFERENCES","DEFAULT","NULL"
|
||||||
"ul", "dl","dd","i","script","li","link"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public static final String[] HTMLKEYWORDS2 = new String[] {
|
public static final String[] HTMLKEYWORDS2 = new String[] {
|
||||||
"use", "IF", "if", "PRIMARY KEY", "FROM", "from","order","group","INNER","JOIN","ON","values","ALTER","SHOW",
|
"use", "IF", "if", "PRIMARY","KEY","UNIQUE", "FROM", "from","order","group","INNER","JOIN","ON","values","ALTER","SHOW","into",
|
||||||
"by","INTO","VALUES","WHERE","where","SET","set","LIKE","like","UNION","ORDER","BY","GROUP","EXISTS","TABLE","table"
|
"by","INTO","VALUES","WHERE","where","SET","set","LIKE","like","UNION","ORDER","BY","GROUP","EXISTS","TABLE","table",
|
||||||
|
"COUNT", "SUM", "AVG", "MIN", "MAX"
|
||||||
};
|
};
|
||||||
|
|
||||||
public static final String HTMLKEYWORDS_PATTERN = "\\b(" + String.join("|", HTMLKEYWORDS) + ")\\b";
|
public static final String HTMLKEYWORDS_PATTERN = "\\b(" + String.join("|", HTMLKEYWORDS) + ")\\b";
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue