Documentation
¶
Index ¶
- Constants
- func AllWaveObjTypes() []reflect.Type
- func ContextAddUpdate(ctx context.Context, update WaveObjUpdate)
- func ContextGetUpdates(ctx context.Context) map[ORef]WaveObjUpdate
- func ContextPrintUpdates(ctx context.Context)
- func ContextUpdatesBeginTx(ctx context.Context) context.Context
- func ContextUpdatesCommitTx(ctx context.Context)
- func ContextUpdatesRollbackTx(ctx context.Context)
- func ContextWithUpdates(ctx context.Context) context.Context
- func FromJsonGen[T WaveObj](data []byte) (T, error)
- func GetOID(waveObj WaveObj) string
- func GetVersion(waveObj WaveObj) int
- func RegisterType(rtype reflect.Type)
- func SetMeta(waveObj WaveObj, meta map[string]any)
- func SetOID(waveObj WaveObj, oid string)
- func SetVersion(waveObj WaveObj, version int)
- func ToJson(w WaveObj) ([]byte, error)
- func ToJsonMap(w WaveObj) (map[string]any, error)
- type Block
- type BlockDef
- type Client
- type FileDef
- type LayoutActionData
- type LayoutState
- type LeafOrderEntry
- type MetaDataDecl
- type MetaMapType
- func (m MetaMapType) GetArray(key string) []any
- func (m MetaMapType) GetBool(key string, def bool) bool
- func (m MetaMapType) GetFloat(key string, def float64) float64
- func (m MetaMapType) GetInt(key string, def int) int
- func (m MetaMapType) GetMap(key string) MetaMapType
- func (m MetaMapType) GetString(key string, def string) string
- func (m MetaMapType) GetStringArray(key string) []string
- func (m MetaMapType) GetStringList(key string) []string
- type MetaPresetDecl
- type MetaTSType
- type ORef
- type Point
- type RuntimeOpts
- type StickerClickOptsType
- type StickerDisplayOptsType
- type StickerType
- type Tab
- type TermSize
- type UIContext
- type UpdatesRtnType
- type WaveObj
- type WaveObjUpdate
- type WinSize
- type Window
- type Workspace
Constants ¶
View Source
const ( MetaKey_View = "view" MetaKey_Controller = "controller" MetaKey_File = "file" MetaKey_Url = "url" MetaKey_PinnedUrl = "pinnedurl" MetaKey_Connection = "connection" MetaKey_Edit = "edit" MetaKey_History = "history" MetaKey_HistoryForward = "history:forward" MetaKey_DisplayName = "display:name" MetaKey_DisplayOrder = "display:order" MetaKey_Icon = "icon" MetaKey_IconColor = "icon:color" MetaKey_FrameClear = "frame:*" MetaKey_Frame = "frame" MetaKey_FrameBorderColor = "frame:bordercolor" MetaKey_FrameBorderColor_Focused = "frame:bordercolor:focused" MetaKey_FrameTitle = "frame:title" MetaKey_FrameIcon = "frame:icon" MetaKey_FrameText = "frame:text" MetaKey_CmdClear = "cmd:*" MetaKey_Cmd = "cmd" MetaKey_CmdInteractive = "cmd:interactive" MetaKey_CmdLogin = "cmd:login" MetaKey_CmdRunOnStart = "cmd:runonstart" MetaKey_CmdClearOnStart = "cmd:clearonstart" MetaKey_CmdClearOnRestart = "cmd:clearonrestart" MetaKey_CmdEnv = "cmd:env" MetaKey_CmdCwd = "cmd:cwd" MetaKey_CmdNoWsh = "cmd:nowsh" MetaKey_AiClear = "ai:*" MetaKey_AiPresetKey = "ai:preset" MetaKey_AiApiType = "ai:apitype" MetaKey_AiBaseURL = "ai:baseurl" MetaKey_AiApiToken = "ai:apitoken" MetaKey_AiName = "ai:name" MetaKey_AiModel = "ai:model" MetaKey_AiOrgID = "ai:orgid" MetaKey_AIApiVersion = "ai:apiversion" MetaKey_AiMaxTokens = "ai:maxtokens" MetaKey_AiTimeoutMs = "ai:timeoutms" MetaKey_GraphClear = "graph:*" MetaKey_GraphNumPoints = "graph:numpoints" MetaKey_GraphMetrics = "graph:metrics" MetaKey_SysinfoType = "sysinfo:type" MetaKey_BgClear = "bg:*" MetaKey_Bg = "bg" MetaKey_BgOpacity = "bg:opacity" MetaKey_BgBlendMode = "bg:blendmode" MetaKey_TermClear = "term:*" MetaKey_TermFontSize = "term:fontsize" MetaKey_TermFontFamily = "term:fontfamily" MetaKey_TermMode = "term:mode" MetaKey_TermTheme = "term:theme" MetaKey_TermLocalShellPath = "term:localshellpath" MetaKey_TermLocalShellOpts = "term:localshellopts" MetaKey_TermScrollback = "term:scrollback" MetaKey_Count = "count" )
View Source
const ( OTypeKeyName = "otype" OIDKeyName = "oid" VersionKeyName = "version" MetaKeyName = "meta" OIDGoFieldName = "OID" VersionGoFieldName = "Version" MetaGoFieldName = "Meta" )
View Source
const ( UpdateType_Update = "update" UpdateType_Delete = "delete" )
View Source
const ( OType_Client = "client" OType_Window = "window" OType_Workspace = "workspace" OType_Tab = "tab" OType_LayoutState = "layout" OType_Block = "block" )
View Source
const Entity_Any = "any"
Variables ¶
This section is empty.
Functions ¶
func AllWaveObjTypes ¶
func ContextAddUpdate ¶
func ContextAddUpdate(ctx context.Context, update WaveObjUpdate)
func ContextGetUpdates ¶
func ContextGetUpdates(ctx context.Context) map[ORef]WaveObjUpdate
func ContextPrintUpdates ¶
func ContextUpdatesCommitTx ¶
func FromJsonGen ¶
func GetVersion ¶
func RegisterType ¶
func SetVersion ¶
Types ¶
type Block ¶
type Block struct {
OID string `json:"oid"`
Version int `json:"version"`
BlockDef *BlockDef `json:"blockdef"`
RuntimeOpts *RuntimeOpts `json:"runtimeopts,omitempty"`
Stickers []*StickerType `json:"stickers,omitempty"`
Meta MetaMapType `json:"meta"`
}
type BlockDef ¶
type BlockDef struct {
Files map[string]*FileDef `json:"files,omitempty"`
Meta MetaMapType `json:"meta,omitempty"`
}
type Client ¶
type LayoutActionData ¶
type LayoutState ¶
type LayoutState struct {
OID string `json:"oid"`
Version int `json:"version"`
RootNode any `json:"rootnode,omitempty"`
MagnifiedNodeId string `json:"magnifiednodeid,omitempty"`
FocusedNodeId string `json:"focusednodeid,omitempty"`
LeafOrder *[]LeafOrderEntry `json:"leaforder,omitempty"`
PendingBackendActions *[]LayoutActionData `json:"pendingbackendactions,omitempty"`
Meta MetaMapType `json:"meta,omitempty"`
}
func (*LayoutState) GetOType ¶
func (*LayoutState) GetOType() string
type LeafOrderEntry ¶
type MetaDataDecl ¶
type MetaDataDecl struct {
Key string `json:"key"`
Desc string `json:"desc,omitempty"`
Type string `json:"type"` // string, int, float, bool, array, object
Default any `json:"default,omitempty"`
StrOptions []string `json:"stroptions,omitempty"`
NumRange []*int `json:"numrange,omitempty"` // inclusive, null means no limit
Entity []string `json:"entity"` // what entities this applies to, e.g. "block", "tab", "any", etc.
Special []string `json:"special,omitempty"` // special handling. things that need to happen if this gets updated
}
type MetaMapType ¶
func GetMeta ¶
func GetMeta(waveObj WaveObj) MetaMapType
func MergeMeta ¶
func MergeMeta(meta MetaMapType, metaUpdate MetaMapType, mergeSpecial bool) MetaMapType
returns a clean copy of meta with mergeMeta merged in if mergeSpecial is false, then special keys will not be merged (like display:*)
func (MetaMapType) GetArray ¶
func (m MetaMapType) GetArray(key string) []any
func (MetaMapType) GetMap ¶
func (m MetaMapType) GetMap(key string) MetaMapType
func (MetaMapType) GetStringArray ¶
func (m MetaMapType) GetStringArray(key string) []string
func (MetaMapType) GetStringList ¶ added in v0.8.8
func (m MetaMapType) GetStringList(key string) []string
type MetaPresetDecl ¶
type MetaTSType ¶
type MetaTSType struct {
// shared
View string `json:"view,omitempty"`
Controller string `json:"controller,omitempty"`
File string `json:"file,omitempty"`
Url string `json:"url,omitempty"`
PinnedUrl string `json:"pinnedurl,omitempty"`
Connection string `json:"connection,omitempty"`
Edit bool `json:"edit,omitempty"`
History []string `json:"history,omitempty"`
HistoryForward []string `json:"history:forward,omitempty"`
DisplayName string `json:"display:name,omitempty"`
DisplayOrder float64 `json:"display:order,omitempty"`
Icon string `json:"icon,omitempty"`
IconColor string `json:"icon:color,omitempty"`
FrameClear bool `json:"frame:*,omitempty"`
Frame bool `json:"frame,omitempty"`
FrameBorderColor string `json:"frame:bordercolor,omitempty"`
FrameBorderColor_Focused string `json:"frame:bordercolor:focused,omitempty"`
FrameTitle string `json:"frame:title,omitempty"`
FrameIcon string `json:"frame:icon,omitempty"`
FrameText string `json:"frame:text,omitempty"`
CmdClear bool `json:"cmd:*,omitempty"`
Cmd string `json:"cmd,omitempty"`
CmdInteractive bool `json:"cmd:interactive,omitempty"`
CmdLogin bool `json:"cmd:login,omitempty"`
CmdRunOnStart bool `json:"cmd:runonstart,omitempty"`
CmdClearOnStart bool `json:"cmd:clearonstart,omitempty"`
CmdClearOnRestart bool `json:"cmd:clearonrestart,omitempty"`
CmdEnv map[string]string `json:"cmd:env,omitempty"`
CmdCwd string `json:"cmd:cwd,omitempty"`
CmdNoWsh bool `json:"cmd:nowsh,omitempty"`
// AI options match settings
AiClear bool `json:"ai:*,omitempty"`
AiPresetKey string `json:"ai:preset,omitempty"`
AiApiType string `json:"ai:apitype,omitempty"`
AiBaseURL string `json:"ai:baseurl,omitempty"`
AiApiToken string `json:"ai:apitoken,omitempty"`
AiName string `json:"ai:name,omitempty"`
AiModel string `json:"ai:model,omitempty"`
AiOrgID string `json:"ai:orgid,omitempty"`
AIApiVersion string `json:"ai:apiversion,omitempty"`
AiMaxTokens float64 `json:"ai:maxtokens,omitempty"`
AiTimeoutMs float64 `json:"ai:timeoutms,omitempty"`
GraphClear bool `json:"graph:*,omitempty"`
GraphNumPoints int `json:"graph:numpoints,omitempty"`
GraphMetrics []string `json:"graph:metrics,omitempty"`
SysinfoType string `json:"sysinfo:type,omitempty"`
// for tabs
BgClear bool `json:"bg:*,omitempty"`
Bg string `json:"bg,omitempty"`
BgOpacity float64 `json:"bg:opacity,omitempty"`
BgBlendMode string `json:"bg:blendmode,omitempty"`
TermClear bool `json:"term:*,omitempty"`
TermFontSize int `json:"term:fontsize,omitempty"`
TermFontFamily string `json:"term:fontfamily,omitempty"`
TermMode string `json:"term:mode,omitempty"`
TermTheme string `json:"term:theme,omitempty"`
TermLocalShellPath string `json:"term:localshellpath,omitempty"` // matches settings
TermLocalShellOpts []string `json:"term:localshellopts,omitempty"` // matches settings
TermScrollback *int `json:"term:scrollback,omitempty"`
Count int `json:"count,omitempty"` // temp for cpu plot. will remove later
}
for typescript typing
type ORef ¶
type ORef struct {
// special JSON marshalling to string
OType string `json:"otype" mapstructure:"otype"`
OID string `json:"oid" mapstructure:"oid"`
}
func ORefFromWaveObj ¶
func (ORef) MarshalJSON ¶
func (*ORef) UnmarshalJSON ¶
type RuntimeOpts ¶
type StickerClickOptsType ¶
type StickerDisplayOptsType ¶
type StickerType ¶
type StickerType struct {
StickerType string `json:"stickertype"`
Style map[string]any `json:"style"`
ClickOpts *StickerClickOptsType `json:"clickopts,omitempty"`
Display *StickerDisplayOptsType `json:"display"`
}
type Tab ¶
type Tab struct {
OID string `json:"oid"`
Version int `json:"version"`
Name string `json:"name"`
LayoutState string `json:"layoutstate"`
BlockIds []string `json:"blockids"`
Meta MetaMapType `json:"meta"`
}
func (*Tab) GetBlockORefs ¶
type UpdatesRtnType ¶
type UpdatesRtnType = []WaveObjUpdate
func ContextGetUpdatesRtn ¶
func ContextGetUpdatesRtn(ctx context.Context) UpdatesRtnType
type WaveObj ¶
type WaveObj interface {
GetOType() string // should not depend on object state (should work with nil value)
}
type WaveObjUpdate ¶
type WaveObjUpdate struct {
UpdateType string `json:"updatetype"`
OType string `json:"otype"`
OID string `json:"oid"`
Obj WaveObj `json:"obj,omitempty"`
}
func ContextGetUpdate ¶
func ContextGetUpdate(ctx context.Context, oref ORef) *WaveObjUpdate
func MakeUpdate ¶
func MakeUpdate(obj WaveObj) WaveObjUpdate
func MakeUpdates ¶
func MakeUpdates(objs []WaveObj) []WaveObjUpdate
func (WaveObjUpdate) MarshalJSON ¶
func (update WaveObjUpdate) MarshalJSON() ([]byte, error)
func (*WaveObjUpdate) UnmarshalJSON ¶
func (update *WaveObjUpdate) UnmarshalJSON(data []byte) error
type Window ¶
type Window struct {
OID string `json:"oid"`
Version int `json:"version"`
WorkspaceId string `json:"workspaceid"`
ActiveTabId string `json:"activetabid"`
IsNew bool `json:"isnew,omitempty"` // set when a window is created on the backend so the FE can size it properly. cleared on first resize
Pos Point `json:"pos"`
WinSize WinSize `json:"winsize"`
LastFocusTs int64 `json:"lastfocusts"`
Meta MetaMapType `json:"meta"`
}
stores the ui-context of the window workspaceid, active tab, active block within each tab, window size, etc.
Click to show internal directories.
Click to hide internal directories.