当前位置: 首页>>代码示例>>Java>>正文


Java DotNetPointerTypeRef类代码示例

本文整理汇总了Java中consulo.dotnet.resolve.DotNetPointerTypeRef的典型用法代码示例。如果您正苦于以下问题:Java DotNetPointerTypeRef类的具体用法?Java DotNetPointerTypeRef怎么用?Java DotNetPointerTypeRef使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DotNetPointerTypeRef类属于consulo.dotnet.resolve包,在下文中一共展示了DotNetPointerTypeRef类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: resolve

import consulo.dotnet.resolve.DotNetPointerTypeRef; //导入依赖的package包/类
@RequiredReadAction
@NotNull
@Override
public ResolveResult[] resolve(@NotNull CSharpIndexAccessExpressionImpl expression, boolean incompleteCode)
{
	DotNetExpression qualifier = expression.getQualifier();
	DotNetTypeRef typeRef = qualifier.toTypeRef(true);
	if(typeRef instanceof DotNetPointerTypeRef)
	{
		DotNetTypeRef innerTypeRef = ((DotNetPointerTypeRef) typeRef).getInnerTypeRef();

		CSharpLightIndexMethodDeclarationBuilder builder = new CSharpLightIndexMethodDeclarationBuilder(expression.getProject(), 0);
		builder.withReturnType(innerTypeRef);
		builder.addParameter(new CSharpLightParameterBuilder(expression.getProject()).withName("p").withTypeRef(new CSharpTypeRefByQName(expression, DotNetTypes.System.Int32)));
		return new ResolveResult[]{new CSharpResolveResult(builder)};
	}

	ResolveResult[] resolveResults = CSharpReferenceExpressionImplUtil.multiResolveImpl(CSharpReferenceExpression.ResolveToKind.ARRAY_METHOD, expression, expression, true);
	return !incompleteCode ? resolveResults : CSharpResolveUtil.filterValidResults(resolveResults);
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:21,代码来源:CSharpIndexAccessExpressionImpl.java

示例2: typeToDocName

import consulo.dotnet.resolve.DotNetPointerTypeRef; //导入依赖的package包/类
@RequiredReadAction
private String typeToDocName(PsiElement element, DotNetTypeRef typeRef)
{
	if(typeRef instanceof DotNetArrayTypeRef)
	{
		return typeToDocName(element, ((DotNetArrayTypeRef) typeRef).getInnerTypeRef()) + "[]";
	}
	else if(typeRef instanceof DotNetPointerTypeRef)
	{
		return typeToDocName(element, ((DotNetPointerTypeRef) typeRef).getInnerTypeRef()) + "*";
	}
	else
	{
		PsiElement resolve = typeRef.resolve().getElement();
		if(resolve == null)
		{
			return "<error>";
		}

		if(resolve instanceof DotNetGenericParameter)
		{
			DotNetGenericParameterListOwner generic = PsiTreeUtil.getParentOfType(resolve, DotNetGenericParameterListOwner.class);
			if(element == generic)
			{
				return "`" + ArrayUtil.indexOf(generic.getGenericParameters(), resolve);
			}
			else
			{
				// handle class parameter - in method
				return ((DotNetGenericParameter) resolve).getName();
			}
		}
		else
		{
			return getDocName0(resolve);
		}
	}
}
 
开发者ID:consulo,项目名称:consulo-dotnet,代码行数:39,代码来源:DefaultDocumentationResolver.java

示例3: normalizeType

import consulo.dotnet.resolve.DotNetPointerTypeRef; //导入依赖的package包/类
@NotNull
public PsiType normalizeType(DotNetTypeRef type)
{
	String qName = type.getQualifiedText();
	if(Comparing.equal(qName, "System.Void"))
	{
		return PsiType.VOID;
	}
	else if(Comparing.equal(qName, "System.Byte"))
	{
		return PsiType.BYTE;
	}
	else if(Comparing.equal(qName, "System.Int32"))
	{
		return PsiType.INT;
	}
	else if(Comparing.equal(qName, "System.Int16"))
	{
		return PsiType.SHORT;
	}
	else if(Comparing.equal(qName, "System.Boolean"))
	{
		return PsiType.BOOLEAN;
	}
	else if(Comparing.equal(qName, "System.Int64"))
	{
		return PsiType.LONG;
	}
	else if(Comparing.equal(qName, "System.Single"))
	{
		return PsiType.FLOAT;
	}
	else if(Comparing.equal(qName, "System.Double"))
	{
		return PsiType.DOUBLE;
	}
	else if(Comparing.equal(qName, "System.Char"))
	{
		return PsiType.CHAR;
	}
	else if(Comparing.equal(qName, "System.String"))
	{
		return fromQName(JavaClassNames.JAVA_LANG_STRING);
	}
	else if(Comparing.equal(qName, "System.Object"))
	{
		return fromQName(JavaClassNames.JAVA_LANG_OBJECT);
	}
	else if(type instanceof DotNetArrayTypeRef)
	{
		return new PsiArrayType(normalizeType(((DotNetArrayTypeRef) type).getInnerTypeRef()));
	}

	//TODO [VISTALL]
	if(type instanceof DotNetPointerTypeRef)
	{
		return fromText("Pointer");
	}
	else if(type == DotNetTypeRef.ERROR_TYPE)
	{
		return fromText("error");
	}
	String qualifiedText = type.getQualifiedText();

	if(Comparing.equal(qualifiedText, "<error>"))
	{
		return fromText("error");
	}
	qualifiedText = normalize(qualifiedText);

	return fromText(qualifiedText);
}
 
开发者ID:consulo,项目名称:consulo-ikvm,代码行数:73,代码来源:BaseStubBuilder.java

示例4: resolveElements

import consulo.dotnet.resolve.DotNetPointerTypeRef; //导入依赖的package包/类
@Nullable
@RequiredReadAction
private Set<PsiElement> resolveElements(@NotNull IElementType elementType, @NotNull DotNetTypeRef typeRef)
{
	if(typeRef instanceof DotNetPointerTypeRef)
	{
		if(elementType != CSharpTokens.PLUS && elementType != CSharpTokens.MINUS)
		{
			return Collections.emptySet();
		}
		Set<PsiElement> elements = new HashSet<>();
		for(String pointerArgumentType : ourPointerArgumentTypes)
		{
			elements.add(buildOperatorForPointer(elementType, typeRef, pointerArgumentType));
		}
		return elements;
	}
	else
	{
		DotNetTypeResolveResult typeResolveResult = typeRef.resolve();

		PsiElement element = typeResolveResult.getElement();
		if(element == null)
		{
			return null;
		}

		AsPsiElementProcessor psiElementProcessor = new AsPsiElementProcessor();
		MemberResolveScopeProcessor processor = new MemberResolveScopeProcessor(CSharpResolveOptions.build().element(this), psiElementProcessor, new ExecuteTarget[]{ExecuteTarget.ELEMENT_GROUP});

		ResolveState state = ResolveState.initial();
		state = state.put(CSharpResolveUtil.SELECTOR, new OperatorByTokenSelector(elementType));
		state = state.put(CSharpResolveUtil.EXTRACTOR, typeResolveResult.getGenericExtractor());
		CSharpResolveUtil.walkChildren(processor, element, false, true, state);

		Set<PsiElement> psiElements = psiElementProcessor.getElements();
		if(psiElements.isEmpty())
		{
			return null;
		}
		return psiElements;
	}
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:44,代码来源:CSharpOperatorReferenceImpl.java

示例5: generateLinksForType

import consulo.dotnet.resolve.DotNetPointerTypeRef; //导入依赖的package包/类
@RequiredReadAction
private static String generateLinksForType(DotNetTypeRef typeRef, PsiElement element, boolean qualified)
{
	StringBuilder builder = new StringBuilder();
	if(typeRef == DotNetTypeRef.AUTO_TYPE)
	{
		builder.append("var");
	}
	else if(typeRef instanceof DotNetArrayTypeRef)
	{
		builder.append(generateLinksForType(((DotNetArrayTypeRef) typeRef).getInnerTypeRef(), element, qualified));
		builder.append("[]");
	}
	else if(typeRef instanceof CSharpRefTypeRef)
	{
		builder.append(((CSharpRefTypeRef) typeRef).getType().name());
		builder.append(" ");
		builder.append(generateLinksForType(((CSharpRefTypeRef) typeRef).getInnerTypeRef(), element, qualified));
	}
	else if(typeRef instanceof DotNetPointerTypeRef)
	{
		builder.append(generateLinksForType(((DotNetPointerTypeRef) typeRef).getInnerTypeRef(), element, qualified));
		builder.append("*");
	}
	else
	{
		DotNetTypeResolveResult dotNetTypeResolveResult = typeRef.resolve();
		PsiElement resolved = dotNetTypeResolveResult.getElement();
		if(resolved instanceof DotNetQualifiedElement)
		{
			if(resolved instanceof DotNetGenericParameterListOwner)
			{
				wrapToLink(resolved, builder, qualified);

				DotNetGenericParameter[] genericParameters = ((DotNetGenericParameterListOwner) resolved).getGenericParameters();
				if(genericParameters.length > 0)
				{
					DotNetGenericExtractor genericExtractor = dotNetTypeResolveResult.getGenericExtractor();
					builder.append(XmlStringUtil.escapeString("<"));
					for(int i = 0; i < genericParameters.length; i++)
					{
						if(i != 0)
						{
							builder.append(", ");
						}
						DotNetGenericParameter parameter = genericParameters[i];

						DotNetTypeRef extractedTypeRef = genericExtractor.extract(parameter);
						if(extractedTypeRef != null)
						{
							builder.append(generateLinksForType(extractedTypeRef, element, qualified));
						}
						else
						{
							builder.append(parameter.getName());
						}
					}
					builder.append(XmlStringUtil.escapeString(">"));
				}
			}
			else
			{
				builder.append(((DotNetQualifiedElement) resolved).getName());
			}
		}
		else
		{
			builder.append(CSharpTypeRefPresentationUtil.buildShortText(typeRef, element));
		}
	}

	return builder.toString();
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:74,代码来源:CSharpDocumentationProvider.java


注:本文中的consulo.dotnet.resolve.DotNetPointerTypeRef类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。