From 38d7533deb07e18bfae04b2e19ab58b68903cca1 Mon Sep 17 00:00:00 2001 From: purocean Date: Thu, 25 Apr 2024 19:03:53 +0800 Subject: [PATCH] feat: add sticky scroll feature to editor settings --- src/renderer/others/setting-schema.ts | 8 ++++++++ src/renderer/services/editor.ts | 1 + src/renderer/types.ts | 1 + src/share/i18n/languages/en.ts | 1 + src/share/i18n/languages/zh-CN.ts | 1 + 5 files changed, 12 insertions(+) diff --git a/src/renderer/others/setting-schema.ts b/src/renderer/others/setting-schema.ts index 0ece555d4..8e443ca04 100644 --- a/src/renderer/others/setting-schema.ts +++ b/src/renderer/others/setting-schema.ts @@ -241,6 +241,14 @@ const schema: SettingSchema = ({ group: 'editor', required: true, }, + 'editor.sticky-scroll-enabled': { + defaultValue: true, + title: 'T_setting-panel.schema.editor.sticky-scroll-enabled', + type: 'boolean', + format: 'checkbox', + group: 'editor', + required: true, + }, 'render.md-html': { defaultValue: true, title: 'T_setting-panel.schema.render.md-html', diff --git a/src/renderer/services/editor.ts b/src/renderer/services/editor.ts index c2a274e83..da7ebc70b 100644 --- a/src/renderer/services/editor.ts +++ b/src/renderer/services/editor.ts @@ -90,6 +90,7 @@ export const getDefaultOptions = (): Monaco.editor.IStandaloneEditorConstruction suggestOnTriggerCharacters: getSetting('editor.suggest-on-trigger-characters', true), occurrencesHighlight: 'off', renderLineHighlight: 'all', + stickyScroll: { enabled: getSetting('editor.sticky-scroll-enabled', true) }, wordSeparators: '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?。?!,、;:“”‘’()《》〈〉【】『』「」﹃﹄〔〕' }) diff --git a/src/renderer/types.ts b/src/renderer/types.ts index 2574675ca..ca78a665c 100644 --- a/src/renderer/types.ts +++ b/src/renderer/types.ts @@ -321,6 +321,7 @@ export interface BuildInSettings { 'editor.todo-with-time': boolean, 'editor.suggest-on-trigger-characters': boolean, 'editor.quick-suggestions': boolean, + 'editor.sticky-scroll-enabled': boolean, 'render.md-html': boolean, 'render.md-breaks': boolean, 'render.md-linkify': boolean, diff --git a/src/share/i18n/languages/en.ts b/src/share/i18n/languages/en.ts index a53ba12e5..f48f1c0ed 100644 --- a/src/share/i18n/languages/en.ts +++ b/src/share/i18n/languages/en.ts @@ -387,6 +387,7 @@ const data = { 'complete-emoji': 'Complete Emoji - Input : to display emoji list', 'todo-with-time': 'Add time when checking todo', 'suggest-on-trigger-characters': 'Suggest on trigger characters - You can also use Ctrl+Space (depending on the shortcuts) to trigger', + 'sticky-scroll-enabled': 'Enable Sticky Scroll - When the editor scrolls, the document title is fixed', 'quick-suggestions': 'Quick Suggestions - Suggest as you type', }, 'render': { diff --git a/src/share/i18n/languages/zh-CN.ts b/src/share/i18n/languages/zh-CN.ts index c9f2f94df..4c8419dd6 100644 --- a/src/share/i18n/languages/zh-CN.ts +++ b/src/share/i18n/languages/zh-CN.ts @@ -378,6 +378,7 @@ const data: BaseLanguage = { 'complete-emoji': '自动补全 Emoji - 输入 : 时显示 Emoji 列表', 'todo-with-time': '勾选待办事项时自动添加时间', 'suggest-on-trigger-characters': '自动提示 - 输入提示符时显示提示。如果禁用,仍可使用 Ctrl+Space (取决于快捷键配置) 触发', + 'sticky-scroll-enabled': '启用粘性滚动 - 当编辑器滚动时,固定显示文档标题等', 'quick-suggestions': '快速提示 - 在输入文本时显示提示', }, 'render': {