external_edit

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2026 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Overview

Package external_edit 实现远程文件外部编辑 binder: 仅做依赖装配和 IPC 转发,状态机/编码/审计等业务逻辑都下沉到 external_edit_svc。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CompareResult

type CompareResult = external_edit_svc.CompareResult

Type aliases 让 Wails 在生成 TS binding 时把 service 内部类型挂在本包下, 前端只需要 import 一个稳定的 external_edit 命名空间。

type ExternalEdit

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

ExternalEdit 外部编辑 binder:仅依赖 sftpSvc + sshMgr,不直接持有数据库。

func New

func New(appCtx context.Context, lang LangProvider, sftpSvc *sftp_svc.Service, sshMgr *ssh_svc.Manager) *ExternalEdit

New 构造 external edit binder。sftpSvc/sshMgr 由 main.go 创建后注入。

func (*ExternalEdit) ApplyExternalEditMerge

func (e *ExternalEdit) ApplyExternalEditMerge(req MergeApplyRequest) (*SaveResult, error)

func (*ExternalEdit) Cleanup

func (e *ExternalEdit) Cleanup()

Cleanup 关闭 service:watcher / 后台 goroutine / 文件句柄都在 service.Close 里收口。

func (*ExternalEdit) CompareExternalEditSession

func (e *ExternalEdit) CompareExternalEditSession(sessionID string) (*CompareResult, error)

CompareExternalEditSession 只暴露"生成只读差异快照"的能力; 编码 / BOM / round-trip 校验与远端身份确认仍由 service 串行裁决。

func (*ExternalEdit) ContinueExternalEditSession

func (e *ExternalEdit) ContinueExternalEditSession(sessionID string) (*Session, error)

func (*ExternalEdit) GetExternalEditSettings

func (e *ExternalEdit) GetExternalEditSettings() (*Settings, error)

func (*ExternalEdit) ListExternalEditSessions

func (e *ExternalEdit) ListExternalEditSessions() ([]*Session, error)

func (*ExternalEdit) OpenExternalEdit

func (e *ExternalEdit) OpenExternalEdit(req OpenRequest) (*Session, error)

OpenExternalEdit IPC 边界只转发"打开哪个远程文件"的意图; 文本判定、会话复用、编码快照、审计和事件广播全部交由 service 串行裁决。

func (*ExternalEdit) PrepareExternalEditMerge

func (e *ExternalEdit) PrepareExternalEditMerge(sessionID string) (*MergePrepareResult, error)

func (*ExternalEdit) RecoverExternalEditSession

func (e *ExternalEdit) RecoverExternalEditSession(sessionID string) (*Session, error)

func (*ExternalEdit) RefreshExternalEditSession

func (e *ExternalEdit) RefreshExternalEditSession(sessionID string) (*Session, error)

func (*ExternalEdit) ResolveExternalEditConflict

func (e *ExternalEdit) ResolveExternalEditConflict(sessionID, resolution string) (*SaveResult, error)

ResolveExternalEditConflict resolution 只是用户决策信号:overwrite / recreate / reread 的副作用和状态迁移全部封装在 service 内,IPC 层不额外拼分支。

func (*ExternalEdit) SaveExternalEditSession

func (e *ExternalEdit) SaveExternalEditSession(sessionID string) (*SaveResult, error)

SaveExternalEditSession 保存和冲突处理都以 sessionID 作为唯一入口, 桌面事件、审计和状态恢复围绕同一份会话记录运转。

func (*ExternalEdit) SaveExternalEditSettings

func (e *ExternalEdit) SaveExternalEditSettings(input SettingsInput) (*Settings, error)

func (*ExternalEdit) SelectExternalEditWorkspaceRoot

func (e *ExternalEdit) SelectExternalEditWorkspaceRoot() (string, error)

SelectExternalEditWorkspaceRoot 工作区目录由前端选择,但最终是否落盘以后端配置逻辑为准。

func (*ExternalEdit) SelectExternalEditorExecutable

func (e *ExternalEdit) SelectExternalEditorExecutable() (string, error)

SelectExternalEditorExecutable 弹出文件选择器返回用户挑的绝对路径; 真正的可执行性校验留给 service 统一处理,避免桌面端和测试端出现双重规则。

func (*ExternalEdit) Startup

func (e *ExternalEdit) Startup(ctx context.Context)

Startup 保存 Wails ctx 后再启动 service:Emit 回调依赖 ctx 才能 EventsEmit。

type LangProvider

type LangProvider interface {
	Lang() string
}

LangProvider 由 system binder 实现,提供当前 UI 语言。

type MergeApplyRequest

type MergeApplyRequest = external_edit_svc.MergeApplyRequest

Type aliases 让 Wails 在生成 TS binding 时把 service 内部类型挂在本包下, 前端只需要 import 一个稳定的 external_edit 命名空间。

type MergePrepareResult

type MergePrepareResult = external_edit_svc.MergePrepareResult

Type aliases 让 Wails 在生成 TS binding 时把 service 内部类型挂在本包下, 前端只需要 import 一个稳定的 external_edit 命名空间。

type OpenRequest

type OpenRequest = external_edit_svc.OpenRequest

Type aliases 让 Wails 在生成 TS binding 时把 service 内部类型挂在本包下, 前端只需要 import 一个稳定的 external_edit 命名空间。

type SaveResult

type SaveResult = external_edit_svc.SaveResult

Type aliases 让 Wails 在生成 TS binding 时把 service 内部类型挂在本包下, 前端只需要 import 一个稳定的 external_edit 命名空间。

type Session

type Session = external_edit_svc.Session

Type aliases 让 Wails 在生成 TS binding 时把 service 内部类型挂在本包下, 前端只需要 import 一个稳定的 external_edit 命名空间。

type Settings

type Settings = external_edit_svc.Settings

Type aliases 让 Wails 在生成 TS binding 时把 service 内部类型挂在本包下, 前端只需要 import 一个稳定的 external_edit 命名空间。

type SettingsInput

type SettingsInput = external_edit_svc.SettingsInput

Type aliases 让 Wails 在生成 TS binding 时把 service 内部类型挂在本包下, 前端只需要 import 一个稳定的 external_edit 命名空间。

Jump to

Keyboard shortcuts

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