下面列出了com.intellij.psi.stubs.IStubElementType#com.intellij.util.io.StringRef 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@NotNull
public PsiLetStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
StringRef name = dataStream.readName();
String qname = dataStream.readUTFFast();
boolean isFunction = dataStream.readBoolean();
List<String> deconstructionNames = new ArrayList<>();
byte namesCount = dataStream.readByte();
if (namesCount > 0) {
for (int i = 0; i < namesCount; i++) {
deconstructionNames.add(dataStream.readUTFFast());
}
}
String alias = null;
boolean isAlias = dataStream.readBoolean();
if (isAlias) {
alias = dataStream.readUTFFast();
}
return new PsiLetStub(parentStub, this, name, qname, alias, isFunction, deconstructionNames);
}
public BashIncludeCommandStub createStub(@NotNull BashIncludeCommand psi, StubElement parentStub) {
BashFileReference fileReference = psi.getFileReference();
String filename = null;
String includer = null;
if (fileReference != null && fileReference.isStatic()) {
filename = fileReference.getFilename();
if (filename.contains("/") && !filename.endsWith("/")) {
int index = filename.lastIndexOf("/");
filename = filename.substring(index + 1);
}
VirtualFile virtualFile = psi.getContainingFile().getUserData(IndexingDataKeys.VIRTUAL_FILE);
if (virtualFile == null) {
virtualFile = psi.getContainingFile().getViewProvider().getVirtualFile();
}
includer = virtualFile.getPath();
}
return new BashIncludeCommandStubImpl(parentStub, StringRef.fromString(filename), StringRef.fromString(includer), BashElementTypes.INCLUDE_COMMAND_ELEMENT);
}
@Nonnull
@Override
public CSharpVariableDeclStub<V> deserialize(@Nonnull StubInputStream stubInputStream, StubElement stubElement) throws IOException
{
int otherModifierMask = stubInputStream.readVarInt();
String parentQName = null;
if(supportsParentQName())
{
parentQName = StringRef.toString(stubInputStream.readName());
}
String initializerText = null;
if(supportsInitializer(otherModifierMask))
{
initializerText = StringRef.toString(stubInputStream.readName());
}
return new CSharpVariableDeclStub<>(stubElement, this, parentQName, otherModifierMask, initializerText);
}
@Nullable
public static QualifiedName deserialize(StubInputStream dataStream) throws IOException {
QualifiedName qName;
int size = dataStream.readVarInt();
if (size == 0) {
qName = null;
}
else {
qName = new QualifiedName(size);
for (int i = 0; i < size; i++) {
final StringRef name = dataStream.readName();
qName.myComponents.add(name == null ? null : name.getString());
}
}
return qName;
}
public PsiLetStub(StubElement parent, @NotNull IStubElementType elementType, StringRef name, String qname, String alias, boolean isFunction, List<String> deconstructionNames) {
super(parent, elementType, name);
m_qname = qname;
m_alias = alias;
m_isFunction = isFunction;
m_deconstructionNames = deconstructionNames;
}
public PsiModuleStub(StubElement parent, @NotNull IStubElementType elementType, @Nullable StringRef name, @Nullable String path, String alias,
boolean isComponent, boolean isInterface) {
super(parent, elementType, name);
m_path = path;
m_qname = path == null || path.length() == 0 ? "" + name : path + "." + name;
m_alias = alias;
m_isComponent = isComponent;
m_isInterface = isInterface;
}
@NotNull
public PsiValStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
StringRef name = dataStream.readName();
String path = dataStream.readUTFFast();
boolean isFunction = dataStream.readBoolean();
return new PsiValStub(parentStub, this, name, path, isFunction);
}
@NotNull
public PsiExceptionStub deserialize(@NotNull final StubInputStream dataStream, final StubElement parentStub) throws IOException {
StringRef name = dataStream.readName();
String path = dataStream.readUTFFast();
return new PsiExceptionStub(parentStub, this, name, path);
}
@NotNull
public PsiVariantDeclarationStub deserialize(@NotNull final StubInputStream dataStream, final StubElement parentStub) throws IOException {
StringRef moduleName = dataStream.readName();
String path = dataStream.readUTFFast();
return new PsiVariantDeclarationStub(parentStub, this, moduleName, path);
}
@NotNull
public PsiModuleStub deserialize(@NotNull final StubInputStream dataStream, final StubElement parentStub) throws IOException {
StringRef moduleName = dataStream.readName();
String qname = dataStream.readUTFFast();
boolean isComponent = dataStream.readBoolean();
boolean isInterface = dataStream.readBoolean();
return new PsiModuleStub(parentStub, this, moduleName, qname, null, isComponent, isInterface);
}
@NotNull
public PsiExternalStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
StringRef name = dataStream.readName();
String path = dataStream.readUTFFast();
boolean isFunction = dataStream.readBoolean();
return new PsiExternalStub(parentStub, this, name, path, isFunction);
}
@NotNull
@Override
public AtStateStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub)
throws IOException {
final StringRef ref = dataStream.readName();
final StringRef ref2 = dataStream.readName();
return new AtStateStub(
parentStub, ref.getString(), ref2.getString());
}
@NotNull
@Override
public TemplateDefinitionStub deserialize(
@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
final StringRef ref = dataStream.readName();
return new TemplateDefinitionStub(parentStub, ref.getString());
}
@NotNull
@Override
public NamespaceDeclarationStub deserialize(
@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
final StringRef ref = dataStream.readName();
return new NamespaceDeclarationStub(parentStub, ref.getString());
}
@NotNull
@Override
public AtParamStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub)
throws IOException {
final StringRef ref = dataStream.readName();
final StringRef ref2 = dataStream.readName();
return new AtParamStub(
parentStub, ref.getString(), ref2.getString(), dataStream.readBoolean());
}
public String getNameAsString(StringRef name) {
if (name != null) {
return name.getString();
}
return null;
}
@NotNull
public BashVarStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
StringRef ref = dataStream.readName();
int prefixLength = dataStream.readInt();
return new BashVarStubImpl(parentStub, ref, this, prefixLength);
}
@NotNull
@Override
public BashFileStub deserialize(@NotNull final StubInputStream dataStream, final StubElement parentStub) throws IOException {
StringRef name = dataStream.readName();
return new BashFileStubImpl(null, name);
}
@NotNull
public BashVarDefStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
StringRef ref = dataStream.readName();
boolean readOnly = dataStream.readBoolean();
return new BashVarDefStubImpl(parentStub, ref, this, readOnly);
}
@NotNull
public BashCommandStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
StringRef bashCommandFilename = dataStream.readName();
boolean internalCommandBash3 = dataStream.readBoolean();
boolean internalCommandBash4 = dataStream.readBoolean();
boolean genericCommand = dataStream.readBoolean();
return new BashCommandStubImpl(parentStub, StringRef.toString(bashCommandFilename), this, internalCommandBash3, internalCommandBash4, genericCommand);
}
@Nonnull
@Override
public ShaderDefStub deserialize(@Nonnull StubInputStream dataStream, StubElement parentStub) throws IOException
{
StringRef name = dataStream.readName();
return new ShaderDefStub(parentStub, this, name);
}
@Nonnull
@Override
public CSharpMethodDeclStub deserialize(@Nonnull StubInputStream stubInputStream, StubElement stubElement) throws IOException
{
StringRef qname = stubInputStream.readName();
int otherModifierMask = stubInputStream.readVarInt();
int operatorIndex = stubInputStream.readVarInt();
return new CSharpMethodDeclStub(stubElement, StringRef.toString(qname), otherModifierMask, operatorIndex);
}
@Nonnull
@Override
public CSharpIndexMethodDeclStub deserialize(@Nonnull StubInputStream inputStream, StubElement stubElement) throws IOException
{
StringRef qname = inputStream.readName();
return new CSharpIndexMethodDeclStub(stubElement, StringRef.toString(qname));
}
@Nonnull
@Override
public CSharpIdentifierStub deserialize(@Nonnull StubInputStream dataStream, StubElement parentStub) throws IOException
{
StringRef nameRef = dataStream.readName();
return new CSharpIdentifierStub(parentStub, this, nameRef);
}
@Nonnull
@Override
public CSharpMethodDeclStub deserialize(@Nonnull StubInputStream stubInputStream, StubElement stubElement) throws IOException
{
StringRef qname = stubInputStream.readName();
return new CSharpMethodDeclStub(stubElement, this, StringRef.toString(qname), 0, -1);
}
@Nonnull
@Override
public CSharpWithStringValueStub<CSharpGenericConstraint> deserialize(@Nonnull StubInputStream inputStream,
StubElement stubElement) throws IOException
{
StringRef text = inputStream.readName();
return new CSharpWithStringValueStub<CSharpGenericConstraint>(stubElement, this, text);
}
@Nonnull
@Override
public CSharpNamespaceDeclStub deserialize(@Nonnull StubInputStream stubInputStream, StubElement stubElement) throws IOException
{
StringRef referenceTextRef = stubInputStream.readName();
return new CSharpNamespaceDeclStub(stubElement, this, referenceTextRef);
}
@Nonnull
@Override
public CSharpReferenceExpressionStub deserialize(@Nonnull StubInputStream dataStream, StubElement parentStub) throws IOException
{
StringRef referenceText = dataStream.readName();
int kind = dataStream.readVarInt();
int memberAccessType = dataStream.readVarInt();
boolean global = dataStream.readBoolean();
return new CSharpReferenceExpressionStub(parentStub, this, StringRef.toString(referenceText), kind, memberAccessType, global);
}
@Nonnull
@Override
public CSharpMethodDeclStub deserialize(@Nonnull StubInputStream stubInputStream, StubElement stubElement) throws IOException
{
StringRef qname = stubInputStream.readName();
int otherModifierMask = stubInputStream.readVarInt();
return new CSharpMethodDeclStub(stubElement, this, StringRef.toString(qname), otherModifierMask, -1);
}
@Override
public CSharpWithStringValueStub<CSharpUsingNamespaceStatement> createStub(@Nonnull CSharpUsingNamespaceStatement statement,
StubElement stubElement)
{
String referenceText = statement.getReferenceText();
return new CSharpWithStringValueStub<CSharpUsingNamespaceStatement>(stubElement, this, StringRef.fromNullableString(referenceText));
}