refactor: extract Diagnostic namespace into lsp/diagnostic.ts + self-reexport (#22983)
This commit is contained in:
@@ -0,0 +1,29 @@
|
|||||||
|
import * as LSPClient from "./client"
|
||||||
|
|
||||||
|
const MAX_PER_FILE = 20
|
||||||
|
|
||||||
|
export function pretty(diagnostic: LSPClient.Diagnostic) {
|
||||||
|
const severityMap = {
|
||||||
|
1: "ERROR",
|
||||||
|
2: "WARN",
|
||||||
|
3: "INFO",
|
||||||
|
4: "HINT",
|
||||||
|
}
|
||||||
|
|
||||||
|
const severity = severityMap[diagnostic.severity || 1]
|
||||||
|
const line = diagnostic.range.start.line + 1
|
||||||
|
const col = diagnostic.range.start.character + 1
|
||||||
|
|
||||||
|
return `${severity} [${line}:${col}] ${diagnostic.message}`
|
||||||
|
}
|
||||||
|
|
||||||
|
export function report(file: string, issues: LSPClient.Diagnostic[]) {
|
||||||
|
const errors = issues.filter((item) => item.severity === 1)
|
||||||
|
if (errors.length === 0) return ""
|
||||||
|
const limited = errors.slice(0, MAX_PER_FILE)
|
||||||
|
const more = errors.length - MAX_PER_FILE
|
||||||
|
const suffix = more > 0 ? `\n... and ${more} more` : ""
|
||||||
|
return `<diagnostics file="${file}">\n${limited.map(pretty).join("\n")}${suffix}\n</diagnostics>`
|
||||||
|
}
|
||||||
|
|
||||||
|
export * as Diagnostic from "./diagnostic"
|
||||||
@@ -505,30 +505,4 @@ export const layer = Layer.effect(
|
|||||||
|
|
||||||
export const defaultLayer = layer.pipe(Layer.provide(Config.defaultLayer))
|
export const defaultLayer = layer.pipe(Layer.provide(Config.defaultLayer))
|
||||||
|
|
||||||
export namespace Diagnostic {
|
export * as Diagnostic from "./diagnostic"
|
||||||
const MAX_PER_FILE = 20
|
|
||||||
|
|
||||||
export function pretty(diagnostic: LSPClient.Diagnostic) {
|
|
||||||
const severityMap = {
|
|
||||||
1: "ERROR",
|
|
||||||
2: "WARN",
|
|
||||||
3: "INFO",
|
|
||||||
4: "HINT",
|
|
||||||
}
|
|
||||||
|
|
||||||
const severity = severityMap[diagnostic.severity || 1]
|
|
||||||
const line = diagnostic.range.start.line + 1
|
|
||||||
const col = diagnostic.range.start.character + 1
|
|
||||||
|
|
||||||
return `${severity} [${line}:${col}] ${diagnostic.message}`
|
|
||||||
}
|
|
||||||
|
|
||||||
export function report(file: string, issues: LSPClient.Diagnostic[]) {
|
|
||||||
const errors = issues.filter((item) => item.severity === 1)
|
|
||||||
if (errors.length === 0) return ""
|
|
||||||
const limited = errors.slice(0, MAX_PER_FILE)
|
|
||||||
const more = errors.length - MAX_PER_FILE
|
|
||||||
const suffix = more > 0 ? `\n... and ${more} more` : ""
|
|
||||||
return `<diagnostics file="${file}">\n${limited.map(pretty).join("\n")}${suffix}\n</diagnostics>`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user