mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
SSR: add some existing templates demonstrating features
This commit is contained in:
+4
-1
@@ -36,7 +36,7 @@ class JavaPredefinedConfigurations {
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.all.expressions.of.some.type"),"'_Expression:[exprtype( SomeType )]",EXPRESSION_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.sample.method.invokation.with.constant.argument"),"Integer.parseInt('_a:[script( \"com.intellij.psi.util.PsiUtil.isConstantExpression(__context__)\" )])",EXPRESSION_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.method.references"), "'_Qualifier::'Method", EXPRESSION_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.string.concatenations"), "[exprtype( java\\.lang\\.String )]'_a + '_b+", EXPRESSION_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.string.concatenations"), "[exprtype( java\\.lang\\.String )]'_a + '_b{10,}", EXPRESSION_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.deprecated.method.calls"), "'_Instance?.'MethodCall:[ref( deprecated methods )]('_Parameter*)", EXPRESSION_TYPE),
|
||||
|
||||
// Operators
|
||||
@@ -47,6 +47,7 @@ class JavaPredefinedConfigurations {
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.foreaches"), "for ('_Type '_Variable : '_Expression) {\n '_Statement*;\n}", OPERATOR_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.logging.without.if"), "[!within( statement in if )]LOG.debug('_Argument*);", OPERATOR_TYPE),
|
||||
createSearchTemplateInfo("statement in if", "if('_condition) { 'statement*; }", OPERATOR_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.assert.without.description"), "assert '_condition : '_description{0};", OPERATOR_TYPE),
|
||||
|
||||
// Class based
|
||||
createSearchTemplateInfo(
|
||||
@@ -182,6 +183,7 @@ class JavaPredefinedConfigurations {
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.type.var.substitutions.in.intanceof.with.generic.types"),"'_Expr instanceof '_Type <'Substitutions+> ", GENERICS_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.variables.of.generic.types"),"'_Type <'_GenericArgument+> 'Var = '_Init?;", GENERICS_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.diamond.operators"), "new 'Class<>('_Argument*)", GENERICS_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.method.returns.bounded.wildcard"), "[script( \"!Method.hasModifierProperty(com.intellij.psi.PsiModifier.ABSTRACT)\" )]'_Type<? extends '_Bound> 'Method('_ParameterType '_Parameter*);", GENERICS_TYPE),
|
||||
|
||||
// Add comments and metadata
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.comments"),"/* 'CommentContent */", METADATA_TYPE),
|
||||
@@ -312,6 +314,7 @@ class JavaPredefinedConfigurations {
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.any.unboxing"), "'_expression:[ formal( int|boolean|long|char|short|byte ) && exprtype( Integer|Boolean|Long|Character|Short|Byte )]", INTERESTING_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.try.without.resources"), "try ('_ResourceType '_resource{0,0} = '_init; '_expression{0,0}) {\n '_TryStatement*;\n} catch('_ExceptionType '_Exception{0,0}) {\n '_CatchStatement*;\n}", INTERESTING_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.switch.with.branches"), "switch ('_expression) {\n case '_value{0,4}\\: '_statement*;\n}", INTERESTING_TYPE),
|
||||
createSearchTemplateInfo(SSRBundle.message("predefined.configuration.labeled.break"), "break '_label;", INTERESTING_TYPE),
|
||||
//createSearchTemplateInfo("methods called","'_?.'_:[ref('Method)] ('_*)", INTERESTING_TYPE),
|
||||
//createSearchTemplateInfo("fields selected","'_?.'_:[ref('Field)] ", INTERESTING_TYPE),
|
||||
//createSearchTemplateInfo("symbols used","'_:[ref('Symbol)] ", INTERESTING_TYPE),
|
||||
|
||||
@@ -102,11 +102,13 @@ predefined.configuration.bean.info.classes=Bean info classes
|
||||
predefined.configuration.all.expressions.of.some.type=all expressions of some type
|
||||
predefined.configuration.variables.of.generic.types=variables of generic types
|
||||
predefined.configuration.diamond.operators=diamond operators
|
||||
predefined.configuration.method.returns.bounded.wildcard=method returns bounded wildcard
|
||||
predefined.configuration.comments=comments
|
||||
predefined.configuration.fields_variables.with.given.name.pattern.updated=fields/variables with given name pattern updated
|
||||
predefined.configuration.trys=try's
|
||||
predefined.configuration.try.without.resources=try statements without resources and catch blocks
|
||||
predefined.configuration.switch.with.branches=switch statements with few branches
|
||||
predefined.configuration.labeled.break=labeled break statements
|
||||
predefined.configuration.block.dcls=block dcls
|
||||
predefined.configuration.methods.of.the.class=methods of the class
|
||||
predefined.configuration.deprecated.methods=deprecated methods
|
||||
@@ -152,7 +154,7 @@ predefined.configuration.classes.interfaces.enums=classes, interfaces \\& enums
|
||||
predefined.configuration.new.expressions=new expressions
|
||||
predefined.configuration.lambdas=lambdas
|
||||
predefined.configuration.method.references=method references
|
||||
predefined.configuration.string.concatenations=string concatenations
|
||||
predefined.configuration.string.concatenations=string concatenations with many operands
|
||||
predefined.configuration.deprecated.method.calls=method calls to deprecated methods
|
||||
|
||||
# edit variable constraint dialog options
|
||||
@@ -240,6 +242,7 @@ predefined.configuration.class.static.blocks=static blocks in class
|
||||
predefined.configuration.class.instance.initialization.blocks=instance initialization blocks
|
||||
predefined.configuration.class.any.initialization.blocks=any class initialization block
|
||||
predefined.configuration.logging.without.if=logging without if
|
||||
predefined.configuration.assert.without.description=assert statement without description
|
||||
predefined.configuration.class.with.parameterless.constructors=classes with parameterless constructors
|
||||
predefined.configuration.static.fields.without.final=static fields that are not final
|
||||
inspection.script.problem={0}\n In Structural Search inspection template ''{1}''
|
||||
|
||||
+37
-1
@@ -115,6 +115,42 @@ public class JavaPredefinedConfigurationsTest extends StructuralSearchTestCase {
|
||||
" case 3:" +
|
||||
" default:" +
|
||||
" }")));
|
||||
testCases.put(SSRBundle.message("predefined.configuration.string.concatenations"),
|
||||
pair("class X {{" +
|
||||
" String s = \"1\" + \"2\" + \"3\" + \"4\" + \"5\" + \"6\" + \"7\" + \"8\" + \"9\" + \"10\" + \"11\";" +
|
||||
" String t = \"1\" + \"2\" + \"3\" + \"4\" + \"5\" + \"6\" + \"7\" + \"8\" + \"9\"+ \"10\";",
|
||||
asList("\"1\" + \"2\" + \"3\" + \"4\" + \"5\" + \"6\" + \"7\" + \"8\" + \"9\" + \"10\" + \"11\"")));
|
||||
testCases.put(SSRBundle.message("predefined.configuration.assert.without.description"),
|
||||
pair("class X {{" +
|
||||
" assert true;" +
|
||||
" assert false : false;" +
|
||||
" assert false : \"reason\";" +
|
||||
"}}",
|
||||
asList("assert true;")));
|
||||
testCases.put(SSRBundle.message("predefined.configuration.labeled.break"),
|
||||
pair("class X {{" +
|
||||
" break one;" +
|
||||
" break;" +
|
||||
" continue;" +
|
||||
" continue here;" +
|
||||
"}}",
|
||||
asList("break one;")));
|
||||
testCases.put(SSRBundle.message("predefined.configuration.method.returns.bounded.wildcard"),
|
||||
pair("abstract class X {" +
|
||||
" List<? extends Number> one() {" +
|
||||
" return null;" +
|
||||
" }" +
|
||||
" abstract List<? extends Number> ignore();" +
|
||||
" List<?> two() {" +
|
||||
" return null;" +
|
||||
" }" +
|
||||
" <T extends Number> T three() {" +
|
||||
" return null;" +
|
||||
" }" +
|
||||
"}",
|
||||
asList("List<? extends Number> one() {" +
|
||||
" return null;" +
|
||||
" }")));
|
||||
}
|
||||
|
||||
public void testPredefinedConfigurations() {
|
||||
@@ -125,7 +161,7 @@ public class JavaPredefinedConfigurationsTest extends StructuralSearchTestCase {
|
||||
final SearchConfiguration searchConfiguration = (SearchConfiguration)template;
|
||||
options = searchConfiguration.getMatchOptions();
|
||||
final List<MatchResult> matches = testMatcher.testFindMatches(testCase.first, options, true, StdFileTypes.JAVA, null, false);
|
||||
assertEquals(testCase.second.size(), matches.size());
|
||||
assertEquals(template.getName(), testCase.second.size(), matches.size());
|
||||
for (int i = 0; i < matches.size(); i++) {
|
||||
final String matchText = StructuralSearchUtil.getPresentableElement(matches.get(i).getMatch()).getText();
|
||||
assertEquals(template.getName(), testCase.second.get(i), matchText);
|
||||
|
||||
Reference in New Issue
Block a user