@Nullable @Override public PsiElement findElementAt(@NonNull JavaContext context, int offset) { PsiJavaFile javaFile = context.getJavaFile(); return javaFile != null ? EcjPsiManager.findElementAt(javaFile, offset) : null; }
PsiJavaFile file = javaContext.getJavaFile(); if (file != null) { PsiElement closest = javaContext.getParser().findElementAt(javaContext, i);
/** * Returns a {@link Location} for the given element * * @param context information about the file being parsed * @param element the element to create a location for * @return a location for the given node */ @SuppressWarnings("MethodMayBeStatic") // subclasses may want to override/optimize @NonNull public Location getLocation(@NonNull JavaContext context, @NonNull PsiElement element) { TextRange range = element.getTextRange(); PsiFile containingFile = element.getContainingFile(); File file = context.file; CharSequence contents = context.getContents(); if (containingFile != context.getJavaFile()) { // Reporting an error in a different file. if (context.getDriver().getScope().size() == 1) { // Don't bother with this error if it's in a different file during single-file analysis return Location.NONE; } File ioFile = getFile(containingFile); if (ioFile == null) { return Location.NONE; } file = ioFile; contents = getFileContents(containingFile); } return Location.create(file, contents, range.getStartOffset(), range.getEndOffset()); }