config

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2026 License: AGPL-3.0 Imports: 6 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithGlobalConfig

func WithGlobalConfig(ctx context.Context, config *GlobalConfig) context.Context

WithGlobalConfig injects the IDE global configuration into context.

func WithPluginConfig

func WithPluginConfig(ctx context.Context, config *PluginConfig) context.Context

WithPluginConfig injects the IDE plugin configuration into context.

Types

type GlobalConfig

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

GlobalConfig holds the global configuration for the IDE.

func GlobalConfigFromContext

func GlobalConfigFromContext(ctx context.Context) *GlobalConfig

GlobalConfigFromContext returns the global configuration from the context.

func NewGlobalConfig

func NewGlobalConfig(config map[string]interface{}) *GlobalConfig

NewGlobalConfig creates a new global configuration.

func (*GlobalConfig) Get

func (c *GlobalConfig) Get(key string) interface{}

Get returns the value for the given key on the config.

type PluginAuthor

type PluginAuthor struct {
	Name  string `json:"name"  yaml:"name"`
	Email string `json:"email" yaml:"email,omitempty"`
	URL   string `json:"url"   yaml:"url,omitempty"`
}

type PluginComponentArea

type PluginComponentArea string
const (
	PluginComponentAreaEditor  PluginComponentArea = "EDITOR"
	PluginComponentAreaSidebar PluginComponentArea = "SIDEBAR"
)

type PluginComponents

type PluginComponents struct {
	Resource []PluginResourceComponent `json:"resource" yaml:"resource"`
}

type PluginConfig

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

PluginConfig holds the plugin configuration for the IDE.

func NewEmptyPluginConfig

func NewEmptyPluginConfig() *PluginConfig

NewEmptyPluginConfig creates a new empty plugin configuration.

func NewPluginConfig

func NewPluginConfig(config map[string]string) *PluginConfig

NewPluginConfig creates a new plugin configuration.

func PluginConfigFromContext

func PluginConfigFromContext(ctx context.Context) *PluginConfig

PluginConfigFromContext returns the plugin configuration from the context.

func (*PluginConfig) Get

func (c *PluginConfig) Get(key string) string

Get returns the value for the given key on the config.

type PluginMaintainer

type PluginMaintainer struct {
	Name  string `json:"name"  yaml:"name"`
	Email string `json:"email" yaml:"email"`
}

type PluginMeta

type PluginMeta struct {
	ID                 string             `json:"id"                    yaml:"id"`
	Version            string             `json:"version"               yaml:"version"`
	Name               string             `json:"name"                  yaml:"name"`
	Icon               string             `json:"icon"                  yaml:"icon"`
	IconURL            string             `json:"icon_url"              yaml:"icon_url,omitempty"`
	Description        string             `json:"description"           yaml:"description"`
	Repository         string             `json:"repository"            yaml:"repository"`
	Website            string             `json:"website"               yaml:"website"`
	Category           string             `json:"category"              yaml:"category,omitempty"`
	License            string             `json:"license"               yaml:"license,omitempty"`
	Markdown           string             `json:"-"                     yaml:"-"`
	Author             *PluginAuthor      `json:"author,omitempty"      yaml:"author,omitempty"`
	Maintainers        []PluginMaintainer `json:"maintainers"           yaml:"maintainers"`
	Tags               []string           `json:"tags"                  yaml:"tags"`
	Dependencies       []string           `json:"dependencies"          yaml:"dependencies"`
	Capabilities       []string           `json:"capabilities"          yaml:"capabilities"`
	Theme              PluginTheme        `json:"theme"                 yaml:"theme"`
	Components         PluginComponents   `json:"components"            yaml:"components"`
	SchemaVersion      int                `json:"schema_version"        yaml:"schema_version,omitempty"`
	SDKProtocolVersion int                `json:"sdk_protocol_version"  yaml:"sdk_protocol_version,omitempty"`
}

PluginMeta is the plugin description file located at the root of a plugin.

func (*PluginMeta) GenerateHandshakeConfig

func (c *PluginMeta) GenerateHandshakeConfig() plugin.HandshakeConfig

GenerateHandshakeConfig generates a handshake config for the plugin. The magic cookie value uses only the plugin ID (not version) so that version bumps don't force binary rebuilds just for the handshake. Version negotiation is handled by the PluginLifecycle.GetInfo() RPC.

func (*PluginMeta) HasBackendCapabilities

func (m *PluginMeta) HasBackendCapabilities() bool

HasBackendCapabilities checks if the plugin has any backend capabilities.

func (*PluginMeta) HasUICapabilities

func (m *PluginMeta) HasUICapabilities() bool

HasUICapabilities checks if the plugin has UI capabilities.

func (*PluginMeta) Load

func (c *PluginMeta) Load(reader io.Reader) error

func (*PluginMeta) LoadMarkdown

func (c *PluginMeta) LoadMarkdown(path string) error

LoadMarkdown loads a plugin Markdown file from a given path (if it exists) into the plugin config.

type PluginMetaFormat

type PluginMetaFormat int
const (
	// PluginMetaFormatYAML is the YAML format for a plugin config.
	PluginMetaFormatYAML PluginMetaFormat = iota
	// PluginMetaFormatJSON is the JSON format for a plugin config.
	PluginMetaFormatJSON
)

type PluginResourceComponent

type PluginResourceComponent struct {
	Name           string              `json:"name"      yaml:"name"`
	Plugin         string              `json:"plugin"    yaml:"plugin"`
	Area           PluginComponentArea `json:"area"      yaml:"area"`
	Resources      []string            `json:"resources" yaml:"resources"`
	ExtensionPoint string              `json:"extension" yaml:"extension"`
}

type PluginTheme

type PluginTheme struct {
	Colors PluginThemeColors `json:"colors" yaml:"colors"`
}

type PluginThemeColors

type PluginThemeColors struct {
	Primary   string `json:"primary"   yaml:"primary"`
	Secondary string `json:"secondary" yaml:"secondary"`
	Tertiary  string `json:"tertiary"  yaml:"tertiary"`
}

Jump to

Keyboard shortcuts

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