@Override public StyledString getStyledDisplayString(IDocument document, int offset, BoldStylerProvider boldStylerProvider) { StyledString styledDisplayString= new StyledString(); styledDisplayString.append(getStyledDisplayString()); String pattern= getPatternToEmphasizeMatch(document, offset); if (pattern != null && pattern.length() > 0) { String displayString= styledDisplayString.getString().substring(1); // remove '{' boolean patternHasBrace= pattern.charAt(0) == '{'; if (patternHasBrace) { pattern= pattern.substring(1); } if (displayString.charAt(0) == '@' && pattern.charAt(0) == '@') { displayString= displayString.substring(1); pattern= pattern.substring(1); int patternMatchRule= getPatternMatchRule(pattern, displayString); int[] matchingRegions= SearchPattern.getMatchingRegions(pattern, displayString, patternMatchRule); if (matchingRegions != null) { if (patternHasBrace) { Strings.markMatchingRegions(styledDisplayString, 0, new int[] { 0, 1 }, boldStylerProvider.getBoldStyler()); } Strings.markMatchingRegions(styledDisplayString, 0, new int[] { 1, 1 }, boldStylerProvider.getBoldStyler()); for (int i= 0; i < matchingRegions.length; i+= 2) { matchingRegions[i]+= 2; } } Strings.markMatchingRegions(styledDisplayString, 0, matchingRegions, boldStylerProvider.getBoldStyler()); } } return styledDisplayString; }
@Override public StyledString getStyledDisplayString(IDocument document, int offset, BoldStylerProvider boldStylerProvider) { StyledString styledDisplayString= new StyledString(); styledDisplayString.append(getStyledDisplayString()); String pattern= getPatternToEmphasizeMatch(document, offset); if (pattern != null && pattern.length() > 0) { String displayString= styledDisplayString.getString().substring(1); // remove '{' boolean patternHasBrace= pattern.charAt(0) == '{'; if (patternHasBrace) { pattern= pattern.substring(1); } if (displayString.charAt(0) == '@' && pattern.charAt(0) == '@') { displayString= displayString.substring(1); pattern= pattern.substring(1); int patternMatchRule= getPatternMatchRule(pattern, displayString); int[] matchingRegions= SearchPattern.getMatchingRegions(pattern, displayString, patternMatchRule); if (matchingRegions != null) { if (patternHasBrace) { Strings.markMatchingRegions(styledDisplayString, 0, new int[] { 0, 1 }, boldStylerProvider.getBoldStyler()); } Strings.markMatchingRegions(styledDisplayString, 0, new int[] { 1, 1 }, boldStylerProvider.getBoldStyler()); for (int i= 0; i < matchingRegions.length; i+= 2) { matchingRegions[i]+= 2; } } Strings.markMatchingRegions(styledDisplayString, 0, matchingRegions, boldStylerProvider.getBoldStyler()); } } return styledDisplayString; }