mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
SPI: rename of containing class/package
This commit is contained in:
@@ -42,7 +42,7 @@ public class SPIAnnotator implements Annotator{
|
||||
if (psiClass == null) {
|
||||
holder.createErrorAnnotation(element, "No service provider \"" + serviceProviderName + "\' found").setFileLevelAnnotation(true);
|
||||
}
|
||||
} else if (element instanceof SPIProviderElement) {
|
||||
} else if (element instanceof SPIProviderElement && ((SPIProviderElement)element).isDestination()) {
|
||||
final PsiElement resolve = ((SPIProviderElement)element).resolve();
|
||||
if (resolve == null) {
|
||||
holder.createErrorAnnotation(element, "Cannot resolve symbol " + element.getText());
|
||||
|
||||
@@ -115,9 +115,9 @@ public class SPIParserDefinition implements ParserDefinition {
|
||||
public SpaceRequirements spaceExistanceTypeBetweenTokens(ASTNode left, ASTNode right) {
|
||||
return SpaceRequirements.MAY;
|
||||
}
|
||||
|
||||
|
||||
public static void parseProvider(PsiBuilder builder) {
|
||||
if (builder.getTokenType() == JavaTokenType.IDENTIFIER) {
|
||||
if (builder.getTokenType() == SPITokenType.IDENTIFIER) {
|
||||
final PsiBuilder.Marker prop = builder.mark();
|
||||
|
||||
parseProviderChar(builder, builder.mark());
|
||||
@@ -130,15 +130,16 @@ public class SPIParserDefinition implements ParserDefinition {
|
||||
}
|
||||
|
||||
private static void parseProviderChar(final PsiBuilder builder, PsiBuilder.Marker pack) {
|
||||
final IElementType initialTokenType = builder.getTokenType();
|
||||
if (initialTokenType == null) return;
|
||||
LOG.assertTrue(initialTokenType == JavaTokenType.IDENTIFIER);
|
||||
builder.advanceLexer();
|
||||
pack.done(SPIElementTypes.PACK);
|
||||
final IElementType tokenType = builder.getTokenType();
|
||||
if (tokenType == JavaTokenType.DOT || tokenType == SPITokenType.DOLLAR) {
|
||||
pack.done(SPIElementTypes.PACK);
|
||||
builder.advanceLexer();
|
||||
final IElementType initialTokenType = builder.getTokenType();
|
||||
if (initialTokenType == null) return;
|
||||
parseProviderChar(builder, pack.precede());
|
||||
} else {
|
||||
pack.drop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.spi.parsing;
|
||||
|
||||
import com.intellij.lang.spi.SPILanguage;
|
||||
import com.intellij.psi.JavaTokenType;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.tree.java.IKeywordElementType;
|
||||
@@ -25,4 +26,5 @@ import com.intellij.psi.tree.java.IKeywordElementType;
|
||||
public interface SPITokenType extends JavaTokenType {
|
||||
IElementType SHARP = new IKeywordElementType("SHARP");
|
||||
IElementType DOLLAR = new IKeywordElementType("DOLLAR");
|
||||
IElementType IDENTIFIER = new IElementType("IDENTIFIER", SPILanguage.INSTANCE);
|
||||
}
|
||||
|
||||
@@ -45,23 +45,18 @@ import com.intellij.lexer.FlexLexer;
|
||||
|
||||
WHITE_SPACE_CHAR=[\ \n\r\t\f]
|
||||
|
||||
IDENTIFIER=[:jletter:] [:jletterdigit:]*
|
||||
IDENTIFIER=(_|[:letter:]) (_|[:letter:]|[:digit:])*
|
||||
|
||||
END_OF_LINE_COMMENT="#"[^\r\n]*
|
||||
|
||||
DIGIT = [0-9]
|
||||
DIGIT_OR_UNDERSCORE = [_0-9]
|
||||
DIGITS = {DIGIT} | {DIGIT} {DIGIT_OR_UNDERSCORE}*
|
||||
|
||||
%%
|
||||
|
||||
<YYINITIAL> {WHITE_SPACE_CHAR}+ { return JavaTokenType.WHITE_SPACE; }
|
||||
<YYINITIAL> {WHITE_SPACE_CHAR}+ { return JavaTokenType.WHITE_SPACE; }
|
||||
|
||||
<YYINITIAL> {END_OF_LINE_COMMENT} { return JavaTokenType.END_OF_LINE_COMMENT; }
|
||||
<YYINITIAL> {IDENTIFIER} { return JavaTokenType.IDENTIFIER; }
|
||||
<YYINITIAL> "$" { return SPITokenType.DOLLAR; }
|
||||
<YYINITIAL> {IDENTIFIER} { return SPITokenType.IDENTIFIER; }
|
||||
|
||||
<YYINITIAL> "." { return JavaTokenType.DOT; }
|
||||
<YYINITIAL> "." { return JavaTokenType.DOT; }
|
||||
|
||||
<YYINITIAL> "$" { return SPITokenType.DOLLAR; }
|
||||
|
||||
<YYINITIAL> . { return JavaTokenType.BAD_CHARACTER; }
|
||||
<YYINITIAL> . { return JavaTokenType.BAD_CHARACTER; }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* The following code was generated by JFlex 1.4.3 on 6/5/13 9:20 PM */
|
||||
/* The following code was generated by JFlex 1.4.3 on 6/10/13 12:01 PM */
|
||||
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
@@ -27,7 +27,7 @@ import com.intellij.lexer.FlexLexer;
|
||||
/**
|
||||
* This class is a scanner generated by
|
||||
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
|
||||
* on 6/5/13 9:20 PM from the specification file
|
||||
* on 6/10/13 12:01 PM from the specification file
|
||||
* <tt>D:/Projects/IDEA.anna/tools/lexer/../../community/java/java-impl/src/com/intellij/spi/parsing/_SPILexer.flex</tt>
|
||||
*/
|
||||
class _SPILexer implements FlexLexer {
|
||||
@@ -51,90 +51,67 @@ class _SPILexer implements FlexLexer {
|
||||
* Translates characters to character classes
|
||||
*/
|
||||
private static final String ZZ_CMAP_PACKED =
|
||||
"\11\3\1\1\1\5\1\0\1\1\1\5\16\3\4\0\1\1\2\0"+
|
||||
"\1\4\1\2\11\0\1\6\1\0\12\3\7\0\32\2\4\0\1\2"+
|
||||
"\1\0\32\2\4\0\41\3\2\0\4\2\4\0\1\2\2\0\1\3"+
|
||||
"\7\0\1\2\4\0\1\2\5\0\27\2\1\0\37\2\1\0\u013f\2"+
|
||||
"\31\0\162\2\4\0\14\2\16\0\5\2\11\0\1\2\21\0\130\3"+
|
||||
"\5\0\23\3\12\0\1\2\13\0\1\2\1\0\3\2\1\0\1\2"+
|
||||
"\1\0\24\2\1\0\54\2\1\0\46\2\1\0\5\2\4\0\202\2"+
|
||||
"\1\0\4\3\3\0\105\2\1\0\46\2\2\0\2\2\6\0\20\2"+
|
||||
"\41\0\46\2\2\0\1\2\7\0\47\2\11\0\21\3\1\0\27\3"+
|
||||
"\1\0\3\3\1\0\1\3\1\0\2\3\1\0\1\3\13\0\33\2"+
|
||||
"\5\0\3\2\15\0\4\3\14\0\6\3\13\0\32\2\5\0\13\2"+
|
||||
"\16\3\7\0\12\3\4\0\2\2\1\3\143\2\1\0\1\2\10\3"+
|
||||
"\1\0\6\3\2\2\2\3\1\0\4\3\2\2\12\3\3\2\2\0"+
|
||||
"\1\2\17\0\1\3\1\2\1\3\36\2\33\3\2\0\3\2\60\0"+
|
||||
"\46\2\13\3\1\2\u014f\0\3\3\66\2\2\0\1\3\1\2\20\3"+
|
||||
"\2\0\1\2\4\3\3\0\12\2\2\3\2\0\12\3\21\0\3\3"+
|
||||
"\1\0\10\2\2\0\2\2\2\0\26\2\1\0\7\2\1\0\1\2"+
|
||||
"\3\0\4\2\2\0\1\3\1\2\7\3\2\0\2\3\2\0\3\3"+
|
||||
"\11\0\1\3\4\0\2\2\1\0\3\2\2\3\2\0\12\3\4\2"+
|
||||
"\15\0\3\3\1\0\6\2\4\0\2\2\2\0\26\2\1\0\7\2"+
|
||||
"\1\0\2\2\1\0\2\2\1\0\2\2\2\0\1\3\1\0\5\3"+
|
||||
"\4\0\2\3\2\0\3\3\13\0\4\2\1\0\1\2\7\0\14\3"+
|
||||
"\3\2\14\0\3\3\1\0\11\2\1\0\3\2\1\0\26\2\1\0"+
|
||||
"\7\2\1\0\2\2\1\0\5\2\2\0\1\3\1\2\10\3\1\0"+
|
||||
"\3\3\1\0\3\3\2\0\1\2\17\0\2\2\2\3\2\0\12\3"+
|
||||
"\1\0\1\2\17\0\3\3\1\0\10\2\2\0\2\2\2\0\26\2"+
|
||||
"\1\0\7\2\1\0\2\2\1\0\5\2\2\0\1\3\1\2\6\3"+
|
||||
"\3\0\2\3\2\0\3\3\10\0\2\3\4\0\2\2\1\0\3\2"+
|
||||
"\4\0\12\3\1\0\1\2\20\0\1\3\1\2\1\0\6\2\3\0"+
|
||||
"\3\2\1\0\4\2\3\0\2\2\1\0\1\2\1\0\2\2\3\0"+
|
||||
"\2\2\3\0\3\2\3\0\10\2\1\0\3\2\4\0\5\3\3\0"+
|
||||
"\3\3\1\0\4\3\11\0\1\3\17\0\11\3\11\0\1\2\7\0"+
|
||||
"\3\3\1\0\10\2\1\0\3\2\1\0\27\2\1\0\12\2\1\0"+
|
||||
"\5\2\4\0\7\3\1\0\3\3\1\0\4\3\7\0\2\3\11\0"+
|
||||
"\2\2\4\0\12\3\22\0\2\3\1\0\10\2\1\0\3\2\1\0"+
|
||||
"\27\2\1\0\12\2\1\0\5\2\2\0\1\3\1\2\7\3\1\0"+
|
||||
"\3\3\1\0\4\3\7\0\2\3\7\0\1\2\1\0\2\2\4\0"+
|
||||
"\12\3\22\0\2\3\1\0\10\2\1\0\3\2\1\0\27\2\1\0"+
|
||||
"\20\2\4\0\6\3\2\0\3\3\1\0\4\3\11\0\1\3\10\0"+
|
||||
"\2\2\4\0\12\3\22\0\2\3\1\0\22\2\3\0\30\2\1\0"+
|
||||
"\11\2\1\0\1\2\2\0\7\2\3\0\1\3\4\0\6\3\1\0"+
|
||||
"\1\3\1\0\10\3\22\0\2\3\15\0\60\2\1\3\2\2\7\3"+
|
||||
"\4\0\10\2\10\3\1\0\12\3\47\0\2\2\1\0\1\2\2\0"+
|
||||
"\2\2\1\0\1\2\2\0\1\2\6\0\4\2\1\0\7\2\1\0"+
|
||||
"\3\2\1\0\1\2\1\0\1\2\2\0\2\2\1\0\4\2\1\3"+
|
||||
"\2\2\6\3\1\0\2\3\1\2\2\0\5\2\1\0\1\2\1\0"+
|
||||
"\6\3\2\0\12\3\2\0\2\2\42\0\1\2\27\0\2\3\6\0"+
|
||||
"\12\3\13\0\1\3\1\0\1\3\1\0\1\3\4\0\2\3\10\2"+
|
||||
"\1\0\42\2\6\0\24\3\1\0\2\3\4\2\4\0\10\3\1\0"+
|
||||
"\44\3\11\0\1\3\71\0\42\2\1\0\5\2\1\0\2\2\1\0"+
|
||||
"\7\3\3\0\4\3\6\0\12\3\6\0\6\2\4\3\106\0\46\2"+
|
||||
"\12\0\51\2\7\0\132\2\5\0\104\2\5\0\122\2\6\0\7\2"+
|
||||
"\1\0\77\2\1\0\1\2\1\0\4\2\2\0\7\2\1\0\1\2"+
|
||||
"\1\0\4\2\2\0\47\2\1\0\1\2\1\0\4\2\2\0\37\2"+
|
||||
"\1\0\1\2\1\0\4\2\2\0\7\2\1\0\1\2\1\0\4\2"+
|
||||
"\2\0\7\2\1\0\7\2\1\0\27\2\1\0\37\2\1\0\1\2"+
|
||||
"\1\0\4\2\2\0\7\2\1\0\47\2\1\0\23\2\16\0\11\3"+
|
||||
"\56\0\125\2\14\0\u026c\2\2\0\10\2\12\0\32\2\5\0\113\2"+
|
||||
"\3\0\3\2\17\0\15\2\1\0\4\2\3\3\13\0\22\2\3\3"+
|
||||
"\13\0\22\2\2\3\14\0\15\2\1\0\3\2\1\0\2\3\14\0"+
|
||||
"\64\2\40\3\3\0\1\2\3\0\2\2\1\3\2\0\12\3\41\0"+
|
||||
"\3\3\2\0\12\3\6\0\130\2\10\0\51\2\1\3\126\0\35\2"+
|
||||
"\3\0\14\3\4\0\14\3\12\0\12\3\36\2\2\0\5\2\u038b\0"+
|
||||
"\11\0\1\1\1\5\1\0\1\1\1\5\22\0\1\1\2\0\1\4"+
|
||||
"\1\6\11\0\1\7\1\0\12\3\7\0\32\2\4\0\1\2\1\0"+
|
||||
"\32\2\57\0\1\2\12\0\1\2\4\0\1\2\5\0\27\2\1\0"+
|
||||
"\37\2\1\0\u013f\2\31\0\162\2\4\0\14\2\16\0\5\2\11\0"+
|
||||
"\1\2\213\0\1\2\13\0\1\2\1\0\3\2\1\0\1\2\1\0"+
|
||||
"\24\2\1\0\54\2\1\0\46\2\1\0\5\2\4\0\202\2\10\0"+
|
||||
"\105\2\1\0\46\2\2\0\2\2\6\0\20\2\41\0\46\2\2\0"+
|
||||
"\1\2\7\0\47\2\110\0\33\2\5\0\3\2\56\0\32\2\5\0"+
|
||||
"\13\2\25\0\12\3\4\0\2\2\1\0\143\2\1\0\1\2\17\0"+
|
||||
"\2\2\7\0\2\2\12\3\3\2\2\0\1\2\20\0\1\2\1\0"+
|
||||
"\36\2\35\0\3\2\60\0\46\2\13\0\1\2\u0152\0\66\2\3\0"+
|
||||
"\1\2\22\0\1\2\7\0\12\2\4\0\12\3\25\0\10\2\2\0"+
|
||||
"\2\2\2\0\26\2\1\0\7\2\1\0\1\2\3\0\4\2\3\0"+
|
||||
"\1\2\36\0\2\2\1\0\3\2\4\0\12\3\2\2\23\0\6\2"+
|
||||
"\4\0\2\2\2\0\26\2\1\0\7\2\1\0\2\2\1\0\2\2"+
|
||||
"\1\0\2\2\37\0\4\2\1\0\1\2\7\0\12\3\2\0\3\2"+
|
||||
"\20\0\11\2\1\0\3\2\1\0\26\2\1\0\7\2\1\0\2\2"+
|
||||
"\1\0\5\2\3\0\1\2\22\0\1\2\17\0\2\2\4\0\12\3"+
|
||||
"\25\0\10\2\2\0\2\2\2\0\26\2\1\0\7\2\1\0\2\2"+
|
||||
"\1\0\5\2\3\0\1\2\36\0\2\2\1\0\3\2\4\0\12\3"+
|
||||
"\1\0\1\2\21\0\1\2\1\0\6\2\3\0\3\2\1\0\4\2"+
|
||||
"\3\0\2\2\1\0\1\2\1\0\2\2\3\0\2\2\3\0\3\2"+
|
||||
"\3\0\10\2\1\0\3\2\55\0\11\3\25\0\10\2\1\0\3\2"+
|
||||
"\1\0\27\2\1\0\12\2\1\0\5\2\46\0\2\2\4\0\12\3"+
|
||||
"\25\0\10\2\1\0\3\2\1\0\27\2\1\0\12\2\1\0\5\2"+
|
||||
"\3\0\1\2\40\0\1\2\1\0\2\2\4\0\12\3\25\0\10\2"+
|
||||
"\1\0\3\2\1\0\27\2\1\0\20\2\46\0\2\2\4\0\12\3"+
|
||||
"\25\0\22\2\3\0\30\2\1\0\11\2\1\0\1\2\2\0\7\2"+
|
||||
"\72\0\60\2\1\0\2\2\14\0\7\2\11\0\12\3\47\0\2\2"+
|
||||
"\1\0\1\2\2\0\2\2\1\0\1\2\2\0\1\2\6\0\4\2"+
|
||||
"\1\0\7\2\1\0\3\2\1\0\1\2\1\0\1\2\2\0\2\2"+
|
||||
"\1\0\4\2\1\0\2\2\11\0\1\2\2\0\5\2\1\0\1\2"+
|
||||
"\11\0\12\3\2\0\2\2\42\0\1\2\37\0\12\3\26\0\10\2"+
|
||||
"\1\0\42\2\35\0\4\2\164\0\42\2\1\0\5\2\1\0\2\2"+
|
||||
"\25\0\12\3\6\0\6\2\112\0\46\2\12\0\51\2\7\0\132\2"+
|
||||
"\5\0\104\2\5\0\122\2\6\0\7\2\1\0\77\2\1\0\1\2"+
|
||||
"\1\0\4\2\2\0\7\2\1\0\1\2\1\0\4\2\2\0\47\2"+
|
||||
"\1\0\1\2\1\0\4\2\2\0\37\2\1\0\1\2\1\0\4\2"+
|
||||
"\2\0\7\2\1\0\1\2\1\0\4\2\2\0\7\2\1\0\7\2"+
|
||||
"\1\0\27\2\1\0\37\2\1\0\1\2\1\0\4\2\2\0\7\2"+
|
||||
"\1\0\47\2\1\0\23\2\16\0\11\3\56\0\125\2\14\0\u026c\2"+
|
||||
"\2\0\10\2\12\0\32\2\5\0\113\2\25\0\15\2\1\0\4\2"+
|
||||
"\16\0\22\2\16\0\22\2\16\0\15\2\1\0\3\2\17\0\64\2"+
|
||||
"\43\0\1\2\4\0\1\2\3\0\12\3\46\0\12\3\6\0\130\2"+
|
||||
"\10\0\51\2\127\0\35\2\51\0\12\3\36\2\2\0\5\2\u038b\0"+
|
||||
"\154\2\224\0\234\2\4\0\132\2\6\0\26\2\2\0\6\2\2\0"+
|
||||
"\46\2\2\0\6\2\2\0\10\2\1\0\1\2\1\0\1\2\1\0"+
|
||||
"\1\2\1\0\37\2\2\0\65\2\1\0\7\2\1\0\1\2\3\0"+
|
||||
"\3\2\1\0\7\2\3\0\4\2\2\0\6\2\4\0\15\2\5\0"+
|
||||
"\3\2\1\0\7\2\17\0\4\3\32\0\5\3\20\0\2\2\23\0"+
|
||||
"\1\2\13\0\4\3\6\0\6\3\1\0\1\2\15\0\1\2\40\0"+
|
||||
"\22\2\36\0\15\3\4\0\1\3\3\0\6\3\27\0\1\2\4\0"+
|
||||
"\3\2\1\0\7\2\164\0\1\2\15\0\1\2\202\0\1\2\4\0"+
|
||||
"\1\2\2\0\12\2\1\0\1\2\3\0\5\2\6\0\1\2\1\0"+
|
||||
"\1\2\1\0\1\2\1\0\4\2\1\0\3\2\1\0\7\2\3\0"+
|
||||
"\3\2\5\0\5\2\26\0\44\2\u0e81\0\3\2\31\0\11\2\6\3"+
|
||||
"\1\0\5\2\2\0\5\2\4\0\126\2\2\0\2\3\2\0\3\2"+
|
||||
"\1\0\137\2\5\0\50\2\4\0\136\2\21\0\30\2\70\0\20\2"+
|
||||
"\u0200\0\u19b6\2\112\0\u51a6\2\132\0\u048d\2\u0773\0\u2ba4\2\u215c\0\u012e\2"+
|
||||
"\2\0\73\2\225\0\7\2\14\0\5\2\5\0\1\2\1\3\12\2"+
|
||||
"\1\0\15\2\1\0\5\2\1\0\1\2\1\0\2\2\1\0\2\2"+
|
||||
"\1\0\154\2\41\0\u016b\2\22\0\100\2\2\0\66\2\50\0\15\2"+
|
||||
"\3\0\20\3\20\0\4\3\17\0\2\2\30\0\3\2\31\0\1\2"+
|
||||
"\6\0\5\2\1\0\207\2\2\0\1\3\4\0\1\2\13\0\12\3"+
|
||||
"\7\0\32\2\4\0\1\2\1\0\32\2\12\0\132\2\3\0\6\2"+
|
||||
"\2\0\6\2\2\0\6\2\2\0\3\2\3\0\2\2\3\0\2\2"+
|
||||
"\22\0\3\3\4\0";
|
||||
"\3\2\5\0\5\2\u0ebb\0\2\2\52\0\5\2\5\0\2\2\4\0"+
|
||||
"\126\2\6\0\3\2\1\0\132\2\1\0\4\2\5\0\50\2\4\0"+
|
||||
"\136\2\21\0\30\2\70\0\20\2\u0200\0\u19b6\2\112\0\u51a6\2\132\0"+
|
||||
"\u048d\2\u0773\0\u2ba4\2\u215c\0\u012e\2\2\0\73\2\225\0\7\2\14\0"+
|
||||
"\5\2\5\0\1\2\1\0\12\2\1\0\15\2\1\0\5\2\1\0"+
|
||||
"\1\2\1\0\2\2\1\0\2\2\1\0\154\2\41\0\u016b\2\22\0"+
|
||||
"\100\2\2\0\66\2\50\0\14\2\164\0\5\2\1\0\207\2\23\0"+
|
||||
"\12\3\7\0\32\2\6\0\32\2\13\0\131\2\3\0\6\2\2\0"+
|
||||
"\6\2\2\0\6\2\2\0\3\2\43\0";
|
||||
|
||||
/**
|
||||
* Translates characters to character classes
|
||||
@@ -147,10 +124,10 @@ class _SPILexer implements FlexLexer {
|
||||
private static final int [] ZZ_ACTION = zzUnpackAction();
|
||||
|
||||
private static final String ZZ_ACTION_PACKED_0 =
|
||||
"\1\0\1\1\1\2\1\3\1\4\1\5";
|
||||
"\1\0\1\1\1\2\1\3\1\4\1\5\1\6";
|
||||
|
||||
private static int [] zzUnpackAction() {
|
||||
int [] result = new int[6];
|
||||
int [] result = new int[7];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -175,10 +152,10 @@ class _SPILexer implements FlexLexer {
|
||||
private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
|
||||
|
||||
private static final String ZZ_ROWMAP_PACKED_0 =
|
||||
"\0\0\0\7\0\16\0\25\0\34\0\7";
|
||||
"\0\0\0\10\0\20\0\30\0\40\0\10\0\10";
|
||||
|
||||
private static int [] zzUnpackRowMap() {
|
||||
int [] result = new int[6];
|
||||
int [] result = new int[7];
|
||||
int offset = 0;
|
||||
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -201,12 +178,12 @@ class _SPILexer implements FlexLexer {
|
||||
private static final int [] ZZ_TRANS = zzUnpackTrans();
|
||||
|
||||
private static final String ZZ_TRANS_PACKED_0 =
|
||||
"\1\2\1\3\1\4\1\2\1\5\1\3\1\6\10\0"+
|
||||
"\1\3\3\0\1\3\3\0\2\4\3\0\5\5\1\0"+
|
||||
"\1\5";
|
||||
"\1\2\1\3\1\4\1\2\1\5\1\3\1\6\1\7"+
|
||||
"\11\0\1\3\3\0\1\3\4\0\2\4\4\0\5\5"+
|
||||
"\1\0\2\5";
|
||||
|
||||
private static int [] zzUnpackTrans() {
|
||||
int [] result = new int[35];
|
||||
int [] result = new int[40];
|
||||
int offset = 0;
|
||||
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -247,10 +224,10 @@ class _SPILexer implements FlexLexer {
|
||||
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
|
||||
|
||||
private static final String ZZ_ATTRIBUTE_PACKED_0 =
|
||||
"\1\0\1\11\3\1\1\11";
|
||||
"\1\0\1\11\3\1\2\11";
|
||||
|
||||
private static int [] zzUnpackAttribute() {
|
||||
int [] result = new int[6];
|
||||
int [] result = new int[7];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -344,7 +321,7 @@ class _SPILexer implements FlexLexer {
|
||||
char [] map = new char[0x10000];
|
||||
int i = 0; /* index in packed string */
|
||||
int j = 0; /* index in unpacked array */
|
||||
while (i < 1666) {
|
||||
while (i < 1212) {
|
||||
int count = packed.charAt(i++);
|
||||
char value = packed.charAt(i++);
|
||||
do map[j++] = value; while (--count > 0);
|
||||
@@ -569,23 +546,27 @@ class _SPILexer implements FlexLexer {
|
||||
case 2:
|
||||
{ return JavaTokenType.WHITE_SPACE;
|
||||
}
|
||||
case 6: break;
|
||||
case 5:
|
||||
{ return JavaTokenType.DOT;
|
||||
}
|
||||
case 7: break;
|
||||
case 3:
|
||||
{ return JavaTokenType.IDENTIFIER;
|
||||
{ return SPITokenType.IDENTIFIER;
|
||||
}
|
||||
case 8: break;
|
||||
case 6:
|
||||
{ return JavaTokenType.DOT;
|
||||
}
|
||||
case 9: break;
|
||||
case 5:
|
||||
{ return SPITokenType.DOLLAR;
|
||||
}
|
||||
case 10: break;
|
||||
case 4:
|
||||
{ return JavaTokenType.END_OF_LINE_COMMENT;
|
||||
}
|
||||
case 9: break;
|
||||
case 11: break;
|
||||
case 1:
|
||||
{ return JavaTokenType.BAD_CHARACTER;
|
||||
}
|
||||
case 10: break;
|
||||
case 12: break;
|
||||
default:
|
||||
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
|
||||
zzAtEOF = true;
|
||||
|
||||
@@ -17,8 +17,10 @@ package com.intellij.spi.psi;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.JavaPsiFacade;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.psi.util.ClassUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -63,4 +65,9 @@ public class SPIPackElement extends SPIProviderElement {
|
||||
public Object[] getVariants() {
|
||||
return ArrayUtil.EMPTY_OBJECT_ARRAY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDestination() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,4 +122,8 @@ public class SPIProviderElement extends ASTWrapperPsiElement implements PsiRefer
|
||||
public boolean isSoft() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isDestination() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
foo.Test1
|
||||
@@ -0,0 +1,5 @@
|
||||
package foo;
|
||||
public class Test1 implements Runnable {
|
||||
public void run() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
foo.Test
|
||||
@@ -0,0 +1,5 @@
|
||||
package foo;
|
||||
public class T<caret>est implements Runnable {
|
||||
public void run() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
foo.Test1$FooRunnable
|
||||
@@ -0,0 +1,7 @@
|
||||
package foo;
|
||||
public class Test1 {
|
||||
public static class FooRunnable implements Runnable {
|
||||
public void run() {
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
foo.Test$FooRunnable
|
||||
@@ -0,0 +1,7 @@
|
||||
package foo;
|
||||
public class T<caret>est{
|
||||
public static class FooRunnable implements Runnable {
|
||||
public void run() {
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.lang.spi;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.codeInsight.TargetElementUtilBase;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.refactoring.MultiFileTestCase;
|
||||
import com.intellij.refactoring.rename.RenameProcessor;
|
||||
import com.intellij.refactoring.rename.RenamePsiElementProcessor;
|
||||
|
||||
/**
|
||||
* User: anna
|
||||
*/
|
||||
public class SPIRenameTest extends MultiFileTestCase {
|
||||
public void testRenameProviderImplementation() throws Exception {
|
||||
doRenameTest("Test.java", "Test1");
|
||||
}
|
||||
|
||||
public void testRenameProviderImplementationContainingClass() throws Exception {
|
||||
doRenameTest("Test.java", "Test1");
|
||||
}
|
||||
|
||||
private void doRenameTest(final String editorFile, final String newName) throws Exception {
|
||||
doTest(new PerformAction() {
|
||||
@Override
|
||||
public void performAction(VirtualFile rootDir, VirtualFile rootAfter) throws Exception {
|
||||
final VirtualFile file = rootDir.findFileByRelativePath("foo/" + editorFile);
|
||||
assert file != null;
|
||||
configureByExistingFile(file);
|
||||
final PsiElement element = TargetElementUtilBase.findTargetElement(myEditor,
|
||||
TargetElementUtilBase.REFERENCED_ELEMENT_ACCEPTED |
|
||||
TargetElementUtilBase.ELEMENT_NAME_ACCEPTED);
|
||||
assert element != null;
|
||||
final PsiElement substitution = RenamePsiElementProcessor.forElement(element).substituteElementToRename(element, myEditor);
|
||||
assert substitution != null;
|
||||
new RenameProcessor(getProject(), substitution, newName, true, true).run();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTestRoot() {
|
||||
return "/spi/";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user