🚧 Refactor basic services
This commit is contained in:
370
internal/models/key_binding.go
Normal file
370
internal/models/key_binding.go
Normal file
@@ -0,0 +1,370 @@
|
||||
package models
|
||||
|
||||
// KeyBindingKey 快捷键命令
|
||||
type KeyBindingKey string
|
||||
|
||||
// KeyBinding 单个快捷键绑定
|
||||
type KeyBinding struct {
|
||||
Key KeyBindingKey `json:"key"`
|
||||
Command string `json:"command"`
|
||||
Extension ExtensionKey `json:"extension"`
|
||||
Enabled bool `json:"enabled"`
|
||||
}
|
||||
|
||||
const (
|
||||
ShowSearchKeyBindingKey KeyBindingKey = "showSearch" // 显示搜索
|
||||
HideSearchKeyBindingKey KeyBindingKey = "hideSearch" // 隐藏搜索
|
||||
BlockSelectAllKeyBindingKey KeyBindingKey = "blockSelectAll" // 块内选择全部
|
||||
BlockAddAfterCurrentKeyBindingKey KeyBindingKey = "blockAddAfterCurrent" // 在当前块后添加新块
|
||||
BlockAddAfterLastKeyBindingKey KeyBindingKey = "blockAddAfterLast" // 在最后添加新块
|
||||
BlockAddBeforeCurrentKeyBindingKey KeyBindingKey = "blockAddBeforeCurrent" // 在当前块前添加新块
|
||||
BlockGotoPreviousKeyBindingKey KeyBindingKey = "blockGotoPrevious" // 跳转到上一个块
|
||||
BlockGotoNextKeyBindingKey KeyBindingKey = "blockGotoNext" // 跳转到下一个块
|
||||
BlockSelectPreviousKeyBindingKey KeyBindingKey = "blockSelectPrevious" // 选择上一个块
|
||||
BlockSelectNextKeyBindingKey KeyBindingKey = "blockSelectNext" // 选择下一个块
|
||||
BlockDeleteKeyBindingKey KeyBindingKey = "blockDelete" // 删除当前块
|
||||
BlockMoveUpKeyBindingKey KeyBindingKey = "blockMoveUp" // 向上移动当前块
|
||||
BlockMoveDownKeyBindingKey KeyBindingKey = "blockMoveDown" // 向下移动当前块
|
||||
BlockDeleteLineKeyBindingKey KeyBindingKey = "blockDeleteLine" // 删除行
|
||||
BlockMoveLineUpKeyBindingKey KeyBindingKey = "blockMoveLineUp" // 向上移动行
|
||||
BlockMoveLineDownKeyBindingKey KeyBindingKey = "blockMoveLineDown" // 向下移动行
|
||||
BlockTransposeCharsKeyBindingKey KeyBindingKey = "blockTransposeChars" // 字符转置
|
||||
BlockFormatKeyBindingKey KeyBindingKey = "blockFormat" // 格式化代码块
|
||||
BlockCopyKeyBindingKey KeyBindingKey = "blockCopy" // 复制
|
||||
BlockCutKeyBindingKey KeyBindingKey = "blockCut" // 剪切
|
||||
BlockPasteKeyBindingKey KeyBindingKey = "blockPaste" // 粘贴
|
||||
FoldCodeKeyBindingKey KeyBindingKey = "foldCode" // 折叠代码
|
||||
UnfoldCodeKeyBindingKey KeyBindingKey = "unfoldCode" // 展开代码
|
||||
FoldAllKeyBindingKey KeyBindingKey = "foldAll" // 折叠全部
|
||||
UnfoldAllKeyBindingKey KeyBindingKey = "unfoldAll" // 展开全部
|
||||
CursorSyntaxLeftKeyBindingKey KeyBindingKey = "cursorSyntaxLeft" // 光标按语法左移
|
||||
CursorSyntaxRightKeyBindingKey KeyBindingKey = "cursorSyntaxRight" // 光标按语法右移
|
||||
SelectSyntaxLeftKeyBindingKey KeyBindingKey = "selectSyntaxLeft" // 按语法选择左侧
|
||||
SelectSyntaxRightKeyBindingKey KeyBindingKey = "selectSyntaxRight" // 按语法选择右侧
|
||||
CopyLineUpKeyBindingKey KeyBindingKey = "copyLineUp" // 向上复制行
|
||||
CopyLineDownKeyBindingKey KeyBindingKey = "copyLineDown" // 向下复制行
|
||||
InsertBlankLineKeyBindingKey KeyBindingKey = "insertBlankLine" // 插入空行
|
||||
SelectLineKeyBindingKey KeyBindingKey = "selectLine" // 选择行
|
||||
SelectParentSyntaxKeyBindingKey KeyBindingKey = "selectParentSyntax" // 选择父级语法
|
||||
IndentLessKeyBindingKey KeyBindingKey = "indentLess" // 减少缩进
|
||||
IndentMoreKeyBindingKey KeyBindingKey = "indentMore" // 增加缩进
|
||||
IndentSelectionKeyBindingKey KeyBindingKey = "indentSelection" // 缩进选择
|
||||
CursorMatchingBracketKeyBindingKey KeyBindingKey = "cursorMatchingBracket" // 光标到匹配括号
|
||||
ToggleCommentKeyBindingKey KeyBindingKey = "toggleComment" // 切换注释
|
||||
ToggleBlockCommentKeyBindingKey KeyBindingKey = "toggleBlockComment" // 切换块注释
|
||||
InsertNewlineAndIndentKeyBindingKey KeyBindingKey = "insertNewlineAndIndent" // 插入新行并缩进
|
||||
DeleteCharBackwardKeyBindingKey KeyBindingKey = "deleteCharBackward" // 向后删除字符
|
||||
DeleteCharForwardKeyBindingKey KeyBindingKey = "deleteCharForward" // 向前删除字符
|
||||
DeleteGroupBackwardKeyBindingKey KeyBindingKey = "deleteGroupBackward" // 向后删除组
|
||||
DeleteGroupForwardKeyBindingKey KeyBindingKey = "deleteGroupForward" // 向前删除组
|
||||
HistoryUndoKeyBindingKey KeyBindingKey = "historyUndo" // 撤销
|
||||
HistoryRedoKeyBindingKey KeyBindingKey = "historyRedo" // 重做
|
||||
HistoryUndoSelectionKeyBindingKey KeyBindingKey = "historyUndoSelection" // 撤销选择
|
||||
HistoryRedoSelectionKeyBindingKey KeyBindingKey = "historyRedoSelection" // 重做选择
|
||||
)
|
||||
|
||||
const defaultExtension = "editor"
|
||||
|
||||
// NewDefaultKeyBindings 创建默认快捷键配置
|
||||
func NewDefaultKeyBindings() []KeyBinding {
|
||||
return []KeyBinding{
|
||||
{
|
||||
Key: ShowSearchKeyBindingKey,
|
||||
Extension: ExtensionSearch,
|
||||
Command: "Mod-f",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: HideSearchKeyBindingKey,
|
||||
Extension: ExtensionSearch,
|
||||
Command: "Escape",
|
||||
Enabled: true,
|
||||
},
|
||||
|
||||
{
|
||||
Key: BlockSelectAllKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-a",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockAddAfterCurrentKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-Enter",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockAddAfterLastKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-Shift-Enter",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockAddBeforeCurrentKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Alt-Enter",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockGotoPreviousKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-ArrowUp",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockGotoNextKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-ArrowDown",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockSelectPreviousKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-Shift-ArrowUp",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockSelectNextKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-Shift-ArrowDown",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockDeleteKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-Shift-d",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockMoveUpKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Alt-Mod-ArrowUp",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockMoveDownKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Alt-Mod-ArrowDown",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockDeleteLineKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-Shift-k",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockMoveLineUpKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Alt-ArrowUp",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockMoveLineDownKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Alt-ArrowDown",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockTransposeCharsKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Ctrl-t",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockFormatKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-Shift-f",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockCopyKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-c",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockCutKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-x",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: BlockPasteKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-v",
|
||||
Enabled: true,
|
||||
},
|
||||
|
||||
{
|
||||
Key: FoldCodeKeyBindingKey,
|
||||
Extension: ExtensionFold,
|
||||
Command: "Ctrl-Shift-[",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: UnfoldCodeKeyBindingKey,
|
||||
Extension: ExtensionFold,
|
||||
Command: "Ctrl-Shift-]",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: FoldAllKeyBindingKey,
|
||||
Extension: ExtensionFold,
|
||||
Command: "Ctrl-Alt-[",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: UnfoldAllKeyBindingKey,
|
||||
Extension: ExtensionFold,
|
||||
Command: "Ctrl-Alt-]",
|
||||
Enabled: true,
|
||||
},
|
||||
|
||||
{
|
||||
Key: HistoryUndoKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-z",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: HistoryRedoKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-Shift-z",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: HistoryUndoSelectionKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-u",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: HistoryRedoSelectionKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Mod-Shift-u",
|
||||
Enabled: true,
|
||||
},
|
||||
|
||||
{
|
||||
Key: CursorSyntaxLeftKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Alt-ArrowLeft",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: CursorSyntaxRightKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Alt-ArrowRight",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: SelectSyntaxLeftKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Shift-Alt-ArrowLeft",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: SelectSyntaxRightKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Shift-Alt-ArrowRight",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: CopyLineUpKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Shift-Alt-ArrowUp",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: CopyLineDownKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Shift-Alt-ArrowDown",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: InsertBlankLineKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Ctrl-Enter",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: SelectLineKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Alt-l",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: SelectParentSyntaxKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Ctrl-i",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: IndentLessKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Ctrl-[",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: IndentMoreKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Ctrl-]",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: IndentSelectionKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Ctrl-Alt-\\",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: CursorMatchingBracketKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Shift-Ctrl-\\",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: ToggleCommentKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Ctrl-/",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: ToggleBlockCommentKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Shift-Alt-a",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: InsertNewlineAndIndentKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Enter",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: DeleteCharBackwardKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Backspace",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: DeleteCharForwardKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Delete",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: DeleteGroupBackwardKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Ctrl-Backspace",
|
||||
Enabled: true,
|
||||
},
|
||||
{
|
||||
Key: DeleteGroupForwardKeyBindingKey,
|
||||
Extension: defaultExtension,
|
||||
Command: "Ctrl-Delete",
|
||||
Enabled: true,
|
||||
},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user