diff --git a/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy b/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy index a577b0ae8780..af428552e4f4 100644 --- a/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy +++ b/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy @@ -238,6 +238,8 @@ class Intf { assert getPopupElements(model, 'Bar(2)') == [file] assert getPopupElements(model, 'Bar on line 2') == [file] assert getPopupElements(model, 'Bar at line 2') == [file] + assert getPopupElements(model, 'Bar 2:39') == [file] + assert getPopupElements(model, 'Bar#L2') == [file] } void "test dollar"() { diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNamePopup.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNamePopup.java index d9efb1a22f7a..0b9ae7e81df2 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNamePopup.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNamePopup.java @@ -338,8 +338,8 @@ public class ChooseByNamePopup extends ChooseByNameBase implements ChooseByNameP } private static final Pattern patternToDetectLinesAndColumns = Pattern.compile("(.+?)" + // name, non-greedy matching - "(?::|@|,| on line | at line |:?\\(|:?\\[)" + // separator - "(\\d+)?(?:(?:\\D)(\\d+)?)?" + // line + column + "(?::|@|,| |#L| on line | at line |:?\\(|:?\\[)" + // separator + "(\\d+)(?:(?:\\D)(\\d+)?)?" + // line + column "[)\\]]?" // possible closing paren/brace ); public static final Pattern patternToDetectAnonymousClasses = Pattern.compile("([\\.\\w]+)((\\$[\\d]+)*(\\$)?)"); @@ -353,7 +353,7 @@ public class ChooseByNamePopup extends ChooseByNameBase implements ChooseByNameP public static String getTransformedPattern(String pattern, ChooseByNameModel model) { Pattern regex = null; - if (StringUtil.containsAnyChar(pattern, ":,;@[(") || pattern.contains(" line ")) { // quick test if reg exp should be used + if (StringUtil.containsAnyChar(pattern, ":,;@[( #") || pattern.contains(" line ")) { // quick test if reg exp should be used regex = patternToDetectLinesAndColumns; }