mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
follow up on IJ-CR-183248
GitOrigin-RevId: 12861b2510d3b76e30b83d7bb60250ffb9f78535
This commit is contained in:
committed by
intellij-monorepo-bot
parent
1e1c2e28c9
commit
9a8cd1e52d
@@ -24,7 +24,7 @@ public class RegExpParsingTest extends ParsingTestCase {
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
project.registerService(SmartPointerManager.class, new MockSmartPointerManager());
|
||||
project.registerService(SmartPointerManager.class, new MockSmartPointerManager(project));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+9
-1
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.psi.impl.smartPointers;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.event.DocumentEvent;
|
||||
import com.intellij.openapi.editor.impl.FrozenDocument;
|
||||
@@ -16,8 +17,15 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* All implementers of {@link SmartPointerManager} should extend this class.
|
||||
* One should not downcast {@link SmartPointerManager} to {@link SmartPointerManagerImpl}.
|
||||
* Even though these methods are solely used by smart pointer implementations,
|
||||
* this abstract class is necessary for Analyzer to be able to redirect them to the right SmartPointerManagerImpl.
|
||||
* The lifetimes of smart pointers and the actual SmartPointerManagerImpl may differ.
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
public abstract class SmartPointerManagerEx extends SmartPointerManager {
|
||||
public abstract class SmartPointerManagerEx extends SmartPointerManager implements Disposable {
|
||||
public abstract void fastenBelts(@NotNull VirtualFile file);
|
||||
|
||||
public abstract @NotNull <E extends PsiElement> SmartPsiElementPointer<E> createSmartPsiElementPointer(@NotNull E element,
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
import static com.intellij.reference.SoftReference.dereference;
|
||||
|
||||
public final class SmartPointerManagerImpl extends SmartPointerManagerEx implements Disposable {
|
||||
public final class SmartPointerManagerImpl extends SmartPointerManagerEx {
|
||||
private static final Logger LOG = Logger.getInstance(SmartPointerManagerImpl.class);
|
||||
private final Project myProject;
|
||||
private final PsiDocumentManagerEx myPsiDocManager;
|
||||
|
||||
@@ -1,16 +1,30 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.mock;
|
||||
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.event.DocumentEvent;
|
||||
import com.intellij.openapi.editor.impl.FrozenDocument;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Segment;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.PsiDocumentManagerEx;
|
||||
import com.intellij.psi.impl.smartPointers.SmartPointerManagerEx;
|
||||
import com.intellij.psi.impl.smartPointers.SmartPointerTracker;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class MockSmartPointerManager extends SmartPointerManager {
|
||||
import java.util.List;
|
||||
|
||||
public class MockSmartPointerManager extends SmartPointerManagerEx {
|
||||
private final Project myProject;
|
||||
|
||||
public MockSmartPointerManager(@NotNull Project project) {
|
||||
myProject = project;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull SmartPsiFileRange createSmartPsiFileRangePointer(@NotNull PsiFile psiFile, @NotNull TextRange range) {
|
||||
throw new IncorrectOperationException();
|
||||
@@ -65,4 +79,51 @@ public class MockSmartPointerManager extends SmartPointerManager {
|
||||
public void removePointer(@NotNull SmartPsiElementPointer<?> pointer) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fastenBelts(@NotNull VirtualFile file) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull <E extends PsiElement> SmartPsiElementPointer<E> createSmartPsiElementPointer(@NotNull E element,
|
||||
PsiFile containingFile,
|
||||
boolean forInjected) {
|
||||
return createSmartPsiElementPointer(element);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull SmartPsiFileRange createSmartPsiFileRangePointer(@NotNull PsiFile file, @NotNull TextRange range, boolean forInjected) {
|
||||
throw new UnsupportedOperationException("createSmartPsiFileRangePointer not implemented in mock");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable SmartPointerTracker getTracker(@NotNull VirtualFile file) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePointers(@NotNull Document document, @NotNull FrozenDocument frozen, @NotNull List<? extends DocumentEvent> events) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePointerTargetsAfterReparse(@NotNull VirtualFile file) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Project getProject() {
|
||||
return myProject;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull PsiDocumentManagerEx getPsiDocumentManager() {
|
||||
return (PsiDocumentManagerEx)PsiDocumentManager.getInstance(myProject);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user