@@ -1761,18 +1761,15 @@ && startsWith(((PsiMethodCallExpression) argument).getMethodExpression().getRefe
17611761 }
17621762
17631763 }
1764- if (settings .getState ().isGetSetExpressionsCollapse ()) {
1765- if (identifier .isPresent () && ((startsWith (identifier .get ().getText (), "get" ) && identifier .get ().getText ().length () > 3 )
1766- || (identifier .get ().getText ().startsWith ("is" ) && identifier .get ().getText ().length () > 2 ))
1767- && element .getArgumentList ().getExpressions ().length == 0 ) {
1764+ if (settings .getState ().isGetSetExpressionsCollapse () && identifier .isPresent ()) {
1765+ if (isGetter (identifier .get (), element )) {
17681766 return new Getter (element , element .getTextRange (), TextRange .create (identifier .get ().getTextRange ().getStartOffset (),
17691767 element .getTextRange ().getEndOffset ()),
17701768 qualifier != null
17711769 ? getAnyExpression (qualifier , document )
17721770 : null ,
17731771 guessPropertyName (identifier .get ().getText ()));
1774- } else if (identifier .isPresent ()
1775- && identifier .get ().getText ().startsWith ("set" )
1772+ } else if (identifier .get ().getText ().startsWith ("set" )
17761773 && identifier .get ().getText ().length () > 3
17771774 && Character .isUpperCase (identifier .get ().getText ().charAt (3 ))
17781775 && element .getArgumentList ().getExpressions ().length == 1
@@ -1790,6 +1787,17 @@ && startsWith(((PsiMethodCallExpression) argument).getMethodExpression().getRefe
17901787 return null ;
17911788 }
17921789
1790+ private static boolean isGetter (@ NotNull PsiElement element , @ NotNull PsiMethodCallExpression expression ) {
1791+ return expression .getArgumentList ().getExpressions ().length == 0
1792+ && (isGetterAux (element .getText (), "get" ) || isGetterAux (element .getText (), "is" ));
1793+ }
1794+
1795+ private static boolean isGetterAux (@ Nullable String name , @ NotNull String prefix ) {
1796+ return startsWith (name , prefix )
1797+ && name .length () > prefix .length ()
1798+ && Character .isUpperCase (name .charAt (prefix .length ()));
1799+ }
1800+
17931801 static int findDot (@ NotNull Document document , int position , int i ) {
17941802 int offset = 0 ;
17951803 while (Math .abs (offset ) < 100 && position > 0 && position < document .getText ().length () && !document .getText (TextRange .create (position , position + 1 )).equals ("." )) {
0 commit comments