diagnostic

package
v0.12.0-a.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Context

func Context(message string, err error) error

func Report

func Report(r Reporter, d Diagnostic)

func WithDiagnostics

func WithDiagnostics(err error, diagnostics ...Diagnostic) error

func WriteText

func WriteText(out io.Writer, d Diagnostic) error

Types

type Collector

type Collector struct {
	// contains filtered or unexported fields
}

func (*Collector) Diagnostics

func (c *Collector) Diagnostics() []Diagnostic

func (*Collector) HasErrors

func (c *Collector) HasErrors() bool

func (*Collector) Report

func (c *Collector) Report(d Diagnostic)

type ConvertOptions

type ConvertOptions struct {
	DefaultCode string
	Path        func(string) string
}

type Diagnostic

type Diagnostic struct {
	Code     string   `json:"code"               ub:"code"`
	Severity Severity `json:"severity"           ub:"severity"`
	Message  string   `json:"message"            ub:"message"`
	Hint     string   `json:"hint,omitempty"     ub:"hint,omitempty"`
	Path     string   `json:"path,omitempty"     ub:"path,omitempty"`
	Span     *Span    `json:"span,omitempty"     ub:"span,omitempty"`

	LibraryCompatibility *LibraryCompatibilityDetails `json:"library-compatibility,omitempty" ub:"library-compatibility,omitempty"`
}

func FromError

func FromError(err error, opts ConvertOptions) []Diagnostic

func Merge

func Merge(groups ...[]Diagnostic) []Diagnostic

func Normalize

func Normalize(ds []Diagnostic) []Diagnostic

type LibraryCompatibilityDetails

type LibraryCompatibilityDetails struct {
	Dependency             string                   `json:"dependency,omitempty" ub:"dependency,omitempty"`
	Package                string                   `json:"package,omitempty" ub:"package,omitempty"`
	ModulePath             string                   `json:"module-path,omitempty" ub:"module-path,omitempty"`
	Version                string                   `json:"version,omitempty" ub:"version,omitempty"`
	Commit                 string                   `json:"commit,omitempty" ub:"commit,omitempty"`
	ActualVersion          string                   `json:"actual-version,omitempty" ub:"actual-version,omitempty"`
	ActualRequiredAPI      string                   `json:"actual-required-api,omitempty" ub:"actual-required-api,omitempty"`
	CandidateVersion       string                   `json:"candidate-version,omitempty" ub:"candidate-version,omitempty"`
	Query                  string                   `json:"query,omitempty" ub:"query,omitempty"`
	Floor                  string                   `json:"floor,omitempty" ub:"floor,omitempty"`
	RequiredAPI            string                   `json:"required-api,omitempty" ub:"required-api,omitempty"`
	ImplementedAPIs        []string                 `json:"implemented-apis,omitempty" ub:"implemented-apis,omitempty"`
	UnobinVersion          string                   `json:"unobin-version,omitempty" ub:"unobin-version,omitempty"`
	SuggestedUnobinVersion string                   `json:"suggested-unobin-version,omitempty" ub:"suggested-unobin-version,omitempty"`
	RequiredCoreVersion    string                   `json:"required-core-version,omitempty" ub:"required-core-version,omitempty"`
	MinimumGoVersion       string                   `json:"minimum-go-version,omitempty" ub:"minimum-go-version,omitempty"`
	Replacement            string                   `json:"replacement,omitempty" ub:"replacement,omitempty"`
	ActualReplacement      string                   `json:"actual-replacement,omitempty" ub:"actual-replacement,omitempty"`
	RequirementChain       []LibraryRequirementStep `json:"requirement-chain,omitempty" ub:"requirement-chain,omitempty"`
}

type LibraryRequirementStep

type LibraryRequirementStep struct {
	Dependency     string `json:"dependency" ub:"dependency"`
	Version        string `json:"version,omitempty" ub:"version,omitempty"`
	Requires       string `json:"requires" ub:"requires"`
	MinimumVersion string `json:"minimum-version" ub:"minimum-version"`
}

type PathMapper

type PathMapper struct {
	WorkingDir  string
	ProjectDir  string
	Mappings    []PathMapping
	HiddenRoots []string
}

func (PathMapper) Display

func (m PathMapper) Display(path string) string

func (PathMapper) ReplaceKnownPrefixes

func (m PathMapper) ReplaceKnownPrefixes(message string) string

type PathMapping

type PathMapping struct {
	AbsoluteRoot string
	DisplayRoot  string
}

type Position

type Position struct {
	Line   int `json:"line"   ub:"line"`
	Column int `json:"column" ub:"column"`
	Offset int `json:"offset" ub:"offset"`
}

type Reporter

type Reporter interface {
	Report(Diagnostic)
}

type Severity

type Severity string
const (
	SeverityError   Severity = "error"
	SeverityWarning Severity = "warning"
	SeverityInfo    Severity = "info"
)

type Span

type Span struct {
	Start Position  `json:"start"         ub:"start"`
	End   *Position `json:"end,omitempty" ub:"end,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL