mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 11:50:54 +07:00
IDEA-133101 (SSR does not find comment inside expressions, variables and many more)
This commit is contained in:
@@ -1,13 +1,7 @@
|
||||
package com.intellij.structuralsearch.impl.matcher.strategies;
|
||||
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiClassInitializer;
|
||||
import com.intellij.psi.PsiComment;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.*;
|
||||
|
||||
/**
|
||||
* Java doc matching strategy
|
||||
*/
|
||||
public final class CommentMatchingStrategy extends MatchingStrategyBase {
|
||||
@Override public void visitClass(final PsiClass clazz) {
|
||||
result = true;
|
||||
@@ -25,6 +19,66 @@ public final class CommentMatchingStrategy extends MatchingStrategyBase {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitExpression(PsiExpression expression) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitExpressionList(PsiExpressionList list) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitVariable(PsiVariable variable) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitModifierList(PsiModifierList list) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitParameterList(PsiParameterList list) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitReferenceList(PsiReferenceList list) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitReferenceParameterList(PsiReferenceParameterList list) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitTypeElement(PsiTypeElement type) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitReferenceElement(PsiJavaCodeReferenceElement reference) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitTypeParameterList(PsiTypeParameterList list) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitResourceList(PsiResourceList resourceList) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitAnnotation(PsiAnnotation annotation) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitAnnotationParameterList(PsiAnnotationParameterList list) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitAnnotationArrayInitializer(PsiArrayInitializerMemberValue initializer) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
@Override public void visitNameValuePair(PsiNameValuePair pair) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
private CommentMatchingStrategy() {}
|
||||
|
||||
private static class CommentMatchingStrategyHolder {
|
||||
|
||||
@@ -2996,4 +2996,21 @@ public class StructuralSearchTest extends StructuralSearchTestCase {
|
||||
String pattern = "new Foo.Bar();";
|
||||
assertEquals("should find qualified with outer class", 1, findMatchesCount(source, pattern));
|
||||
}
|
||||
|
||||
public void testFindCommentsEverywhere() {
|
||||
String source = "abstract class A<T/*1*/> implements java.util.List<T/*2*/>, /*3*/java.io.Serializable {" +
|
||||
" @SuppressWarnings({\"one\",/*10*/ \"two\"})" +
|
||||
" public /*11*/ static void m(/*12*/) {" +
|
||||
" System./*4*/out.println(/*5*/);" +
|
||||
" A<String/*6*/> a1 = new A(){};" +
|
||||
" int i = 1 + /*7*/ + 2;" +
|
||||
" int i = 1 + /*7*/ + 2;" +
|
||||
" try (java.io.FileInputStream /*8*/in = new java.io.FileInputStream(\"name\")) {" +
|
||||
" } catch (java.lang./*9*/Exception e) {" +
|
||||
" }" +
|
||||
" }" +
|
||||
"}";
|
||||
String pattern = "/*$Text$*/";
|
||||
assertEquals("should find comments in all the right places", 12, findMatchesCount(source, pattern));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user