Skip to content

Commit 5db7e8a

Browse files
committed
enable plugin in all products
1 parent 715cb03 commit 5db7e8a

File tree

9 files changed

+46
-62
lines changed

9 files changed

+46
-62
lines changed

src/main/java/com/tang/intellij/lua/editor/completion/ArgsInsertHandler.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
import com.intellij.codeInsight.lookup.LookupElement;
2222
import com.intellij.codeInsight.template.Template;
2323
import com.intellij.codeInsight.template.TemplateManager;
24-
import com.intellij.codeInsight.template.impl.MacroCallNode;
2524
import com.intellij.codeInsight.template.impl.TextExpression;
26-
import com.intellij.codeInsight.template.macro.SuggestVariableNameMacro;
2725
import com.intellij.psi.PsiElement;
2826
import com.intellij.psi.PsiWhiteSpace;
2927
import com.intellij.psi.tree.IElementType;
@@ -72,15 +70,14 @@ Template createTemplate(TemplateManager manager, LuaParamInfo[] paramNameDefList
7270
template.addTextSegment("(");
7371

7472
boolean isFirst = true;
75-
MacroCallNode name = new MacroCallNode(new SuggestVariableNameMacro());
7673

7774
for (int i = 0; i < paramNameDefList.length; i++) {
7875
if ((mask & (1 << i)) == 0) continue;
7976

8077
LuaParamInfo paramNameDef = paramNameDefList[i];
8178
if (!isFirst)
8279
template.addTextSegment(", ");
83-
template.addVariable(paramNameDef.getName(), name, new TextExpression(paramNameDef.getName()), false);
80+
template.addVariable(paramNameDef.getName(), new TextExpression(paramNameDef.getName()), new TextExpression(paramNameDef.getName()), true);
8481
isFirst = false;
8582
}
8683
template.addTextSegment(")");

src/main/java/com/tang/intellij/lua/editor/completion/LuaCommentCompletionContributor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.intellij.openapi.project.Project;
2222
import com.intellij.patterns.PsiElementPattern;
2323
import com.intellij.psi.PsiElement;
24-
import com.intellij.psi.impl.source.tree.ElementType;
24+
import com.intellij.psi.TokenType;
2525
import com.intellij.psi.tree.IElementType;
2626
import com.intellij.psi.tree.TokenSet;
2727
import com.intellij.util.ProcessingContext;
@@ -49,7 +49,7 @@ public class LuaCommentCompletionContributor extends CompletionContributor {
4949
// 在 @ 之后提示 param class type ...
5050
private static final PsiElementPattern.Capture<PsiElement> SHOW_DOC_TAG = psiElement().afterLeaf(
5151
psiElement().withText("@")
52-
.afterSiblingSkipping(psiElement().withElementType(ElementType.WHITE_SPACE), psiElement().withElementType(LuaDocTypes.DASHES))
52+
.afterSiblingSkipping(psiElement().withElementType(TokenType.WHITE_SPACE), psiElement().withElementType(LuaDocTypes.DASHES))
5353
);
5454

5555
// 在 @param 之后提示方法的参数

src/main/java/com/tang/intellij/lua/editor/surroundWith/LuaSurroundDescriptor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.intellij.psi.util.PsiTreeUtil;
2323
import com.intellij.psi.util.PsiUtilCore;
2424
import com.tang.intellij.lua.lang.LuaLanguage;
25+
import com.tang.intellij.lua.psi.LuaPsiStatement;
2526
import org.jetbrains.annotations.NotNull;
2627

2728
import java.util.ArrayList;
@@ -61,7 +62,7 @@ private static PsiElement[] findStatementsInRange(@NotNull PsiFile file, int sta
6162
if (parent == null)
6263
return PsiElement.EMPTY_ARRAY;
6364
while (true) {
64-
if (parent instanceof PsiStatement) {
65+
if (parent instanceof LuaPsiStatement) {
6566
if (!(element1 instanceof PsiComment)) {
6667
parent = parent.getParent();
6768
}
@@ -111,7 +112,7 @@ private static PsiElement[] findStatementsInRange(@NotNull PsiFile file, int sta
111112
}
112113

113114
for (PsiElement element : array) {
114-
if (!(element instanceof PsiStatement || element instanceof PsiWhiteSpace || element instanceof PsiComment)) {
115+
if (!(element instanceof LuaPsiStatement || element instanceof PsiWhiteSpace || element instanceof PsiComment)) {
115116
return PsiElement.EMPTY_ARRAY;
116117
}
117118
}

src/main/java/com/tang/intellij/lua/highlighting/LuaSyntaxHighlighter.java

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,13 @@
1616

1717
package com.tang.intellij.lua.highlighting;
1818

19-
import com.intellij.ide.highlighter.JavaHighlightingColors;
2019
import com.intellij.lexer.Lexer;
20+
import com.intellij.openapi.editor.DefaultLanguageHighlighterColors;
2121
import com.intellij.openapi.editor.colors.TextAttributesKey;
2222
import com.intellij.openapi.fileTypes.SyntaxHighlighterBase;
2323
import com.intellij.psi.StringEscapesTokenTypes;
2424
import com.intellij.psi.tree.IElementType;
2525
import com.intellij.psi.tree.TokenSet;
26-
import com.intellij.psi.xml.XmlTokenType;
2726
import com.tang.intellij.lua.comment.psi.LuaDocTokenType;
2827
import com.tang.intellij.lua.comment.psi.LuaDocTypes;
2928
import com.tang.intellij.lua.psi.LuaStringTypes;
@@ -79,25 +78,6 @@ public class LuaSyntaxHighlighter extends SyntaxHighlighterBase {
7978
ourMap1 = new HashMap<>();
8079
ourMap2 = new HashMap<>();
8180

82-
ourMap1.put(XmlTokenType.XML_DATA_CHARACTERS, JavaHighlightingColors.DOC_COMMENT);
83-
ourMap1.put(XmlTokenType.XML_REAL_WHITE_SPACE, JavaHighlightingColors.DOC_COMMENT);
84-
ourMap1.put(XmlTokenType.TAG_WHITE_SPACE, JavaHighlightingColors.DOC_COMMENT);
85-
86-
ourMap1.put(StringEscapesTokenTypes.VALID_STRING_ESCAPE_TOKEN, JavaHighlightingColors.VALID_STRING_ESCAPE);
87-
ourMap1.put(StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN, JavaHighlightingColors.INVALID_STRING_ESCAPE);
88-
ourMap1.put(StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN, JavaHighlightingColors.INVALID_STRING_ESCAPE);
89-
90-
IElementType[] javaDocMarkup = {
91-
XmlTokenType.XML_START_TAG_START, XmlTokenType.XML_END_TAG_START, XmlTokenType.XML_TAG_END, XmlTokenType.XML_EMPTY_ELEMENT_END,
92-
XmlTokenType.TAG_WHITE_SPACE, XmlTokenType.XML_TAG_NAME, XmlTokenType.XML_NAME, XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN,
93-
XmlTokenType.XML_ATTRIBUTE_VALUE_START_DELIMITER, XmlTokenType.XML_ATTRIBUTE_VALUE_END_DELIMITER, XmlTokenType.XML_CHAR_ENTITY_REF,
94-
XmlTokenType.XML_EQ
95-
};
96-
for (IElementType idx : javaDocMarkup) {
97-
ourMap1.put(idx, JavaHighlightingColors.DOC_COMMENT);
98-
ourMap2.put(idx, JavaHighlightingColors.DOC_COMMENT_MARKUP);
99-
}
100-
10181
//key words
10282
fillMap(ourMap1, KEYWORD_TOKENS, LuaHighlightingData.KEYWORD);
10383
fillMap(ourMap1, LuaHighlightingData.KEYWORD, LuaTypes.SEMI, LuaTypes.COMMA);
@@ -128,13 +108,13 @@ public TextAttributesKey[] getTokenHighlights(IElementType type) {
128108
return pack(LuaHighlightingData.DOC_COMMENT);
129109
//for string
130110
else if (type == LuaStringTypes.NEXT_LINE)
131-
return pack(JavaHighlightingColors.VALID_STRING_ESCAPE);
111+
return pack(DefaultLanguageHighlighterColors.VALID_STRING_ESCAPE);
132112
else if (type == StringEscapesTokenTypes.VALID_STRING_ESCAPE_TOKEN)
133-
return pack(JavaHighlightingColors.VALID_STRING_ESCAPE);
113+
return pack(DefaultLanguageHighlighterColors.VALID_STRING_ESCAPE);
134114
else if (type == StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN)
135-
return pack(JavaHighlightingColors.INVALID_STRING_ESCAPE);
115+
return pack(DefaultLanguageHighlighterColors.INVALID_STRING_ESCAPE);
136116
else if (type == LuaStringTypes.INVALID_NEXT_LINE)
137-
return pack(JavaHighlightingColors.INVALID_STRING_ESCAPE);
117+
return pack(DefaultLanguageHighlighterColors.INVALID_STRING_ESCAPE);
138118
else {
139119
return pack(ourMap1.get(type), ourMap2.get(type));
140120
}

src/main/java/com/tang/intellij/lua/lua.bnf

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,13 @@
9898

9999
implements("tableConstructor") = "com.tang.intellij.lua.psi.LuaIndentRange"
100100
hooks("forAStat|forBStat") = [leftBinder="MY_LEFT_COMMENT_BINDER"]
101-
implements("forAStat|forBStat") = "com.tang.intellij.lua.psi.LuaIndentRange, com.tang.intellij.lua.psi.LuaParametersOwner, com.tang.intellij.lua.psi.LuaCommentOwner, com.intellij.psi.PsiStatement"
101+
implements("forAStat|forBStat") = "com.tang.intellij.lua.psi.LuaIndentRange, com.tang.intellij.lua.psi.LuaParametersOwner, com.tang.intellij.lua.psi.LuaCommentOwner, com.tang.intellij.lua.psi.LuaPsiStatement"
102102
hooks("localDef|assignStat") = [leftBinder="MY_LEFT_COMMENT_BINDER"]
103-
implements("localDef|assignStat") = "com.tang.intellij.lua.psi.LuaDeclaration, com.intellij.psi.PsiStatement"
103+
implements("localDef|assignStat") = "com.tang.intellij.lua.psi.LuaDeclaration, com.tang.intellij.lua.psi.LuaPsiStatement"
104104
hooks("globalFuncDef|localFuncDef|classMethodDef") = [leftBinder="MY_LEFT_COMMENT_BINDER"]
105105
hooks("fieldList") = [leftBinder="GREEDY_LEFT_BINDER" rightBinder="GREEDY_RIGHT_BINDER"]
106106
implements("expr|funcCall") = "com.tang.intellij.lua.psi.LuaExpression"
107-
implements("doStat|whileStat|repeatStat|ifStat") = "com.tang.intellij.lua.psi.LuaIndentRange, com.intellij.psi.PsiStatement"
107+
implements("doStat|whileStat|repeatStat|ifStat") = "com.tang.intellij.lua.psi.LuaIndentRange, com.tang.intellij.lua.psi.LuaPsiStatement"
108108
implements("funcBody") = "com.tang.intellij.lua.psi.LuaIndentRange"
109109
extends(".*Expr") = expr
110110
}
@@ -153,7 +153,7 @@ globalFuncDef ::= 'function' ID funcBody {
153153
"com.tang.intellij.lua.psi.LuaFuncBodyOwner"
154154
"com.tang.intellij.lua.psi.LuaDeclaration"
155155
"com.intellij.psi.PsiNameIdentifierOwner"
156-
"com.intellij.psi.PsiStatement"
156+
"com.tang.intellij.lua.psi.LuaPsiStatement"
157157
]
158158
methods = [
159159
getComment
@@ -186,7 +186,7 @@ classMethodDef ::= 'function' classMethodName funcBody {
186186
"com.tang.intellij.lua.psi.LuaDeclaration"
187187
"com.tang.intellij.lua.psi.LuaClassMember"
188188
"com.intellij.psi.PsiNameIdentifierOwner"
189-
"com.intellij.psi.PsiStatement"
189+
"com.tang.intellij.lua.psi.LuaPsiStatement"
190190
]
191191
stubClass = "com.tang.intellij.lua.stubs.LuaClassMethodStub"
192192
methods = [
@@ -211,7 +211,7 @@ localFuncDef ::= 'local' 'function' ID funcBody {
211211
"com.tang.intellij.lua.psi.LuaFuncBodyOwner"
212212
"com.tang.intellij.lua.psi.LuaDeclaration"
213213
"com.intellij.psi.PsiNameIdentifierOwner"
214-
"com.intellij.psi.PsiStatement"
214+
"com.tang.intellij.lua.psi.LuaPsiStatement"
215215
]
216216
methods = [
217217
getComment
@@ -279,7 +279,7 @@ args ::= '(' (arg_expr_list)? ')' | tableConstructor | STRING { pin(".*") = 1 }
279279
private callExpr1 ::= args
280280
private callExpr2 ::= '.' ID args
281281
private callExpr3 ::= ':' ID args { pin = 1 }
282-
left callExpr ::= callExpr1 | callExpr2 | callExpr3 { methods = [guessPrefixType resolveFuncBodyOwner getFirstStringArg] implements = "com.intellij.psi.PsiStatement" }
282+
left callExpr ::= callExpr1 | callExpr2 | callExpr3 { methods = [guessPrefixType resolveFuncBodyOwner getFirstStringArg] implements = "com.tang.intellij.lua.psi.LuaPsiStatement" }
283283

284284
private suffixExpr ::= callExpr | indexExpr
285285
private prefixExpr ::= parenExpr | nameRef

src/main/java/com/tang/intellij/lua/psi/LuaParserUtil.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.intellij.lang.WhitespacesAndCommentsBinder;
2222
import com.intellij.lang.WhitespacesBinders;
2323
import com.intellij.lang.parser.GeneratedParserUtilBase;
24-
import com.intellij.psi.impl.source.tree.ElementType;
24+
import com.intellij.psi.TokenType;
2525
import com.intellij.psi.tree.IElementType;
2626
import com.intellij.psi.tree.TokenSet;
2727

@@ -103,7 +103,7 @@ else if (type == RCURLY)
103103
public static boolean lazyBlock(PsiBuilder builder_, int level_) {
104104
int i = 0;
105105
IElementType begin= builder_.rawLookup(--i);
106-
while (begin == ElementType.WHITE_SPACE)
106+
while (begin == TokenType.WHITE_SPACE)
107107
begin = builder_.rawLookup(--i);
108108

109109
if (begin != null) {

src/main/java/com/tang/intellij/lua/psi/LuaPsiResolveUtil.java

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
package com.tang.intellij.lua.psi;
1818

1919
import com.intellij.openapi.project.Project;
20-
import com.intellij.psi.*;
20+
import com.intellij.openapi.vfs.VirtualFile;
21+
import com.intellij.psi.PsiElement;
22+
import com.intellij.psi.PsiFile;
23+
import com.intellij.psi.PsiManager;
2124
import com.intellij.psi.util.PsiTreeUtil;
2225
import com.tang.intellij.lua.Constants;
2326
import com.tang.intellij.lua.comment.psi.LuaDocParamDef;
@@ -288,24 +291,13 @@ private static LuaTypeSet resolveParamType(LuaParamNameDef paramNameDef, SearchC
288291
public static LuaFile resolveRequireFile(String pathString, Project project) {
289292
if (pathString == null)
290293
return null;
291-
pathString = pathString.replace('/', '.');
292-
293-
int lastDot = pathString.lastIndexOf('.');
294-
String packagePath = "";
295-
String fileName = pathString;
296-
if (lastDot != -1) {
297-
fileName = pathString.substring(lastDot + 1);
298-
packagePath = pathString.substring(0, lastDot);
299-
}
294+
String fileName = pathString.replace('.', '/');
300295
fileName += ".lua";
301-
PsiPackage psiPackage = JavaPsiFacade.getInstance(project).findPackage(packagePath);
302-
if (psiPackage != null) {
303-
PsiDirectory[] directories = psiPackage.getDirectories();
304-
for (PsiDirectory directory : directories) {
305-
PsiFile file = directory.findFile(fileName);
306-
if (file instanceof LuaFile)
307-
return (LuaFile) file;
308-
}
296+
VirtualFile f = LuaFileUtil.findFile(project, fileName);
297+
if (f != null) {
298+
PsiFile psiFile = PsiManager.getInstance(project).findFile(f);
299+
if (psiFile instanceof LuaFile)
300+
return (LuaFile) psiFile;
309301
}
310302
return null;
311303
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
* Copyright (c) 2017. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
3+
* Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
4+
* Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
5+
* Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
6+
* Vestibulum commodo. Ut rhoncus gravida arcu.
7+
*/
8+
9+
package com.tang.intellij.lua.psi;
10+
11+
/**
12+
* LuaPsiStatement
13+
* Created by TangZX on 2017/3/17.
14+
*/
15+
public interface LuaPsiStatement extends LuaPsiElement {
16+
}

src/main/resources/META-INF/plugin.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@
3636

3737
<!-- please see https://confluence.jetbrains.com/display/IDEADEV/Plugin+Compatibility+with+IntelliJ+Platform+Products
3838
on how to target different products -->
39-
<!-- uncomment to enable plugin in all products
4039
<depends>com.intellij.modules.lang</depends>
41-
-->
4240

4341
<extensions defaultExtensionNs="com.intellij">
4442
<createFromTemplateHandler implementation="com.tang.intellij.lua.actions.LuaCreateFromTemplateHandler"/>

0 commit comments

Comments
 (0)