fix: Some more null/safety checks
This commit is contained in:
parent
cfb4abbe93
commit
7b4067aca4
3 changed files with 9 additions and 2 deletions
|
@ -156,7 +156,9 @@ public class LSPFoldingRangeProvider extends CustomFoldingBuilder {
|
||||||
try {
|
try {
|
||||||
List<FoldingRange> foldingRanges = future.get(Timeout.getTimeout(Timeouts.FOLDING), TimeUnit.MILLISECONDS);
|
List<FoldingRange> foldingRanges = future.get(Timeout.getTimeout(Timeouts.FOLDING), TimeUnit.MILLISECONDS);
|
||||||
wrapper.notifySuccess(Timeouts.FOLDING);
|
wrapper.notifySuccess(Timeouts.FOLDING);
|
||||||
|
if (foldingRanges == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (FoldingRange foldingRange : foldingRanges) {
|
for (FoldingRange foldingRange : foldingRanges) {
|
||||||
int start = getStartOffset(editor, foldingRange, document);
|
int start = getStartOffset(editor, foldingRange, document);
|
||||||
int end = getEndOffset(editor, foldingRange, document);
|
int end = getEndOffset(editor, foldingRange, document);
|
||||||
|
|
|
@ -339,6 +339,9 @@ public class EditorEventManager {
|
||||||
Either<List<? extends Location>, List<? extends LocationLink>> definition =
|
Either<List<? extends Location>, List<? extends LocationLink>> definition =
|
||||||
request.get(Timeout.getTimeout(Timeouts.DEFINITION), TimeUnit.MILLISECONDS);
|
request.get(Timeout.getTimeout(Timeouts.DEFINITION), TimeUnit.MILLISECONDS);
|
||||||
wrapper.notifySuccess(Timeouts.DEFINITION);
|
wrapper.notifySuccess(Timeouts.DEFINITION);
|
||||||
|
if (definition == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
if (definition.isLeft() && !definition.getLeft().isEmpty()) {
|
if (definition.isLeft() && !definition.getLeft().isEmpty()) {
|
||||||
return definition.getLeft().get(0);
|
return definition.getLeft().get(0);
|
||||||
} else if (definition.isRight() && !definition.getRight().isEmpty()) {
|
} else if (definition.isRight() && !definition.getRight().isEmpty()) {
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
package com.falsepattern.zigbrains.lsp.utils;
|
package com.falsepattern.zigbrains.lsp.utils;
|
||||||
|
|
||||||
import com.intellij.openapi.application.ApplicationManager;
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
|
import com.intellij.openapi.application.ex.ApplicationManagerEx;
|
||||||
import com.intellij.openapi.project.NoAccessDuringPsiEvents;
|
import com.intellij.openapi.project.NoAccessDuringPsiEvents;
|
||||||
import com.intellij.openapi.util.Computable;
|
import com.intellij.openapi.util.Computable;
|
||||||
import com.intellij.openapi.util.Condition;
|
import com.intellij.openapi.util.Condition;
|
||||||
|
@ -51,7 +52,8 @@ public class ApplicationUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
static public <T> T computableReadAction(Computable<T> computable) {
|
static public <T> T computableReadAction(Computable<T> computable) {
|
||||||
if (ApplicationManager.getApplication().isDispatchThread()) {
|
if (ApplicationManager.getApplication().isDispatchThread() ||
|
||||||
|
ApplicationManagerEx.getApplicationEx().holdsReadLock()) {
|
||||||
return ApplicationManager.getApplication().runReadAction(computable);
|
return ApplicationManager.getApplication().runReadAction(computable);
|
||||||
} else {
|
} else {
|
||||||
var result = new Object() {
|
var result = new Object() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue