mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
IDEA-379747 Display injected beans in Spring Components code
testing inlays in debugger test setup (cherry picked from commit 3abb74b439c2bd1776b27685c225158e932c4a42) IJ-CR-194014 GitOrigin-RevId: adeb52d3ed7e279bef32d9070860c829e2717d2d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ad0589d8da
commit
320aed5027
@@ -1,6 +1,7 @@
|
||||
// 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.testFramework.fixtures;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.testFramework.LightProjectDescriptor;
|
||||
import com.intellij.testFramework.builders.ModuleFixtureBuilder;
|
||||
import com.intellij.testFramework.fixtures.impl.IdeaTestFixtureFactoryImpl;
|
||||
@@ -55,4 +56,7 @@ public abstract class IdeaTestFixtureFactory {
|
||||
public abstract @NotNull TempDirTestFixture createTempDirTestFixture();
|
||||
|
||||
public abstract @NotNull BareTestFixture createBareFixture();
|
||||
|
||||
public abstract @NotNull CodeInsightTestFixture createCodeInsightFixtureForExistingProject(@NotNull Project project);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
// 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.testFramework.fixtures.impl;
|
||||
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.testFramework.LightProjectDescriptor;
|
||||
import com.intellij.testFramework.builders.EmptyModuleFixtureBuilder;
|
||||
import com.intellij.testFramework.builders.ModuleFixtureBuilder;
|
||||
@@ -94,6 +97,28 @@ public final class IdeaTestFixtureFactoryImpl extends IdeaTestFixtureFactory {
|
||||
return new BareTestFixtureImpl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull CodeInsightTestFixture createCodeInsightFixtureForExistingProject(@NotNull Project project) {
|
||||
IdeaProjectTestFixture projectTestFixture = new IdeaProjectTestFixture() {
|
||||
@Override
|
||||
public Project getProject() {
|
||||
return project;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Module getModule() {
|
||||
return ModuleManager.getInstance(project).getModules()[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUp() {}
|
||||
|
||||
@Override
|
||||
public void tearDown() {}
|
||||
};
|
||||
return new CodeInsightTestFixtureImpl(projectTestFixture, new TempDirTestFixtureImpl());
|
||||
}
|
||||
|
||||
public static final class MyEmptyModuleFixtureBuilderImpl extends EmptyModuleFixtureBuilderImpl {
|
||||
public MyEmptyModuleFixtureBuilderImpl(@NotNull TestFixtureBuilder<? extends IdeaProjectTestFixture> testFixtureBuilder) {
|
||||
super(testFixtureBuilder);
|
||||
|
||||
@@ -18,7 +18,7 @@ import org.junit.Assert.assertFalse
|
||||
import java.util.regex.Pattern
|
||||
|
||||
|
||||
class InlayHintsChecker(private val myFixture: CodeInsightTestFixture) {
|
||||
open class InlayHintsChecker(private val myFixture: CodeInsightTestFixture) {
|
||||
|
||||
companion object {
|
||||
val pattern: Pattern = Pattern.compile("(<caret>)|(<selection>)|(</selection>)|<(hint|HINT|Hint|hINT)\\s+text=\"([^\n\r]+?(?=\"\\s*/>))\"\\s*/>")
|
||||
@@ -126,11 +126,13 @@ class InlayHintsChecker(private val myFixture: CodeInsightTestFixture) {
|
||||
isHighlighted = false
|
||||
isCurrent = false
|
||||
}
|
||||
InlayInfo(it.offset, inlayPresenter(it), isHighlighted, isCurrent)
|
||||
InlayInfo(getInlayOffset(it), inlayPresenter(it), isHighlighted, isCurrent)
|
||||
}
|
||||
.sortedBy { it.offset }
|
||||
}
|
||||
|
||||
protected open fun getInlayOffset(inlay: Inlay<*>): Int = inlay.offset
|
||||
|
||||
fun extractInlaysAndCaretInfo(document: Document): CaretAndInlaysInfo {
|
||||
val text = document.text
|
||||
val matcher = pattern.matcher(text)
|
||||
|
||||
Reference in New Issue
Block a user