@@ -245,28 +245,28 @@ func getDiagnostics(filePath string, lsps map[string]*lsp.Client) string {
245 return projectDiagnostics[i] < projectDiagnostics[j]
245 return projectDiagnostics[i] < projectDiagnostics[j]
248− output := ""
248+ var output strings.Builder
250 if len(fileDiagnostics) > 0 {
250 if len(fileDiagnostics) > 0 {
251− output += "\n<file_diagnostics>\n"
251+ output.WriteString("\n<file_diagnostics>\n")
252 if len(fileDiagnostics) > 10 {
252 if len(fileDiagnostics) > 10 {
253− output += strings.Join(fileDiagnostics[:10], "\n")
253+ output.WriteString(strings.Join(fileDiagnostics[:10], "\n"))
254− output += fmt.Sprintf("\n... and %d more diagnostics", len(fileDiagnostics)-10)
254+ fmt.Fprintf(&output, "\n... and %d more diagnostics", len(fileDiagnostics)-10)
256− output += strings.Join(fileDiagnostics, "\n")
256+ output.WriteString(strings.Join(fileDiagnostics, "\n"))
258− output += "\n</file_diagnostics>\n"
258+ output.WriteString("\n</file_diagnostics>\n")
261 if len(projectDiagnostics) > 0 {
261 if len(projectDiagnostics) > 0 {
262− output += "\n<project_diagnostics>\n"
262+ output.WriteString("\n<project_diagnostics>\n")
263 if len(projectDiagnostics) > 10 {
263 if len(projectDiagnostics) > 10 {
264− output += strings.Join(projectDiagnostics[:10], "\n")
264+ output.WriteString(strings.Join(projectDiagnostics[:10], "\n"))
265− output += fmt.Sprintf("\n... and %d more diagnostics", len(projectDiagnostics)-10)
265+ fmt.Fprintf(&output, "\n... and %d more diagnostics", len(projectDiagnostics)-10)
267− output += strings.Join(projectDiagnostics, "\n")
267+ output.WriteString(strings.Join(projectDiagnostics, "\n"))
269− output += "\n</project_diagnostics>\n"
269+ output.WriteString("\n</project_diagnostics>\n")
272 if len(fileDiagnostics) > 0 || len(projectDiagnostics) > 0 {
272 if len(fileDiagnostics) > 0 || len(projectDiagnostics) > 0 {
@@ -275,13 +275,13 @@ func getDiagnostics(filePath string, lsps map[string]*lsp.Client) string {
275 projectErrors := countSeverity(projectDiagnostics, "Error")
275 projectErrors := countSeverity(projectDiagnostics, "Error")
276 projectWarnings := countSeverity(projectDiagnostics, "Warn")
276 projectWarnings := countSeverity(projectDiagnostics, "Warn")
278− output += "\n<diagnostic_summary>\n"
278+ output.WriteString("\n<diagnostic_summary>\n")
279− output += fmt.Sprintf("Current file: %d errors, %d warnings\n", fileErrors, fileWarnings)
279+ fmt.Fprintf(&output, "Current file: %d errors, %d warnings\n", fileErrors, fileWarnings)
280− output += fmt.Sprintf("Project: %d errors, %d warnings\n", projectErrors, projectWarnings)
280+ fmt.Fprintf(&output, "Project: %d errors, %d warnings\n", projectErrors, projectWarnings)
281− output += "</diagnostic_summary>\n"
281+ output.WriteString("</diagnostic_summary>\n")
284− return output
284+ return output.String()
287func countSeverity(diagnostics []string, severity string) int {
287func countSeverity(diagnostics []string, severity string) int {