类com.intellij.psi.SmartPointerManager源码实例Demo

下面列出了怎么用com.intellij.psi.SmartPointerManager的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: consulo   文件: LocalQuickFixOnPsiElement.java
public LocalQuickFixOnPsiElement(PsiElement startElement, PsiElement endElement) {
  if (startElement == null || endElement == null) {
    myStartElement = myEndElement = null;
    return;
  }
  LOG.assertTrue(startElement.isValid());
  PsiFile startContainingFile = startElement.getContainingFile();
  PsiFile endContainingFile = startElement == endElement ? startContainingFile : endElement.getContainingFile();
  if (startElement != endElement) {
    LOG.assertTrue(endElement.isValid());
    LOG.assertTrue(startContainingFile == endContainingFile, "Both elements must be from the same file");
  }
  Project project = startContainingFile == null ? startElement.getProject() : startContainingFile.getProject(); // containingFile can be null for a directory
  myStartElement = SmartPointerManager.getInstance(project).createSmartPsiElementPointer(startElement, startContainingFile);
  myEndElement = endElement == startElement ? null : SmartPointerManager.getInstance(project).createSmartPsiElementPointer(endElement, endContainingFile);
}
 
源代码2 项目: consulo   文件: LineMarkerInfo.java
/**
 * Creates a line marker info for the element.
 *
 * @param element         the element for which the line marker is created.
 * @param range           the range (relative to beginning of file) with which the marker is associated
 * @param icon            the icon to show in the gutter for the line marker
 * @param updatePass      the ID of the daemon pass during which the marker should be recalculated
 * @param tooltipProvider the callback to calculate the tooltip for the gutter icon
 * @param navHandler      the handler executed when the gutter icon is clicked
 */
public LineMarkerInfo(@Nonnull T element,
                      @Nonnull TextRange range,
                      Image icon,
                      int updatePass,
                      @Nullable Function<? super T, String> tooltipProvider,
                      @Nullable GutterIconNavigationHandler<T> navHandler,
                      @Nonnull GutterIconRenderer.Alignment alignment) {
  myIcon = icon;
  myTooltipProvider = tooltipProvider;
  myIconAlignment = alignment;
  elementRef = SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);
  myNavigationHandler = navHandler;
  startOffset = range.getStartOffset();
  endOffset = range.getEndOffset();
  this.updatePass = 11; //Pass.LINE_MARKERS;
}
 
源代码3 项目: consulo   文件: ElementCreator.java
public PsiElement[] tryCreate(@Nonnull final String inputString) {
  if (inputString.length() == 0) {
    Messages.showMessageDialog(myProject, IdeBundle.message("error.name.should.be.specified"), CommonBundle.getErrorTitle(), Messages.getErrorIcon());
    return PsiElement.EMPTY_ARRAY;
  }

  Ref<List<SmartPsiElementPointer>> createdElements = Ref.create();
  Exception exception = executeCommand(getActionName(inputString), () -> {
    PsiElement[] psiElements = create(inputString);
    SmartPointerManager manager = SmartPointerManager.getInstance(myProject);
    createdElements.set(ContainerUtil.map(psiElements, manager::createSmartPsiElementPointer));
  });
  if (exception != null) {
    handleException(exception);
    return PsiElement.EMPTY_ARRAY;
  }

  return ContainerUtil.mapNotNull(createdElements.get(), SmartPsiElementPointer::getElement).toArray(PsiElement.EMPTY_ARRAY);
}
 
源代码4 项目: consulo   文件: UsageHolder.java
public UsageHolder(PsiElement element, UsageInfo[] usageInfos) {
  Project project = element.getProject();
  myElementPointer = SmartPointerManager.getInstance(project).createSmartPsiElementPointer(element);

  GeneratedSourcesFilter[] filters = GeneratedSourcesFilter.EP_NAME.getExtensions();
  for (UsageInfo usageInfo : usageInfos) {
    if (!(usageInfo instanceof SafeDeleteReferenceUsageInfo)) continue;
    final SafeDeleteReferenceUsageInfo usage = (SafeDeleteReferenceUsageInfo)usageInfo;
    if (usage.getReferencedElement() != element) continue;

    if (!usage.isSafeDelete()) {
      myUnsafeUsages++;
      if (usage.isNonCodeUsage || isInGeneratedCode(usage, project, filters)) {
        myNonCodeUnsafeUsages++;
      }
    }
  }
}
 
源代码5 项目: dbunit-extractor   文件: QueryToXMLConverter.java
@Nullable
private SmartPsiElementPointer<SqlSelectStatement> getStatementPointer(final @NotNull Project project,
                                                                       final @NotNull PsiElement psiElement) {
    final SqlSelectStatement sqlSelectStatement =
            PsiTreeUtil.getParentOfType(psiElement.getContainingFile().findElementAt(psiElement.getTextOffset()),
                                        SqlSelectStatement.class);
    SmartPsiElementPointer<SqlSelectStatement> pointer = null;
    if (sqlSelectStatement != null) {
        pointer = SmartPointerManager.getInstance(project)
                                     .createSmartPsiElementPointer(sqlSelectStatement);
    }
    return pointer;
}
 
源代码6 项目: consulo-csharp   文件: ReplaceTypeQuickFix.java
public ReplaceTypeQuickFix(@Nonnull DotNetType type, @Nonnull DotNetTypeRef typeRef)
{
	myPointer = SmartPointerManager.getInstance(type.getProject()).createSmartPsiElementPointer(type);

	myTypeText = CSharpTypeRefPresentationUtil.buildShortText(typeRef, type);
	setText("Replace '" + type.getText() + "' by '" + myTypeText + "'");
}
 
源代码7 项目: consulo   文件: PsiElementUsageGroupBase.java
public PsiElementUsageGroupBase(@Nonnull T element, Image icon) {
  String myName = element.getName();
  if (myName == null) myName = "<anonymous>";
  this.myName = myName;
  myElementPointer = SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);

  myIcon = icon;
}
 
源代码8 项目: consulo   文件: UsageInfoToUsageConverter.java
@Nonnull
private static List<SmartPsiElementPointer<PsiElement>> convertToSmartPointers(@Nonnull PsiElement[] primaryElements) {
  if (primaryElements.length == 0) return Collections.emptyList();

  final SmartPointerManager smartPointerManager = SmartPointerManager.getInstance(primaryElements[0].getProject());
  return ContainerUtil.mapNotNull(primaryElements, new Function<PsiElement, SmartPsiElementPointer<PsiElement>>() {
    @Override
    public SmartPsiElementPointer<PsiElement> fun(final PsiElement s) {
      return smartPointerManager.createSmartPsiElementPointer(s);
    }
  });
}
 
源代码9 项目: consulo   文件: DocumentationComponent.java
public void setData(@Nullable PsiElement element, @Nonnull String text, @Nullable String effectiveExternalUrl, @Nullable String ref, @Nullable DocumentationProvider provider) {
  pushHistory();
  myExternalUrl = effectiveExternalUrl;
  myProvider = provider;

  SmartPsiElementPointer<PsiElement> pointer = null;
  if (element != null && element.isValid()) {
    pointer = SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);
  }
  setDataInternal(pointer, text, new Rectangle(0, 0), ref);
}
 
源代码10 项目: consulo   文件: PsiTreeAnchorizer.java
@Nonnull
@Override
public Object createAnchor(@Nonnull Object element) {
  if (element instanceof PsiElement) {
    PsiElement psi = (PsiElement)element;
    return ReadAction.compute(() -> {
      if (!psi.isValid()) return psi;
      return SmartPointerManager.getInstance(psi.getProject()).createSmartPsiElementPointer(psi);
    });
  }
  return super.createAnchor(element);
}
 
源代码11 项目: consulo   文件: PsiTreeAnchorizer.java
@Override
public void freeAnchor(final Object element) {
  if (element instanceof SmartPsiElementPointer) {
    ApplicationManager.getApplication().runReadAction(() -> {
      SmartPsiElementPointer pointer = (SmartPsiElementPointer)element;
      Project project = pointer.getProject();
      if (!project.isDisposed()) {
        SmartPointerManager.getInstance(project).removePointer(pointer);
      }
    });
  }
}
 
源代码12 项目: consulo   文件: BasePsiNode.java
public BasePsiNode(final T element) {
  super(element.getProject());
  if (element.isValid()) {
    myPsiElementPointer = SmartPointerManager.getInstance(myProject).createSmartPsiElementPointer(element);
  }
  else {
    myPsiElementPointer = null;
  }
}
 
源代码13 项目: consulo   文件: InplaceVariableIntroducer.java
public MyIntroduceLookupExpression(final String initialName,
                                   final LinkedHashSet<String> names,
                                   final PsiNamedElement elementToRename,
                                   final boolean shouldSelectAll,
                                   final String advertisementText) {
  super(initialName, names, elementToRename, elementToRename, shouldSelectAll, advertisementText);
  myPointer = SmartPointerManager.getInstance(elementToRename.getProject()).createSmartPsiElementPointer(elementToRename);
}
 
public CreateInjectorQuickFix(@NotNull PhpDocTag element) {
    this.element = SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);
}
 
public CamelCaseFixAction(@NotNull SQFPsiCommand command) {
	this.commandPointer = SmartPointerManager.getInstance(command.getProject()).createSmartPsiElementPointer(command);
}
 
public CamelCaseFixAction(@NotNull SQFPsiCommand command) {
	this.commandPointer = SmartPointerManager.getInstance(command.getProject()).createSmartPsiElementPointer(command);
}
 
public RegisterShebangCommandQuickfix(FixShebangInspection fixShebangInspection, BashShebang shebang) {
    this.inspection = fixShebangInspection;

    Project project = shebang.getProject();
    this.shebang = SmartPointerManager.getInstance(project).createSmartPsiElementPointer(shebang);
}
 
public ReferenceDiagramDataModel(Project project, DiagramProvider<PsiElement> provider) {
    super(project, provider);
    this.spManager = SmartPointerManager.getInstance(getProject());
}
 
public ConvertNamedToSimpleArgumentFix(CSharpNamedCallArgument element)
{
	setText("Convert to simple argument");
	myPointer = SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);
}
 
源代码20 项目: consulo-csharp   文件: RemoveVariableInitializer.java
public RemoveVariableInitializer(DotNetVariable variable)
{
	myPointer = SmartPointerManager.getInstance(variable.getProject()).createSmartPsiElementPointer(variable);
	setText(variable instanceof DotNetParameter ? "Remove initializer" : "Remove default value");
}
 
public ChangeVariableToTypeRefFix(@Nonnull DotNetVariable element, @Nonnull DotNetTypeRef toTypeRef)
{
	myVariablePointer = SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);
	myToTypeRef = toTypeRef;
}
 
源代码22 项目: consulo-csharp   文件: BaseModifierFix.java
public BaseModifierFix(DotNetModifier[] modifiers, DotNetModifierListOwner parent)
{
	myModifiers = modifiers;
	myModifierElementOwnerPointer = SmartPointerManager.getInstance(parent.getProject()).createSmartPsiElementPointer(parent);
}
 
源代码23 项目: consulo-csharp   文件: ChangeReturnToTypeRefFix.java
public ChangeReturnToTypeRefFix(@Nonnull DotNetLikeMethodDeclaration element, @Nonnull DotNetTypeRef toTypeRef)
{
	myMethodPointer = SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);
	myToTypeRef = toTypeRef;
}
 
源代码24 项目: consulo-csharp   文件: UsingNamespaceFix.java
public UsingNamespaceFix(@Nonnull CSharpReferenceExpression ref)
{
	myRefPointer = SmartPointerManager.getInstance(ref.getProject()).createSmartPsiElementPointer(ref);
}
 
源代码25 项目: consulo-csharp   文件: CastExpressionToTypeRef.java
public CastExpressionToTypeRef(@Nonnull DotNetExpression expression, @Nonnull DotNetTypeRef expectedTypeRef)
{
	myExpressionPointer = SmartPointerManager.getInstance(expression.getProject()).createSmartPsiElementPointer(expression);
	myExpectedTypeRef = expectedTypeRef;
}
 
源代码26 项目: consulo-csharp   文件: CSharpBaseGroupingRule.java
public CSharpBaseGroupingRule(T pointer)
{
	myPointer = SmartPointerManager.getInstance(pointer.getProject()).createSmartPsiElementPointer(pointer);
}
 
源代码27 项目: consulo-csharp   文件: CS0145.java
public RemoveConstKeywordFix(DotNetVariable element)
{
	myVariablePointer = SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);
	setText("Remove 'const' keyword");
}
 
源代码28 项目: consulo-csharp   文件: CS0145.java
public InitializeConstantFix(DotNetVariable element)
{
	myVariablePointer = SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);
}
 
源代码29 项目: consulo-csharp   文件: CS1614.java
public BaseUseTypeFix(CSharpReferenceExpressionEx referenceExpression, CSharpTypeDeclaration typeDeclaration)
{
	myPointer = SmartPointerManager.getInstance(referenceExpression.getProject()).createSmartPsiElementPointer(referenceExpression);

	setText("Use '" + typeDeclaration.getPresentableQName() + "'");
}
 
源代码30 项目: consulo-csharp   文件: CS0702.java
public ReplaceConstraintFix(CSharpGenericConstraintTypeValue declaration, String keywordForReplace)
{
	myKeywordForReplace = keywordForReplace;
	myPointer = SmartPointerManager.getInstance(declaration.getProject()).createSmartPsiElementPointer(declaration);
}
 
 类所在包
 同包方法