@opensumi/ide-core-browser 2.21.8-rc-1670567192.0 → 2.21.8

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 (317) hide show
  1. package/lib/components/actions/index.d.ts.map +1 -1
  2. package/lib/components/actions/index.js +22 -2
  3. package/lib/components/actions/index.js.map +1 -1
  4. package/lib/components/tree/tree.module.less +0 -1
  5. package/lib/contextkey/testing.d.ts +0 -1
  6. package/lib/contextkey/testing.d.ts.map +1 -1
  7. package/lib/contextkey/testing.js +1 -2
  8. package/lib/contextkey/testing.js.map +1 -1
  9. package/lib/menu/next/menu.contrib.interface.d.ts +2 -3
  10. package/lib/menu/next/menu.contrib.interface.d.ts.map +1 -1
  11. package/lib/menu/next/menu.contrib.interface.js.map +1 -1
  12. package/lib/preferences/preference-configurations.js +1 -1
  13. package/lib/preferences/preference-configurations.js.map +1 -1
  14. package/lib/react-providers/config-provider.d.ts +0 -4
  15. package/lib/react-providers/config-provider.d.ts.map +1 -1
  16. package/lib/react-providers/config-provider.js.map +1 -1
  17. package/lib/services/storage-service.d.ts.map +1 -1
  18. package/lib/services/storage-service.js +1 -7
  19. package/lib/services/storage-service.js.map +1 -1
  20. package/lib/utils/label.d.ts.map +1 -1
  21. package/lib/utils/label.js +9 -16
  22. package/lib/utils/label.js.map +1 -1
  23. package/package.json +6 -7
  24. package/src/application/application-state-service.ts +0 -54
  25. package/src/application/application.service.ts +0 -51
  26. package/src/application/index.ts +0 -2
  27. package/src/authentication/authentication.contribution.ts +0 -35
  28. package/src/authentication/authentication.service.ts +0 -517
  29. package/src/bootstrap/app.ts +0 -745
  30. package/src/bootstrap/app.view.tsx +0 -88
  31. package/src/bootstrap/connection.ts +0 -116
  32. package/src/bootstrap/index.ts +0 -3
  33. package/src/bootstrap/inner-providers.ts +0 -297
  34. package/src/bootstrap/lifecycle.service.ts +0 -19
  35. package/src/browser-module.ts +0 -24
  36. package/src/common/common.command.ts +0 -977
  37. package/src/common/common.contribution.ts +0 -343
  38. package/src/common/common.define.ts +0 -55
  39. package/src/common/common.module.ts +0 -33
  40. package/src/common/common.storage.ts +0 -22
  41. package/src/common/container-id.ts +0 -12
  42. package/src/common/index.ts +0 -4
  43. package/src/components/actions/index.tsx +0 -486
  44. package/src/components/actions/placements.ts +0 -47
  45. package/src/components/actions/styles.module.less +0 -144
  46. package/src/components/badge/index.tsx +0 -1
  47. package/src/components/index.ts +0 -26
  48. package/src/components/layout/box-panel.tsx +0 -88
  49. package/src/components/layout/default-layout.tsx +0 -61
  50. package/src/components/layout/index.ts +0 -4
  51. package/src/components/layout/layout.ts +0 -80
  52. package/src/components/layout/split-panel.service.ts +0 -56
  53. package/src/components/layout/split-panel.tsx +0 -296
  54. package/src/components/layout/styles.module.less +0 -21
  55. package/src/components/loading/index.ts +0 -1
  56. package/src/components/loading/loading.less +0 -14
  57. package/src/components/loading/loading.view.tsx +0 -7
  58. package/src/components/loading/media/loading-dark.svg +0 -52
  59. package/src/components/loading/media/loading-hc.svg +0 -52
  60. package/src/components/loading/media/loading.svg +0 -52
  61. package/src/components/popover/styles.module.less +0 -81
  62. package/src/components/portal/index.tsx +0 -13
  63. package/src/components/progressbar/index.tsx +0 -16
  64. package/src/components/progressbar/styles.module.less +0 -31
  65. package/src/components/recycle-tree/index.ts +0 -1
  66. package/src/components/recycle-tree/recycle-tree.view.tsx +0 -368
  67. package/src/components/resize/resize.module.less +0 -78
  68. package/src/components/resize/resize.tsx +0 -663
  69. package/src/components/scroll/index.tsx +0 -386
  70. package/src/components/scroll/scroll.module.less +0 -108
  71. package/src/components/scrollbar/index.ts +0 -1
  72. package/src/components/scrollbar/scrollbar.less +0 -36
  73. package/src/components/scrollbar/scrollbar.view.ts +0 -8
  74. package/src/components/select/index.tsx +0 -12
  75. package/src/components/select/styles.less +0 -6
  76. package/src/components/tree/index.ts +0 -3
  77. package/src/components/tree/tree-node.view.tsx +0 -546
  78. package/src/components/tree/tree.module.less +0 -297
  79. package/src/components/tree/tree.view.tsx +0 -486
  80. package/src/context-key.ts +0 -48
  81. package/src/contextkey/dialog.ts +0 -3
  82. package/src/contextkey/explorer.ts +0 -26
  83. package/src/contextkey/index.ts +0 -6
  84. package/src/contextkey/outline.ts +0 -4
  85. package/src/contextkey/resource.ts +0 -61
  86. package/src/contextkey/terminal.ts +0 -7
  87. package/src/contextkey/testing.ts +0 -9
  88. package/src/contextkey/workspace.ts +0 -7
  89. package/src/core-preferences.ts +0 -318
  90. package/src/dom/index.ts +0 -176
  91. package/src/encoding-registry.ts +0 -83
  92. package/src/extensions/extensions-point.service.ts +0 -78
  93. package/src/extensions/index.ts +0 -3
  94. package/src/extensions/schema/browserViews.ts +0 -96
  95. package/src/extensions/schema/menu.ts +0 -245
  96. package/src/extensions/schema/opensumiExtensionPackageSchema.ts +0 -12
  97. package/src/extensions/schema/toolbar.ts +0 -338
  98. package/src/extensions/schema/vscodeExtensionPackageSchema.ts +0 -330
  99. package/src/fs/index.ts +0 -12
  100. package/src/hash-calculate/hash-calculate.contribution.ts +0 -19
  101. package/src/index.ts +0 -42
  102. package/src/keybinding/index.ts +0 -1
  103. package/src/keybinding/keybinding.ts +0 -908
  104. package/src/keyboard/index.ts +0 -3
  105. package/src/keyboard/keyboard-layout-provider.ts +0 -412
  106. package/src/keyboard/keyboard-layout-service.ts +0 -449
  107. package/src/keyboard/keys.ts +0 -748
  108. package/src/keyboard/layouts/_.contribution.ts +0 -24
  109. package/src/keyboard/layouts/cz.win.ts +0 -168
  110. package/src/keyboard/layouts/de-swiss.win.ts +0 -168
  111. package/src/keyboard/layouts/de.darwin.ts +0 -131
  112. package/src/keyboard/layouts/de.linux.ts +0 -186
  113. package/src/keyboard/layouts/de.win.ts +0 -168
  114. package/src/keyboard/layouts/dk.win.ts +0 -168
  115. package/src/keyboard/layouts/dvorak.darwin.ts +0 -131
  116. package/src/keyboard/layouts/en-belgian.win.ts +0 -168
  117. package/src/keyboard/layouts/en-ext.darwin.ts +0 -131
  118. package/src/keyboard/layouts/en-in.win.ts +0 -168
  119. package/src/keyboard/layouts/en-intl.darwin.ts +0 -131
  120. package/src/keyboard/layouts/en-intl.win.ts +0 -168
  121. package/src/keyboard/layouts/en-uk.darwin.ts +0 -131
  122. package/src/keyboard/layouts/en-uk.win.ts +0 -168
  123. package/src/keyboard/layouts/en.darwin.ts +0 -139
  124. package/src/keyboard/layouts/en.linux.ts +0 -186
  125. package/src/keyboard/layouts/en.win.ts +0 -173
  126. package/src/keyboard/layouts/es-latin.win.ts +0 -168
  127. package/src/keyboard/layouts/es.darwin.ts +0 -131
  128. package/src/keyboard/layouts/es.linux.ts +0 -186
  129. package/src/keyboard/layouts/es.win.ts +0 -168
  130. package/src/keyboard/layouts/fr.darwin.ts +0 -131
  131. package/src/keyboard/layouts/fr.linux.ts +0 -186
  132. package/src/keyboard/layouts/fr.win.ts +0 -168
  133. package/src/keyboard/layouts/hu.win.ts +0 -168
  134. package/src/keyboard/layouts/it.darwin.ts +0 -131
  135. package/src/keyboard/layouts/it.win.ts +0 -168
  136. package/src/keyboard/layouts/jp-roman.darwin.ts +0 -131
  137. package/src/keyboard/layouts/jp.darwin.ts +0 -131
  138. package/src/keyboard/layouts/ko.darwin.ts +0 -131
  139. package/src/keyboard/layouts/layout.contribution.darwin.ts +0 -23
  140. package/src/keyboard/layouts/layout.contribution.linux.ts +0 -12
  141. package/src/keyboard/layouts/layout.contribution.ts +0 -9
  142. package/src/keyboard/layouts/layout.contribution.win.ts +0 -29
  143. package/src/keyboard/layouts/no.win.ts +0 -168
  144. package/src/keyboard/layouts/pl.darwin.ts +0 -131
  145. package/src/keyboard/layouts/pl.win.ts +0 -168
  146. package/src/keyboard/layouts/pt-br.win.ts +0 -169
  147. package/src/keyboard/layouts/pt.darwin.ts +0 -131
  148. package/src/keyboard/layouts/pt.win.ts +0 -168
  149. package/src/keyboard/layouts/ru.darwin.ts +0 -131
  150. package/src/keyboard/layouts/ru.linux.ts +0 -186
  151. package/src/keyboard/layouts/ru.win.ts +0 -168
  152. package/src/keyboard/layouts/sv.darwin.ts +0 -131
  153. package/src/keyboard/layouts/sv.win.ts +0 -168
  154. package/src/keyboard/layouts/thai.win.ts +0 -168
  155. package/src/keyboard/layouts/tr.win.ts +0 -168
  156. package/src/keyboard/layouts/zh-hans.darwin.ts +0 -131
  157. package/src/layout/accordion/tab-bar-toolbar.tsx +0 -59
  158. package/src/layout/accordion/view-context-key.registry.ts +0 -34
  159. package/src/layout/constants.ts +0 -7
  160. package/src/layout/index.ts +0 -5
  161. package/src/layout/layout-hooks.ts +0 -68
  162. package/src/layout/layout-state.ts +0 -107
  163. package/src/layout/layout.interface.ts +0 -101
  164. package/src/layout/layout.ts +0 -80
  165. package/src/layout/view-id.ts +0 -18
  166. package/src/logger/browser-logger.ts +0 -51
  167. package/src/logger/index.ts +0 -1
  168. package/src/markdown/index.tsx +0 -62
  169. package/src/menu/next/base.ts +0 -513
  170. package/src/menu/next/ctxmenu-service.ts +0 -188
  171. package/src/menu/next/index.ts +0 -10
  172. package/src/menu/next/menu-id.ts +0 -86
  173. package/src/menu/next/menu-service.ts +0 -252
  174. package/src/menu/next/menu-util.ts +0 -77
  175. package/src/menu/next/menu.contrib.interface.ts +0 -79
  176. package/src/menu/next/menu.interface.ts +0 -253
  177. package/src/menu/next/menubar-service.ts +0 -211
  178. package/src/menu/next/renderer/ctxmenu/base.ts +0 -18
  179. package/src/menu/next/renderer/ctxmenu/browser.ts +0 -45
  180. package/src/menu/next/renderer/ctxmenu/electron.ts +0 -207
  181. package/src/menu/next/toolbar-action.service.ts +0 -132
  182. package/src/monaco/index.ts +0 -128
  183. package/src/opener/command-opener.ts +0 -42
  184. package/src/opener/default-opener.ts +0 -31
  185. package/src/opener/http-opener.ts +0 -25
  186. package/src/opener/index.ts +0 -19
  187. package/src/opener/opener.contribution.ts +0 -57
  188. package/src/opener/opener.service.ts +0 -66
  189. package/src/preferences/early-preferences.ts +0 -117
  190. package/src/preferences/index.ts +0 -9
  191. package/src/preferences/preference-configurations.ts +0 -77
  192. package/src/preferences/preference-contribution.ts +0 -401
  193. package/src/preferences/preference-provider.ts +0 -414
  194. package/src/preferences/preference-proxy.ts +0 -292
  195. package/src/preferences/preference-scope.ts +0 -3
  196. package/src/preferences/preference-service.ts +0 -571
  197. package/src/preferences/settings.ts +0 -53
  198. package/src/preferences/types.ts +0 -111
  199. package/src/progress/index.ts +0 -58
  200. package/src/progress/progress-bar.tsx +0 -22
  201. package/src/progress/progress-indicator.ts +0 -90
  202. package/src/progress/progress.module.less +0 -46
  203. package/src/progress/progress.service.tsx +0 -429
  204. package/src/quick-open/index.ts +0 -655
  205. package/src/quick-open/recent-files.ts +0 -68
  206. package/src/raw-context-key.ts +0 -116
  207. package/src/react-hooks/event.tsx +0 -80
  208. package/src/react-hooks/hot-key.tsx +0 -58
  209. package/src/react-hooks/index.ts +0 -3
  210. package/src/react-hooks/injectable-hooks.tsx +0 -35
  211. package/src/react-hooks/portal-hooks.tsx +0 -38
  212. package/src/react-providers/config-provider.tsx +0 -263
  213. package/src/react-providers/index.tsx +0 -2
  214. package/src/react-providers/slot.module.less +0 -19
  215. package/src/react-providers/slot.tsx +0 -242
  216. package/src/services/clipboard.service.ts +0 -97
  217. package/src/services/credentials-service.ts +0 -91
  218. package/src/services/crypto-service.ts +0 -23
  219. package/src/services/external-uri.service.ts +0 -68
  220. package/src/services/index.ts +0 -7
  221. package/src/services/label-service.ts +0 -386
  222. package/src/services/status-bar-service.ts +0 -108
  223. package/src/services/storage-service.ts +0 -197
  224. package/src/style/codicons/README.md +0 -22
  225. package/src/style/codicons/codicon-animations.css +0 -15
  226. package/src/style/codicons/generator.js +0 -15
  227. package/src/style/entry.less +0 -25
  228. package/src/style/icon/fileicons/file-default.svg +0 -1
  229. package/src/style/icon/fileicons/folder-default.svg +0 -1
  230. package/src/style/icon/fileicons.less +0 -20
  231. package/src/style/icon/icon.ts +0 -543
  232. package/src/style/icon/ide-iconfont.ts +0 -13
  233. package/src/style/icon/index.less +0 -54
  234. package/src/style/icon/seti.woff +0 -0
  235. package/src/style/icon/symbol-icons/boolean-dark.svg +0 -3
  236. package/src/style/icon/symbol-icons/boolean-light.svg +0 -3
  237. package/src/style/icon/symbol-icons/class-dark.svg +0 -3
  238. package/src/style/icon/symbol-icons/class-light.svg +0 -3
  239. package/src/style/icon/symbol-icons/constant-dark.svg +0 -4
  240. package/src/style/icon/symbol-icons/constant-light.svg +0 -4
  241. package/src/style/icon/symbol-icons/enumerator-dark.svg +0 -3
  242. package/src/style/icon/symbol-icons/enumerator-item-dark.svg +0 -3
  243. package/src/style/icon/symbol-icons/enumerator-item-light.svg +0 -3
  244. package/src/style/icon/symbol-icons/enumerator-light.svg +0 -3
  245. package/src/style/icon/symbol-icons/event-dark.svg +0 -3
  246. package/src/style/icon/symbol-icons/event-light.svg +0 -3
  247. package/src/style/icon/symbol-icons/field-dark.svg +0 -3
  248. package/src/style/icon/symbol-icons/field-light.svg +0 -3
  249. package/src/style/icon/symbol-icons/file-dark.svg +0 -3
  250. package/src/style/icon/symbol-icons/file-light.svg +0 -3
  251. package/src/style/icon/symbol-icons/indexer-dark.svg +0 -3
  252. package/src/style/icon/symbol-icons/indexer-light.svg +0 -3
  253. package/src/style/icon/symbol-icons/interface-dark.svg +0 -3
  254. package/src/style/icon/symbol-icons/interface-light.svg +0 -3
  255. package/src/style/icon/symbol-icons/keyword-dark.svg +0 -3
  256. package/src/style/icon/symbol-icons/keyword-light.svg +0 -3
  257. package/src/style/icon/symbol-icons/method-dark.svg +0 -3
  258. package/src/style/icon/symbol-icons/method-light.svg +0 -3
  259. package/src/style/icon/symbol-icons/namespace-dark.svg +0 -3
  260. package/src/style/icon/symbol-icons/namespace-light.svg +0 -3
  261. package/src/style/icon/symbol-icons/numeric-dark.svg +0 -3
  262. package/src/style/icon/symbol-icons/numeric-light.svg +0 -3
  263. package/src/style/icon/symbol-icons/operator-dark.svg +0 -3
  264. package/src/style/icon/symbol-icons/operator-light.svg +0 -3
  265. package/src/style/icon/symbol-icons/property-dark.svg +0 -3
  266. package/src/style/icon/symbol-icons/property-light.svg +0 -3
  267. package/src/style/icon/symbol-icons/snippet-dark.svg +0 -3
  268. package/src/style/icon/symbol-icons/snippet-light.svg +0 -3
  269. package/src/style/icon/symbol-icons/string-dark.svg +0 -3
  270. package/src/style/icon/symbol-icons/string-light.svg +0 -3
  271. package/src/style/icon/symbol-icons/structure-dark.svg +0 -3
  272. package/src/style/icon/symbol-icons/structure-light.svg +0 -3
  273. package/src/style/icon/symbol-icons/symbol-icons.css +0 -284
  274. package/src/style/icon/symbol-icons/template-dark.svg +0 -3
  275. package/src/style/icon/symbol-icons/template-light.svg +0 -3
  276. package/src/style/icon/symbol-icons/variable-dark.svg +0 -3
  277. package/src/style/icon/symbol-icons/variable-light.svg +0 -3
  278. package/src/style/icon.less +0 -8
  279. package/src/style/index.less +0 -14
  280. package/src/style/monaco-override.less +0 -116
  281. package/src/style/normalize.less +0 -92
  282. package/src/style/octicons/octicons-cdn.css +0 -720
  283. package/src/style/octicons/octicons.css +0 -714
  284. package/src/style/octicons/octicons.html +0 -1882
  285. package/src/style/octicons/octicons.svg +0 -582
  286. package/src/style/octicons/octicons.ttf +0 -0
  287. package/src/style/override.less +0 -97
  288. package/src/style/toolbar.less +0 -199
  289. package/src/style/utilities.less +0 -8
  290. package/src/style/variable.less +0 -8
  291. package/src/terminal/index.ts +0 -7
  292. package/src/toolbar/components/auto-complete.tsx +0 -0
  293. package/src/toolbar/components/button.tsx +0 -440
  294. package/src/toolbar/components/index.ts +0 -2
  295. package/src/toolbar/components/select.tsx +0 -189
  296. package/src/toolbar/index.ts +0 -3
  297. package/src/toolbar/toolbar.popover.registry.ts +0 -32
  298. package/src/toolbar/toolbar.registry.ts +0 -352
  299. package/src/toolbar/toolbar.tsx +0 -710
  300. package/src/toolbar/types.ts +0 -383
  301. package/src/tree/index.ts +0 -3
  302. package/src/tree/tree-expansion.ts +0 -25
  303. package/src/tree/tree-selection.ts +0 -89
  304. package/src/tree/tree.ts +0 -294
  305. package/src/utils/create-overlay.tsx +0 -53
  306. package/src/utils/electron.ts +0 -92
  307. package/src/utils/env.ts +0 -26
  308. package/src/utils/icon.ts +0 -13
  309. package/src/utils/index.ts +0 -7
  310. package/src/utils/json.ts +0 -251
  311. package/src/utils/label.tsx +0 -36
  312. package/src/utils/parse.ts +0 -72
  313. package/src/utils/react-hooks.ts +0 -118
  314. package/src/variable/index.ts +0 -1
  315. package/src/variable/variable.ts +0 -84
  316. package/src/window/index.ts +0 -34
  317. package/src/window/window.service.ts +0 -100
@@ -1,655 +0,0 @@
1
- import { observable } from 'mobx';
2
- import React from 'react';
3
-
4
- import type { VALIDATE_TYPE } from '@opensumi/ide-components';
5
- import type { URI, MaybePromise, IDisposable, Event } from '@opensumi/ide-core-common';
6
-
7
- import type { Keybinding } from '../keybinding';
8
-
9
- export enum Mode {
10
- /**
11
- * select 状态时触发
12
- */
13
- PREVIEW = 0,
14
- /**
15
- * 鼠标选择或者回车选择会触发
16
- */
17
- OPEN = 1,
18
- /**
19
- * 键盘 → 键或者鼠标中键会触发
20
- */
21
- OPEN_IN_BACKGROUND = 2,
22
- }
23
-
24
- /**
25
- * 高亮显示的范围
26
- */
27
- export interface Highlight {
28
- start: number;
29
- end: number;
30
- }
31
-
32
- /**
33
- * QuickOpen 执行的模式
34
- * @deprecated
35
- * 该类型使用 monaco-editor-core/esm 中导入的版本
36
- */
37
- export { Mode as QuickOpenMode };
38
-
39
- export interface IKeyMods {
40
- readonly ctrlCmd: boolean;
41
- readonly alt: boolean;
42
- }
43
-
44
- export interface QuickTitleButton {
45
- iconPath: URI | { light: string | URI; dark: string | URI } | ThemeIcon;
46
- icon?: string; // a background image coming from a url
47
- iconClass?: string; // a class such as one coming from font awesome
48
- tooltip?: string;
49
- // undefined 在 QuickTitleBar 中视为为右侧
50
- side?: QuickTitleButtonSide;
51
- }
52
-
53
- /**
54
- * Button for an action in a {@link QuickPick} or {@link InputBox}.
55
- */
56
- export interface QuickInputButton {
57
- /**
58
- * Icon for the button.
59
- */
60
- readonly iconPath: URI | { light: URI; dark: URI } | ThemeIcon;
61
-
62
- /**
63
- * An optional tooltip.
64
- */
65
- readonly tooltip?: string | undefined;
66
-
67
- /**
68
- * a class such as one coming from font awesome
69
- */
70
- readonly iconClass?: string;
71
-
72
- /**
73
- * An optional id for the button.
74
- */
75
- handle?: number;
76
- }
77
-
78
- export interface IQuickPickItemButtonEvent {
79
- button: QuickInputButton;
80
- item: {
81
- handle: number;
82
- };
83
- }
84
-
85
- /**
86
- * QuickOpen Item 参数
87
- */
88
- export interface QuickOpenItemOptions {
89
- /**
90
- * 屏幕阅读器字段,对应 vscode
91
- */
92
- tooltip?: string;
93
- /**
94
- * 标签文案
95
- */
96
- label?: string;
97
- /**
98
- * 高亮标签的范围
99
- */
100
- labelHighlights?: Highlight[];
101
- /**
102
- * 显示描述
103
- */
104
- description?: string;
105
- /**
106
- * 高亮描述的范围
107
- */
108
- descriptionHighlights?: Highlight[];
109
- /**
110
- * 显示详情
111
- */
112
- detail?: string;
113
- /**
114
- * 描述高亮范围
115
- */
116
- detailHighlights?: Highlight[];
117
- /**
118
- * 是否隐藏
119
- */
120
- hidden?: boolean;
121
- /**
122
- * 打开资源,对应 vscode getResource
123
- */
124
- uri?: URI;
125
- /**
126
- * 图标
127
- */
128
- iconClass?: string;
129
- /**
130
- * 对应绑定的快捷键
131
- */
132
- keybinding?: Keybinding;
133
- /**
134
- * 分组文案
135
- */
136
- groupLabel?: string;
137
- /**
138
- * 是否显示 border
139
- */
140
- showBorder?: boolean;
141
- /**
142
- * 是否选中
143
- */
144
- checked?: boolean;
145
- /**
146
- * 点击 QuickOpen 要执行的方法
147
- * @param mode
148
- * @returns 执行后是否要隐藏面板, mode 为 PREVIEW 时不判断该值
149
- */
150
- run?(mode: Mode): boolean;
151
-
152
- value?: any;
153
-
154
- buttons?: QuickInputButton[];
155
- }
156
-
157
- export class QuickOpenItem {
158
- private labelHighlights?: Highlight[];
159
-
160
- private descriptionHighlights?: Highlight[];
161
-
162
- private detailHighlights?: Highlight[];
163
-
164
- @observable
165
- public checked = false;
166
-
167
- constructor(protected options: QuickOpenItemOptions) {
168
- this.checked = options.checked || false;
169
- }
170
-
171
- getTooltip(): string | undefined {
172
- return this.options.tooltip || this.getLabel();
173
- }
174
- getLabel(): string | undefined {
175
- return this.options.label;
176
- }
177
- getLabelHighlights(): Highlight[] {
178
- return this.options.labelHighlights || [];
179
- }
180
- getDescription(): string | undefined {
181
- return this.options.description;
182
- }
183
- getDescriptionHighlights(): Highlight[] | undefined {
184
- return this.options.descriptionHighlights;
185
- }
186
- getDetail(): string | undefined {
187
- return this.options.detail;
188
- }
189
- getDetailHighlights(): Highlight[] | undefined {
190
- return this.options.detailHighlights;
191
- }
192
- isHidden(): boolean {
193
- return this.options.hidden || false;
194
- }
195
- getUri(): URI | undefined {
196
- return this.options.uri;
197
- }
198
- getIconClass(): string | undefined {
199
- return this.options.iconClass;
200
- }
201
- getKeybinding(): Keybinding | undefined {
202
- return this.options.keybinding;
203
- }
204
- setHighlights(labelHighlights?: Highlight[], descriptionHighlights?: Highlight[], detailHighlights?: Highlight[]) {
205
- this.labelHighlights = labelHighlights;
206
- this.descriptionHighlights = descriptionHighlights;
207
- this.detailHighlights = detailHighlights;
208
- }
209
- getHighlights(): [Highlight[] | undefined, Highlight[] | undefined, Highlight[] | undefined] {
210
- return [this.labelHighlights, this.descriptionHighlights, this.detailHighlights];
211
- }
212
- run(mode: Mode): boolean {
213
- if (!this.options.run) {
214
- return false;
215
- }
216
- return this.options.run(mode);
217
- }
218
- getGroupLabel(): string | undefined {
219
- return this.options.groupLabel;
220
- }
221
- showBorder(): boolean {
222
- return this.options.showBorder || false;
223
- }
224
- getValue(): any {
225
- return this.options.value;
226
- }
227
- getButtons(): QuickInputButton[] {
228
- return this.options.buttons || [];
229
- }
230
- }
231
-
232
- export enum HideReason {
233
- ELEMENT_SELECTED = 0,
234
- FOCUS_LOST = 1,
235
- CANCELED = 2,
236
- }
237
-
238
- export interface QuickOpenModel {
239
- onType(lookFor: string, acceptor: (items: QuickOpenItem[], actionProvider?: QuickOpenActionProvider) => void): void;
240
- }
241
-
242
- export const QuickOpenService = Symbol('QuickOpenService');
243
-
244
- export interface QuickOpenService {
245
- open(model: QuickOpenModel, options?: QuickOpenOptions): void;
246
- hide(reason?: HideReason): void;
247
- showDecoration(type: VALIDATE_TYPE): void;
248
- hideDecoration(): void;
249
- refresh(): void;
250
- }
251
-
252
- export type QuickOpenOptions = Partial<QuickOpenOptions.Resolved>;
253
- export namespace QuickOpenOptions {
254
- export interface FuzzyMatchOptions {
255
- /**
256
- * 是否开启分离式模糊搜索
257
- * 比如 `13` 会匹配到 `123`
258
- * 默认: `false`
259
- */
260
- enableSeparateSubstringMatching?: boolean;
261
- }
262
- export interface Resolved extends QuickOpenTabOptions {
263
- /**
264
- * 启用状态
265
- */
266
- readonly enabled: boolean;
267
-
268
- /**
269
- * 显示前缀
270
- */
271
- readonly prefix: string;
272
- /**
273
- * 占位符
274
- */
275
- readonly placeholder: string;
276
- readonly valueSelection: [number, number];
277
- /**
278
- * 关闭回调
279
- * @param canceled 是否是取消关闭
280
- */
281
- onClose(canceled: boolean): void;
282
-
283
- /**
284
- * select 状态时触发回调
285
- * @param item
286
- * @param index
287
- */
288
- onSelect(item: QuickOpenItem, index: number): void;
289
-
290
- /**
291
- * select 状态时触发回调
292
- * @param item
293
- * @param index
294
- */
295
- onConfirm(items: QuickOpenItem[]): void;
296
- /**
297
- * 在输入框修改文字时触发
298
- * @param value
299
- */
300
- onChangeValue: (value: string) => void;
301
- /**
302
- * 在 quick pick 时监听是否有 modifer 按下
303
- */
304
- onKeyMods?: (mods: IKeyMods) => void;
305
- /**
306
- * 是否模糊匹配标签
307
- * 使用 vscode filter matchesFuzzy 方法
308
- */
309
- readonly fuzzyMatchLabel: boolean | FuzzyMatchOptions;
310
- /**
311
- * 是否模糊匹配详情
312
- * 使用 vscode filter matchesFuzzy 方法
313
- */
314
- readonly fuzzyMatchDetail: boolean | FuzzyMatchOptions;
315
- /**
316
- * 是否模糊匹配描述
317
- * 使用 vscode filter matchesFuzzy 方法
318
- */
319
- readonly fuzzyMatchDescription: boolean | FuzzyMatchOptions;
320
- /**
321
- * 是否模糊排序
322
- * 使用 vscode filter compareEntries 方法
323
- */
324
- readonly fuzzySort: boolean;
325
- /**
326
- * 前缀的截取长度
327
- */
328
- readonly skipPrefix: number;
329
-
330
- /**
331
- * 点击空白处是否收起 QuickOpen
332
- */
333
- readonly ignoreFocusOut: boolean;
334
- /**
335
- * 如果为 true,则输入内容会隐藏
336
- */
337
- readonly password: boolean;
338
- /**
339
- * 是否为多选
340
- */
341
- canPickMany?: boolean;
342
- /**
343
- * 如果没有高亮也显示 item
344
- */
345
- readonly showItemsWithoutHighlight: boolean;
346
-
347
- selectIndex(lookFor: string): number;
348
-
349
- /**
350
- * 结果为空显示的 item,应该用此方法实现空占位,不用 accept,accept 结果可能会被 fuzzy 处理导致高亮
351
- */
352
- getPlaceholderItem?: (lookFor: string, originLookFor: string) => QuickOpenItem;
353
-
354
- /**
355
- * 内容更新后保持滚动区域不变
356
- */
357
- keepScrollPosition?: boolean;
358
- }
359
- export const defaultOptions: Resolved = Object.freeze({
360
- enabled: true,
361
- prefix: '',
362
- placeholder: '',
363
- onClose: () => {
364
- /* no-op*/
365
- },
366
- onSelect: () => {
367
- /* no-op*/
368
- },
369
- onChangeValue: () => {
370
- /* no-op*/
371
- },
372
- onConfirm: () => {
373
- /* no-op*/
374
- },
375
- valueSelection: [-1, -1] as [number, number],
376
- fuzzyMatchLabel: false,
377
- fuzzyMatchDetail: false,
378
- fuzzyMatchDescription: false,
379
- fuzzySort: false,
380
- skipPrefix: 0,
381
- ignoreFocusOut: false,
382
- password: false,
383
- showItemsWithoutHighlight: false,
384
- selectIndex: () => -1,
385
- title: '',
386
- });
387
- export function resolve(options: QuickOpenOptions = {}, source: Resolved = defaultOptions): Resolved {
388
- return Object.assign({}, source, options);
389
- }
390
- }
391
-
392
- export interface QuickPickItem<T> {
393
- label: string;
394
- groupLabel?: string;
395
- showBorder?: boolean;
396
- value: T;
397
- description?: string;
398
- detail?: string;
399
- iconClass?: string;
400
- buttons?: QuickInputButton[];
401
- }
402
-
403
- export interface QuickPickOptions extends QuickOpenOptions {
404
- placeholder?: string;
405
- /**
406
- * default: true
407
- */
408
- fuzzyMatchLabel?: boolean;
409
- /**
410
- * default: true
411
- */
412
- fuzzyMatchDescription?: boolean;
413
-
414
- /**
415
- * Current step count
416
- */
417
- step?: number | undefined;
418
-
419
- /**
420
- * The title of the input
421
- */
422
- title?: string | undefined;
423
-
424
- /**
425
- * Total number of steps
426
- */
427
- totalSteps?: number | undefined;
428
-
429
- /**
430
- * Buttons that are displayed on the title panel
431
- */
432
- buttons?: QuickTitleButton[];
433
-
434
- /**
435
- * Set to `true` to keep the input box open when focus moves to another part of the editor or to another window.
436
- */
437
- ignoreFocusOut?: boolean;
438
-
439
- /**
440
- * The prefill value.
441
- */
442
- value?: string;
443
-
444
- /*
445
- * An optional flag to maintain the scroll position of the quick pick when the quick pick items are updated. Defaults to false.
446
- */
447
- keepScrollPosition?: boolean;
448
- }
449
-
450
- export const QuickPickService = Symbol('QuickPickService');
451
-
452
- export interface QuickPickService {
453
- show(elements: string[], options?: QuickPickOptions): Promise<string | undefined>;
454
- show<T>(elements: QuickPickItem<T>[], options?: QuickPickOptions): Promise<T | undefined>;
455
- show<T>(elements: (string | QuickPickItem<T>)[], options?: QuickPickOptions): Promise<T | string | undefined>;
456
- hide(reason?: HideReason): void;
457
- readonly onDidAccept: Event<void>;
458
- readonly onDidChangeActiveItems: Event<QuickOpenItem[]>;
459
- }
460
-
461
- export const PrefixQuickOpenService = Symbol('PrefixQuickOpenService');
462
- export interface PrefixQuickOpenService {
463
- open(prefix: string): void;
464
- }
465
-
466
- export const IQuickInputService = Symbol('IQuickInputService');
467
- export interface IQuickInputService {
468
- open(options?: QuickInputOptions): Promise<string | undefined>;
469
- hide(): void;
470
- }
471
-
472
- export interface QuickInputOptions {
473
- /**
474
- * Show the progress indicator if true
475
- */
476
- busy?: boolean;
477
-
478
- /**
479
- * Allow user input
480
- */
481
- enabled?: boolean;
482
-
483
- /**
484
- * Current step count
485
- */
486
- step?: number | undefined;
487
-
488
- /**
489
- * The title of the input
490
- */
491
- title?: string | undefined;
492
-
493
- /**
494
- * Total number of steps
495
- */
496
- totalSteps?: number | undefined;
497
-
498
- /**
499
- * Buttons that are displayed on the title panel
500
- */
501
- buttons?: QuickTitleButton[];
502
-
503
- /**
504
- * Text for when there is a problem with the current input value
505
- */
506
- validationMessage?: string | undefined;
507
- validationType?: VALIDATE_TYPE;
508
- /**
509
- * The prefill value.
510
- */
511
- value?: string;
512
-
513
- /**
514
- * The text to display under the input box.
515
- */
516
- prompt?: string;
517
-
518
- /**
519
- * The place holder in the input box to guide the user what to type.
520
- */
521
- placeHolder?: string;
522
-
523
- /**
524
- * Set to `true` to show a password prompt that will not show the typed value.
525
- */
526
- password?: boolean;
527
-
528
- /**
529
- * Set to `true` to keep the input box open when focus moves to another part of the editor or to another window.
530
- */
531
- ignoreFocusOut?: boolean;
532
-
533
- /**
534
- * Selection of the prefilled [`value`](#InputBoxOptions.value). Defined as tuple of two number where the
535
- * first is the inclusive start index and the second the exclusive end index. When `undefined` the whole
536
- * word will be selected, when empty (start equals end) only the cursor will be set,
537
- * otherwise the defined range will be selected.
538
- */
539
- valueSelection?: [number, number];
540
-
541
- /**
542
- * An optional function that will be called to validate input and to give a hint
543
- * to the user.
544
- *
545
- * @param value The current value of the input box.
546
- * @return Return `undefined`, or the empty string when 'value' is valid.
547
- */
548
- validateInput?(value: string): MaybePromise<string | { message: string; type: VALIDATE_TYPE } | null | undefined>;
549
- }
550
-
551
- export interface QuickOpenActionProvider {
552
- hasActions(item: QuickOpenItem): boolean;
553
- getActions(item: QuickOpenItem): QuickOpenAction[];
554
- getValidateInput?(lookFor: string): string;
555
- }
556
-
557
- export interface QuickOpenActionOptions {
558
- id: string;
559
- label?: string;
560
- tooltip?: string;
561
- class?: string | undefined;
562
- enabled?: boolean;
563
- checked?: boolean;
564
- radio?: boolean;
565
- }
566
-
567
- export interface QuickOpenAction extends QuickOpenActionOptions, IDisposable {
568
- run(item?: QuickOpenItem): Promise<void>;
569
- }
570
-
571
- export enum QuickTitleButtonSide {
572
- LEFT = 0,
573
- RIGHT = 1,
574
- }
575
-
576
- /**
577
- * @deprecated
578
- */
579
- export class ThemeIcon {
580
- static readonly File: ThemeIcon = new ThemeIcon('file');
581
-
582
- static readonly Folder: ThemeIcon = new ThemeIcon('folder');
583
-
584
- private constructor(public id: string) {}
585
- }
586
-
587
- export const QuickOpenContribution = Symbol('QuickOpenContribution');
588
-
589
- export interface QuickOpenContribution {
590
- registerQuickOpenHandlers(handlers: IQuickOpenHandlerRegistry): void;
591
- }
592
-
593
- export interface QuickOpenHandler {
594
- /** 是否是默认的面板处理函数 */
595
- default?: boolean;
596
- /**
597
- * 命令面板中的处理函数
598
- */
599
- prefix: string;
600
- /**
601
- * 在帮助面板中显示的描述
602
- */
603
- description: string;
604
- /**
605
- * 初始化函数,一般做展示数据的收集
606
- */
607
- init?(): MaybePromise<void>;
608
- /**
609
- * 获取 QuickOpenModel,用于提供 Items
610
- */
611
- getModel(): QuickOpenModel;
612
- /**
613
- * 获取面板的参数,用于额外设置 QuickOpen
614
- */
615
- getOptions(): Omit<QuickOpenOptions, keyof QuickOpenTabOptions>;
616
- /** quick-open 内部切换不会执行,最终关闭才会执行 */
617
- onClose?: (canceled: boolean) => void;
618
- /**
619
- * 切换时执行
620
- */
621
- onToggle?: () => void;
622
- }
623
-
624
- export interface QuickOpenTabOptions {
625
- /**
626
- * render tab
627
- */
628
- renderTab?(): React.ReactNode;
629
- /**
630
- * 切换 tab
631
- */
632
- toggleTab?(): void;
633
- }
634
-
635
- interface QuickOpenTabBase {
636
- title: string;
637
- order: number;
638
- commandId: string;
639
- // 不在 Tab 栏展示(但是功能都可以使用,用户按下 tab 时也不会切换到该功能)
640
- hideTab?: boolean;
641
- }
642
-
643
- export interface QuickOpenTab extends QuickOpenTabBase {
644
- prefix: string;
645
- }
646
-
647
- export interface QuickOpenTabConfig extends QuickOpenTabBase {
648
- sub?: Record<string, QuickOpenTabBase>;
649
- }
650
-
651
- export interface IQuickOpenHandlerRegistry {
652
- registerHandler(handler: QuickOpenHandler, tab?: QuickOpenTabConfig): IDisposable;
653
- }
654
-
655
- export * from './recent-files';
@@ -1,68 +0,0 @@
1
- import { Injectable, Autowired } from '@opensumi/di';
2
- import { OnEvent, FileChangeType, IPosition } from '@opensumi/ide-core-common';
3
- import { WithEventBus } from '@opensumi/ide-core-common/lib/event-bus';
4
-
5
- import { RecentStorage } from '../common/common.storage';
6
- import { FilesChangeEvent } from '../fs';
7
-
8
- const OPENED_FILE = 'OPENED_FILE';
9
-
10
- const FILES_POSITION = 'OPENED_FILES_POSITION';
11
-
12
- @Injectable()
13
- export class RecentFilesManager extends WithEventBus {
14
- @Autowired(RecentStorage)
15
- private recentStorage: RecentStorage;
16
-
17
- async updateMostRecentlyOpenedFile(url: string, position: IPosition) {
18
- const recentStorage = await this.recentStorage.getScopeStorage();
19
- const openedFilesPosition = recentStorage.get<{ [prop: string]: string }>(FILES_POSITION) || {};
20
- openedFilesPosition[url] = `#${position.lineNumber},${position.column}`;
21
- recentStorage.set(FILES_POSITION, openedFilesPosition);
22
- }
23
-
24
- async setMostRecentlyOpenedFile(uriString: string, isDelete?: boolean) {
25
- const recentStorage = await this.recentStorage.getScopeStorage();
26
-
27
- let fileList = await this.getMostRecentlyOpenedFiles();
28
- const existIdx = fileList.findIndex((file) => file === uriString);
29
- if (existIdx > -1) {
30
- fileList.splice(existIdx, 1);
31
- }
32
- if (!isDelete) {
33
- fileList.unshift(uriString);
34
- }
35
-
36
- // 仅存储50个最近文件
37
- if (fileList.length > 50) {
38
- fileList = fileList.slice(0, 50);
39
- }
40
- recentStorage.set(OPENED_FILE, fileList);
41
- }
42
-
43
- async getMostRecentlyOpenedFiles(includingRange?: boolean) {
44
- const recentStorage = await this.recentStorage.getScopeStorage();
45
- const fileList: string[] = recentStorage.get<string[]>(OPENED_FILE) || [];
46
- const openedFilesPosition = recentStorage.get<{ [prop: string]: string }>(FILES_POSITION) || {};
47
- if (includingRange) {
48
- return fileList.map((url) => {
49
- if (openedFilesPosition[url]) {
50
- return url + openedFilesPosition[url];
51
- }
52
- return url;
53
- });
54
- }
55
- return fileList;
56
- }
57
-
58
- @OnEvent(FilesChangeEvent)
59
- protected handleFilesDelete(event: FilesChangeEvent) {
60
- event.payload.forEach((change) => {
61
- if (change.type === FileChangeType.DELETED) {
62
- if (change.uri) {
63
- this.setMostRecentlyOpenedFile(change.uri, true);
64
- }
65
- }
66
- });
67
- }
68
- }