package jetbrains.mps.ide.editor.resolver; /*Generated by MPS */ import jetbrains.mps.resolve.IResolver; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.NotNull; import org.jetbrains.mps.openapi.model.SReference; import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.module.SRepository; import jetbrains.mps.resolve.ReferenceResolverUtils; import jetbrains.mps.editor.runtime.HeadlessEditorComponent; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import typesystemIntegration.languageChecker.EditorBasedReferenceResolverUtils; public class EditorResolver implements IResolver { public EditorResolver() { } @Nullable @Override public boolean resolve(@NotNull SReference reference, @NotNull SNode sourceNode, @NotNull SRepository repository) { final String resolveInfo = ReferenceResolverUtils.getResolveInfo(reference, sourceNode); if (resolveInfo == null) { return false; } final HeadlessEditorComponent headlessEditor = new HeadlessEditorComponent(SNodeOperations.getContainingRoot(sourceNode), repository); try { return EditorBasedReferenceResolverUtils.resolveInEditor(headlessEditor, sourceNode, resolveInfo, reference.getRole()); } finally { headlessEditor.dispose(); } } }