|
|
@@ -505,30 +505,4 @@ export const layer = Layer.effect(
|
|
|
|
|
|
export const defaultLayer = layer.pipe(Layer.provide(Config.defaultLayer))
|
|
|
|
|
|
-export namespace 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>`
|
|
|
- }
|
|
|
-}
|
|
|
+export * as Diagnostic from "./diagnostic"
|