MCPcopy Create free account
hub / github.com/github/gh-aw / FormatError

Function FormatError

pkg/console/console_wasm.go:16–66  ·  view source on GitHub ↗
(err CompilerError)

Source from the content-addressed store, hash-verified

14}
15
16func FormatError(err CompilerError) string {
17 var output strings.Builder
18
19 var prefix string
20 switch err.Type {
21 case "warning":
22 prefix = "warning"
23 case "info":
24 prefix = "info"
25 default:
26 prefix = "error"
27 }
28
29 if err.Position.File != "" {
30 relativePath := ToRelativePath(err.Position.File)
31 location := fmt.Sprintf("%s:%d:%d:", relativePath, err.Position.Line, err.Position.Column)
32 output.WriteString(location)
33 output.WriteString(" ")
34 }
35
36 output.WriteString(prefix + ": ")
37 output.WriteString(err.Message)
38 output.WriteString("\n")
39
40 if len(err.Context) > 0 && err.Position.Line > 0 {
41 maxLineNum := err.Position.Line + len(err.Context)/2
42 lineNumWidth := len(strconv.Itoa(maxLineNum))
43 for i, line := range err.Context {
44 lineNum := err.Position.Line - len(err.Context)/2 + i
45 if lineNum < 1 {
46 continue
47 }
48 lineNumStr := fmt.Sprintf("%*d", lineNumWidth, lineNum)
49 output.WriteString(lineNumStr)
50 output.WriteString(" | ")
51 output.WriteString(line)
52 output.WriteString("\n")
53 if lineNum == err.Position.Line && err.Position.Column > 0 && err.Position.Column <= len(line) {
54 wordEnd := findWordEnd(line, err.Position.Column-1)
55 wordLength := wordEnd - (err.Position.Column - 1)
56 padding := strings.Repeat(" ", lineNumWidth+3+err.Position.Column-1)
57 pointer := strings.Repeat("^", wordLength)
58 output.WriteString(padding)
59 output.WriteString(pointer)
60 output.WriteString("\n")
61 }
62 }
63 }
64
65 return output.String()
66}
67
68func FormatSuccessMessage(message string) string { return "✓ " + message }
69func FormatInfoMessage(message string) string { return "i " + message }

Calls 3

ToRelativePathFunction · 0.85
findWordEndFunction · 0.85
StringMethod · 0.45

Tested by

no test coverage detected