internal/lsp/diagnostics.go (37 lines of code) (raw):

package lsp import ( lsp "github.com/Azure/azapi-lsp/internal/protocol" "github.com/hashicorp/hcl/v2" ) func HCLSeverityToLSP(severity hcl.DiagnosticSeverity) lsp.DiagnosticSeverity { var sev lsp.DiagnosticSeverity switch severity { case hcl.DiagError: sev = lsp.SeverityError case hcl.DiagWarning: sev = lsp.SeverityWarning case hcl.DiagInvalid: panic("invalid diagnostic") } return sev } func HCLDiagsToLSP(hclDiags hcl.Diagnostics, source string) []lsp.Diagnostic { diags := []lsp.Diagnostic{} for _, hclDiag := range hclDiags { msg := hclDiag.Summary if hclDiag.Detail != "" { msg += ": " + hclDiag.Detail } var rnge lsp.Range if hclDiag.Subject != nil { rnge = HCLRangeToLSP(*hclDiag.Subject) } diags = append(diags, lsp.Diagnostic{ Range: rnge, Severity: HCLSeverityToLSP(hclDiag.Severity), Source: source, Message: msg, }) } return diags }