package editor_action
Variables
ErrDuplicateAction
errors.New("editor_action: duplicate action")
ErrInvalidAction
errors.New("editor_action: invalid action")
ErrActionNotFound
errors.New("editor_action: action not found")
Functions
ChordsEqual
FormatKeyChord
HasChord
IsModifierKey
KeyName
Param[T any]
Params
ValidChord
Types
ActionBinding
struct
type ActionBinding struct {
Action ActionID `json:"action"`
Params any `json:"params,omitempty"`
Workspace string `json:"workspace,omitempty"`
Enabled bool `json:"enabled"`
Chord KeyChord `json:"chord"`
}
BindingsForAction
func BindingsForAction(defaults, user []ActionBinding, action ActionID, workspace string) []ActionBinding
EffectiveBindings
RemoveBindingConflicts
func RemoveBindingConflicts(defaults, user []ActionBinding, conflicts []BindingConflict) []ActionBinding
ReplaceActionBindings
func ReplaceActionBindings(user []ActionBinding, action ActionID, workspace string, replacements []ActionBinding) []ActionBinding
ActionID
BindingConflict
struct
BindingConflicts
func BindingConflicts(active []ActionBinding, candidate ActionBinding, labels map[ActionID]string) []BindingConflict
CanRunFunc
Context
struct
type Context struct {
CurrentWorkspace string
InputFocused bool
Services map[string]any
Feedback func(Result)
}
Definition
struct
type Definition struct {
ID ActionID `json:"id"`
Label string `json:"label"`
Description string `json:"description,omitempty"`
Category string `json:"category,omitempty"`
Tags []string `json:"tags,omitempty"`
Aliases []string `json:"aliases,omitempty"`
DefaultParams any `json:"defaultParams,omitempty"`
NewParams ParamsFactory `json:"-"`
Parameters []Parameter `json:"parameters,omitempty"`
DefaultBindings []ActionBinding `json:"defaultBindings,omitempty"`
UndoPolicy UndoPolicy `json:"undoPolicy"`
Visible bool `json:"visible"`
Unbindable bool `json:"unbindable,omitempty"`
RequiredWorkspace string `json:"requiredWorkspace,omitempty"`
Variants []Variant `json:"variants,omitempty"`
}
Entry
struct
type Entry struct {
Definition
Params any `json:"params,omitempty"`
VariantIndex int `json:"variantIndex,omitempty"`
}
Handler
KeyChord
struct
type KeyChord struct {
Keys []int `json:"keys,omitempty"`
Ctrl bool `json:"ctrl,omitempty"`
Meta bool `json:"meta,omitempty"`
CtrlOrMeta bool `json:"ctrlOrMeta,omitempty"`
Shift bool `json:"shift,omitempty"`
Alt bool `json:"alt,omitempty"`
}
Parameter
struct
type Parameter struct {
Name string `json:"name"`
Label string `json:"label,omitempty"`
Type string `json:"type,omitempty"`
Required bool `json:"required,omitempty"`
Default any `json:"default,omitempty"`
Options []string `json:"options,omitempty"`
Description string `json:"description,omitempty"`
}
ParamsFactory
Registry
struct
NewRegistry
Registry.Definition
Registry.Definitions
Registry.Entries
Registry.Register
Registry.Registered
Request
struct
type Request struct {
ID ActionID `json:"id"`
Params any `json:"params,omitempty"`
Source Source `json:"source,omitempty"`
CorrelationID string `json:"correlationId,omitempty"`
}
Result
struct
type Result struct {
OK bool `json:"ok"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
Data map[string]any `json:"data,omitempty"`
Warnings []string `json:"warnings,omitempty"`
AffectedEntityIDs []string `json:"affectedEntityIds,omitempty"`
SelectedEntityIDs []string `json:"selectedEntityIds,omitempty"`
}
Failure
Success
Service
struct
NewService
Service.CanRun
Service.CanRunOnMainThread
Service.DefaultBindings
Service.Definitions
Service.NormalizeRequest
Service.Register
Service.Registry
Service.Run
Service.RunOnMainThread
Service.Search
Service.SearchOnMainThread
Service.SetContextProvider
Service.SetMainThreadScheduler
Service.SetTransactionHooks
Source
const ( SourceUnknown Source = "" SourceMenu Source = "menu" SourcePalette Source = "palette" SourceKeybind Source = "keybinding" SourceLua Source = "lua" SourceREST Source = "rest" )
UndoPolicy
const ( UndoPolicyNone UndoPolicy = iota UndoPolicyTransaction UndoPolicyManaged )
Variant
struct