private void processSymbols(DbFileSources.Line.Builder lineBuilder) { int line = lineBuilder.getLine(); List<ScannerReport.Symbol> lineSymbols = new ArrayList<>(this.symbolsPerLine.get(line)); // Sort symbols to have deterministic results and avoid false variation that would lead to an unnecessary update of the source files // data lineSymbols.sort(SymbolsComparator.INSTANCE); StringBuilder symbolString = new StringBuilder(); for (ScannerReport.Symbol lineSymbol : lineSymbols) { int symbolId = idsBySymbol.get(lineSymbol); appendSymbol(symbolString, lineSymbol.getDeclaration(), line, symbolId, lineBuilder.getSource()); for (ScannerReport.TextRange range : lineSymbol.getReferenceList()) { appendSymbol(symbolString, range, line, symbolId, lineBuilder.getSource()); } } if (symbolString.length() > 0) { lineBuilder.setSymbols(symbolString.toString()); } }
private void processHighlighting(Iterator<ScannerReport.SyntaxHighlightingRule> syntaxHighlightingIterator, StringBuilder highlighting, DbFileSources.Line.Builder lineBuilder) { ScannerReport.SyntaxHighlightingRule syntaxHighlighting = syntaxHighlightingIterator.next(); int line = lineBuilder.getLine(); ScannerReport.TextRange range = syntaxHighlighting.getRange(); if (range.getStartLine() <= line) { String offsets = rangeOffsetConverter.offsetToString(syntaxHighlighting.getRange(), line, lineBuilder.getSource().length()); if (offsets.isEmpty()) { if (range.getEndLine() == line) { syntaxHighlightingIterator.remove(); } } else { if (highlighting.length() > 0) { highlighting.append(SYMBOLS_SEPARATOR); } highlighting.append(offsets) .append(OFFSET_SEPARATOR) .append(getCssClass(syntaxHighlighting.getType())); if (range.getEndLine() == line) { syntaxHighlightingIterator.remove(); } } } }
private void processSymbols(DbFileSources.Line.Builder lineBuilder) { int line = lineBuilder.getLine(); List<ScannerReport.Symbol> lineSymbols = new ArrayList<>(this.symbolsPerLine.get(line)); // Sort symbols to have deterministic results and avoid false variation that would lead to an unnecessary update of the source files // data Collections.sort(lineSymbols, SymbolsComparator.INSTANCE); StringBuilder symbolString = new StringBuilder(); for (ScannerReport.Symbol lineSymbol : lineSymbols) { int symbolId = idsBySymbol.get(lineSymbol); appendSymbol(symbolString, lineSymbol.getDeclaration(), line, symbolId, lineBuilder.getSource()); for (ScannerReport.TextRange range : lineSymbol.getReferenceList()) { appendSymbol(symbolString, range, line, symbolId, lineBuilder.getSource()); } } if (symbolString.length() > 0) { lineBuilder.setSymbols(symbolString.toString()); } }
private void processHighlighting(Iterator<ScannerReport.SyntaxHighlightingRule> syntaxHighlightingIterator, StringBuilder highlighting, DbFileSources.Line.Builder lineBuilder) { ScannerReport.SyntaxHighlightingRule syntaxHighlighting = syntaxHighlightingIterator.next(); int line = lineBuilder.getLine(); ScannerReport.TextRange range = syntaxHighlighting.getRange(); if (range.getStartLine() <= line) { String offsets = rangeOffsetConverter.offsetToString(syntaxHighlighting.getRange(), line, lineBuilder.getSource().length()); if (offsets.isEmpty()) { if (range.getEndLine() == line) { syntaxHighlightingIterator.remove(); } } else { if (highlighting.length() > 0) { highlighting.append(SYMBOLS_SEPARATOR); } highlighting.append(offsets) .append(OFFSET_SEPARATOR) .append(getCssClass(syntaxHighlighting.getType())); if (range.getEndLine() == line) { syntaxHighlightingIterator.remove(); } } } }