String (String frameText, FindResult ijFindResult, SearchTaskOptions options) { int contextStartOffset = ijFindResult.getStartOffset(); int minAllowedContextStartOffset = ijFindResult.getStartOffset() - options.contextOneSideLength; if (minAllowedContextStartOffset < 0) { minAllowedContextStartOffset = 0; } char _char; while (contextStartOffset > minAllowedContextStartOffset) { _char = frameText.charAt(contextStartOffset - 1); if (_char != '\r' && _char != '\n') { contextStartOffset--; } else { break; } } boolean ellipsis = false; if (contextStartOffset > 0) { _char = frameText.charAt(contextStartOffset - 1); if (_char != '\n' && _char != '\r') { ellipsis = true; } } String str = frameText.substring(contextStartOffset, ijFindResult.getStartOffset()); str = str.replace('\t', ' '); if (ellipsis) { str = ELLIPSIS + str; } return str; }