@opensumi/ide-editor 2.21.13 → 2.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/lib/browser/breadcrumb/default.js.map +1 -1
  2. package/lib/browser/breadcrumb/document-symbol.js.map +1 -1
  3. package/lib/browser/breadcrumb/index.js.map +1 -1
  4. package/lib/browser/component.js.map +1 -1
  5. package/lib/browser/decoration-applier.js.map +1 -1
  6. package/lib/browser/diff/compare.js.map +1 -1
  7. package/lib/browser/diff/index.d.ts.map +1 -1
  8. package/lib/browser/diff/index.js +1 -1
  9. package/lib/browser/diff/index.js.map +1 -1
  10. package/lib/browser/doc-cache/empty-doc-cache.js.map +1 -1
  11. package/lib/browser/doc-cache/local-storage-cache.js.map +1 -1
  12. package/lib/browser/doc-model/editor-document-model-service.js +3 -3
  13. package/lib/browser/doc-model/editor-document-model-service.js.map +1 -1
  14. package/lib/browser/doc-model/editor-document-model.d.ts +8 -0
  15. package/lib/browser/doc-model/editor-document-model.d.ts.map +1 -1
  16. package/lib/browser/doc-model/editor-document-model.js +61 -11
  17. package/lib/browser/doc-model/editor-document-model.js.map +1 -1
  18. package/lib/browser/doc-model/editor-document-registry.js.map +1 -1
  19. package/lib/browser/doc-model/override.js.map +1 -1
  20. package/lib/browser/doc-model/save-task.js +1 -1
  21. package/lib/browser/doc-model/save-task.js.map +1 -1
  22. package/lib/browser/doc-model/saveParticipants.d.ts +7 -7
  23. package/lib/browser/doc-model/saveParticipants.d.ts.map +1 -1
  24. package/lib/browser/doc-model/saveParticipants.js +69 -38
  25. package/lib/browser/doc-model/saveParticipants.js.map +1 -1
  26. package/lib/browser/doc-model/types.d.ts +1 -1
  27. package/lib/browser/doc-model/types.d.ts.map +1 -1
  28. package/lib/browser/editor-collection.service.d.ts +8 -3
  29. package/lib/browser/editor-collection.service.d.ts.map +1 -1
  30. package/lib/browser/editor-collection.service.js +75 -66
  31. package/lib/browser/editor-collection.service.js.map +1 -1
  32. package/lib/browser/editor-opener.js.map +1 -1
  33. package/lib/browser/editor.contribution.d.ts.map +1 -1
  34. package/lib/browser/editor.contribution.js +31 -3
  35. package/lib/browser/editor.contribution.js.map +1 -1
  36. package/lib/browser/editor.decoration.service.d.ts +5 -6
  37. package/lib/browser/editor.decoration.service.d.ts.map +1 -1
  38. package/lib/browser/editor.decoration.service.js +9 -1
  39. package/lib/browser/editor.decoration.service.js.map +1 -1
  40. package/lib/browser/editor.override.js +2 -2
  41. package/lib/browser/editor.override.js.map +1 -1
  42. package/lib/browser/editor.status-bar.service.js.map +1 -1
  43. package/lib/browser/editor.view.d.ts.map +1 -1
  44. package/lib/browser/editor.view.js +20 -23
  45. package/lib/browser/editor.view.js.map +1 -1
  46. package/lib/browser/error.d.ts +1 -1
  47. package/lib/browser/error.d.ts.map +1 -1
  48. package/lib/browser/feature.js.map +1 -1
  49. package/lib/browser/format/format.service.js.map +1 -1
  50. package/lib/browser/format/formatterSelect.js.map +1 -1
  51. package/lib/browser/fs-resource/file-tree-set.js +6 -6
  52. package/lib/browser/fs-resource/file-tree-set.js.map +1 -1
  53. package/lib/browser/fs-resource/fs-editor-doc.js +1 -1
  54. package/lib/browser/fs-resource/fs-editor-doc.js.map +1 -1
  55. package/lib/browser/fs-resource/fs-resource.js.map +1 -1
  56. package/lib/browser/fs-resource/index.js.map +1 -1
  57. package/lib/browser/history/index.d.ts.map +1 -1
  58. package/lib/browser/history/index.js +2 -1
  59. package/lib/browser/history/index.js.map +1 -1
  60. package/lib/browser/index.d.ts.map +1 -1
  61. package/lib/browser/index.js +2 -0
  62. package/lib/browser/index.js.map +1 -1
  63. package/lib/browser/language/diagnostic-collection.d.ts +5 -5
  64. package/lib/browser/language/diagnostic-collection.d.ts.map +1 -1
  65. package/lib/browser/language/diagnostic-collection.js +1 -1
  66. package/lib/browser/language/diagnostic-collection.js.map +1 -1
  67. package/lib/browser/language/language-status.contribution.js.map +1 -1
  68. package/lib/browser/language/language-status.service.js.map +1 -1
  69. package/lib/browser/language/language.service.d.ts +4 -3
  70. package/lib/browser/language/language.service.d.ts.map +1 -1
  71. package/lib/browser/language/language.service.js +8 -2
  72. package/lib/browser/language/language.service.js.map +1 -1
  73. package/lib/browser/menu/editor.context.js +3 -3
  74. package/lib/browser/menu/editor.context.js.map +1 -1
  75. package/lib/browser/menu/editor.menu.d.ts +2 -2
  76. package/lib/browser/menu/editor.menu.d.ts.map +1 -1
  77. package/lib/browser/menu/editor.menu.js +6 -8
  78. package/lib/browser/menu/editor.menu.js.map +1 -1
  79. package/lib/browser/menu/open-type-menu.contribution.js +9 -9
  80. package/lib/browser/menu/open-type-menu.contribution.js.map +1 -1
  81. package/lib/browser/menu/title-context.menu.js.map +1 -1
  82. package/lib/browser/merge-editor/merge-editor.contribution.d.ts +8 -0
  83. package/lib/browser/merge-editor/merge-editor.contribution.d.ts.map +1 -0
  84. package/lib/browser/merge-editor/merge-editor.contribution.js +29 -0
  85. package/lib/browser/merge-editor/merge-editor.contribution.js.map +1 -0
  86. package/lib/browser/merge-editor/merge-editor.provider.d.ts +8 -0
  87. package/lib/browser/merge-editor/merge-editor.provider.d.ts.map +1 -0
  88. package/lib/browser/merge-editor/merge-editor.provider.js +44 -0
  89. package/lib/browser/merge-editor/merge-editor.provider.js.map +1 -0
  90. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.js.map +1 -1
  91. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.js +7 -7
  92. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.js.map +1 -1
  93. package/lib/browser/monaco-contrib/command/command.service.d.ts +1 -1
  94. package/lib/browser/monaco-contrib/command/command.service.d.ts.map +1 -1
  95. package/lib/browser/monaco-contrib/command/command.service.js.map +1 -1
  96. package/lib/browser/monaco-contrib/tokenizer/textmate-registry.js.map +1 -1
  97. package/lib/browser/monaco-contrib/tokenizer/textmate.service.d.ts +2 -1
  98. package/lib/browser/monaco-contrib/tokenizer/textmate.service.d.ts.map +1 -1
  99. package/lib/browser/monaco-contrib/tokenizer/textmate.service.js +5 -2
  100. package/lib/browser/monaco-contrib/tokenizer/textmate.service.js.map +1 -1
  101. package/lib/browser/monaco-contrib/typeHierarchy/typeHierarchy.contribution.js.map +1 -1
  102. package/lib/browser/monaco-contrib/typeHierarchy/typeHierarchy.service.js +7 -7
  103. package/lib/browser/monaco-contrib/typeHierarchy/typeHierarchy.service.js.map +1 -1
  104. package/lib/browser/navigation.module.less +1 -1
  105. package/lib/browser/navigation.view.d.ts.map +1 -1
  106. package/lib/browser/navigation.view.js +26 -15
  107. package/lib/browser/navigation.view.js.map +1 -1
  108. package/lib/browser/preference/contribution.js.map +1 -1
  109. package/lib/browser/preference/converter.d.ts +3 -3
  110. package/lib/browser/preference/converter.d.ts.map +1 -1
  111. package/lib/browser/preference/schema.d.ts +1 -1
  112. package/lib/browser/preference/schema.d.ts.map +1 -1
  113. package/lib/browser/preference/schema.js +8 -8
  114. package/lib/browser/preference/schema.js.map +1 -1
  115. package/lib/browser/quick-open/go-to-line.js.map +1 -1
  116. package/lib/browser/quick-open/workspace-symbol-quickopen.d.ts.map +1 -1
  117. package/lib/browser/quick-open/workspace-symbol-quickopen.js +2 -2
  118. package/lib/browser/quick-open/workspace-symbol-quickopen.js.map +1 -1
  119. package/lib/browser/resource.service.js.map +1 -1
  120. package/lib/browser/tab.view.d.ts +1 -1
  121. package/lib/browser/tab.view.d.ts.map +1 -1
  122. package/lib/browser/tab.view.js +2 -2
  123. package/lib/browser/tab.view.js.map +1 -1
  124. package/lib/browser/types.d.ts +5 -5
  125. package/lib/browser/types.d.ts.map +1 -1
  126. package/lib/browser/untitled-resource.js +1 -1
  127. package/lib/browser/untitled-resource.js.map +1 -1
  128. package/lib/browser/view/suggest-widget.js.map +1 -1
  129. package/lib/browser/workbench-editor.service.d.ts +17 -0
  130. package/lib/browser/workbench-editor.service.d.ts.map +1 -1
  131. package/lib/browser/workbench-editor.service.js +259 -176
  132. package/lib/browser/workbench-editor.service.js.map +1 -1
  133. package/lib/common/doc-cache.d.ts +2 -2
  134. package/lib/common/doc-cache.d.ts.map +1 -1
  135. package/lib/common/editor.d.ts +20 -6
  136. package/lib/common/editor.d.ts.map +1 -1
  137. package/lib/common/editor.js +12 -1
  138. package/lib/common/editor.js.map +1 -1
  139. package/lib/common/language.d.ts +18 -7
  140. package/lib/common/language.d.ts.map +1 -1
  141. package/lib/common/language.js +15 -7
  142. package/lib/common/language.js.map +1 -1
  143. package/lib/common/mocks/workbench-editor.service.js.map +1 -1
  144. package/lib/common/resource.d.ts +8 -2
  145. package/lib/common/resource.d.ts.map +1 -1
  146. package/lib/common/resource.js +1 -0
  147. package/lib/common/resource.js.map +1 -1
  148. package/package.json +17 -16
  149. package/src/browser/breadcrumb/default.ts +299 -0
  150. package/src/browser/breadcrumb/document-symbol.ts +187 -0
  151. package/src/browser/breadcrumb/index.ts +96 -0
  152. package/src/browser/component.ts +204 -0
  153. package/src/browser/decoration-applier.ts +256 -0
  154. package/src/browser/diff/compare.ts +99 -0
  155. package/src/browser/diff/index.ts +81 -0
  156. package/src/browser/doc-cache/empty-doc-cache.ts +26 -0
  157. package/src/browser/doc-cache/index.ts +2 -0
  158. package/src/browser/doc-cache/local-storage-cache.ts +67 -0
  159. package/src/browser/doc-model/editor-document-error.ts +10 -0
  160. package/src/browser/doc-model/editor-document-model-service.ts +346 -0
  161. package/src/browser/doc-model/editor-document-model.ts +690 -0
  162. package/src/browser/doc-model/editor-document-registry.ts +119 -0
  163. package/src/browser/doc-model/editor-is-fn.ts +9 -0
  164. package/src/browser/doc-model/main.ts +4 -0
  165. package/src/browser/doc-model/override.ts +49 -0
  166. package/src/browser/doc-model/save-task.ts +88 -0
  167. package/src/browser/doc-model/saveParticipants.ts +227 -0
  168. package/src/browser/doc-model/types.ts +350 -0
  169. package/src/browser/editor-collection.service.ts +790 -0
  170. package/src/browser/editor-opener.ts +44 -0
  171. package/src/browser/editor.contribution.ts +1438 -0
  172. package/src/browser/editor.decoration.service.ts +247 -0
  173. package/src/browser/editor.less +4 -0
  174. package/src/browser/editor.module.less +548 -0
  175. package/src/browser/editor.override.ts +133 -0
  176. package/src/browser/editor.status-bar.service.ts +116 -0
  177. package/src/browser/editor.view.tsx +623 -0
  178. package/src/browser/error.ts +21 -0
  179. package/src/browser/feature.ts +63 -0
  180. package/src/browser/format/format.service.ts +95 -0
  181. package/src/browser/format/formatterSelect.ts +82 -0
  182. package/src/browser/fs-resource/file-tree-set.ts +126 -0
  183. package/src/browser/fs-resource/fs-editor-doc.ts +213 -0
  184. package/src/browser/fs-resource/fs-resource.ts +247 -0
  185. package/src/browser/fs-resource/index.ts +27 -0
  186. package/src/browser/grid/grid.service.ts +288 -0
  187. package/src/browser/history/index.ts +228 -0
  188. package/src/browser/index.ts +236 -0
  189. package/src/browser/language/diagnostic-collection.ts +83 -0
  190. package/src/browser/language/language-status.contribution.ts +81 -0
  191. package/src/browser/language/language-status.service.ts +32 -0
  192. package/src/browser/language/language.service.ts +185 -0
  193. package/src/browser/menu/editor.context.ts +186 -0
  194. package/src/browser/menu/editor.menu.ts +45 -0
  195. package/src/browser/menu/open-type-menu.contribution.ts +90 -0
  196. package/src/browser/menu/title-context.menu.ts +54 -0
  197. package/src/browser/merge-editor/merge-editor.contribution.ts +25 -0
  198. package/src/browser/merge-editor/merge-editor.provider.ts +36 -0
  199. package/src/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.ts +78 -0
  200. package/src/browser/monaco-contrib/callHierarchy/callHierarchy.service.ts +160 -0
  201. package/src/browser/monaco-contrib/command/command.service.ts +438 -0
  202. package/src/browser/monaco-contrib/index.ts +4 -0
  203. package/src/browser/monaco-contrib/tokenizer/textmate-registry.ts +107 -0
  204. package/src/browser/monaco-contrib/tokenizer/textmate-tokenizer.ts +104 -0
  205. package/src/browser/monaco-contrib/tokenizer/textmate.service.ts +925 -0
  206. package/src/browser/monaco-contrib/typeHierarchy/typeHierarchy.contribution.ts +78 -0
  207. package/src/browser/monaco-contrib/typeHierarchy/typeHierarchy.service.ts +154 -0
  208. package/src/browser/navigation.module.less +96 -0
  209. package/src/browser/navigation.view.tsx +254 -0
  210. package/src/browser/preference/contribution.ts +8 -0
  211. package/src/browser/preference/converter.ts +793 -0
  212. package/src/browser/preference/schema.ts +1896 -0
  213. package/src/browser/preference/util.ts +14 -0
  214. package/src/browser/quick-open/go-to-line.ts +164 -0
  215. package/src/browser/quick-open/workspace-symbol-quickopen.ts +276 -0
  216. package/src/browser/resource.service.ts +263 -0
  217. package/src/browser/tab.view.tsx +514 -0
  218. package/src/browser/types.ts +467 -0
  219. package/src/browser/untitled-resource.ts +223 -0
  220. package/src/browser/view/editor.react.tsx +82 -0
  221. package/src/browser/view/react-hook.tsx +7 -0
  222. package/src/browser/view/suggest-widget.ts +77 -0
  223. package/src/browser/view/topPadding.ts +18 -0
  224. package/src/browser/workbench-editor.service.ts +2291 -0
  225. package/src/common/doc-cache.ts +117 -0
  226. package/src/common/editor.ts +799 -0
  227. package/src/common/index.ts +6 -0
  228. package/src/common/language-status.ts +33 -0
  229. package/src/common/language.ts +206 -0
  230. package/src/common/mocks/workbench-editor.service.ts +52 -0
  231. package/src/common/resource.ts +147 -0
  232. package/src/common/utils.ts +10 -0
  233. package/src/index.ts +1 -0
  234. package/lib/browser/component/scroll/scroll.d.ts +0 -2
  235. package/lib/browser/component/scroll/scroll.d.ts.map +0 -1
  236. package/lib/browser/component/scroll/scroll.js +0 -5
  237. package/lib/browser/component/scroll/scroll.js.map +0 -1
  238. package/lib/browser/component/scroll/scroll.module.less +0 -86
@@ -0,0 +1,1896 @@
1
+ import {
2
+ localize,
3
+ isOSX,
4
+ isLinux,
5
+ PreferenceSchema,
6
+ PreferenceSchemaProperties,
7
+ PreferenceProxy,
8
+ } from '@opensumi/ide-core-browser';
9
+
10
+ export const USUAL_WORD_SEPARATORS = '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?';
11
+
12
+ const DEFAULT_WINDOWS_FONT_FAMILY = "Consolas, 'Courier New', monospace";
13
+ const DEFAULT_MAC_FONT_FAMILY = "Menlo, Monaco, 'Courier New', monospace";
14
+ const DEFAULT_LINUX_FONT_FAMILY = "'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'";
15
+
16
+ export const EDITOR_FONT_DEFAULTS = {
17
+ fontFamily: isOSX ? DEFAULT_MAC_FONT_FAMILY : isLinux ? DEFAULT_LINUX_FONT_FAMILY : DEFAULT_WINDOWS_FONT_FAMILY,
18
+ fontWeight: 'normal',
19
+ fontSize: 12,
20
+ tabSize: 2,
21
+ renderWhitespace: false,
22
+ cursorStyle: 'line',
23
+ insertSpace: true,
24
+ wordWrap: 'off',
25
+ wordWrapColumn: 80,
26
+ lineHeight: 0,
27
+ letterSpacing: 0,
28
+ };
29
+
30
+ export const EDITOR_MODEL_DEFAULTS = {
31
+ tabSize: 4,
32
+ indentSize: 4,
33
+ insertSpaces: true,
34
+ detectIndentation: true,
35
+ trimAutoWhitespace: true,
36
+ largeFileOptimizations: true,
37
+ };
38
+
39
+ export const EDITOR_SUGGEST_DEFAULTS = {
40
+ insertMode: 'insert',
41
+ filterGraceful: true,
42
+ snippetsPreventQuickSuggestions: true,
43
+ localityBonus: false,
44
+ shareSuggestSelections: false,
45
+ showIcons: true,
46
+ maxVisibleSuggestions: 12,
47
+ showMethods: true,
48
+ showFunctions: true,
49
+ showConstructors: true,
50
+ showFields: true,
51
+ showVariables: true,
52
+ showClasses: true,
53
+ showStructs: true,
54
+ showInterfaces: true,
55
+ showModules: true,
56
+ showProperties: true,
57
+ showEvents: true,
58
+ showOperators: true,
59
+ showUnits: true,
60
+ showValues: true,
61
+ showConstants: true,
62
+ showEnums: true,
63
+ showEnumMembers: true,
64
+ showKeywords: true,
65
+ showWords: true,
66
+ showColors: true,
67
+ showFiles: true,
68
+ showReferences: true,
69
+ showFolders: true,
70
+ showTypeParameters: true,
71
+ showSnippets: true,
72
+ showUsers: true,
73
+ showIssues: true,
74
+ detailsVisible: true,
75
+ preview: true,
76
+ statusBar: {
77
+ visible: false,
78
+ },
79
+ };
80
+
81
+ export const EDITOR_INLINE_SUGGEST_DEFAULTS = {
82
+ enabled: true,
83
+ };
84
+
85
+ export const enum WrappingIndent {
86
+ /**
87
+ * No indentation => wrapped lines begin at column 1.
88
+ */
89
+ None = 0,
90
+ /**
91
+ * Same => wrapped lines get the same indentation as the parent.
92
+ */
93
+ Same = 1,
94
+ /**
95
+ * Indent => wrapped lines get +1 indentation toward the parent.
96
+ */
97
+ Indent = 2,
98
+ /**
99
+ * DeepIndent => wrapped lines get +2 indentation toward the parent.
100
+ */
101
+ DeepIndent = 3,
102
+ }
103
+
104
+ export const EDITOR_DEFAULTS = {
105
+ inDiffEditor: false,
106
+ wordSeparators: USUAL_WORD_SEPARATORS,
107
+ lineNumbersMinChars: 3,
108
+ lineDecorationsWidth: 10,
109
+ readOnly: false,
110
+ mouseStyle: 'text',
111
+ disableLayerHinting: false,
112
+ automaticLayout: true, // 开天修改
113
+ wordWrap: 'off',
114
+ wordWrapColumn: 80,
115
+ wordWrapMinified: true,
116
+ wrappingIndent: WrappingIndent.Same,
117
+ wordWrapBreakBeforeCharacters: '([{‘“〈《「『【〔([{「£¥$£¥++',
118
+ wordWrapBreakAfterCharacters:
119
+ ' \t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」',
120
+ wordWrapBreakObtrusiveCharacters: '.',
121
+ autoClosingBrackets: 'languageDefined',
122
+ autoClosingQuotes: 'languageDefined',
123
+ autoSurround: 'languageDefined',
124
+ autoIndent: true,
125
+ dragAndDrop: true,
126
+ emptySelectionClipboard: true,
127
+ copyWithSyntaxHighlighting: true,
128
+ useTabStops: true,
129
+ multiCursorModifier: 'altKey',
130
+ multiCursorMergeOverlapping: true,
131
+ accessibilitySupport: 'off',
132
+ showUnused: true,
133
+ wrappingStrategy: 'simple',
134
+
135
+ viewInfo: {
136
+ extraEditorClassName: '',
137
+ disableMonospaceOptimizations: false,
138
+ rulers: [],
139
+ ariaLabel: localize('editorViewAccessibleLabel', 'Editor content'),
140
+ renderLineNumbers: 0,
141
+ renderCustomLineNumbers: null,
142
+ renderFinalNewline: true,
143
+ selectOnLineNumbers: true,
144
+ glyphMargin: true,
145
+ revealHorizontalRightPadding: 30,
146
+ roundedSelection: true,
147
+ overviewRulerLanes: 2,
148
+ overviewRulerBorder: true,
149
+ cursorBlinking: 1,
150
+ mouseWheelZoom: false,
151
+ cursorSmoothCaretAnimation: false,
152
+ cursorStyle: 1,
153
+ cursorWidth: 0,
154
+ hideCursorInOverviewRuler: false,
155
+ scrollBeyondLastLine: true,
156
+ scrollBeyondLastColumn: 5,
157
+ smoothScrolling: false,
158
+ stopRenderingLineAfter: 10000,
159
+ renderWhitespace: 'none',
160
+ renderControlCharacters: false,
161
+ fontLigatures: false,
162
+ renderLineHighlight: 'none', // 开天修改
163
+ scrollbar: {
164
+ vertical: 1, // ScrollbarVisibility.Auto,
165
+ horizontal: 1, // ScrollbarVisibility.Auto,
166
+ arrowSize: 11,
167
+ useShadows: true,
168
+ verticalHasArrows: false,
169
+ horizontalHasArrows: false,
170
+ horizontalScrollbarSize: 10,
171
+ horizontalSliderSize: 10,
172
+ verticalScrollbarSize: 14,
173
+ verticalSliderSize: 14,
174
+ handleMouseWheel: true,
175
+ mouseWheelScrollSensitivity: 1,
176
+ fastScrollSensitivity: 5,
177
+ },
178
+ minimap: {
179
+ enabled: true,
180
+ side: 'right',
181
+ showSlider: 'mouseover',
182
+ renderCharacters: true,
183
+ maxColumn: 120,
184
+ },
185
+ guides: {
186
+ indentation: true,
187
+ highlightActiveIndentGuide: true,
188
+ bracketPairs: true,
189
+ },
190
+ fixedOverflowWidgets: true,
191
+ },
192
+
193
+ contribInfo: {
194
+ selectionClipboard: true,
195
+ hover: {
196
+ enabled: true,
197
+ delay: 300,
198
+ sticky: true,
199
+ },
200
+ links: true,
201
+ contextmenu: true,
202
+ quickSuggestions: { other: true, comments: false, strings: false },
203
+ quickSuggestionsDelay: 10,
204
+ parameterHints: {
205
+ enabled: true,
206
+ cycle: false,
207
+ },
208
+ formatOnType: false,
209
+ formatOnPaste: false,
210
+ suggestOnTriggerCharacters: true,
211
+ acceptSuggestionOnEnter: 'on',
212
+ acceptSuggestionOnCommitCharacter: true,
213
+ wordBasedSuggestions: false, // 开天修改
214
+ suggestSelection: 'recentlyUsed',
215
+ suggestFontSize: 0,
216
+ suggestLineHeight: 0,
217
+ tabCompletion: 'off',
218
+ gotoLocation: {
219
+ multiple: 'peek',
220
+ },
221
+ selectionHighlight: true,
222
+ occurrencesHighlight: true,
223
+ codeLens: true,
224
+ folding: true,
225
+ foldingStrategy: 'auto',
226
+ showFoldingControls: 'mouseover',
227
+ matchBrackets: true,
228
+ find: {
229
+ seedSearchStringFromSelection: true,
230
+ autoFindInSelection: false,
231
+ globalFindClipboard: false,
232
+ addExtraSpaceOnTop: true,
233
+ },
234
+ colorDecorators: true,
235
+ lightbulbEnabled: true,
236
+ codeActionsOnSave: {},
237
+ codeActionsOnSaveTimeout: 750,
238
+ },
239
+ };
240
+
241
+ const monacoEditorSchema: PreferenceSchemaProperties = {
242
+ 'editor.ariaLabel': {
243
+ type: 'string',
244
+ default: EDITOR_DEFAULTS.viewInfo.ariaLabel,
245
+ description: localize('ariaLabel', "The aria label for the editor's textarea (when it is focused)."),
246
+ },
247
+ 'editor.extraEditorClassName': {
248
+ type: 'string',
249
+ description: localize('extraEditorClassName', 'Class name to be added to the editor.'),
250
+ },
251
+ 'editor.fixedOverflowWidgets': {
252
+ type: 'boolean',
253
+ default: EDITOR_DEFAULTS.viewInfo.fixedOverflowWidgets,
254
+ description: localize('fixedOverflowWidgets', 'Display overflow widgets as fixed.'),
255
+ },
256
+ 'editor.revealHorizontalRightPadding': {
257
+ type: 'number',
258
+ description: localize(
259
+ 'revealHorizontalRightPadding',
260
+ 'When revealing the cursor, a virtual padding (px) is added to the cursor, turning it into a rectangle. This virtual padding ensures that the cursor gets revealed before hitting the edge of the viewport. Defaults to 30 (px).',
261
+ ),
262
+ },
263
+ 'editor.selectOnLineNumbers': {
264
+ type: 'boolean',
265
+ description: localize(
266
+ 'selectOnLineNumbers',
267
+ 'Should the corresponding line be selected when clicking on the line number? Defaults to true.',
268
+ ),
269
+ },
270
+ 'editor.wordWrapMinified': {
271
+ type: 'boolean',
272
+ description: localize(
273
+ 'wordWrapMinified',
274
+ 'Force word wrapping when the text appears to be of a minified/generated file. Defaults to true.',
275
+ ),
276
+ },
277
+ 'editor.wordWrapBreakAfterCharacters': {
278
+ type: 'string',
279
+ default:
280
+ ' \t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」',
281
+ description: localize(
282
+ 'wordWrapBreakAfterCharacters',
283
+ "Configure word wrapping characters. A break will be introduced after these characters. Defaults to ' \t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」'.",
284
+ ),
285
+ },
286
+ 'editor.wrappingStrategy': {
287
+ type: 'string',
288
+ enum: ['advanced', 'simple'],
289
+ default: 'simple',
290
+ description: localize('wrappingStrategy', 'Controls the algorithm that computes wrapping points.'),
291
+ },
292
+ 'editor.wordWrapBreakBeforeCharacters': {
293
+ type: 'string',
294
+ default: '([{‘“〈《「『【〔([{「£¥$£¥++',
295
+ description: localize(
296
+ 'wordWrapBreakBeforeCharacters',
297
+ "Configure word wrapping characters. A break will be introduced before these characters. Defaults to '([{‘“〈《「『【〔([{「£¥$£¥++'.",
298
+ ),
299
+ },
300
+ 'editor.lineNumbersMinChars': {
301
+ type: 'number',
302
+ default: EDITOR_DEFAULTS.lineNumbersMinChars,
303
+ description: localize(
304
+ 'lineNumbersMinChars',
305
+ 'Control the width of line numbers, by reserving horizontal space for rendering at least an amount of digits. Defaults to 5.',
306
+ ),
307
+ },
308
+ 'editor.lineDecorationsWidth': {
309
+ type: 'number',
310
+ default: EDITOR_DEFAULTS.lineDecorationsWidth,
311
+ description: localize(
312
+ 'lineDecorationsWidth',
313
+ 'The width reserved for line decorations (in px). Line decorations are placed between line numbers and the editor content. You can pass in a string in the format floating point followed by "ch". e.g. 1.3ch. Defaults to 10.',
314
+ ),
315
+ },
316
+ 'editor.fontFamily': {
317
+ type: 'string',
318
+ default: EDITOR_FONT_DEFAULTS.fontFamily,
319
+ description: localize('fontFamily', 'Controls the font family.'),
320
+ },
321
+ 'editor.fontWeight': {
322
+ type: 'string',
323
+ default: EDITOR_FONT_DEFAULTS.fontWeight,
324
+ description: localize('editor.configuration.fontWeight'),
325
+ },
326
+ 'editor.fontSize': {
327
+ type: 'number',
328
+ default: EDITOR_FONT_DEFAULTS.fontSize,
329
+ description: localize('fontSize', 'Controls the font size in pixels.'),
330
+ },
331
+ 'editor.lineHeight': {
332
+ type: 'number',
333
+ default: EDITOR_FONT_DEFAULTS.lineHeight,
334
+ description: localize(
335
+ 'lineHeight',
336
+ 'Controls the line height. Use 0 to compute the line height from the font size.',
337
+ ),
338
+ },
339
+ 'editor.suggest.insertMode': {
340
+ type: 'string',
341
+ enum: ['insert', 'replace'],
342
+ enumDescriptions: [
343
+ localize('suggest.insertMode.insert', 'Insert suggestion without overwriting text right of the cursor.'),
344
+ localize('suggest.insertMode.replace', 'Insert suggestion and overwrite text right of the cursor.'),
345
+ ],
346
+ default: 'insert',
347
+ description: localize(
348
+ 'suggest.insertMode',
349
+ 'Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.',
350
+ ),
351
+ },
352
+ 'editor.suggest.filterGraceful': {
353
+ type: 'boolean',
354
+ default: EDITOR_SUGGEST_DEFAULTS.filterGraceful,
355
+ description: localize(
356
+ 'suggest.filterGraceful',
357
+ 'Controls whether filtering and sorting suggestions accounts for small typos.',
358
+ ),
359
+ },
360
+ 'editor.suggest.localityBonus': {
361
+ type: 'boolean',
362
+ default: EDITOR_SUGGEST_DEFAULTS.localityBonus,
363
+ description: localize(
364
+ 'suggest.localityBonus',
365
+ 'Controls whether sorting favours words that appear close to the cursor.',
366
+ ),
367
+ },
368
+ 'editor.suggest.shareSuggestSelections': {
369
+ type: 'boolean',
370
+ default: EDITOR_SUGGEST_DEFAULTS.shareSuggestSelections,
371
+ description: localize(
372
+ 'suggest.shareSuggestSelections',
373
+ 'Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).',
374
+ ),
375
+ },
376
+ 'editor.suggest.snippetsPreventQuickSuggestions': {
377
+ type: 'boolean',
378
+ default: EDITOR_SUGGEST_DEFAULTS.snippetsPreventQuickSuggestions,
379
+ description: localize(
380
+ 'suggest.snippetsPreventQuickSuggestions',
381
+ 'Controls whether an active snippet prevents quick suggestions.',
382
+ ),
383
+ },
384
+ 'editor.suggest.showIcons': {
385
+ type: 'boolean',
386
+ default: EDITOR_SUGGEST_DEFAULTS.showIcons,
387
+ description: localize('suggest.showIcons', 'Controls whether to show or hide icons in suggestions.'),
388
+ },
389
+ 'editor.suggest.maxVisibleSuggestions': {
390
+ type: 'number',
391
+ default: EDITOR_SUGGEST_DEFAULTS.maxVisibleSuggestions,
392
+ minimum: 1,
393
+ maximum: 15,
394
+ description: localize(
395
+ 'editor.suggest.maxVisibleSuggestions',
396
+ 'Controls how many suggestions IntelliSense will show before showing a scrollbar (maximum 15).',
397
+ ),
398
+ },
399
+ 'editor.suggest.showMethods': {
400
+ type: 'boolean',
401
+ default: true,
402
+ description: localize('editor.suggest.showMethods', 'When enabled IntelliSense shows `method`-suggestions.'),
403
+ },
404
+ 'editor.suggest.showFunctions': {
405
+ type: 'boolean',
406
+ default: true,
407
+ description: localize('editor.suggest.showFunctions', 'When enabled IntelliSense shows `function`-suggestions.'),
408
+ },
409
+ 'editor.suggest.showConstructors': {
410
+ type: 'boolean',
411
+ default: true,
412
+ description: localize(
413
+ 'editor.suggest.showConstructors',
414
+ 'When enabled IntelliSense shows `constructor`-suggestions.',
415
+ ),
416
+ },
417
+ 'editor.suggest.showFields': {
418
+ type: 'boolean',
419
+ default: true,
420
+ description: localize('editor.suggest.showFields', 'When enabled IntelliSense shows `field`-suggestions.'),
421
+ },
422
+ 'editor.suggest.showVariables': {
423
+ type: 'boolean',
424
+ default: true,
425
+ description: localize('editor.suggest.showVariables', 'When enabled IntelliSense shows `variable`-suggestions.'),
426
+ },
427
+ 'editor.suggest.showClasses': {
428
+ type: 'boolean',
429
+ default: true,
430
+ description: localize('editor.suggest.showClasss', 'When enabled IntelliSense shows `class`-suggestions.'),
431
+ },
432
+ 'editor.suggest.showStructs': {
433
+ type: 'boolean',
434
+ default: true,
435
+ description: localize('editor.suggest.showStructs', 'When enabled IntelliSense shows `struct`-suggestions.'),
436
+ },
437
+ 'editor.suggest.showInterfaces': {
438
+ type: 'boolean',
439
+ default: true,
440
+ description: localize('editor.suggest.showInterfaces', 'When enabled IntelliSense shows `interface`-suggestions.'),
441
+ },
442
+ 'editor.suggest.showModules': {
443
+ type: 'boolean',
444
+ default: true,
445
+ description: localize('editor.suggest.showModules', 'When enabled IntelliSense shows `module`-suggestions.'),
446
+ },
447
+ 'editor.suggest.showProperties': {
448
+ type: 'boolean',
449
+ default: true,
450
+ description: localize('editor.suggest.showPropertys', 'When enabled IntelliSense shows `property`-suggestions.'),
451
+ },
452
+ 'editor.suggest.showEvents': {
453
+ type: 'boolean',
454
+ default: true,
455
+ description: localize('editor.suggest.showEvents', 'When enabled IntelliSense shows `event`-suggestions.'),
456
+ },
457
+ 'editor.suggest.showOperators': {
458
+ type: 'boolean',
459
+ default: true,
460
+ description: localize('editor.suggest.showOperators', 'When enabled IntelliSense shows `operator`-suggestions.'),
461
+ },
462
+ 'editor.suggest.showUnits': {
463
+ type: 'boolean',
464
+ default: true,
465
+ description: localize('editor.suggest.showUnits', 'When enabled IntelliSense shows `unit`-suggestions.'),
466
+ },
467
+ 'editor.suggest.showValues': {
468
+ type: 'boolean',
469
+ default: true,
470
+ description: localize('editor.suggest.showValues', 'When enabled IntelliSense shows `value`-suggestions.'),
471
+ },
472
+ 'editor.suggest.showConstants': {
473
+ type: 'boolean',
474
+ default: true,
475
+ description: localize('editor.suggest.showConstants', 'When enabled IntelliSense shows `constant`-suggestions.'),
476
+ },
477
+ 'editor.suggest.showEnums': {
478
+ type: 'boolean',
479
+ default: true,
480
+ description: localize('editor.suggest.showEnums', 'When enabled IntelliSense shows `enum`-suggestions.'),
481
+ },
482
+ 'editor.suggest.showEnumMembers': {
483
+ type: 'boolean',
484
+ default: true,
485
+ description: localize(
486
+ 'editor.suggest.showEnumMembers',
487
+ 'When enabled IntelliSense shows `enumMember`-suggestions.',
488
+ ),
489
+ },
490
+ 'editor.suggest.showKeywords': {
491
+ type: 'boolean',
492
+ default: true,
493
+ description: localize('editor.suggest.showKeywords', 'When enabled IntelliSense shows `keyword`-suggestions.'),
494
+ },
495
+ 'editor.suggest.showWords': {
496
+ type: 'boolean',
497
+ default: true,
498
+ description: localize('editor.suggest.showTexts', 'When enabled IntelliSense shows `text`-suggestions.'),
499
+ },
500
+ 'editor.suggest.showColors': {
501
+ type: 'boolean',
502
+ default: true,
503
+ description: localize('editor.suggest.showColors', 'When enabled IntelliSense shows `color`-suggestions.'),
504
+ },
505
+ 'editor.suggest.showFiles': {
506
+ type: 'boolean',
507
+ default: true,
508
+ description: localize('editor.suggest.showFiles', 'When enabled IntelliSense shows `file`-suggestions.'),
509
+ },
510
+ 'editor.suggest.showReferences': {
511
+ type: 'boolean',
512
+ default: true,
513
+ description: localize('editor.suggest.showReferences', 'When enabled IntelliSense shows `reference`-suggestions.'),
514
+ },
515
+ 'editor.suggest.showCustomcolors': {
516
+ type: 'boolean',
517
+ default: true,
518
+ description: localize(
519
+ 'editor.suggest.showCustomcolors',
520
+ 'When enabled IntelliSense shows `customcolor`-suggestions.',
521
+ ),
522
+ },
523
+ 'editor.suggest.showFolders': {
524
+ type: 'boolean',
525
+ default: true,
526
+ description: localize('editor.suggest.showFolders', 'When enabled IntelliSense shows `folder`-suggestions.'),
527
+ },
528
+ 'editor.suggest.showTypeParameters': {
529
+ type: 'boolean',
530
+ default: true,
531
+ description: localize(
532
+ 'editor.suggest.showTypeParameters',
533
+ 'When enabled IntelliSense shows `typeParameter`-suggestions.',
534
+ ),
535
+ },
536
+ 'editor.suggest.showSnippets': {
537
+ type: 'boolean',
538
+ default: true,
539
+ description: localize('editor.suggest.showSnippets', 'When enabled IntelliSense shows `snippet`-suggestions.'),
540
+ },
541
+ 'editor.suggest.showUsers': {
542
+ type: 'boolean',
543
+ default: true,
544
+ description: localize('editor.suggest.showUsers', 'When enabled IntelliSense shows `user`-suggestions.'),
545
+ },
546
+ 'editor.suggest.showIssues': {
547
+ type: 'boolean',
548
+ default: true,
549
+ description: localize('editor.suggest.showIssues', 'When enabled IntelliSense shows `issues`-suggestions.'),
550
+ },
551
+ 'editor.suggest.statusBar.visible': {
552
+ type: 'boolean',
553
+ default: false,
554
+ description: localize(
555
+ 'editor.suggest.statusBar.visible',
556
+ 'Controls the visibility of the status bar at the bottom of the suggest widget.',
557
+ ),
558
+ },
559
+ 'editor.suggest.preview': {
560
+ type: 'boolean',
561
+ default: EDITOR_SUGGEST_DEFAULTS.preview,
562
+ description: localize('editor.suggest.preview', 'Enable or disable the rendering of the suggestion preview.'),
563
+ },
564
+ 'editor.suggest.details.visible': {
565
+ type: 'boolean',
566
+ default: EDITOR_SUGGEST_DEFAULTS.detailsVisible,
567
+ description: localize('editor.suggest.details.visible'),
568
+ },
569
+ 'editor.inlineSuggest.enabled': {
570
+ type: 'boolean',
571
+ default: EDITOR_INLINE_SUGGEST_DEFAULTS.enabled,
572
+ description: localize('inlineSuggest.enabled', 'Enable or disable the rendering of automatic inline completions.'),
573
+ },
574
+ 'editor.experimental.stickyScroll.enabled': {
575
+ type: 'boolean',
576
+ default: true,
577
+ description: localize(
578
+ 'editor.experimental.stickyScroll',
579
+ 'Shows the nested current scopes during the scroll at the top of the editor.',
580
+ ),
581
+ },
582
+ 'editor.customCodeActionMenu.showHeaders': {
583
+ type: 'boolean',
584
+ default: true,
585
+ description: localize(
586
+ 'editor.customCodeActionMenu.showHeaders',
587
+ 'Enabling this will show the code action menu with group headers, if the custom code action menu is enabled.',
588
+ ),
589
+ },
590
+ 'editor.useCustomCodeActionMenu': {
591
+ type: 'boolean',
592
+ default: true,
593
+ description: localize(
594
+ 'editor.useCustomCodeActionMenu',
595
+ 'Enabling this adjusts how the code action menu is rendered.',
596
+ ),
597
+ },
598
+ 'editor.letterSpacing': {
599
+ type: 'number',
600
+ default: EDITOR_FONT_DEFAULTS.letterSpacing,
601
+ description: localize('letterSpacing', 'Controls the letter spacing in pixels.'),
602
+ },
603
+ 'editor.lineNumbers': {
604
+ type: 'string',
605
+ enum: ['off', 'on', 'relative', 'interval'],
606
+ enumDescriptions: [
607
+ localize('lineNumbers.off', 'Line numbers are not rendered.'),
608
+ localize('lineNumbers.on', 'Line numbers are rendered as absolute number.'),
609
+ localize('lineNumbers.relative', 'Line numbers are rendered as distance in lines to cursor position.'),
610
+ localize('lineNumbers.interval', 'Line numbers are rendered every 10 lines.'),
611
+ ],
612
+ default: 'on',
613
+ description: localize('lineNumbers', 'Controls the display of line numbers.'),
614
+ },
615
+ 'editor.renderFinalNewline': {
616
+ type: 'boolean',
617
+ default: EDITOR_DEFAULTS.viewInfo.renderFinalNewline,
618
+ description: localize('renderFinalNewline', 'Render last line number when the file ends with a newline.'),
619
+ },
620
+ 'editor.rulers': {
621
+ type: 'array',
622
+ items: {
623
+ type: 'number',
624
+ },
625
+ default: EDITOR_DEFAULTS.viewInfo.rulers,
626
+ description: localize(
627
+ 'rulers',
628
+ 'Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.',
629
+ ),
630
+ },
631
+ 'editor.wordSeparators': {
632
+ type: 'string',
633
+ default: EDITOR_DEFAULTS.wordSeparators,
634
+ description: localize(
635
+ 'wordSeparators',
636
+ 'Characters that will be used as word separators when doing word related navigations or operations.',
637
+ ),
638
+ },
639
+ 'editor.tabSize': {
640
+ type: 'number',
641
+ default: EDITOR_MODEL_DEFAULTS.tabSize,
642
+ minimum: 1,
643
+ markdownDescription: localize(
644
+ 'tabSize',
645
+ 'The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.',
646
+ ),
647
+ },
648
+ // 'editor.indentSize': {
649
+ // 'anyOf': [
650
+ // {
651
+ // 'type': 'string',
652
+ // 'enum': ['tabSize']
653
+ // },
654
+ // {
655
+ // 'type': 'number',
656
+ // 'minimum': 1
657
+ // }
658
+ // ],
659
+ // 'default': 'tabSize',
660
+ // 'markdownDescription': localize('indentSize', "The number of spaces used for indentation or 'tabSize' to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.")
661
+ // },
662
+ 'editor.insertSpaces': {
663
+ type: 'boolean',
664
+ default: EDITOR_MODEL_DEFAULTS.insertSpaces,
665
+ markdownDescription: localize(
666
+ 'insertSpaces',
667
+ 'Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.',
668
+ ),
669
+ },
670
+ 'editor.detectIndentation': {
671
+ type: 'boolean',
672
+ default: EDITOR_MODEL_DEFAULTS.detectIndentation,
673
+ markdownDescription: localize(
674
+ 'detectIndentation',
675
+ 'Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.',
676
+ ),
677
+ },
678
+ 'editor.roundedSelection': {
679
+ type: 'boolean',
680
+ default: EDITOR_DEFAULTS.viewInfo.roundedSelection,
681
+ description: localize('roundedSelection', 'Controls whether selections should have rounded corners.'),
682
+ },
683
+ 'editor.scrollBeyondLastLine': {
684
+ type: 'boolean',
685
+ default: EDITOR_DEFAULTS.viewInfo.scrollBeyondLastLine,
686
+ description: localize('scrollBeyondLastLine', 'Controls whether the editor will scroll beyond the last line.'),
687
+ },
688
+ 'editor.scrollBeyondLastColumn': {
689
+ type: 'number',
690
+ default: EDITOR_DEFAULTS.viewInfo.scrollBeyondLastColumn,
691
+ description: localize(
692
+ 'scrollBeyondLastColumn',
693
+ 'Controls the number of extra characters beyond which the editor will scroll horizontally.',
694
+ ),
695
+ },
696
+ 'editor.smoothScrolling': {
697
+ type: 'boolean',
698
+ default: EDITOR_DEFAULTS.viewInfo.smoothScrolling,
699
+ description: localize('smoothScrolling', 'Controls whether the editor will scroll using an animation.'),
700
+ },
701
+ 'editor.minimap.enabled': {
702
+ type: 'boolean',
703
+ default: EDITOR_DEFAULTS.viewInfo.minimap.enabled,
704
+ description: localize('minimap.enabled', 'Controls whether the minimap is shown.'),
705
+ },
706
+ 'editor.minimap.side': {
707
+ type: 'string',
708
+ enum: ['left', 'right'],
709
+ default: EDITOR_DEFAULTS.viewInfo.minimap.side,
710
+ description: localize('minimap.side', 'Controls the side where to render the minimap.'),
711
+ },
712
+ 'editor.minimap.showSlider': {
713
+ type: 'string',
714
+ enum: ['always', 'mouseover'],
715
+ default: EDITOR_DEFAULTS.viewInfo.minimap.showSlider,
716
+ description: localize('minimap.showSlider', 'Controls whether the minimap slider is automatically hidden.'),
717
+ },
718
+ 'editor.minimap.renderCharacters': {
719
+ type: 'boolean',
720
+ default: EDITOR_DEFAULTS.viewInfo.minimap.renderCharacters,
721
+ description: localize(
722
+ 'minimap.renderCharacters',
723
+ 'Render the actual characters on a line as opposed to color blocks.',
724
+ ),
725
+ },
726
+ 'editor.minimap.maxColumn': {
727
+ type: 'number',
728
+ default: EDITOR_DEFAULTS.viewInfo.minimap.maxColumn,
729
+ description: localize(
730
+ 'minimap.maxColumn',
731
+ 'Limit the width of the minimap to render at most a certain number of columns.',
732
+ ),
733
+ },
734
+ 'editor.hover.enabled': {
735
+ type: 'boolean',
736
+ default: EDITOR_DEFAULTS.contribInfo.hover.enabled,
737
+ description: localize('hover.enabled', 'Controls whether the hover is shown.'),
738
+ },
739
+ 'editor.hover.delay': {
740
+ type: 'number',
741
+ default: EDITOR_DEFAULTS.contribInfo.hover.delay,
742
+ description: localize('hover.delay', 'Controls the delay in milliseconds after which the hover is shown.'),
743
+ },
744
+ 'editor.hover.sticky': {
745
+ type: 'boolean',
746
+ default: EDITOR_DEFAULTS.contribInfo.hover.sticky,
747
+ description: localize(
748
+ 'hover.sticky',
749
+ 'Controls whether the hover should remain visible when mouse is moved over it.',
750
+ ),
751
+ },
752
+ 'editor.find.seedSearchStringFromSelection': {
753
+ type: 'boolean',
754
+ default: EDITOR_DEFAULTS.contribInfo.find.seedSearchStringFromSelection,
755
+ description: localize(
756
+ 'find.seedSearchStringFromSelection',
757
+ 'Controls whether the search string in the Find Widget is seeded from the editor selection.',
758
+ ),
759
+ },
760
+ 'editor.find.autoFindInSelection': {
761
+ type: 'boolean',
762
+ default: EDITOR_DEFAULTS.contribInfo.find.autoFindInSelection,
763
+ description: localize(
764
+ 'find.autoFindInSelection',
765
+ 'Controls whether the find operation is carried out on selected text or the entire file in the editor.',
766
+ ),
767
+ },
768
+ 'editor.find.globalFindClipboard': {
769
+ type: 'boolean',
770
+ default: EDITOR_DEFAULTS.contribInfo.find.globalFindClipboard,
771
+ description: localize(
772
+ 'find.globalFindClipboard',
773
+ 'Controls whether the Find Widget should read or modify the shared find clipboard on macOS.',
774
+ ),
775
+ included: isOSX,
776
+ },
777
+ 'editor.find.addExtraSpaceOnTop': {
778
+ type: 'boolean',
779
+ default: true,
780
+ description: localize(
781
+ 'find.addExtraSpaceOnTop',
782
+ 'Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.',
783
+ ),
784
+ },
785
+ 'editor.wordWrap': {
786
+ type: 'string',
787
+ enum: ['off', 'on', 'wordWrapColumn', 'bounded'],
788
+ markdownEnumDescriptions: [
789
+ localize('wordWrap.off', 'Lines will never wrap.'),
790
+ localize('wordWrap.on', 'Lines will wrap at the viewport width.'),
791
+ localize('wordWrap.wordWrapColumn', 'Lines will wrap at `#editor.wordWrapColumn#`.'),
792
+ localize('wordWrap.bounded', 'Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.'),
793
+ ],
794
+ default: EDITOR_DEFAULTS.wordWrap,
795
+ description: localize('wordWrap', 'Controls how lines should wrap.'),
796
+ },
797
+ 'editor.wordWrapColumn': {
798
+ type: 'integer',
799
+ default: EDITOR_DEFAULTS.wordWrapColumn,
800
+ minimum: 1,
801
+ markdownDescription: localize(
802
+ 'wordWrapColumn',
803
+ 'Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.',
804
+ ),
805
+ },
806
+ 'editor.wrappingIndent': {
807
+ type: 'string',
808
+ enum: ['none', 'same', 'indent', 'deepIndent'],
809
+ enumDescriptions: [
810
+ localize('wrappingIndent.none', 'No indentation. Wrapped lines begin at column 1.'),
811
+ localize('wrappingIndent.same', 'Wrapped lines get the same indentation as the parent.'),
812
+ localize('wrappingIndent.indent', 'Wrapped lines get +1 indentation toward the parent.'),
813
+ localize('wrappingIndent.deepIndent', 'Wrapped lines get +2 indentation toward the parent.'),
814
+ ],
815
+ default: 'same',
816
+ description: localize('wrappingIndent', 'Controls the indentation of wrapped lines.'),
817
+ },
818
+ 'editor.mouseWheelScrollSensitivity': {
819
+ type: 'number',
820
+ default: EDITOR_DEFAULTS.viewInfo.scrollbar.mouseWheelScrollSensitivity,
821
+ markdownDescription: localize(
822
+ 'mouseWheelScrollSensitivity',
823
+ 'A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.',
824
+ ),
825
+ },
826
+ 'editor.fastScrollSensitivity': {
827
+ type: 'number',
828
+ default: EDITOR_DEFAULTS.viewInfo.scrollbar.fastScrollSensitivity,
829
+ markdownDescription: localize('fastScrollSensitivity', 'Scrolling speed multiplier when pressing `Alt`.'),
830
+ },
831
+ 'editor.multiCursorModifier': {
832
+ type: 'string',
833
+ enum: ['ctrlCmd', 'alt'],
834
+ markdownEnumDescriptions: [
835
+ localize('multiCursorModifier.ctrlCmd', 'Maps to `Control` on Windows and Linux and to `Command` on macOS.'),
836
+ localize('multiCursorModifier.alt', 'Maps to `Alt` on Windows and Linux and to `Option` on macOS.'),
837
+ ],
838
+ default: 'alt',
839
+ markdownDescription: localize(
840
+ 'multiCursorModifier',
841
+ 'The modifier to be used to add multiple cursors with the mouse. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).',
842
+ ),
843
+ },
844
+ 'editor.multiCursorMergeOverlapping': {
845
+ type: 'boolean',
846
+ default: EDITOR_DEFAULTS.multiCursorMergeOverlapping,
847
+ description: localize('multiCursorMergeOverlapping', 'Merge multiple cursors when they are overlapping.'),
848
+ },
849
+ 'editor.quickSuggestions': {
850
+ anyOf: [
851
+ {
852
+ type: 'boolean',
853
+ },
854
+ {
855
+ type: 'object',
856
+ properties: {
857
+ strings: {
858
+ type: 'boolean',
859
+ default: false,
860
+ description: localize('quickSuggestions.strings', 'Enable quick suggestions inside strings.'),
861
+ },
862
+ comments: {
863
+ type: 'boolean',
864
+ default: false,
865
+ description: localize('quickSuggestions.comments', 'Enable quick suggestions inside comments.'),
866
+ },
867
+ other: {
868
+ type: 'boolean',
869
+ default: true,
870
+ description: localize(
871
+ 'quickSuggestions.other',
872
+ 'Enable quick suggestions outside of strings and comments.',
873
+ ),
874
+ },
875
+ },
876
+ },
877
+ ],
878
+ default: EDITOR_DEFAULTS.contribInfo.quickSuggestions,
879
+ description: localize(
880
+ 'quickSuggestions',
881
+ 'Controls whether suggestions should automatically show up while typing.',
882
+ ),
883
+ },
884
+ 'editor.quickSuggestionsDelay': {
885
+ type: 'integer',
886
+ default: EDITOR_DEFAULTS.contribInfo.quickSuggestionsDelay,
887
+ minimum: 0,
888
+ description: localize(
889
+ 'quickSuggestionsDelay',
890
+ 'Controls the delay in milliseconds after which quick suggestions will show up.',
891
+ ),
892
+ },
893
+ 'editor.parameterHints.enabled': {
894
+ type: 'boolean',
895
+ default: EDITOR_DEFAULTS.contribInfo.parameterHints.enabled,
896
+ description: localize(
897
+ 'parameterHints.enabled',
898
+ 'Enables a pop-up that shows parameter documentation and type information as you type.',
899
+ ),
900
+ },
901
+ 'editor.parameterHints.cycle': {
902
+ type: 'boolean',
903
+ default: EDITOR_DEFAULTS.contribInfo.parameterHints.cycle,
904
+ description: localize(
905
+ 'parameterHints.cycle',
906
+ 'Controls whether the parameter hints menu cycles or closes when reaching the end of the list.',
907
+ ),
908
+ },
909
+ 'editor.autoClosingBrackets': {
910
+ type: 'string',
911
+ enum: ['always', 'languageDefined', 'beforeWhitespace', 'never'],
912
+ enumDescriptions: [
913
+ '',
914
+ localize(
915
+ 'editor.autoClosingBrackets.languageDefined',
916
+ 'Use language configurations to determine when to autoclose brackets.',
917
+ ),
918
+ localize(
919
+ 'editor.autoClosingBrackets.beforeWhitespace',
920
+ 'Autoclose brackets only when the cursor is to the left of whitespace.',
921
+ ),
922
+ '',
923
+ ],
924
+ default: EDITOR_DEFAULTS.autoClosingBrackets,
925
+ description: localize(
926
+ 'autoClosingBrackets',
927
+ 'Controls whether the editor should automatically close brackets after the user adds an opening bracket.',
928
+ ),
929
+ },
930
+ 'editor.autoClosingQuotes': {
931
+ type: 'string',
932
+ enum: ['always', 'languageDefined', 'beforeWhitespace', 'never'],
933
+ enumDescriptions: [
934
+ '',
935
+ localize(
936
+ 'editor.autoClosingQuotes.languageDefined',
937
+ 'Use language configurations to determine when to autoclose quotes.',
938
+ ),
939
+ localize(
940
+ 'editor.autoClosingQuotes.beforeWhitespace',
941
+ 'Autoclose quotes only when the cursor is to the left of whitespace.',
942
+ ),
943
+ '',
944
+ ],
945
+ default: EDITOR_DEFAULTS.autoClosingQuotes,
946
+ description: localize(
947
+ 'autoClosingQuotes',
948
+ 'Controls whether the editor should automatically close quotes after the user adds an opening quote.',
949
+ ),
950
+ },
951
+ 'editor.autoSurround': {
952
+ type: 'string',
953
+ enum: ['languageDefined', 'brackets', 'quotes', 'never'],
954
+ enumDescriptions: [
955
+ localize(
956
+ 'editor.autoSurround.languageDefined',
957
+ 'Use language configurations to determine when to automatically surround selections.',
958
+ ),
959
+ localize('editor.autoSurround.brackets', 'Surround with brackets but not quotes.'),
960
+ localize('editor.autoSurround.quotes', 'Surround with quotes but not brackets.'),
961
+ '',
962
+ ],
963
+ default: EDITOR_DEFAULTS.autoSurround,
964
+ description: localize('autoSurround', 'Controls whether the editor should automatically surround selections.'),
965
+ },
966
+ 'editor.formatOnType': {
967
+ type: 'boolean',
968
+ default: EDITOR_DEFAULTS.contribInfo.formatOnType,
969
+ description: localize(
970
+ 'formatOnType',
971
+ 'Controls whether the editor should automatically format the line after typing.',
972
+ ),
973
+ },
974
+ 'editor.formatOnPaste': {
975
+ type: 'boolean',
976
+ default: EDITOR_DEFAULTS.contribInfo.formatOnPaste,
977
+ description: localize(
978
+ 'formatOnPaste',
979
+ 'Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.',
980
+ ),
981
+ },
982
+ 'editor.autoIndent': {
983
+ type: 'boolean',
984
+ default: EDITOR_DEFAULTS.autoIndent,
985
+ description: localize(
986
+ 'autoIndent',
987
+ 'Controls whether the editor should automatically adjust the indentation when users type, paste or move lines. Extensions with indentation rules of the language must be available.',
988
+ ),
989
+ },
990
+ 'editor.suggestOnTriggerCharacters': {
991
+ type: 'boolean',
992
+ default: EDITOR_DEFAULTS.contribInfo.suggestOnTriggerCharacters,
993
+ description: localize(
994
+ 'suggestOnTriggerCharacters',
995
+ 'Controls whether suggestions should automatically show up when typing trigger characters.',
996
+ ),
997
+ },
998
+ 'editor.acceptSuggestionOnEnter': {
999
+ type: 'string',
1000
+ enum: ['on', 'smart', 'off'],
1001
+ default: EDITOR_DEFAULTS.contribInfo.acceptSuggestionOnEnter,
1002
+ markdownEnumDescriptions: [
1003
+ '',
1004
+ localize('acceptSuggestionOnEnterSmart', 'Only accept a suggestion with `Enter` when it makes a textual change.'),
1005
+ '',
1006
+ ],
1007
+ markdownDescription: localize(
1008
+ 'acceptSuggestionOnEnter',
1009
+ 'Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.',
1010
+ ),
1011
+ },
1012
+ 'editor.acceptSuggestionOnCommitCharacter': {
1013
+ type: 'boolean',
1014
+ default: EDITOR_DEFAULTS.contribInfo.acceptSuggestionOnCommitCharacter,
1015
+ markdownDescription: localize(
1016
+ 'acceptSuggestionOnCommitCharacter',
1017
+ 'Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.',
1018
+ ),
1019
+ },
1020
+ 'editor.snippetSuggestions': {
1021
+ type: 'string',
1022
+ enum: ['top', 'bottom', 'inline', 'none'],
1023
+ enumDescriptions: [
1024
+ localize('snippetSuggestions.top', 'Show snippet suggestions on top of other suggestions.'),
1025
+ localize('snippetSuggestions.bottom', 'Show snippet suggestions below other suggestions.'),
1026
+ localize('snippetSuggestions.inline', 'Show snippets suggestions with other suggestions.'),
1027
+ localize('snippetSuggestions.none', 'Do not show snippet suggestions.'),
1028
+ ],
1029
+ default: 'inline',
1030
+ description: localize(
1031
+ 'snippetSuggestions',
1032
+ 'Controls whether snippets are shown with other suggestions and how they are sorted.',
1033
+ ),
1034
+ },
1035
+ 'editor.emptySelectionClipboard': {
1036
+ type: 'boolean',
1037
+ default: EDITOR_DEFAULTS.emptySelectionClipboard,
1038
+ description: localize(
1039
+ 'emptySelectionClipboard',
1040
+ 'Controls whether copying without a selection copies the current line.',
1041
+ ),
1042
+ },
1043
+ 'editor.copyWithSyntaxHighlighting': {
1044
+ type: 'boolean',
1045
+ default: EDITOR_DEFAULTS.copyWithSyntaxHighlighting,
1046
+ description: localize(
1047
+ 'copyWithSyntaxHighlighting',
1048
+ 'Controls whether syntax highlighting should be copied into the clipboard.',
1049
+ ),
1050
+ },
1051
+ 'editor.wordBasedSuggestions': {
1052
+ type: 'boolean',
1053
+ default: EDITOR_DEFAULTS.contribInfo.wordBasedSuggestions,
1054
+ description: localize(
1055
+ 'wordBasedSuggestions',
1056
+ 'Controls whether completions should be computed based on words in the document.',
1057
+ ),
1058
+ },
1059
+ 'editor.suggestSelection': {
1060
+ type: 'string',
1061
+ enum: ['first', 'recentlyUsed', 'recentlyUsedByPrefix'],
1062
+ markdownEnumDescriptions: [
1063
+ localize('suggestSelection.first', 'Always select the first suggestion.'),
1064
+ localize(
1065
+ 'suggestSelection.recentlyUsed',
1066
+ 'Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.',
1067
+ ),
1068
+ localize(
1069
+ 'suggestSelection.recentlyUsedByPrefix',
1070
+ 'Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.',
1071
+ ),
1072
+ ],
1073
+ default: 'recentlyUsed',
1074
+ description: localize(
1075
+ 'suggestSelection',
1076
+ 'Controls how suggestions are pre-selected when showing the suggest list.',
1077
+ ),
1078
+ },
1079
+ 'editor.suggestFontSize': {
1080
+ type: 'integer',
1081
+ default: 0,
1082
+ minimum: 0,
1083
+ markdownDescription: localize(
1084
+ 'suggestFontSize',
1085
+ 'Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.',
1086
+ ),
1087
+ },
1088
+ 'editor.suggestLineHeight': {
1089
+ type: 'integer',
1090
+ default: 0,
1091
+ minimum: 0,
1092
+ markdownDescription: localize(
1093
+ 'suggestLineHeight',
1094
+ 'Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used.',
1095
+ ),
1096
+ },
1097
+ 'editor.tabCompletion': {
1098
+ type: 'string',
1099
+ default: 'off',
1100
+ enum: ['on', 'off', 'onlySnippets'],
1101
+ enumDescriptions: [
1102
+ localize('tabCompletion.on', 'Tab complete will insert the best matching suggestion when pressing tab.'),
1103
+ localize('tabCompletion.off', 'Disable tab completions.'),
1104
+ localize(
1105
+ 'tabCompletion.onlySnippets',
1106
+ "Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.",
1107
+ ),
1108
+ ],
1109
+ description: localize('tabCompletion', 'Enables tab completions.'),
1110
+ },
1111
+ 'editor.suggest.filteredTypes': {
1112
+ type: 'object',
1113
+ default: { keyword: true, snippet: true },
1114
+ markdownDescription: localize(
1115
+ 'suggest.filtered',
1116
+ 'Controls whether some suggestion types should be filtered from IntelliSense. A list of suggestion types can be found here: https://code.visualstudio.com/docs/editor/intellisense#_types-of-completions.',
1117
+ ),
1118
+ properties: {
1119
+ method: {
1120
+ type: 'boolean',
1121
+ default: true,
1122
+ markdownDescription: localize(
1123
+ 'suggest.filtered.method',
1124
+ 'When set to `false` IntelliSense never shows `method` suggestions.',
1125
+ ),
1126
+ },
1127
+ function: {
1128
+ type: 'boolean',
1129
+ default: true,
1130
+ markdownDescription: localize(
1131
+ 'suggest.filtered.function',
1132
+ 'When set to `false` IntelliSense never shows `function` suggestions.',
1133
+ ),
1134
+ },
1135
+ constructor: {
1136
+ type: 'boolean' as const,
1137
+ default: true,
1138
+ markdownDescription: localize(
1139
+ 'suggest.filtered.constructor',
1140
+ 'When set to `false` IntelliSense never shows `constructor` suggestions.',
1141
+ ),
1142
+ },
1143
+ field: {
1144
+ type: 'boolean',
1145
+ default: true,
1146
+ markdownDescription: localize(
1147
+ 'suggest.filtered.field',
1148
+ 'When set to `false` IntelliSense never shows `field` suggestions.',
1149
+ ),
1150
+ },
1151
+ variable: {
1152
+ type: 'boolean',
1153
+ default: true,
1154
+ markdownDescription: localize(
1155
+ 'suggest.filtered.variable',
1156
+ 'When set to `false` IntelliSense never shows `variable` suggestions.',
1157
+ ),
1158
+ },
1159
+ class: {
1160
+ type: 'boolean',
1161
+ default: true,
1162
+ markdownDescription: localize(
1163
+ 'suggest.filtered.class',
1164
+ 'When set to `false` IntelliSense never shows `class` suggestions.',
1165
+ ),
1166
+ },
1167
+ struct: {
1168
+ type: 'boolean',
1169
+ default: true,
1170
+ markdownDescription: localize(
1171
+ 'suggest.filtered.struct',
1172
+ 'When set to `false` IntelliSense never shows `struct` suggestions.',
1173
+ ),
1174
+ },
1175
+ interface: {
1176
+ type: 'boolean',
1177
+ default: true,
1178
+ markdownDescription: localize(
1179
+ 'suggest.filtered.interface',
1180
+ 'When set to `false` IntelliSense never shows `interface` suggestions.',
1181
+ ),
1182
+ },
1183
+ module: {
1184
+ type: 'boolean',
1185
+ default: true,
1186
+ markdownDescription: localize(
1187
+ 'suggest.filtered.module',
1188
+ 'When set to `false` IntelliSense never shows `module` suggestions.',
1189
+ ),
1190
+ },
1191
+ property: {
1192
+ type: 'boolean',
1193
+ default: true,
1194
+ markdownDescription: localize(
1195
+ 'suggest.filtered.property',
1196
+ 'When set to `false` IntelliSense never shows `property` suggestions.',
1197
+ ),
1198
+ },
1199
+ event: {
1200
+ type: 'boolean',
1201
+ default: true,
1202
+ markdownDescription: localize(
1203
+ 'suggest.filtered.event',
1204
+ 'When set to `false` IntelliSense never shows `event` suggestions.',
1205
+ ),
1206
+ },
1207
+ operator: {
1208
+ type: 'boolean',
1209
+ default: true,
1210
+ markdownDescription: localize(
1211
+ 'suggest.filtered.operator',
1212
+ 'When set to `false` IntelliSense never shows `operator` suggestions.',
1213
+ ),
1214
+ },
1215
+ unit: {
1216
+ type: 'boolean',
1217
+ default: true,
1218
+ markdownDescription: localize(
1219
+ 'suggest.filtered.unit',
1220
+ 'When set to `false` IntelliSense never shows `unit` suggestions.',
1221
+ ),
1222
+ },
1223
+ value: {
1224
+ type: 'boolean',
1225
+ default: true,
1226
+ markdownDescription: localize(
1227
+ 'suggest.filtered.value',
1228
+ 'When set to `false` IntelliSense never shows `value` suggestions.',
1229
+ ),
1230
+ },
1231
+ constant: {
1232
+ type: 'boolean',
1233
+ default: true,
1234
+ markdownDescription: localize(
1235
+ 'suggest.filtered.constant',
1236
+ 'When set to `false` IntelliSense never shows `constant` suggestions.',
1237
+ ),
1238
+ },
1239
+ enum: {
1240
+ type: 'boolean',
1241
+ default: true,
1242
+ markdownDescription: localize(
1243
+ 'suggest.filtered.enum',
1244
+ 'When set to `false` IntelliSense never shows `enum` suggestions.',
1245
+ ),
1246
+ },
1247
+ enumMember: {
1248
+ type: 'boolean',
1249
+ default: true,
1250
+ markdownDescription: localize(
1251
+ 'suggest.filtered.enumMember',
1252
+ 'When set to `false` IntelliSense never shows `enumMember` suggestions.',
1253
+ ),
1254
+ },
1255
+ keyword: {
1256
+ type: 'boolean',
1257
+ default: true,
1258
+ markdownDescription: localize(
1259
+ 'suggest.filtered.keyword',
1260
+ 'When set to `false` IntelliSense never shows `keyword` suggestions.',
1261
+ ),
1262
+ },
1263
+ text: {
1264
+ type: 'boolean',
1265
+ default: true,
1266
+ markdownDescription: localize(
1267
+ 'suggest.filtered.text',
1268
+ 'When set to `false` IntelliSense never shows `text` suggestions.',
1269
+ ),
1270
+ },
1271
+ color: {
1272
+ type: 'boolean',
1273
+ default: true,
1274
+ markdownDescription: localize(
1275
+ 'suggest.filtered.color',
1276
+ 'When set to `false` IntelliSense never shows `color` suggestions.',
1277
+ ),
1278
+ },
1279
+ file: {
1280
+ type: 'boolean',
1281
+ default: true,
1282
+ markdownDescription: localize(
1283
+ 'suggest.filtered.file',
1284
+ 'When set to `false` IntelliSense never shows `file` suggestions.',
1285
+ ),
1286
+ },
1287
+ reference: {
1288
+ type: 'boolean',
1289
+ default: true,
1290
+ markdownDescription: localize(
1291
+ 'suggest.filtered.reference',
1292
+ 'When set to `false` IntelliSense never shows `reference` suggestions.',
1293
+ ),
1294
+ },
1295
+ customcolor: {
1296
+ type: 'boolean',
1297
+ default: true,
1298
+ markdownDescription: localize(
1299
+ 'suggest.filtered.customcolor',
1300
+ 'When set to `false` IntelliSense never shows `customcolor` suggestions.',
1301
+ ),
1302
+ },
1303
+ folder: {
1304
+ type: 'boolean',
1305
+ default: true,
1306
+ markdownDescription: localize(
1307
+ 'suggest.filtered.folder',
1308
+ 'When set to `false` IntelliSense never shows `folder` suggestions.',
1309
+ ),
1310
+ },
1311
+ typeParameter: {
1312
+ type: 'boolean',
1313
+ default: true,
1314
+ markdownDescription: localize(
1315
+ 'suggest.filtered.typeParameter',
1316
+ 'When set to `false` IntelliSense never shows `typeParameter` suggestions.',
1317
+ ),
1318
+ },
1319
+ snippet: {
1320
+ type: 'boolean',
1321
+ default: true,
1322
+ markdownDescription: localize(
1323
+ 'suggest.filtered.snippet',
1324
+ 'When set to `false` IntelliSense never shows `snippet` suggestions.',
1325
+ ),
1326
+ },
1327
+ },
1328
+ },
1329
+ 'editor.gotoLocation.multiple': {
1330
+ description: localize(
1331
+ 'editor.gotoLocation.multiple',
1332
+ "Controls the behavior of 'Go To' commands, like Go To Definition, when multiple target locations exist.",
1333
+ ),
1334
+ type: 'string',
1335
+ enum: ['peek', 'gotoAndPeek', 'goto'],
1336
+ default: EDITOR_DEFAULTS.contribInfo.gotoLocation.multiple,
1337
+ enumDescriptions: [
1338
+ localize('editor.gotoLocation.multiple.peek', 'Show peek view of the results (default)'),
1339
+ localize('editor.gotoLocation.multiple.gotoAndPeek', 'Go to the primary result and show a peek view'),
1340
+ localize(
1341
+ 'editor.gotoLocation.multiple.goto',
1342
+ 'Go to the primary result and enable peek-less navigation to others',
1343
+ ),
1344
+ ],
1345
+ },
1346
+ 'editor.selectionHighlight': {
1347
+ type: 'boolean',
1348
+ default: EDITOR_DEFAULTS.contribInfo.selectionHighlight,
1349
+ description: localize(
1350
+ 'selectionHighlight',
1351
+ 'Controls whether the editor should highlight matches similar to the selection.',
1352
+ ),
1353
+ },
1354
+ 'editor.occurrencesHighlight': {
1355
+ type: 'boolean',
1356
+ default: EDITOR_DEFAULTS.contribInfo.occurrencesHighlight,
1357
+ description: localize(
1358
+ 'occurrencesHighlight',
1359
+ 'Controls whether the editor should highlight semantic symbol occurrences.',
1360
+ ),
1361
+ },
1362
+ 'editor.overviewRulerLanes': {
1363
+ type: 'integer',
1364
+ default: 3,
1365
+ description: localize(
1366
+ 'overviewRulerLanes',
1367
+ 'Controls the number of decorations that can show up at the same position in the overview ruler.',
1368
+ ),
1369
+ },
1370
+ 'editor.overviewRulerBorder': {
1371
+ type: 'boolean',
1372
+ default: EDITOR_DEFAULTS.viewInfo.overviewRulerBorder,
1373
+ description: localize(
1374
+ 'overviewRulerBorder',
1375
+ 'Controls whether a border should be drawn around the overview ruler.',
1376
+ ),
1377
+ },
1378
+ 'editor.cursorBlinking': {
1379
+ type: 'string',
1380
+ enum: ['blink', 'smooth', 'phase', 'expand', 'solid'],
1381
+ default: 'blink',
1382
+ description: localize('cursorBlinking', 'Control the cursor animation style.'),
1383
+ },
1384
+ 'editor.mouseWheelZoom': {
1385
+ type: 'boolean',
1386
+ default: EDITOR_DEFAULTS.viewInfo.mouseWheelZoom,
1387
+ markdownDescription: localize(
1388
+ 'mouseWheelZoom',
1389
+ 'Zoom the font of the editor when using mouse wheel and holding `Ctrl`.',
1390
+ ),
1391
+ },
1392
+ 'editor.cursorSmoothCaretAnimation': {
1393
+ type: 'boolean',
1394
+ default: EDITOR_DEFAULTS.viewInfo.cursorSmoothCaretAnimation,
1395
+ description: localize(
1396
+ 'cursorSmoothCaretAnimation',
1397
+ 'Controls whether the smooth caret animation should be enabled.',
1398
+ ),
1399
+ },
1400
+ 'editor.cursorStyle': {
1401
+ type: 'string',
1402
+ enum: ['block', 'block-outline', 'line', 'line-thin', 'underline', 'underline-thin'],
1403
+ default: EDITOR_FONT_DEFAULTS.cursorStyle,
1404
+ description: localize('cursorStyle', 'Controls the cursor style.'),
1405
+ },
1406
+ 'editor.cursorWidth': {
1407
+ type: 'integer',
1408
+ default: EDITOR_DEFAULTS.viewInfo.cursorWidth,
1409
+ markdownDescription: localize(
1410
+ 'cursorWidth',
1411
+ 'Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.',
1412
+ ),
1413
+ },
1414
+ 'editor.fontLigatures': {
1415
+ type: 'boolean',
1416
+ default: EDITOR_DEFAULTS.viewInfo.fontLigatures,
1417
+ description: localize('fontLigatures', 'Enables/Disables font ligatures.'),
1418
+ },
1419
+ 'editor.hideCursorInOverviewRuler': {
1420
+ type: 'boolean',
1421
+ default: EDITOR_DEFAULTS.viewInfo.hideCursorInOverviewRuler,
1422
+ description: localize(
1423
+ 'hideCursorInOverviewRuler',
1424
+ 'Controls whether the cursor should be hidden in the overview ruler.',
1425
+ ),
1426
+ },
1427
+ 'editor.renderWhitespace': {
1428
+ type: 'string',
1429
+ enum: ['none', 'boundary', 'selection', 'all'],
1430
+ enumDescriptions: [
1431
+ '',
1432
+ localize('renderWhitespace.boundary', 'Render whitespace characters except for single spaces between words.'),
1433
+ localize('renderWhitespace.selection', 'Render whitespace characters only on selected text.'),
1434
+ '',
1435
+ ],
1436
+ default: EDITOR_DEFAULTS.viewInfo.renderWhitespace,
1437
+ description: localize('renderWhitespace', 'Controls how the editor should render whitespace characters.'),
1438
+ },
1439
+ 'editor.rename.enablePreview': {
1440
+ type: 'boolean',
1441
+ default: true,
1442
+ description: 'Enable/disable the ability to preview changes before renaming',
1443
+ },
1444
+ 'editor.renderControlCharacters': {
1445
+ type: 'boolean',
1446
+ default: EDITOR_DEFAULTS.viewInfo.renderControlCharacters,
1447
+ description: localize('renderControlCharacters', 'Controls whether the editor should render control characters.'),
1448
+ },
1449
+ 'editor.guides.indentation': {
1450
+ type: 'boolean',
1451
+ default: EDITOR_DEFAULTS.viewInfo.guides.indentation,
1452
+ description: localize('editor.guides.indentation', 'Controls whether the editor should render indent guides.'),
1453
+ },
1454
+ 'editor.guides.highlightActiveIndentation': {
1455
+ type: 'boolean',
1456
+ default: EDITOR_DEFAULTS.viewInfo.guides.highlightActiveIndentGuide,
1457
+ description: localize(
1458
+ 'editor.guides.highlightActiveIndentation',
1459
+ 'Controls whether the editor should highlight the active indent guide.',
1460
+ ),
1461
+ },
1462
+ 'editor.guides.bracketPairs': {
1463
+ type: 'boolean',
1464
+ default: EDITOR_DEFAULTS.viewInfo.guides.bracketPairs,
1465
+ description: localize(
1466
+ 'editor.configuration.guides.bracketPairs',
1467
+ 'Controls whether bracket pair guides are enabled or not.',
1468
+ ),
1469
+ },
1470
+ 'editor.renderLineHighlight': {
1471
+ type: 'string',
1472
+ enum: ['none', 'gutter', 'line', 'all'],
1473
+ enumDescriptions: [
1474
+ '',
1475
+ '',
1476
+ '',
1477
+ localize('renderLineHighlight.all', 'Highlights both the gutter and the current line.'),
1478
+ ],
1479
+ default: EDITOR_DEFAULTS.viewInfo.renderLineHighlight,
1480
+ description: localize('renderLineHighlight', 'Controls how the editor should render the current line highlight.'),
1481
+ },
1482
+ 'editor.codeLens': {
1483
+ type: 'boolean',
1484
+ default: EDITOR_DEFAULTS.contribInfo.codeLens,
1485
+ description: localize('codeLens', 'Controls whether the editor shows CodeLens.'),
1486
+ },
1487
+ 'editor.folding': {
1488
+ type: 'boolean',
1489
+ default: EDITOR_DEFAULTS.contribInfo.folding,
1490
+ description: localize('folding', 'Controls whether the editor has code folding enabled.'),
1491
+ },
1492
+ 'editor.foldingStrategy': {
1493
+ type: 'string',
1494
+ enum: ['auto', 'indentation'],
1495
+ default: EDITOR_DEFAULTS.contribInfo.foldingStrategy,
1496
+ markdownDescription: localize(
1497
+ 'foldingStrategy',
1498
+ 'Controls the strategy for computing folding ranges. `auto` uses a language specific folding strategy, if available. `indentation` uses the indentation based folding strategy.',
1499
+ ),
1500
+ },
1501
+ 'editor.showFoldingControls': {
1502
+ type: 'string',
1503
+ enum: ['always', 'mouseover'],
1504
+ default: EDITOR_DEFAULTS.contribInfo.showFoldingControls,
1505
+ description: localize(
1506
+ 'showFoldingControls',
1507
+ 'Controls whether the fold controls on the gutter are automatically hidden.',
1508
+ ),
1509
+ },
1510
+ 'editor.matchBrackets': {
1511
+ type: 'boolean',
1512
+ default: EDITOR_DEFAULTS.contribInfo.matchBrackets,
1513
+ description: localize('matchBrackets', 'Highlight matching brackets when one of them is selected.'),
1514
+ },
1515
+ 'editor.glyphMargin': {
1516
+ type: 'boolean',
1517
+ default: EDITOR_DEFAULTS.viewInfo.glyphMargin,
1518
+ description: localize(
1519
+ 'glyphMargin',
1520
+ 'Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.',
1521
+ ),
1522
+ },
1523
+ 'editor.useTabStops': {
1524
+ type: 'boolean',
1525
+ default: EDITOR_DEFAULTS.useTabStops,
1526
+ description: localize('useTabStops', 'Inserting and deleting whitespace follows tab stops.'),
1527
+ },
1528
+ 'editor.trimAutoWhitespace': {
1529
+ type: 'boolean',
1530
+ default: EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,
1531
+ description: localize('trimAutoWhitespace', 'Remove trailing auto inserted whitespace.'),
1532
+ },
1533
+ 'editor.stablePeek': {
1534
+ type: 'boolean',
1535
+ default: false,
1536
+ markdownDescription: localize(
1537
+ 'stablePeek',
1538
+ 'Keep peek editors open even when double clicking their content or when hitting `Escape`.',
1539
+ ),
1540
+ },
1541
+ 'editor.dragAndDrop': {
1542
+ type: 'boolean',
1543
+ default: EDITOR_DEFAULTS.dragAndDrop,
1544
+ description: localize(
1545
+ 'dragAndDrop',
1546
+ 'Controls whether the editor should allow moving selections via drag and drop.',
1547
+ ),
1548
+ },
1549
+ 'editor.accessibilitySupport': {
1550
+ type: 'string',
1551
+ enum: ['auto', 'on', 'off'],
1552
+ enumDescriptions: [
1553
+ localize(
1554
+ 'accessibilitySupport.auto',
1555
+ 'The editor will use platform APIs to detect when a Screen Reader is attached.',
1556
+ ),
1557
+ localize('accessibilitySupport.on', 'The editor will be permanently optimized for usage with a Screen Reader.'),
1558
+ localize('accessibilitySupport.off', 'The editor will never be optimized for usage with a Screen Reader.'),
1559
+ ],
1560
+ default: EDITOR_DEFAULTS.accessibilitySupport,
1561
+ description: localize(
1562
+ 'accessibilitySupport',
1563
+ 'Controls whether the editor should run in a mode where it is optimized for screen readers.',
1564
+ ),
1565
+ },
1566
+ 'editor.showUnused': {
1567
+ type: 'boolean',
1568
+ default: EDITOR_DEFAULTS.showUnused,
1569
+ description: localize('showUnused', 'Controls fading out of unused code.'),
1570
+ },
1571
+ 'editor.comments.insertSpace': {
1572
+ type: 'boolean',
1573
+ default: true,
1574
+ description: localize(
1575
+ 'insertSpace',
1576
+ 'Insert a space after the line comment token and inside the block comments tokens.',
1577
+ ),
1578
+ },
1579
+ 'editor.comments.ignoreEmptyLines': {
1580
+ type: 'boolean',
1581
+ default: true,
1582
+ description: localize('insertSpace', 'Ignore empty lines when inserting line comments.'),
1583
+ },
1584
+ 'editor.links': {
1585
+ type: 'boolean',
1586
+ default: EDITOR_DEFAULTS.contribInfo.links,
1587
+ description: localize('links', 'Controls whether the editor should detect links and make them clickable.'),
1588
+ },
1589
+ 'editor.colorDecorators': {
1590
+ type: 'boolean',
1591
+ default: EDITOR_DEFAULTS.contribInfo.colorDecorators,
1592
+ description: localize(
1593
+ 'colorDecorators',
1594
+ 'Controls whether the editor should render the inline color decorators and color picker.',
1595
+ ),
1596
+ },
1597
+ 'editor.lightbulb.enabled': {
1598
+ type: 'boolean',
1599
+ default: EDITOR_DEFAULTS.contribInfo.lightbulbEnabled,
1600
+ description: localize('codeActions', 'Enables the code action lightbulb in the editor.'),
1601
+ },
1602
+ 'editor.maxTokenizationLineLength': {
1603
+ type: 'integer',
1604
+ default: 20000,
1605
+ description: localize(
1606
+ 'maxTokenizationLineLength',
1607
+ 'Lines above this length will not be tokenized for performance reasons',
1608
+ ),
1609
+ },
1610
+ 'editor.codeActionsOnSave': {
1611
+ type: 'object',
1612
+ properties: {
1613
+ 'source.organizeImports': {
1614
+ type: 'boolean',
1615
+ description: localize(
1616
+ 'codeActionsOnSave.organizeImports',
1617
+ 'Controls whether organize imports action should be run on file save.',
1618
+ ),
1619
+ },
1620
+ 'source.fixAll': {
1621
+ type: 'boolean',
1622
+ description: localize(
1623
+ 'codeActionsOnSave.fixAll',
1624
+ 'Controls whether auto fix action should be run on file save.',
1625
+ ),
1626
+ },
1627
+ },
1628
+ additionalProperties: {
1629
+ type: 'boolean',
1630
+ },
1631
+ default: EDITOR_DEFAULTS.contribInfo.codeActionsOnSave,
1632
+ description: localize('codeActionsOnSave', 'Code action kinds to be run on save.'),
1633
+ },
1634
+ 'editor.codeActionsOnSaveTimeout': {
1635
+ type: 'number',
1636
+ default: EDITOR_DEFAULTS.contribInfo.codeActionsOnSaveTimeout,
1637
+ description: localize(
1638
+ 'codeActionsOnSaveTimeout',
1639
+ 'Timeout in milliseconds after which the code actions that are run on save are cancelled.',
1640
+ ),
1641
+ },
1642
+ 'editor.selectionClipboard': {
1643
+ type: 'boolean',
1644
+ default: EDITOR_DEFAULTS.contribInfo.selectionClipboard,
1645
+ description: localize('selectionClipboard', 'Controls whether the Linux primary clipboard should be supported.'),
1646
+ included: isLinux,
1647
+ },
1648
+ 'editor.largeFileOptimizations': {
1649
+ type: 'boolean',
1650
+ default: EDITOR_MODEL_DEFAULTS.largeFileOptimizations,
1651
+ description: localize(
1652
+ 'largeFileOptimizations',
1653
+ 'Special handling for large files to disable certain memory intensive features.',
1654
+ ),
1655
+ },
1656
+ 'diffEditor.renderIndicators': {
1657
+ type: 'boolean',
1658
+ default: true,
1659
+ description: localize(
1660
+ 'renderIndicators',
1661
+ 'Controls whether the diff editor shows +/- indicators for added/removed changes.',
1662
+ ),
1663
+ },
1664
+ 'editor.defaultFormatter': {
1665
+ type: 'string',
1666
+ description: localize('defaultFormatter', 'Default code formatter'),
1667
+ },
1668
+ };
1669
+
1670
+ const customEditorSchema: PreferenceSchemaProperties = {
1671
+ 'editor.tokenColorCustomizations': {
1672
+ type: 'object',
1673
+ description: '%preference.editor.tokenColorCustomizations%',
1674
+ default: {},
1675
+ },
1676
+ 'editor.askIfDiff': {
1677
+ type: 'boolean',
1678
+ default: true,
1679
+ description: '%editor.configuration.askIfDiff%',
1680
+ },
1681
+ 'editor.showActionWhenGroupEmpty': {
1682
+ type: 'boolean',
1683
+ default: false,
1684
+ description: '%editor.configuration.showActionWhenGroupEmpty%',
1685
+ },
1686
+ 'editor.autoSave': {
1687
+ type: 'string',
1688
+ enum: ['off', 'afterDelay', 'editorFocusChange', 'windowLostFocus'],
1689
+ default: 'off',
1690
+ description: '%editor.configuration.autoSave%',
1691
+ },
1692
+ 'editor.autoSaveDelay': {
1693
+ type: 'number',
1694
+ default: 1000,
1695
+ markdownDescription: '%editor.configuration.autoSaveDelay%',
1696
+ },
1697
+ 'editor.preferredFormatter': {
1698
+ type: 'object',
1699
+ default: {},
1700
+ description: '%editor.configuration.preferredFormatter%',
1701
+ },
1702
+ 'editor.previewMode': {
1703
+ type: 'boolean',
1704
+ default: true,
1705
+ description: '%editor.configuration.previewMode%',
1706
+ },
1707
+ 'editor.wrapTab': {
1708
+ type: 'boolean',
1709
+ default: false,
1710
+ description: '%editor.configuration.wrapTab%',
1711
+ },
1712
+ 'editor.enablePreviewFromCodeNavigation': {
1713
+ type: 'boolean',
1714
+ default: false,
1715
+ markdownDescription: '%editor.configuration.enablePreviewFromCodeNavigation%',
1716
+ },
1717
+ 'editor.minimap': {
1718
+ type: 'boolean',
1719
+ default: true,
1720
+ },
1721
+ 'editor.forceReadOnly': {
1722
+ type: 'boolean',
1723
+ default: false,
1724
+ description: '%editor.configuration.forceReadOnly%',
1725
+ },
1726
+ // 会启用 languageFeature 的最大文件尺寸
1727
+ 'editor.languageFeatureEnabledMaxSize': {
1728
+ type: 'number',
1729
+ default: 4 * 1024 * 1024 * 1024, // 4096 MB
1730
+ description: '%editor.configuration.languageFeatureEnabledMaxSize%',
1731
+ },
1732
+ // 会同步到插件进程的最大文件尺寸, 必须大于等于 languageFeatureEnabledMaxSize
1733
+ 'editor.docExtHostSyncMaxSize': {
1734
+ type: 'number',
1735
+ default: 4 * 1024 * 1024 * 1024, // 4096 MB
1736
+ description: '%editor.configuration.docExtHostSyncMaxSize%',
1737
+ },
1738
+ 'editor.renderLineHighlight': {
1739
+ type: 'string',
1740
+ enum: ['none', 'gutter', 'line', 'all'],
1741
+ default: 'all',
1742
+ description: '%editor.configuration.renderLineHighlight%',
1743
+ },
1744
+ 'editor.fontFamily': {
1745
+ type: 'string',
1746
+ default: EDITOR_FONT_DEFAULTS.fontFamily,
1747
+ },
1748
+ 'editor.fontSize': {
1749
+ type: 'number',
1750
+ default: EDITOR_FONT_DEFAULTS.fontSize,
1751
+ minimum: 6,
1752
+ },
1753
+ 'editor.tabSize': {
1754
+ type: 'number',
1755
+ default: EDITOR_FONT_DEFAULTS.tabSize,
1756
+ minimum: 1,
1757
+ description: '%editor.configuration.tabSize%',
1758
+ },
1759
+ 'editor.formatOnPaste': {
1760
+ type: 'boolean',
1761
+ default: false,
1762
+ },
1763
+ 'editor.detectIndentation': {
1764
+ type: 'boolean',
1765
+ default: true,
1766
+ },
1767
+ 'editor.renderWhitespace': {
1768
+ type: 'boolean',
1769
+ default: EDITOR_FONT_DEFAULTS.renderWhitespace,
1770
+ },
1771
+ 'editor.cursorStyle': {
1772
+ type: 'string',
1773
+ enum: ['line', 'block', 'block-outline', 'line-thin', 'underline', 'underline-thin'],
1774
+ default: EDITOR_FONT_DEFAULTS.cursorStyle,
1775
+ },
1776
+ 'editor.insertSpaces': {
1777
+ type: 'boolean',
1778
+ default: EDITOR_FONT_DEFAULTS.insertSpace,
1779
+ },
1780
+ 'editor.wordWrap': {
1781
+ type: 'string',
1782
+ enum: ['off', 'on'],
1783
+ default: EDITOR_FONT_DEFAULTS.wordWrap,
1784
+ },
1785
+ 'editor.wordWrapColumn': {
1786
+ type: 'number',
1787
+ default: EDITOR_FONT_DEFAULTS.wordWrapColumn,
1788
+ description: '%editor.configuration.wordWrapColumn%',
1789
+ },
1790
+ 'editor.readonlyFiles': {
1791
+ type: 'array',
1792
+ default: [],
1793
+ items: {
1794
+ type: 'string',
1795
+ },
1796
+ },
1797
+ 'editor.formatOnSave': {
1798
+ type: 'boolean',
1799
+ default: false,
1800
+ description: '%preference.editor.formatOnSave%',
1801
+ },
1802
+ 'editor.formatOnSaveTimeout': {
1803
+ type: 'number',
1804
+ default: 750,
1805
+ markdownDescription: '%editor.configuration.formatOnSaveTimeout%',
1806
+ },
1807
+ 'editor.lineHeight': {
1808
+ type: 'number',
1809
+ default: 0,
1810
+ description: '%editor.lineHeight.description%',
1811
+ },
1812
+ 'editor.maxTokenizationLineLength': {
1813
+ type: 'integer',
1814
+ default: 20000,
1815
+ description: '%editor.configuration.maxTokenizationLineLength%',
1816
+ },
1817
+ 'editor.semanticHighlighting.enabled': {
1818
+ enum: [true, false, 'configuredByTheme'],
1819
+ enumDescriptions: [
1820
+ localize('semanticHighlighting.true', 'Semantic highlighting enabled for all color themes.'),
1821
+ localize('semanticHighlighting.false', 'Semantic highlighting disabled for all color themes.'),
1822
+ localize(
1823
+ 'semanticHighlighting.configuredByTheme',
1824
+ "Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.",
1825
+ ),
1826
+ ],
1827
+ default: true,
1828
+ description: localize(
1829
+ 'semanticHighlighting.enabled',
1830
+ 'Controls whether the semanticHighlighting is shown for the languages that support it.',
1831
+ ),
1832
+ },
1833
+ 'editor.bracketPairColorization.enabled': {
1834
+ type: 'boolean',
1835
+ default: true,
1836
+ description: '%editor.configuration.bracketPairColorization.enabled%',
1837
+ },
1838
+ 'editor.largeFile': {
1839
+ type: 'number',
1840
+ default: 4 * 1024 * 1024 * 1024,
1841
+ description: '%editor.configuration.largeFileSize%',
1842
+ },
1843
+ 'editor.quickSuggestionsDelay': {
1844
+ type: 'integer',
1845
+ default: 100,
1846
+ description: '%editor.configuration.quickSuggestionsDelay%',
1847
+ },
1848
+ 'editor.modelDisposeTime': {
1849
+ type: 'integer',
1850
+ default: 3000,
1851
+ },
1852
+ 'workbench.editorAssociations': {
1853
+ type: 'object',
1854
+ markdownDescription: '%preference.workbench.editorAssociations%',
1855
+ default: {},
1856
+ additionalProperties: {
1857
+ type: 'string',
1858
+ },
1859
+ },
1860
+ 'diffEditor.renderSideBySide': {
1861
+ type: 'boolean',
1862
+ default: true,
1863
+ description: '%diffEditor.configuration.renderSideBySide%',
1864
+ },
1865
+ 'diffEditor.ignoreTrimWhitespace': {
1866
+ type: 'boolean',
1867
+ default: false,
1868
+ description: '%diffEditor.configuration.ignoreTrimWhitespace%',
1869
+ },
1870
+ 'editor.experimental.stickyScroll.enabled': {
1871
+ type: 'boolean',
1872
+ default: false,
1873
+ description: '%editor.experimental.stickyScroll.enabled.description%',
1874
+ },
1875
+ 'editor.mouseBackForwardToNavigate': {
1876
+ type: 'boolean',
1877
+ default: true,
1878
+ description: '%editor.configuration.mouseBackForwardToNavigate%',
1879
+ },
1880
+ };
1881
+
1882
+ export const editorPreferenceSchema: PreferenceSchema = {
1883
+ type: 'object',
1884
+ properties: {
1885
+ ...monacoEditorSchema,
1886
+ ...customEditorSchema,
1887
+ },
1888
+ };
1889
+
1890
+ export const EditorPreferences = Symbol('EditorPreference');
1891
+ export type EditorPreferences = PreferenceProxy<{
1892
+ 'editor.readonlyFiles': string[];
1893
+ 'editor.previewMode': boolean;
1894
+ 'editor.autoSaveDelay': number;
1895
+ 'editor.autoSave': string;
1896
+ }>;