mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
cleanup
This commit is contained in:
@@ -53,7 +53,7 @@ public abstract class SourcePosition implements Navigatable{
|
||||
public abstract Editor openEditor(boolean requestFocus);
|
||||
|
||||
private abstract static class SourcePositionCache extends SourcePosition {
|
||||
private final @NotNull PsiFile myFile;
|
||||
@NotNull private final PsiFile myFile;
|
||||
private long myModificationStamp = -1L;
|
||||
|
||||
private PsiElement myPsiElement;
|
||||
@@ -65,21 +65,26 @@ public abstract class SourcePosition implements Navigatable{
|
||||
updateData();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public PsiFile getFile() {
|
||||
return myFile;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canNavigate() {
|
||||
return getFile().isValid();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canNavigateToSource() {
|
||||
return canNavigate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void navigate(final boolean requestFocus) {
|
||||
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (!canNavigate()) {
|
||||
return;
|
||||
@@ -89,6 +94,7 @@ public abstract class SourcePosition implements Navigatable{
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public Editor openEditor(final boolean requestFocus) {
|
||||
final PsiFile psiFile = getFile();
|
||||
final Project project = psiFile.getProject();
|
||||
@@ -120,12 +126,10 @@ public abstract class SourcePosition implements Navigatable{
|
||||
return true;
|
||||
}
|
||||
final PsiElement psiElement = myPsiElement;
|
||||
if (psiElement != null && !psiElement.isValid()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return psiElement != null && !psiElement.isValid();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLine() {
|
||||
updateData();
|
||||
if (myLine == null) {
|
||||
@@ -134,6 +138,7 @@ public abstract class SourcePosition implements Navigatable{
|
||||
return myLine.intValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
updateData();
|
||||
if (myOffset == null) {
|
||||
@@ -142,6 +147,7 @@ public abstract class SourcePosition implements Navigatable{
|
||||
return myOffset.intValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiElement getElementAt() {
|
||||
updateData();
|
||||
if (myPsiElement == null) {
|
||||
@@ -198,8 +204,6 @@ public abstract class SourcePosition implements Navigatable{
|
||||
return null;
|
||||
}
|
||||
|
||||
PsiElement element;
|
||||
|
||||
PsiElement rootElement = psiFile;
|
||||
|
||||
List<PsiFile> allFiles = psiFile.getViewProvider().getAllFiles();
|
||||
@@ -213,6 +217,7 @@ public abstract class SourcePosition implements Navigatable{
|
||||
}
|
||||
}
|
||||
|
||||
PsiElement element;
|
||||
while(true) {
|
||||
final CharSequence charsSequence = document.getCharsSequence();
|
||||
for (; startOffset < charsSequence.length(); startOffset++) {
|
||||
@@ -240,6 +245,7 @@ public abstract class SourcePosition implements Navigatable{
|
||||
|
||||
public static SourcePosition createFromLineComputable(final PsiFile file, final Computable<Integer> line) {
|
||||
return new SourcePositionCache(file) {
|
||||
@Override
|
||||
protected int calcLine() {
|
||||
return line.compute();
|
||||
}
|
||||
@@ -248,6 +254,7 @@ public abstract class SourcePosition implements Navigatable{
|
||||
|
||||
public static SourcePosition createFromLine(final PsiFile file, final int line) {
|
||||
return new SourcePositionCache(file) {
|
||||
@Override
|
||||
protected int calcLine() {
|
||||
return line;
|
||||
}
|
||||
@@ -257,6 +264,7 @@ public abstract class SourcePosition implements Navigatable{
|
||||
public static SourcePosition createFromOffset(final PsiFile file, final int offset) {
|
||||
return new SourcePositionCache(file) {
|
||||
|
||||
@Override
|
||||
protected int calcOffset() {
|
||||
return offset;
|
||||
}
|
||||
@@ -273,10 +281,12 @@ public abstract class SourcePosition implements Navigatable{
|
||||
psiFile = navigationElement.getContainingFile();
|
||||
}
|
||||
return new SourcePositionCache(psiFile) {
|
||||
@Override
|
||||
protected PsiElement calcPsiElement() {
|
||||
return navigationElement;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int calcOffset() {
|
||||
return navigationElement.getTextOffset();
|
||||
}
|
||||
@@ -285,7 +295,7 @@ public abstract class SourcePosition implements Navigatable{
|
||||
|
||||
public boolean equals(Object o) {
|
||||
if(o instanceof SourcePosition) {
|
||||
SourcePosition sourcePosition = ((SourcePosition)o);
|
||||
SourcePosition sourcePosition = (SourcePosition)o;
|
||||
return Comparing.equal(sourcePosition.getFile(), getFile()) && sourcePosition.getOffset() == getOffset();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user