Documentation
¶
Index ¶
- Constants
- func CountCustomSettings() int
- func DefaultBoolPtr(arg *bool, def bool) bool
- func GetConfigSubdirs() []string
- func SetBaseConfigValue(toMerge waveobj.MetaMapType) error
- func SetConnectionsConfigValue(connName string, toMerge waveobj.MetaMapType) error
- func SortFileNameDescend(files []fs.DirEntry)
- func WriteWaveHomeConfigFile(fileName string, m waveobj.MetaMapType) error
- type AiSettingsType
- type ConfigError
- type ConnKeywords
- type FullConfigType
- type MimeTypeConfigType
- type SettingsType
- type TermThemeType
- type Watcher
- type WatcherUpdate
- type WebBookmark
- type WidgetConfigType
Constants ¶
const ( ConfigKey_AppClear = "app:*" ConfigKey_AppGlobalHotkey = "app:globalhotkey" ConfigKey_AppDismissArchitectureWarning = "app:dismissarchitecturewarning" ConfigKey_AppDefaultNewBlock = "app:defaultnewblock" ConfigKey_AppShowOverlayBlockNums = "app:showoverlayblocknums" ConfigKey_AiClear = "ai:*" ConfigKey_AiPreset = "ai:preset" ConfigKey_AiApiType = "ai:apitype" ConfigKey_AiBaseURL = "ai:baseurl" ConfigKey_AiApiToken = "ai:apitoken" ConfigKey_AiName = "ai:name" ConfigKey_AiModel = "ai:model" ConfigKey_AiOrgID = "ai:orgid" ConfigKey_AIApiVersion = "ai:apiversion" ConfigKey_AiMaxTokens = "ai:maxtokens" ConfigKey_AiTimeoutMs = "ai:timeoutms" ConfigKey_AiProxyUrl = "ai:proxyurl" ConfigKey_AiFontSize = "ai:fontsize" ConfigKey_AiFixedFontSize = "ai:fixedfontsize" ConfigKey_TermClear = "term:*" ConfigKey_TermFontSize = "term:fontsize" ConfigKey_TermFontFamily = "term:fontfamily" ConfigKey_TermTheme = "term:theme" ConfigKey_TermDisableWebGl = "term:disablewebgl" ConfigKey_TermLocalShellPath = "term:localshellpath" ConfigKey_TermLocalShellOpts = "term:localshellopts" ConfigKey_TermScrollback = "term:scrollback" ConfigKey_TermCopyOnSelect = "term:copyonselect" ConfigKey_TermTransparency = "term:transparency" ConfigKey_TermAllowBracketedPaste = "term:allowbracketedpaste" ConfigKey_TermShiftEnterNewline = "term:shiftenternewline" ConfigKey_EditorMinimapEnabled = "editor:minimapenabled" ConfigKey_EditorStickyScrollEnabled = "editor:stickyscrollenabled" ConfigKey_EditorWordWrap = "editor:wordwrap" ConfigKey_EditorFontSize = "editor:fontsize" ConfigKey_WebClear = "web:*" ConfigKey_WebOpenLinksInternally = "web:openlinksinternally" ConfigKey_WebDefaultUrl = "web:defaulturl" ConfigKey_WebDefaultSearch = "web:defaultsearch" ConfigKey_BlockHeaderClear = "blockheader:*" ConfigKey_BlockHeaderShowBlockIds = "blockheader:showblockids" ConfigKey_AutoUpdateClear = "autoupdate:*" ConfigKey_AutoUpdateEnabled = "autoupdate:enabled" ConfigKey_AutoUpdateIntervalMs = "autoupdate:intervalms" ConfigKey_AutoUpdateInstallOnQuit = "autoupdate:installonquit" ConfigKey_AutoUpdateChannel = "autoupdate:channel" ConfigKey_MarkdownFontSize = "markdown:fontsize" ConfigKey_MarkdownFixedFontSize = "markdown:fixedfontsize" ConfigKey_PreviewShowHiddenFiles = "preview:showhiddenfiles" ConfigKey_TabPreset = "tab:preset" ConfigKey_WidgetClear = "widget:*" ConfigKey_WidgetShowHelp = "widget:showhelp" ConfigKey_WindowClear = "window:*" ConfigKey_WindowTransparent = "window:transparent" ConfigKey_WindowBlur = "window:blur" ConfigKey_WindowOpacity = "window:opacity" ConfigKey_WindowBgColor = "window:bgcolor" ConfigKey_WindowReducedMotion = "window:reducedmotion" ConfigKey_WindowTileGapSize = "window:tilegapsize" ConfigKey_WindowShowMenuBar = "window:showmenubar" ConfigKey_WindowNativeTitleBar = "window:nativetitlebar" ConfigKey_WindowDisableHardwareAcceleration = "window:disablehardwareacceleration" ConfigKey_WindowMaxTabCacheSize = "window:maxtabcachesize" ConfigKey_WindowMagnifiedBlockOpacity = "window:magnifiedblockopacity" ConfigKey_WindowMagnifiedBlockSize = "window:magnifiedblocksize" ConfigKey_WindowMagnifiedBlockBlurPrimaryPx = "window:magnifiedblockblurprimarypx" ConfigKey_WindowMagnifiedBlockBlurSecondaryPx = "window:magnifiedblockblursecondarypx" ConfigKey_WindowConfirmClose = "window:confirmclose" ConfigKey_WindowSaveLastWindow = "window:savelastwindow" ConfigKey_WindowDimensions = "window:dimensions" ConfigKey_WindowZoom = "window:zoom" ConfigKey_TelemetryClear = "telemetry:*" ConfigKey_TelemetryEnabled = "telemetry:enabled" ConfigKey_ConnClear = "conn:*" ConfigKey_ConnAskBeforeWshInstall = "conn:askbeforewshinstall" ConfigKey_ConnWshEnabled = "conn:wshenabled" )
const AnySchema = `
{
"type": "object",
"additionalProperties": true
}
`
const ConnectionsFile = "connections.json"
const ProfilesFile = "profiles.json"
const SettingsFile = "settings.json"
Variables ¶
This section is empty.
Functions ¶
func CountCustomSettings ¶ added in v0.11.5
func CountCustomSettings() int
CountCustomSettings returns the number of settings in the user's settings file. This excludes telemetry:enabled and autoupdate:channel which don't count as customizations.
func DefaultBoolPtr ¶ added in v0.11.0
func GetConfigSubdirs ¶ added in v0.9.0
func GetConfigSubdirs() []string
func SetBaseConfigValue ¶
func SetBaseConfigValue(toMerge waveobj.MetaMapType) error
func SetConnectionsConfigValue ¶ added in v0.10.0
func SetConnectionsConfigValue(connName string, toMerge waveobj.MetaMapType) error
func SortFileNameDescend ¶ added in v0.9.0
func WriteWaveHomeConfigFile ¶
func WriteWaveHomeConfigFile(fileName string, m waveobj.MetaMapType) error
Types ¶
type AiSettingsType ¶ added in v0.11.1
type AiSettingsType struct {
AiClear bool `json:"ai:*,omitempty"`
AiPreset 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"`
AiProxyUrl string `json:"ai:proxyurl,omitempty"`
AiFontSize float64 `json:"ai:fontsize,omitempty"`
AiFixedFontSize float64 `json:"ai:fixedfontsize,omitempty"`
DisplayName string `json:"display:name,omitempty"`
DisplayOrder float64 `json:"display:order,omitempty"`
}
func MergeAiSettings ¶ added in v0.11.5
func MergeAiSettings(settings ...*AiSettingsType) *AiSettingsType
type ConfigError ¶
func ReadDefaultsConfigFile ¶
func ReadDefaultsConfigFile(fileName string) (waveobj.MetaMapType, []ConfigError)
func ReadWaveHomeConfigFile ¶
func ReadWaveHomeConfigFile(fileName string) (waveobj.MetaMapType, []ConfigError)
type ConnKeywords ¶ added in v0.11.0
type ConnKeywords struct {
ConnWshEnabled *bool `json:"conn:wshenabled,omitempty"`
ConnAskBeforeWshInstall *bool `json:"conn:askbeforewshinstall,omitempty"`
ConnWshPath string `json:"conn:wshpath,omitempty"`
ConnShellPath string `json:"conn:shellpath,omitempty"`
ConnIgnoreSshConfig *bool `json:"conn:ignoresshconfig,omitempty"`
DisplayHidden *bool `json:"display:hidden,omitempty"`
DisplayOrder float32 `json:"display:order,omitempty"`
TermClear bool `json:"term:*,omitempty"`
TermFontSize float64 `json:"term:fontsize,omitempty"`
TermFontFamily string `json:"term:fontfamily,omitempty"`
TermTheme string `json:"term:theme,omitempty"`
CmdEnv map[string]string `json:"cmd:env,omitempty"`
CmdInitScript string `json:"cmd:initscript,omitempty"`
CmdInitScriptSh string `json:"cmd:initscript.sh,omitempty"`
CmdInitScriptBash string `json:"cmd:initscript.bash,omitempty"`
CmdInitScriptZsh string `json:"cmd:initscript.zsh,omitempty"`
CmdInitScriptPwsh string `json:"cmd:initscript.pwsh,omitempty"`
CmdInitScriptFish string `json:"cmd:initscript.fish,omitempty"`
SshUser *string `json:"ssh:user,omitempty"`
SshHostName *string `json:"ssh:hostname,omitempty"`
SshPort *string `json:"ssh:port,omitempty"`
SshIdentityFile []string `json:"ssh:identityfile,omitempty"`
SshBatchMode *bool `json:"ssh:batchmode,omitempty"`
SshPubkeyAuthentication *bool `json:"ssh:pubkeyauthentication,omitempty"`
SshPasswordAuthentication *bool `json:"ssh:passwordauthentication,omitempty"`
SshKbdInteractiveAuthentication *bool `json:"ssh:kbdinteractiveauthentication,omitempty"`
SshPreferredAuthentications []string `json:"ssh:preferredauthentications,omitempty"`
SshAddKeysToAgent *bool `json:"ssh:addkeystoagent,omitempty"`
SshIdentityAgent *string `json:"ssh:identityagent,omitempty"`
SshIdentitiesOnly *bool `json:"ssh:identitiesonly,omitempty"`
SshProxyJump []string `json:"ssh:proxyjump,omitempty"`
SshUserKnownHostsFile []string `json:"ssh:userknownhostsfile,omitempty"`
SshGlobalKnownHostsFile []string `json:"ssh:globalknownhostsfile,omitempty"`
}
type FullConfigType ¶
type FullConfigType struct {
Settings SettingsType `json:"settings" merge:"meta"`
MimeTypes map[string]MimeTypeConfigType `json:"mimetypes"`
DefaultWidgets map[string]WidgetConfigType `json:"defaultwidgets"`
Widgets map[string]WidgetConfigType `json:"widgets"`
Presets map[string]waveobj.MetaMapType `json:"presets"`
TermThemes map[string]TermThemeType `json:"termthemes"`
Connections map[string]ConnKeywords `json:"connections"`
Bookmarks map[string]WebBookmark `json:"bookmarks"`
ConfigErrors []ConfigError `json:"configerrors" configfile:"-"`
}
func ReadFullConfig ¶
func ReadFullConfig() FullConfigType
this function should only be called by the wconfig code. in golang code, the best way to get the current config is via the watcher -- wconfig.GetWatcher().GetFullConfig()
func (*FullConfigType) CountCustomAIPresets ¶ added in v0.11.5
func (fc *FullConfigType) CountCustomAIPresets() int
CountCustomAIPresets returns the number of custom AI presets the user has defined. Custom AI presets are identified as presets that start with "ai@" but aren't "ai@global" or "ai@wave".
func (*FullConfigType) CountCustomWidgets ¶ added in v0.11.5
func (fc *FullConfigType) CountCustomWidgets() int
CountCustomWidgets returns the number of custom widgets the user has defined. Custom widgets are identified as widgets whose ID doesn't start with "defwidget@".
type MimeTypeConfigType ¶
type SettingsType ¶
type SettingsType struct {
AppClear bool `json:"app:*,omitempty"`
AppGlobalHotkey string `json:"app:globalhotkey,omitempty"`
AppDismissArchitectureWarning bool `json:"app:dismissarchitecturewarning,omitempty"`
AppDefaultNewBlock string `json:"app:defaultnewblock,omitempty"`
AppShowOverlayBlockNums *bool `json:"app:showoverlayblocknums,omitempty"`
AiClear bool `json:"ai:*,omitempty"`
AiPreset 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"`
AiProxyUrl string `json:"ai:proxyurl,omitempty"`
AiFontSize float64 `json:"ai:fontsize,omitempty"`
AiFixedFontSize float64 `json:"ai:fixedfontsize,omitempty"`
TermClear bool `json:"term:*,omitempty"`
TermFontSize float64 `json:"term:fontsize,omitempty"`
TermFontFamily string `json:"term:fontfamily,omitempty"`
TermTheme string `json:"term:theme,omitempty"`
TermDisableWebGl bool `json:"term:disablewebgl,omitempty"`
TermLocalShellPath string `json:"term:localshellpath,omitempty"`
TermLocalShellOpts []string `json:"term:localshellopts,omitempty"`
TermScrollback *int64 `json:"term:scrollback,omitempty"`
TermCopyOnSelect *bool `json:"term:copyonselect,omitempty"`
TermTransparency *float64 `json:"term:transparency,omitempty"`
TermAllowBracketedPaste *bool `json:"term:allowbracketedpaste,omitempty"`
TermShiftEnterNewline *bool `json:"term:shiftenternewline,omitempty"`
EditorMinimapEnabled bool `json:"editor:minimapenabled,omitempty"`
EditorStickyScrollEnabled bool `json:"editor:stickyscrollenabled,omitempty"`
EditorWordWrap bool `json:"editor:wordwrap,omitempty"`
EditorFontSize float64 `json:"editor:fontsize,omitempty"`
WebClear bool `json:"web:*,omitempty"`
WebOpenLinksInternally bool `json:"web:openlinksinternally,omitempty"`
WebDefaultUrl string `json:"web:defaulturl,omitempty"`
WebDefaultSearch string `json:"web:defaultsearch,omitempty"`
BlockHeaderClear bool `json:"blockheader:*,omitempty"`
BlockHeaderShowBlockIds bool `json:"blockheader:showblockids,omitempty"`
AutoUpdateClear bool `json:"autoupdate:*,omitempty"`
AutoUpdateEnabled bool `json:"autoupdate:enabled,omitempty"`
AutoUpdateIntervalMs float64 `json:"autoupdate:intervalms,omitempty"`
AutoUpdateInstallOnQuit bool `json:"autoupdate:installonquit,omitempty"`
AutoUpdateChannel string `json:"autoupdate:channel,omitempty"`
MarkdownFontSize float64 `json:"markdown:fontsize,omitempty"`
MarkdownFixedFontSize float64 `json:"markdown:fixedfontsize,omitempty"`
PreviewShowHiddenFiles *bool `json:"preview:showhiddenfiles,omitempty"`
TabPreset string `json:"tab:preset,omitempty"`
WidgetClear bool `json:"widget:*,omitempty"`
WidgetShowHelp *bool `json:"widget:showhelp,omitempty"`
WindowClear bool `json:"window:*,omitempty"`
WindowTransparent bool `json:"window:transparent,omitempty"`
WindowBlur bool `json:"window:blur,omitempty"`
WindowOpacity *float64 `json:"window:opacity,omitempty"`
WindowBgColor string `json:"window:bgcolor,omitempty"`
WindowReducedMotion bool `json:"window:reducedmotion,omitempty"`
WindowTileGapSize *int64 `json:"window:tilegapsize,omitempty"`
WindowShowMenuBar bool `json:"window:showmenubar,omitempty"`
WindowNativeTitleBar bool `json:"window:nativetitlebar,omitempty"`
WindowDisableHardwareAcceleration bool `json:"window:disablehardwareacceleration,omitempty"`
WindowMaxTabCacheSize int `json:"window:maxtabcachesize,omitempty"`
WindowMagnifiedBlockOpacity *float64 `json:"window:magnifiedblockopacity,omitempty"`
WindowMagnifiedBlockSize *float64 `json:"window:magnifiedblocksize,omitempty"`
WindowMagnifiedBlockBlurPrimaryPx *int64 `json:"window:magnifiedblockblurprimarypx,omitempty"`
WindowMagnifiedBlockBlurSecondaryPx *int64 `json:"window:magnifiedblockblursecondarypx,omitempty"`
WindowConfirmClose bool `json:"window:confirmclose,omitempty"`
WindowSaveLastWindow bool `json:"window:savelastwindow,omitempty"`
WindowDimensions string `json:"window:dimensions,omitempty"`
WindowZoom *float64 `json:"window:zoom,omitempty"`
TelemetryClear bool `json:"telemetry:*,omitempty"`
TelemetryEnabled bool `json:"telemetry:enabled,omitempty"`
ConnClear bool `json:"conn:*,omitempty"`
ConnAskBeforeWshInstall *bool `json:"conn:askbeforewshinstall,omitempty"`
ConnWshEnabled bool `json:"conn:wshenabled,omitempty"`
}
func (*SettingsType) GetAiSettings ¶ added in v0.11.5
func (s *SettingsType) GetAiSettings() *AiSettingsType
type TermThemeType ¶
type TermThemeType struct {
DisplayName string `json:"display:name"`
DisplayOrder float64 `json:"display:order"`
Black string `json:"black"`
Red string `json:"red"`
Green string `json:"green"`
Yellow string `json:"yellow"`
Blue string `json:"blue"`
Magenta string `json:"magenta"`
Cyan string `json:"cyan"`
White string `json:"white"`
BrightBlack string `json:"brightBlack"`
BrightRed string `json:"brightRed"`
BrightGreen string `json:"brightGreen"`
BrightYellow string `json:"brightYellow"`
BrightBlue string `json:"brightBlue"`
BrightMagenta string `json:"brightMagenta"`
BrightCyan string `json:"brightCyan"`
BrightWhite string `json:"brightWhite"`
Gray string `json:"gray"`
CmdText string `json:"cmdtext"`
Foreground string `json:"foreground"`
SelectionBackground string `json:"selectionBackground"`
Background string `json:"background"`
Cursor string `json:"cursor"`
}
type Watcher ¶
type Watcher struct {
// contains filtered or unexported fields
}
func GetWatcher ¶
func GetWatcher() *Watcher
GetWatcher returns the singleton instance of the Watcher
func (*Watcher) GetFullConfig ¶
func (w *Watcher) GetFullConfig() FullConfigType
type WatcherUpdate ¶
type WatcherUpdate struct {
FullConfig FullConfigType `json:"fullconfig"`
}
type WebBookmark ¶ added in v0.11.1
type WidgetConfigType ¶
type WidgetConfigType struct {
DisplayOrder float64 `json:"display:order,omitempty"`
DisplayHidden bool `json:"display:hidden,omitempty"`
Icon string `json:"icon,omitempty"`
Color string `json:"color,omitempty"`
Label string `json:"label,omitempty"`
Description string `json:"description,omitempty"`
Magnified bool `json:"magnified,omitempty"`
BlockDef waveobj.BlockDef `json:"blockdef"`
}