diff --git a/web/src/components/file-editor/EditorPane.vue b/web/src/components/file-editor/EditorPane.vue
index 8ab86e3b..99d234a1 100644
--- a/web/src/components/file-editor/EditorPane.vue
+++ b/web/src/components/file-editor/EditorPane.vue
@@ -51,7 +51,7 @@ async function initEditor() {
// Display settings
lineNumbers: settings.lineNumbers,
renderWhitespace: settings.renderWhitespace,
- 'bracketPairColorization.enabled': settings.bracketPairColorization,
+ bracketPairColorization: { enabled: settings.bracketPairColorization },
guides: {
indentation: settings.guides,
bracketPairs: settings.guides
@@ -308,7 +308,7 @@ watch(
// Display settings
lineNumbers: settings.lineNumbers,
renderWhitespace: settings.renderWhitespace,
- 'bracketPairColorization.enabled': settings.bracketPairColorization,
+ bracketPairColorization: { enabled: settings.bracketPairColorization },
guides: {
indentation: settings.guides,
bracketPairs: settings.guides
diff --git a/web/src/components/file-editor/EditorStatusBar.vue b/web/src/components/file-editor/EditorStatusBar.vue
index a8bad625..79d78e50 100644
--- a/web/src/components/file-editor/EditorStatusBar.vue
+++ b/web/src/components/file-editor/EditorStatusBar.vue
@@ -40,10 +40,10 @@ const encodings = ['utf-8', 'gbk', 'gb2312', 'iso-8859-1', 'utf-16', 'utf-16le',
// 缩进选项
const indentOptions = computed(() => [
- { label: `${$gettext('Spaces')}: 2`, value: { tabSize: 2, insertSpaces: true } },
- { label: `${$gettext('Spaces')}: 4`, value: { tabSize: 4, insertSpaces: true } },
- { label: `${$gettext('Tabs')}: 2`, value: { tabSize: 2, insertSpaces: false } },
- { label: `${$gettext('Tabs')}: 4`, value: { tabSize: 4, insertSpaces: false } }
+ { label: `${$gettext('Spaces')}: 2`, value: '2-spaces' },
+ { label: `${$gettext('Spaces')}: 4`, value: '4-spaces' },
+ { label: `${$gettext('Tabs')}: 2`, value: '2-tabs' },
+ { label: `${$gettext('Tabs')}: 4`, value: '4-tabs' }
])
// 当前缩进显示
@@ -74,8 +74,12 @@ function handleLanguageChange(value: string) {
}
// 更新缩进
-function handleIndentChange(value: { tabSize: number; insertSpaces: boolean }) {
- editorStore.updateSettings(value)
+function handleIndentChange(value: string) {
+ const [size, type] = value.split('-')
+ editorStore.updateSettings({
+ tabSize: parseInt(size),
+ insertSpaces: type === 'spaces'
+ })
}
diff --git a/web/src/components/file-editor/EditorToolbar.vue b/web/src/components/file-editor/EditorToolbar.vue
index f8e2f5fd..ef197aa3 100644
--- a/web/src/components/file-editor/EditorToolbar.vue
+++ b/web/src/components/file-editor/EditorToolbar.vue
@@ -142,9 +142,10 @@ function handleSettings() {
}
// 字体大小调整
-function handleFontSizeChange(delta: number) {
- const newSize = Math.max(10, Math.min(24, editorStore.settings.fontSize + delta))
- editorStore.updateSettings({ fontSize: newSize })
+function handleFontSizeChange(value: number | null) {
+ if (value !== null) {
+ editorStore.updateSettings({ fontSize: value })
+ }
}
// 切换小地图
@@ -244,21 +245,16 @@ defineExpose({
-
-
-
-
-
-
-
- {{ editorStore.settings.fontSize }}
-
-
-
-
-
-
-
+
diff --git a/web/src/components/file-editor/FileEditorView.vue b/web/src/components/file-editor/FileEditorView.vue
index e1fbb8fc..5fd50d1e 100644
--- a/web/src/components/file-editor/FileEditorView.vue
+++ b/web/src/components/file-editor/FileEditorView.vue
@@ -64,7 +64,7 @@ watch(rootPath, (newPath) => {
// 键盘快捷键
function handleKeydown(e: KeyboardEvent) {
- const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0
+ const isMac = /Mac|iPod|iPhone|iPad/.test(navigator.userAgent)
const modKey = isMac ? e.metaKey : e.ctrlKey
// Ctrl/Cmd+S 保存
diff --git a/web/src/components/file-editor/FileTree.vue b/web/src/components/file-editor/FileTree.vue
index e9f5cfa4..fb0e3edd 100644
--- a/web/src/components/file-editor/FileTree.vue
+++ b/web/src/components/file-editor/FileTree.vue
@@ -117,11 +117,13 @@ function handleExpandedKeysUpdate(keys: string[]) {
}
// 选择节点(打开文件)
-async function handleSelect(keys: string[], option: TreeOption[]) {
+function handleSelect(keys: string[], option: (TreeOption | null)[]) {
if (keys.length === 0) return
selectedKeys.value = keys
const node = option[0]
+ if (!node) return
+
const isDir = (node as any)?.isDir
// 搜索模式下点击文件夹,跳转到该目录
@@ -784,7 +786,7 @@ defineExpose({
@update:selected-keys="handleSelect"
selectable
expand-on-click
- virtual-scroll
+ virtual-scrollå
class="file-tree-content"
style="height: 100%"
/>