Documentation
¶
Overview ¶
Package devtools installs and resolves language servers and debug adapters managed by Wingman. Managed tools live directly below WINGMAN_HOME/tools; each tool has one active installation which is replaced on update.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Disabled ¶
func Disabled() bool
Disabled reports whether automatic installation is turned off. Existing managed tools continue to resolve; only downloads and updates stop.
func IsUnavailable ¶
func ToolLabel ¶
ToolLabel returns the user-facing name stored with a managed tool's recipe. Unknown IDs are returned unchanged so callers always have useful text.
func ToolLabels ¶
ToolLabels maps stable catalog IDs to their user-facing names.
func UnavailableTools ¶
UnavailableTools returns the stable tool IDs from a possibly joined update error. Callers can present a concise notice without exposing installer logs.
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager owns the latest-only managed tool directory.
func (*Manager) ToolDir ¶
ToolDir returns the installation directory of a managed tool, if present. Adapters use it to locate bundled files that accompany an executable.
func (*Manager) Update ¶
func (m *Manager) Update(ctx context.Context, requirements []Requirement, progress ...func(Progress)) (bool, error)
Update installs the latest release for every selected requirement. A fresh installation is checked at most once per day; failed checks are retried after a short backoff. Successful updates replace the prior directory and remove it rather than accumulating versions.
type Progress ¶
type Progress struct {
Tool string
Label string
Phase ProgressPhase
Current int
Total int
}
Progress identifies the managed tool currently being checked, installed, or updated.
type ProgressPhase ¶ added in v0.15.1
type ProgressPhase string
ProgressPhase describes what the managed-tool updater is doing. Checking is intentionally distinct from a download so status surfaces do not imply that a fresh installation is being replaced on every startup.
const ( ProgressChecking ProgressPhase = "checking" ProgressInstalling ProgressPhase = "installing" ProgressUpdating ProgressPhase = "updating" )
type Requirement ¶
type Requirement struct {
Alternatives []string
Workspace string
Projects []string
MinimumMajorVersions map[string]int
ManagedOnly bool
}
Requirement lists equivalent commands in preference order. Project and standard system commands satisfy the requirement before a managed recipe is selected. ManagedOnly is reserved for capabilities that need bundled files in addition to an executable, such as Java debugging.
type UnavailableError ¶
type UnavailableError struct {
}
UnavailableError means no usable copy of a required tool remains after an automatic installation failure. Refresh failures for an existing copy do not use this type.
func (*UnavailableError) Error ¶
func (e *UnavailableError) Error() string
func (*UnavailableError) Unwrap ¶
func (e *UnavailableError) Unwrap() error