Documentation
¶
Overview ¶
Package extension 实现 extension binder:扩展安装/启停、tool 调用、snippet 管理。
Index ¶
- func CollectExtensionCategories(mgr *extension.Manager) []snippet_svc.ExtensionCategory
- type AssetTypeInfo
- type Extension
- func (e *Extension) CallExtensionAction(extName, action string, argsJSON string) (string, error)
- func (e *Extension) CallExtensionTool(extName, tool string, argsJSON string) (string, error)
- func (e *Extension) CancelExtensionAction(extName string) error
- func (e *Extension) Cleanup()
- func (e *Extension) CreateSnippet(req snippet_svc.CreateReq) (*snippet_entity.Snippet, error)
- func (e *Extension) Ctx() context.Context
- func (e *Extension) DeleteSnippet(id int64) error
- func (e *Extension) DisableExtension(name string) error
- func (e *Extension) DuplicateSnippet(id int64) (*snippet_entity.Snippet, error)
- func (e *Extension) EnableExtension(name string) error
- func (e *Extension) ForceUninstallExtension(name string, cleanData bool) error
- func (e *Extension) GetAvailableAssetTypes() []AssetTypeInfo
- func (e *Extension) GetDecryptedExtensionConfig(assetID int64, extName string) (string, error)
- func (e *Extension) GetExtensionDetail(name string) (*extension_svc.ExtensionInfo, error)
- func (e *Extension) GetExtensionManifest(name string) (*extension.Manifest, error)
- func (e *Extension) GetSnippet(id int64) (*snippet_entity.Snippet, error)
- func (e *Extension) GetSnippetLastAssets(id int64) ([]int64, error)
- func (e *Extension) InstallExtension() (*extension_svc.ExtensionInfo, error)
- func (e *Extension) InstallExtensionFromDirectory() (*extension_svc.ExtensionInfo, error)
- func (e *Extension) ListInstalledExtensions() []extension_svc.ExtensionInfo
- func (e *Extension) ListSnippetCategories() []snippet_svc.Category
- func (e *Extension) ListSnippets(req snippet_svc.ListReq) ([]*snippet_entity.Snippet, error)
- func (e *Extension) NewActionEventHandler(extName string) *actionEventHandler
- func (e *Extension) NewAssetConfigGetter() *assetConfigGetter
- func (e *Extension) NewFileDialogOpener() *fileDialogOpener
- func (e *Extension) NewHostProvider(extName string) interface{}
- func (e *Extension) NewKVStore(extName string) *kvStore
- func (e *Extension) NewTunnelDialer() *tunnelDialer
- func (e *Extension) Pool() *sshpool.Pool
- func (e *Extension) RecordSnippetUse(id int64) error
- func (e *Extension) ReloadExtensions() error
- func (e *Extension) Service() *extension_svc.Service
- func (e *Extension) SetService(svc *extension_svc.Service)
- func (e *Extension) SetSnippetLastAssets(id int64, assetIDs []int64) error
- func (e *Extension) Startup(ctx context.Context)
- func (e *Extension) UninstallExtension(name string, cleanData bool) error
- func (e *Extension) UpdateSnippet(req snippet_svc.UpdateReq) (*snippet_entity.Snippet, error)
- type LangProvider
- type SnippetExtensionHook
- func (SnippetExtensionHook) KnownCategoryIDs() []string
- func (SnippetExtensionHook) RefreshCategories()
- func (SnippetExtensionHook) RemoveExtensionSeeds(ctx context.Context, extName string) error
- func (SnippetExtensionHook) SyncExtensionSeeds(ctx context.Context, extName string, seeds []snippet_svc.SeedDef) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CollectExtensionCategories ¶
func CollectExtensionCategories(mgr *extension.Manager) []snippet_svc.ExtensionCategory
CollectExtensionCategories 遍历扩展管理器当前已加载扩展,收集其 manifest 声明的 snippet 分类。 返回结果喂给 CategoryRegistry 的 provider。
Types ¶
type AssetTypeInfo ¶
type AssetTypeInfo struct {
Type string `json:"type"`
ExtensionName string `json:"extensionName,omitempty"`
DisplayName string `json:"displayName"`
SSHTunnel bool `json:"sshTunnel"`
ProxyChain bool `json:"proxyChain"`
}
AssetTypeInfo combines built-in and extension asset types for the frontend.
type Extension ¶
type Extension struct {
// contains filtered or unexported fields
}
Extension binder。
func (*Extension) CallExtensionAction ¶
CallExtensionAction calls an extension action and streams events via Wails Events.
func (*Extension) CallExtensionTool ¶
CallExtensionTool calls an extension tool (for frontend config testing etc.)
func (*Extension) CancelExtensionAction ¶
CancelExtensionAction triggers cancellation of the currently running action.
func (*Extension) CreateSnippet ¶
func (e *Extension) CreateSnippet(req snippet_svc.CreateReq) (*snippet_entity.Snippet, error)
CreateSnippet 创建片段
func (*Extension) DeleteSnippet ¶
DeleteSnippet 软删除片段
func (*Extension) DisableExtension ¶
DisableExtension unloads a running extension without removing files.
func (*Extension) DuplicateSnippet ¶
func (e *Extension) DuplicateSnippet(id int64) (*snippet_entity.Snippet, error)
DuplicateSnippet 复制片段
func (*Extension) EnableExtension ¶
EnableExtension loads a disabled extension and registers it.
func (*Extension) ForceUninstallExtension ¶
ForceUninstallExtension removes an extension and optionally cleans up its data, bypassing the orphan-asset check.
func (*Extension) GetAvailableAssetTypes ¶
func (e *Extension) GetAvailableAssetTypes() []AssetTypeInfo
GetAvailableAssetTypes returns built-in + extension asset types.
func (*Extension) GetDecryptedExtensionConfig ¶
GetDecryptedExtensionConfig returns the asset config with password fields decrypted.
func (*Extension) GetExtensionDetail ¶
func (e *Extension) GetExtensionDetail(name string) (*extension_svc.ExtensionInfo, error)
GetExtensionDetail returns the full manifest and state for a single extension.
func (*Extension) GetExtensionManifest ¶
GetExtensionManifest returns a single extension's manifest.
func (*Extension) GetSnippet ¶
func (e *Extension) GetSnippet(id int64) (*snippet_entity.Snippet, error)
GetSnippet 获取单个片段
func (*Extension) GetSnippetLastAssets ¶
GetSnippetLastAssets returns the (live-filtered) asset IDs last used to run a snippet.
func (*Extension) InstallExtension ¶
func (e *Extension) InstallExtension() (*extension_svc.ExtensionInfo, error)
InstallExtension opens a file dialog and installs an extension from a zip file.
func (*Extension) InstallExtensionFromDirectory ¶
func (e *Extension) InstallExtensionFromDirectory() (*extension_svc.ExtensionInfo, error)
InstallExtensionFromDirectory opens a directory dialog and installs a local extension.
func (*Extension) ListInstalledExtensions ¶
func (e *Extension) ListInstalledExtensions() []extension_svc.ExtensionInfo
ListInstalledExtensions returns all loaded extensions.
func (*Extension) ListSnippetCategories ¶
func (e *Extension) ListSnippetCategories() []snippet_svc.Category
ListSnippetCategories 返回所有片段分类(内置 + 扩展提供)
func (*Extension) ListSnippets ¶
func (e *Extension) ListSnippets(req snippet_svc.ListReq) ([]*snippet_entity.Snippet, error)
ListSnippets 查询片段列表
func (*Extension) NewActionEventHandler ¶
NewActionEventHandler 为指定扩展返回 actionEventHandler 实例。
func (*Extension) NewAssetConfigGetter ¶
func (e *Extension) NewAssetConfigGetter() *assetConfigGetter
NewAssetConfigGetter 返回 assetConfigGetter 实例。
func (*Extension) NewFileDialogOpener ¶
func (e *Extension) NewFileDialogOpener() *fileDialogOpener
NewFileDialogOpener 返回 fileDialogOpener 实例。
func (*Extension) NewHostProvider ¶
NewHostProvider 由 main.go 调用:根据扩展名构造一个 HostProvider;与下文 ext 包内的 helpers 一起注入到 extension.NewManager 的 ProviderFactory。
func (*Extension) NewKVStore ¶
NewKVStore 为指定扩展返回 kvStore 实例。
func (*Extension) NewTunnelDialer ¶
func (e *Extension) NewTunnelDialer() *tunnelDialer
NewTunnelDialer 返回 tunnelDialer 实例。
func (*Extension) RecordSnippetUse ¶
RecordSnippetUse 记录片段使用,原子更新 use_count / last_used_at
func (*Extension) ReloadExtensions ¶
ReloadExtensions re-scans extensions directory and updates the bridge.
func (*Extension) Service ¶
func (e *Extension) Service() *extension_svc.Service
Service 返回当前持有的 extension_svc.Service(main.go 需要它去做附加配置)。
func (*Extension) SetService ¶
func (e *Extension) SetService(svc *extension_svc.Service)
SetService main.go 在创建 extension_svc.Service 后注入。
func (*Extension) SetSnippetLastAssets ¶
SetSnippetLastAssets records the asset IDs most recently used to run a snippet.
func (*Extension) UninstallExtension ¶
UninstallExtension removes an extension and optionally cleans up its data.
func (*Extension) UpdateSnippet ¶
func (e *Extension) UpdateSnippet(req snippet_svc.UpdateReq) (*snippet_entity.Snippet, error)
UpdateSnippet 更新片段
type SnippetExtensionHook ¶
type SnippetExtensionHook struct{}
SnippetExtensionHook 代理 extension_svc 的 SnippetExtensionHook 到全局 snippet_svc 单例。 单独为代理对象的原因:snippet_svc 单例在 bootstrap.Init 中注册;构造时可能尚未就绪, 延迟查表可避免启动顺序耦合。
func (SnippetExtensionHook) KnownCategoryIDs ¶
func (SnippetExtensionHook) KnownCategoryIDs() []string
KnownCategoryIDs 实现 extension_svc.SnippetExtensionHook
func (SnippetExtensionHook) RefreshCategories ¶
func (SnippetExtensionHook) RefreshCategories()
RefreshCategories 实现 extension_svc.SnippetExtensionHook
func (SnippetExtensionHook) RemoveExtensionSeeds ¶
func (SnippetExtensionHook) RemoveExtensionSeeds(ctx context.Context, extName string) error
RemoveExtensionSeeds 实现 extension_svc.SnippetExtensionHook
func (SnippetExtensionHook) SyncExtensionSeeds ¶
func (SnippetExtensionHook) SyncExtensionSeeds(ctx context.Context, extName string, seeds []snippet_svc.SeedDef) error
SyncExtensionSeeds 实现 extension_svc.SnippetExtensionHook