大文件打开语法高亮超过50M 自动关闭

master
zhangmeng 2023-06-08 17:23:52 +08:00
parent 4c250778da
commit f815ccae87
1 changed files with 8 additions and 5 deletions

View File

@ -32,6 +32,7 @@ import javafx.stage.FileChooser;
import javafx.stage.Stage; import javafx.stage.Stage;
import javafx.util.Callback; import javafx.util.Callback;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.fxmisc.flowless.VirtualizedScrollPane; import org.fxmisc.flowless.VirtualizedScrollPane;
import org.fxmisc.richtext.CodeArea; import org.fxmisc.richtext.CodeArea;
@ -75,6 +76,7 @@ public class FileEditController {
GO, GO,
JS, JS,
CSS, CSS,
SQL
} }
@FXML @FXML
@ -109,7 +111,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")); 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);
@ -266,10 +268,11 @@ public class FileEditController {
ex.printStackTrace(); ex.printStackTrace();
} }
} }
if (!(FileUtils.sizeOf(file) > 50 * 1024 * 1024 )){
codeArea.textProperty().addListener((obs, oldText, newText) -> { codeArea.textProperty().addListener((obs, oldText, newText) -> {
codeArea.setStyleSpans(0, computeHighlighting(newText, type)); codeArea.setStyleSpans(0, computeHighlighting(newText, type));
}); });
}
codeArea.replaceText(0, 0, file_content); codeArea.replaceText(0, 0, file_content);
Tab tab = new Tab(file.getName()); Tab tab = new Tab(file.getName());