PsiUtilBase.originalElement => CompletionUtil.originalElement

This commit is contained in:
peter
2011-08-04 13:09:21 +02:00
parent 0bc323d0f4
commit fdd1141a80
3 changed files with 16 additions and 12 deletions
@@ -229,7 +229,11 @@ public class CompletionUtil {
@Nullable
private static Integer translateOffset(int offset, DocumentEvent event) {
if (event.getOffset() < offset && offset < event.getNewLength()) {
if (event.getOffset() < offset && offset < event.getOffset() + event.getNewLength()) {
if (event.getOldLength() == 0) {
return event.getOffset();
}
return null;
}
@@ -255,24 +259,24 @@ public class CompletionUtil {
public static <T extends PsiElement> T getOriginalElement(@NotNull T psi) {
final PsiFile file = psi.getContainingFile();
if (file != null && file != file.getOriginalFile()) {
TextRange range = psi.getTextRange();
Integer start = range.getStartOffset();
Integer end = range.getEndOffset();
final Document document = file.getViewProvider().getDocument();
if (document != null) {
final List<DocumentEvent> translator = document.getUserData(RANGE_TRANSLATION);
if (translator != null) {
TextRange range = psi.getTextRange();
Integer start = range.getStartOffset();
Integer end = range.getEndOffset();
for (DocumentEvent event : translator) {
start = translateOffset(range.getStartOffset(), event);
end = translateOffset(range.getEndOffset(), event);
start = translateOffset(start, event);
end = translateOffset(end, event);
if (start == null || end == null) {
return null;
}
}
return (T)PsiTreeUtil.findElementOfClassAtRange(file.getOriginalFile(), start, end, psi.getClass());
}
}
//noinspection unchecked
return (T)PsiTreeUtil.findElementOfClassAtRange(file.getOriginalFile(), start, end, psi.getClass());
}
return psi;
@@ -16,6 +16,7 @@
package org.intellij.plugins.intelliLang.inject;
import com.intellij.codeInsight.completion.CompletionUtil;
import com.intellij.lang.injection.MultiHostInjector;
import com.intellij.lang.injection.MultiHostRegistrar;
import com.intellij.openapi.diagnostic.Logger;
@@ -24,7 +25,6 @@ import com.intellij.psi.ElementManipulator;
import com.intellij.psi.ElementManipulators;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiLanguageInjectionHost;
import com.intellij.psi.util.PsiUtilBase;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
@@ -50,7 +50,7 @@ public class TemporaryPlacesInjector implements MultiHostInjector {
public void getLanguagesToInject(@NotNull final MultiHostRegistrar registrar, @NotNull final PsiElement context) {
final PsiLanguageInjectionHost host = (PsiLanguageInjectionHost)context;
final PsiLanguageInjectionHost originalHost = PsiUtilBase.getOriginalElement(host, host.getClass());
final PsiLanguageInjectionHost originalHost = CompletionUtil.getOriginalElement(host);
final List<TemporaryPlacesRegistry.TemporaryPlace> list = myRegistry.getTempInjectionsSafe(originalHost);
if (list.isEmpty()) return;
final ElementManipulator<PsiLanguageInjectionHost> manipulator = ElementManipulators.getManipulator(host);
@@ -15,6 +15,7 @@
*/
package com.intellij.psi.impl.source.resolve.reference.impl.providers;
import com.intellij.codeInsight.completion.CompletionUtil;
import com.intellij.codeInsight.daemon.EmptyResolveMessageProvider;
import com.intellij.codeInspection.LocalQuickFix;
import com.intellij.codeInspection.LocalQuickFixProvider;
@@ -27,7 +28,6 @@ import com.intellij.psi.impl.source.xml.XmlEntityRefImpl;
import com.intellij.psi.meta.PsiMetaData;
import com.intellij.psi.templateLanguages.TemplateLanguageFileViewProvider;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtilBase;
import com.intellij.psi.xml.*;
import com.intellij.util.ArrayUtil;
import com.intellij.util.IncorrectOperationException;
@@ -147,7 +147,7 @@ public class DtdReferencesProvider extends PsiReferenceProvider {
@Nullable
private static XmlNSDescriptor getNsDescriptor(XmlElement element) {
final XmlElement parentThatProvidesMetaData = PsiTreeUtil.getParentOfType(
PsiUtilBase.getOriginalElement(element, element.getClass()),
CompletionUtil.getOriginalElement(element),
XmlDocument.class,
XmlMarkupDecl.class
);