mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-369465 [spring] Boot: Add support for 'optional:' prefix in autoconfiguration imports
IJ-MR-188597 GitOrigin-RevId: 2578d3addd473e1cc988137066bfba4dc1b916f0
This commit is contained in:
committed by
intellij-monorepo-bot
parent
3a3e787b32
commit
7251d250b5
@@ -8,13 +8,11 @@ import com.intellij.lang.PsiBuilder;
|
||||
import com.intellij.lang.PsiParser;
|
||||
import com.intellij.lang.spi.SPILanguage;
|
||||
import com.intellij.lexer.Lexer;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.FileViewProvider;
|
||||
import com.intellij.psi.JavaTokenType;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.TokenType;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.tree.IFileElementType;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
@@ -26,10 +24,8 @@ import com.intellij.spi.psi.SPIPackageOrClassReferenceElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public final class SPIParserDefinition implements ParserDefinition {
|
||||
public static final IFileElementType SPI_FILE_ELEMENT_TYPE = new IFileElementType(SPILanguage.INSTANCE);
|
||||
|
||||
private static final TokenSet WHITE_SPACES = TokenSet.create(TokenType.WHITE_SPACE);
|
||||
private static final Logger LOG = Logger.getInstance(SPIParserDefinition.class);
|
||||
public static final IFileElementType SPI_FILE_ELEMENT_TYPE = new IFileElementType(SPILanguage.INSTANCE);
|
||||
|
||||
@Override
|
||||
public @NotNull Lexer createLexer(Project project) {
|
||||
@@ -40,7 +36,7 @@ public final class SPIParserDefinition implements ParserDefinition {
|
||||
public @NotNull PsiParser createParser(Project project) {
|
||||
return new PsiParser() {
|
||||
@Override
|
||||
public @NotNull ASTNode parse(IElementType root, PsiBuilder builder) {
|
||||
public @NotNull ASTNode parse(@NotNull IElementType root, @NotNull PsiBuilder builder) {
|
||||
final PsiBuilder.Marker rootMarker = builder.mark();
|
||||
final PsiBuilder.Marker propertiesList = builder.mark();
|
||||
while (!builder.eof()) {
|
||||
@@ -58,11 +54,6 @@ public final class SPIParserDefinition implements ParserDefinition {
|
||||
return SPI_FILE_ELEMENT_TYPE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull TokenSet getWhitespaceTokens() {
|
||||
return WHITE_SPACES;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull TokenSet getCommentTokens() {
|
||||
return TokenSet.create(JavaTokenType.END_OF_LINE_COMMENT);
|
||||
@@ -111,7 +102,7 @@ public final class SPIParserDefinition implements ParserDefinition {
|
||||
}
|
||||
}
|
||||
|
||||
private static void parseProviderChar(final PsiBuilder builder, PsiBuilder.Marker pack) {
|
||||
public static void parseProviderChar(final PsiBuilder builder, PsiBuilder.Marker pack) {
|
||||
builder.advanceLexer();
|
||||
final IElementType tokenType = builder.getTokenType();
|
||||
if (tokenType == JavaTokenType.DOT || tokenType == SPITokenType.DOLLAR) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
package com.intellij.spi.psi;
|
||||
|
||||
import com.intellij.extapi.psi.PsiFileBase;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.lang.spi.SPILanguage;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
@@ -26,8 +27,13 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SPIFile extends PsiFileBase {
|
||||
|
||||
protected SPIFile(@NotNull FileViewProvider viewProvider, Language language) {
|
||||
super(viewProvider, language);
|
||||
}
|
||||
|
||||
public SPIFile(@NotNull FileViewProvider viewProvider) {
|
||||
super(viewProvider, SPILanguage.INSTANCE);
|
||||
this(viewProvider, SPILanguage.INSTANCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,10 +19,12 @@ import com.intellij.lang.Language;
|
||||
|
||||
public class SPILanguage extends Language {
|
||||
public static final SPILanguage INSTANCE = new SPILanguage();
|
||||
|
||||
protected SPILanguage() {
|
||||
super("SPI");
|
||||
|
||||
protected SPILanguage(String id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
|
||||
protected SPILanguage() {
|
||||
this("SPI");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user