fix(lsp): Folding range editor NPE

This commit is contained in:
FalsePattern 2023-08-18 11:37:45 +02:00 committed by FalsePattern
parent ca632b98fe
commit cb30860ec6
Signed by: falsepattern
GPG key ID: FDF7126A9E124447
2 changed files with 10 additions and 1 deletions

View file

@ -33,6 +33,12 @@ Changelog structure reference:
- Starting(Yellow): Refresh arrow - Starting(Yellow): Refresh arrow
- Started(Green): Empty - Started(Green): Empty
### Fixed
#### LSP
- NullPointerException in folding range provider when closing editors quickly
## [0.6.0] ## [0.6.0]
### Added ### Added

View file

@ -94,6 +94,9 @@ public class LSPFoldingRangeProvider extends CustomFoldingBuilder {
new AFoldingRange(start, end, collapsedText == null ? "..." : collapsedText)), new AFoldingRange(start, end, collapsedText == null ? "..." : collapsedText)),
root, document, true); root, document, true);
var editor = FileUtils.editorFromPsiFile(root.getContainingFile()); var editor = FileUtils.editorFromPsiFile(root.getContainingFile());
if (editor == null) {
return;
}
app.invokeLater(() -> { app.invokeLater(() -> {
if (editor.isDisposed()) { if (editor.isDisposed()) {
return; return;
@ -102,7 +105,7 @@ public class LSPFoldingRangeProvider extends CustomFoldingBuilder {
var oldRegions = Arrays.stream(foldingModel.getAllFoldRegions()).filter(region -> { var oldRegions = Arrays.stream(foldingModel.getAllFoldRegions()).filter(region -> {
var data = region.getUserData(ASYNC_FOLDING_KEY); var data = region.getUserData(ASYNC_FOLDING_KEY);
return data != null && data; return data != null && data;
}).collect(Collectors.toList()); }).toList();
foldingModel.runBatchFoldingOperation(() -> { foldingModel.runBatchFoldingOperation(() -> {
for (var oldRegion: oldRegions) { for (var oldRegion: oldRegions) {
foldingModel.removeFoldRegion(oldRegion); foldingModel.removeFoldRegion(oldRegion);