@opensumi/ide-editor 2.12.1-next-079c1930

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 (298) hide show
  1. package/README.md +565 -0
  2. package/lib/browser/breadcrumb/default.d.ts +28 -0
  3. package/lib/browser/breadcrumb/default.d.ts.map +1 -0
  4. package/lib/browser/breadcrumb/default.js +283 -0
  5. package/lib/browser/breadcrumb/default.js.map +1 -0
  6. package/lib/browser/breadcrumb/document-symbol.d.ts +36 -0
  7. package/lib/browser/breadcrumb/document-symbol.d.ts.map +1 -0
  8. package/lib/browser/breadcrumb/document-symbol.js +161 -0
  9. package/lib/browser/breadcrumb/document-symbol.js.map +1 -0
  10. package/lib/browser/breadcrumb/index.d.ts +20 -0
  11. package/lib/browser/breadcrumb/index.d.ts.map +1 -0
  12. package/lib/browser/breadcrumb/index.js +90 -0
  13. package/lib/browser/breadcrumb/index.js.map +1 -0
  14. package/lib/browser/component/scroll/scroll.d.ts +66 -0
  15. package/lib/browser/component/scroll/scroll.d.ts.map +1 -0
  16. package/lib/browser/component/scroll/scroll.js +263 -0
  17. package/lib/browser/component/scroll/scroll.js.map +1 -0
  18. package/lib/browser/component/scroll/scroll.module.less +83 -0
  19. package/lib/browser/component.d.ts +23 -0
  20. package/lib/browser/component.d.ts.map +1 -0
  21. package/lib/browser/component.js +165 -0
  22. package/lib/browser/component.js.map +1 -0
  23. package/lib/browser/decoration-applier.d.ts +25 -0
  24. package/lib/browser/decoration-applier.d.ts.map +1 -0
  25. package/lib/browser/decoration-applier.js +224 -0
  26. package/lib/browser/decoration-applier.js.map +1 -0
  27. package/lib/browser/diff/compare.d.ts +14 -0
  28. package/lib/browser/diff/compare.d.ts.map +1 -0
  29. package/lib/browser/diff/compare.js +94 -0
  30. package/lib/browser/diff/compare.js.map +1 -0
  31. package/lib/browser/diff/index.d.ts +19 -0
  32. package/lib/browser/diff/index.d.ts.map +1 -0
  33. package/lib/browser/diff/index.js +92 -0
  34. package/lib/browser/diff/index.js.map +1 -0
  35. package/lib/browser/doc-cache/empty-doc-cache.d.ts +12 -0
  36. package/lib/browser/doc-cache/empty-doc-cache.d.ts.map +1 -0
  37. package/lib/browser/doc-cache/empty-doc-cache.js +27 -0
  38. package/lib/browser/doc-cache/empty-doc-cache.js.map +1 -0
  39. package/lib/browser/doc-cache/index.d.ts +3 -0
  40. package/lib/browser/doc-cache/index.d.ts.map +1 -0
  41. package/lib/browser/doc-cache/index.js +6 -0
  42. package/lib/browser/doc-cache/index.js.map +1 -0
  43. package/lib/browser/doc-cache/local-storage-cache.d.ts +32 -0
  44. package/lib/browser/doc-cache/local-storage-cache.d.ts.map +1 -0
  45. package/lib/browser/doc-cache/local-storage-cache.js +69 -0
  46. package/lib/browser/doc-cache/local-storage-cache.js.map +1 -0
  47. package/lib/browser/doc-model/editor-document-error.d.ts +7 -0
  48. package/lib/browser/doc-model/editor-document-error.d.ts.map +1 -0
  49. package/lib/browser/doc-model/editor-document-error.js +15 -0
  50. package/lib/browser/doc-model/editor-document-error.js.map +1 -0
  51. package/lib/browser/doc-model/editor-document-model-service.d.ts +40 -0
  52. package/lib/browser/doc-model/editor-document-model-service.d.ts.map +1 -0
  53. package/lib/browser/doc-model/editor-document-model-service.js +276 -0
  54. package/lib/browser/doc-model/editor-document-model-service.js.map +1 -0
  55. package/lib/browser/doc-model/editor-document-model.d.ts +85 -0
  56. package/lib/browser/doc-model/editor-document-model.d.ts.map +1 -0
  57. package/lib/browser/doc-model/editor-document-model.js +463 -0
  58. package/lib/browser/doc-model/editor-document-model.js.map +1 -0
  59. package/lib/browser/doc-model/editor-document-registry.d.ts +15 -0
  60. package/lib/browser/doc-model/editor-document-registry.d.ts.map +1 -0
  61. package/lib/browser/doc-model/editor-document-registry.js +110 -0
  62. package/lib/browser/doc-model/editor-document-registry.js.map +1 -0
  63. package/lib/browser/doc-model/editor-is-fn.d.ts +4 -0
  64. package/lib/browser/doc-model/editor-is-fn.d.ts.map +1 -0
  65. package/lib/browser/doc-model/editor-is-fn.js +12 -0
  66. package/lib/browser/doc-model/editor-is-fn.js.map +1 -0
  67. package/lib/browser/doc-model/main.d.ts +5 -0
  68. package/lib/browser/doc-model/main.d.ts.map +1 -0
  69. package/lib/browser/doc-model/main.js +8 -0
  70. package/lib/browser/doc-model/main.js.map +1 -0
  71. package/lib/browser/doc-model/override.d.ts +12 -0
  72. package/lib/browser/doc-model/override.d.ts.map +1 -0
  73. package/lib/browser/doc-model/override.js +46 -0
  74. package/lib/browser/doc-model/override.js.map +1 -0
  75. package/lib/browser/doc-model/save-task.d.ts +19 -0
  76. package/lib/browser/doc-model/save-task.d.ts.map +1 -0
  77. package/lib/browser/doc-model/save-task.js +34 -0
  78. package/lib/browser/doc-model/save-task.js.map +1 -0
  79. package/lib/browser/doc-model/saveParticipants.d.ts +21 -0
  80. package/lib/browser/doc-model/saveParticipants.d.ts.map +1 -0
  81. package/lib/browser/doc-model/saveParticipants.js +133 -0
  82. package/lib/browser/doc-model/saveParticipants.js.map +1 -0
  83. package/lib/browser/doc-model/types.d.ts +253 -0
  84. package/lib/browser/doc-model/types.d.ts.map +1 -0
  85. package/lib/browser/doc-model/types.js +31 -0
  86. package/lib/browser/doc-model/types.js.map +1 -0
  87. package/lib/browser/editor-collection.service.d.ts +137 -0
  88. package/lib/browser/editor-collection.service.d.ts.map +1 -0
  89. package/lib/browser/editor-collection.service.js +607 -0
  90. package/lib/browser/editor-collection.service.js.map +1 -0
  91. package/lib/browser/editor-opener.d.ts +10 -0
  92. package/lib/browser/editor-opener.d.ts.map +1 -0
  93. package/lib/browser/editor-opener.js +51 -0
  94. package/lib/browser/editor-opener.js.map +1 -0
  95. package/lib/browser/editor.contribution.d.ts +54 -0
  96. package/lib/browser/editor.contribution.d.ts.map +1 -0
  97. package/lib/browser/editor.contribution.js +1059 -0
  98. package/lib/browser/editor.contribution.js.map +1 -0
  99. package/lib/browser/editor.decoration.service.d.ts +28 -0
  100. package/lib/browser/editor.decoration.service.d.ts.map +1 -0
  101. package/lib/browser/editor.decoration.service.js +216 -0
  102. package/lib/browser/editor.decoration.service.js.map +1 -0
  103. package/lib/browser/editor.less +4 -0
  104. package/lib/browser/editor.module.less +493 -0
  105. package/lib/browser/editor.override.d.ts +24 -0
  106. package/lib/browser/editor.override.d.ts.map +1 -0
  107. package/lib/browser/editor.override.js +85 -0
  108. package/lib/browser/editor.override.js.map +1 -0
  109. package/lib/browser/editor.status-bar.service.d.ts +12 -0
  110. package/lib/browser/editor.status-bar.service.d.ts.map +1 -0
  111. package/lib/browser/editor.status-bar.service.js +114 -0
  112. package/lib/browser/editor.status-bar.service.js.map +1 -0
  113. package/lib/browser/editor.view.d.ts +33 -0
  114. package/lib/browser/editor.view.d.ts.map +1 -0
  115. package/lib/browser/editor.view.js +411 -0
  116. package/lib/browser/editor.view.js.map +1 -0
  117. package/lib/browser/error.d.ts +14 -0
  118. package/lib/browser/error.d.ts.map +1 -0
  119. package/lib/browser/error.js +19 -0
  120. package/lib/browser/error.js.map +1 -0
  121. package/lib/browser/feature.d.ts +14 -0
  122. package/lib/browser/feature.d.ts.map +1 -0
  123. package/lib/browser/feature.js +56 -0
  124. package/lib/browser/feature.js.map +1 -0
  125. package/lib/browser/format/formatterSelect.d.ts +11 -0
  126. package/lib/browser/format/formatterSelect.d.ts.map +1 -0
  127. package/lib/browser/format/formatterSelect.js +61 -0
  128. package/lib/browser/format/formatterSelect.js.map +1 -0
  129. package/lib/browser/fs-resource/file-tree-set.d.ts +31 -0
  130. package/lib/browser/fs-resource/file-tree-set.d.ts.map +1 -0
  131. package/lib/browser/fs-resource/file-tree-set.js +123 -0
  132. package/lib/browser/fs-resource/file-tree-set.js.map +1 -0
  133. package/lib/browser/fs-resource/fs-editor-doc.d.ts +47 -0
  134. package/lib/browser/fs-resource/fs-editor-doc.d.ts.map +1 -0
  135. package/lib/browser/fs-resource/fs-editor-doc.js +148 -0
  136. package/lib/browser/fs-resource/fs-editor-doc.js.map +1 -0
  137. package/lib/browser/fs-resource/fs-resource.d.ts +25 -0
  138. package/lib/browser/fs-resource/fs-resource.d.ts.map +1 -0
  139. package/lib/browser/fs-resource/fs-resource.js +211 -0
  140. package/lib/browser/fs-resource/fs-resource.js.map +1 -0
  141. package/lib/browser/fs-resource/index.d.ts +12 -0
  142. package/lib/browser/fs-resource/index.d.ts.map +1 -0
  143. package/lib/browser/fs-resource/index.js +30 -0
  144. package/lib/browser/fs-resource/index.js.map +1 -0
  145. package/lib/browser/grid/grid.service.d.ts +44 -0
  146. package/lib/browser/grid/grid.service.d.ts.map +1 -0
  147. package/lib/browser/grid/grid.service.js +255 -0
  148. package/lib/browser/grid/grid.service.js.map +1 -0
  149. package/lib/browser/history/index.d.ts +31 -0
  150. package/lib/browser/history/index.d.ts.map +1 -0
  151. package/lib/browser/history/index.js +164 -0
  152. package/lib/browser/history/index.js.map +1 -0
  153. package/lib/browser/index.d.ts +33 -0
  154. package/lib/browser/index.d.ts.map +1 -0
  155. package/lib/browser/index.js +212 -0
  156. package/lib/browser/index.js.map +1 -0
  157. package/lib/browser/language/diagnostic-collection.d.ts +28 -0
  158. package/lib/browser/language/diagnostic-collection.d.ts.map +1 -0
  159. package/lib/browser/language/diagnostic-collection.js +72 -0
  160. package/lib/browser/language/diagnostic-collection.js.map +1 -0
  161. package/lib/browser/language/language.service.d.ts +19 -0
  162. package/lib/browser/language/language.service.d.ts.map +1 -0
  163. package/lib/browser/language/language.service.js +146 -0
  164. package/lib/browser/language/language.service.js.map +1 -0
  165. package/lib/browser/language/workspace-symbol-quickopen.d.ts +43 -0
  166. package/lib/browser/language/workspace-symbol-quickopen.d.ts.map +1 -0
  167. package/lib/browser/language/workspace-symbol-quickopen.js +231 -0
  168. package/lib/browser/language/workspace-symbol-quickopen.js.map +1 -0
  169. package/lib/browser/menu/editor.context.d.ts +20 -0
  170. package/lib/browser/menu/editor.context.d.ts.map +1 -0
  171. package/lib/browser/menu/editor.context.js +139 -0
  172. package/lib/browser/menu/editor.context.js.map +1 -0
  173. package/lib/browser/menu/editor.menu.d.ts +13 -0
  174. package/lib/browser/menu/editor.menu.d.ts.map +1 -0
  175. package/lib/browser/menu/editor.menu.js +48 -0
  176. package/lib/browser/menu/editor.menu.js.map +1 -0
  177. package/lib/browser/menu/title-context.menu.d.ts +13 -0
  178. package/lib/browser/menu/title-context.menu.d.ts.map +1 -0
  179. package/lib/browser/menu/title-context.menu.js +55 -0
  180. package/lib/browser/menu/title-context.menu.js.map +1 -0
  181. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.d.ts +20 -0
  182. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.d.ts.map +1 -0
  183. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.js +64 -0
  184. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.js.map +1 -0
  185. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.d.ts +35 -0
  186. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.d.ts.map +1 -0
  187. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.js +144 -0
  188. package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.js.map +1 -0
  189. package/lib/browser/monaco-contrib/command/command.service.d.ts +141 -0
  190. package/lib/browser/monaco-contrib/command/command.service.d.ts.map +1 -0
  191. package/lib/browser/monaco-contrib/command/command.service.js +370 -0
  192. package/lib/browser/monaco-contrib/command/command.service.js.map +1 -0
  193. package/lib/browser/monaco-contrib/index.d.ts +3 -0
  194. package/lib/browser/monaco-contrib/index.d.ts.map +1 -0
  195. package/lib/browser/monaco-contrib/index.js +6 -0
  196. package/lib/browser/monaco-contrib/index.js.map +1 -0
  197. package/lib/browser/monaco-contrib/tokenizer/textmate-registry.d.ts +46 -0
  198. package/lib/browser/monaco-contrib/tokenizer/textmate-registry.d.ts.map +1 -0
  199. package/lib/browser/monaco-contrib/tokenizer/textmate-registry.js +79 -0
  200. package/lib/browser/monaco-contrib/tokenizer/textmate-registry.js.map +1 -0
  201. package/lib/browser/monaco-contrib/tokenizer/textmate-tokenizer.d.ts +58 -0
  202. package/lib/browser/monaco-contrib/tokenizer/textmate-tokenizer.d.ts.map +1 -0
  203. package/lib/browser/monaco-contrib/tokenizer/textmate-tokenizer.js +75 -0
  204. package/lib/browser/monaco-contrib/tokenizer/textmate-tokenizer.js.map +1 -0
  205. package/lib/browser/monaco-contrib/tokenizer/textmate.service.d.ts +54 -0
  206. package/lib/browser/monaco-contrib/tokenizer/textmate.service.d.ts.map +1 -0
  207. package/lib/browser/monaco-contrib/tokenizer/textmate.service.js +596 -0
  208. package/lib/browser/monaco-contrib/tokenizer/textmate.service.js.map +1 -0
  209. package/lib/browser/navigation.module.less +86 -0
  210. package/lib/browser/navigation.view.d.ts +29 -0
  211. package/lib/browser/navigation.view.d.ts.map +1 -0
  212. package/lib/browser/navigation.view.js +183 -0
  213. package/lib/browser/navigation.view.js.map +1 -0
  214. package/lib/browser/preference/contribution.d.ts +5 -0
  215. package/lib/browser/preference/contribution.d.ts.map +1 -0
  216. package/lib/browser/preference/contribution.js +16 -0
  217. package/lib/browser/preference/contribution.js.map +1 -0
  218. package/lib/browser/preference/converter.d.ts +34 -0
  219. package/lib/browser/preference/converter.d.ts.map +1 -0
  220. package/lib/browser/preference/converter.js +632 -0
  221. package/lib/browser/preference/converter.js.map +1 -0
  222. package/lib/browser/preference/schema.d.ts +230 -0
  223. package/lib/browser/preference/schema.d.ts.map +1 -0
  224. package/lib/browser/preference/schema.js +1453 -0
  225. package/lib/browser/preference/schema.js.map +1 -0
  226. package/lib/browser/preference/util.d.ts +4 -0
  227. package/lib/browser/preference/util.d.ts.map +1 -0
  228. package/lib/browser/preference/util.js +13 -0
  229. package/lib/browser/preference/util.js.map +1 -0
  230. package/lib/browser/resource.service.d.ts +32 -0
  231. package/lib/browser/resource.service.d.ts.map +1 -0
  232. package/lib/browser/resource.service.js +219 -0
  233. package/lib/browser/resource.service.js.map +1 -0
  234. package/lib/browser/tab.view.d.ts +12 -0
  235. package/lib/browser/tab.view.d.ts.map +1 -0
  236. package/lib/browser/tab.view.js +330 -0
  237. package/lib/browser/tab.view.js.map +1 -0
  238. package/lib/browser/types.d.ts +344 -0
  239. package/lib/browser/types.d.ts.map +1 -0
  240. package/lib/browser/types.js +94 -0
  241. package/lib/browser/types.js.map +1 -0
  242. package/lib/browser/untitled-resource.d.ts +33 -0
  243. package/lib/browser/untitled-resource.d.ts.map +1 -0
  244. package/lib/browser/untitled-resource.js +114 -0
  245. package/lib/browser/untitled-resource.js.map +1 -0
  246. package/lib/browser/view/editor.react.d.ts +10 -0
  247. package/lib/browser/view/editor.react.d.ts.map +1 -0
  248. package/lib/browser/view/editor.react.js +69 -0
  249. package/lib/browser/view/editor.react.js.map +1 -0
  250. package/lib/browser/view/react-hook.d.ts +3 -0
  251. package/lib/browser/view/react-hook.d.ts.map +1 -0
  252. package/lib/browser/view/react-hook.js +9 -0
  253. package/lib/browser/view/react-hook.js.map +1 -0
  254. package/lib/browser/view/suggest-widget.d.ts +8 -0
  255. package/lib/browser/view/suggest-widget.d.ts.map +1 -0
  256. package/lib/browser/view/suggest-widget.js +51 -0
  257. package/lib/browser/view/suggest-widget.js.map +1 -0
  258. package/lib/browser/view/topPadding.d.ts +6 -0
  259. package/lib/browser/view/topPadding.d.ts.map +1 -0
  260. package/lib/browser/view/topPadding.js +18 -0
  261. package/lib/browser/view/topPadding.js.map +1 -0
  262. package/lib/browser/workbench-editor.service.d.ts +244 -0
  263. package/lib/browser/workbench-editor.service.d.ts.map +1 -0
  264. package/lib/browser/workbench-editor.service.js +1689 -0
  265. package/lib/browser/workbench-editor.service.js.map +1 -0
  266. package/lib/common/doc-cache.d.ts +80 -0
  267. package/lib/common/doc-cache.d.ts.map +1 -0
  268. package/lib/common/doc-cache.js +39 -0
  269. package/lib/common/doc-cache.js.map +1 -0
  270. package/lib/common/editor.d.ts +571 -0
  271. package/lib/common/editor.d.ts.map +1 -0
  272. package/lib/common/editor.js +125 -0
  273. package/lib/common/editor.js.map +1 -0
  274. package/lib/common/index.d.ts +6 -0
  275. package/lib/common/index.d.ts.map +1 -0
  276. package/lib/common/index.js +9 -0
  277. package/lib/common/index.js.map +1 -0
  278. package/lib/common/language.d.ts +108 -0
  279. package/lib/common/language.d.ts.map +1 -0
  280. package/lib/common/language.js +72 -0
  281. package/lib/common/language.js.map +1 -0
  282. package/lib/common/mocks/workbench-editor.service.d.ts +21 -0
  283. package/lib/common/mocks/workbench-editor.service.d.ts.map +1 -0
  284. package/lib/common/mocks/workbench-editor.service.js +48 -0
  285. package/lib/common/mocks/workbench-editor.service.js.map +1 -0
  286. package/lib/common/resource.d.ts +94 -0
  287. package/lib/common/resource.d.ts.map +1 -0
  288. package/lib/common/resource.js +31 -0
  289. package/lib/common/resource.js.map +1 -0
  290. package/lib/common/utils.d.ts +3 -0
  291. package/lib/common/utils.d.ts.map +1 -0
  292. package/lib/common/utils.js +14 -0
  293. package/lib/common/utils.js.map +1 -0
  294. package/lib/index.d.ts +2 -0
  295. package/lib/index.d.ts.map +1 -0
  296. package/lib/index.js +5 -0
  297. package/lib/index.js.map +1 -0
  298. package/package.json +33 -0
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LanguageService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const monaco = (0, tslib_1.__importStar)(require("@opensumi/monaco-editor-core/esm/vs/editor/editor.api"));
6
+ const di_1 = require("@opensumi/di");
7
+ const diagnostic_collection_1 = require("./diagnostic-collection");
8
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
9
+ const common_1 = require("../../common");
10
+ function reviveSeverity(severity) {
11
+ switch (severity) {
12
+ case ide_core_common_1.MarkerSeverity.Error: return common_1.DiagnosticSeverity.Error;
13
+ case ide_core_common_1.MarkerSeverity.Warning: return common_1.DiagnosticSeverity.Warning;
14
+ case ide_core_common_1.MarkerSeverity.Info: return common_1.DiagnosticSeverity.Information;
15
+ case ide_core_common_1.MarkerSeverity.Hint: return common_1.DiagnosticSeverity.Hint;
16
+ }
17
+ }
18
+ function reviveRange(startLine, startColumn, endLine, endColumn) {
19
+ // note: language server range is 0-based, marker is 1-based, so need to deduct 1 here
20
+ return {
21
+ start: {
22
+ line: startLine - 1,
23
+ character: startColumn - 1,
24
+ },
25
+ end: {
26
+ line: endLine - 1,
27
+ character: endColumn - 1,
28
+ },
29
+ };
30
+ }
31
+ function reviveRelated(related) {
32
+ return {
33
+ message: related.message,
34
+ location: {
35
+ uri: related.resource,
36
+ range: reviveRange(related.startLineNumber, related.startColumn, related.endLineNumber, related.endColumn),
37
+ },
38
+ };
39
+ }
40
+ function reviveMarker(marker) {
41
+ const monacoMarker = {
42
+ code: marker.code,
43
+ severity: reviveSeverity(marker.severity),
44
+ range: reviveRange(marker.startLineNumber, marker.startColumn, marker.endLineNumber, marker.endColumn),
45
+ message: marker.message,
46
+ source: marker.source,
47
+ relatedInformation: undefined,
48
+ tags: marker.tags,
49
+ };
50
+ if (marker.relatedInformation) {
51
+ monacoMarker.relatedInformation = marker.relatedInformation.map(reviveRelated);
52
+ }
53
+ return monacoMarker;
54
+ }
55
+ let LanguageService = class LanguageService {
56
+ constructor() {
57
+ this.markers = new Map();
58
+ this.workspaceSymbolProviders = [];
59
+ for (const uri of this.markerManager.getResources()) {
60
+ this.updateMarkers(new ide_core_common_1.URI(uri));
61
+ }
62
+ this.markerManager.onMarkerChanged((uris) => {
63
+ if (uris) {
64
+ uris.forEach((uri) => this.updateMarkers(new ide_core_common_1.URI(uri)));
65
+ }
66
+ });
67
+ }
68
+ get languages() {
69
+ return [...this.mergeLanguages(monaco.languages.getLanguages()).values()];
70
+ }
71
+ getLanguage(languageId) {
72
+ return this.mergeLanguages(monaco.languages.getLanguages().filter((language) => language.id === languageId)).get(languageId);
73
+ }
74
+ mergeLanguages(registered) {
75
+ const languages = new Map();
76
+ for (const { id, aliases, extensions, filenames } of registered) {
77
+ const merged = languages.get(id) || {
78
+ id,
79
+ name: '',
80
+ extensions: new Set(),
81
+ filenames: new Set(),
82
+ };
83
+ if (!merged.name && aliases && aliases.length) {
84
+ merged.name = aliases[0];
85
+ }
86
+ if (extensions && extensions.length) {
87
+ for (const extension of extensions) {
88
+ merged.extensions.add(extension);
89
+ }
90
+ }
91
+ if (filenames && filenames.length) {
92
+ for (const filename of filenames) {
93
+ merged.filenames.add(filename);
94
+ }
95
+ }
96
+ languages.set(id, merged);
97
+ }
98
+ for (const [id, language] of languages) {
99
+ if (!language.name) {
100
+ language.name = id;
101
+ }
102
+ }
103
+ return languages;
104
+ }
105
+ registerWorkspaceSymbolProvider(provider) {
106
+ this.workspaceSymbolProviders.push(provider);
107
+ return ide_core_common_1.Disposable.create(() => {
108
+ const index = this.workspaceSymbolProviders.indexOf(provider);
109
+ if (index !== -1) {
110
+ this.workspaceSymbolProviders.splice(index, 1);
111
+ }
112
+ });
113
+ }
114
+ updateMarkers(uri) {
115
+ const uriString = uri.toString();
116
+ const owners = new Map();
117
+ for (const marker of this.markerManager.getMarkers({ resource: uri.toString() })) {
118
+ const diagnostics = owners.get(marker.type) || [];
119
+ diagnostics.push(reviveMarker(marker));
120
+ owners.set(marker.type, diagnostics);
121
+ }
122
+ const toClean = new Set(this.markers.keys());
123
+ for (const [owner, diagnostics] of owners) {
124
+ toClean.delete(owner);
125
+ const collection = this.markers.get(owner) || new diagnostic_collection_1.MonacoDiagnosticCollection(owner);
126
+ collection.set(uriString, diagnostics);
127
+ this.markers.set(owner, collection);
128
+ }
129
+ for (const owner of toClean) {
130
+ const collection = this.markers.get(owner);
131
+ if (collection) {
132
+ collection.set(uriString, []);
133
+ }
134
+ }
135
+ }
136
+ };
137
+ (0, tslib_1.__decorate)([
138
+ (0, di_1.Autowired)(),
139
+ (0, tslib_1.__metadata)("design:type", ide_core_common_1.MarkerManager)
140
+ ], LanguageService.prototype, "markerManager", void 0);
141
+ LanguageService = (0, tslib_1.__decorate)([
142
+ (0, di_1.Injectable)(),
143
+ (0, tslib_1.__metadata)("design:paramtypes", [])
144
+ ], LanguageService);
145
+ exports.LanguageService = LanguageService;
146
+ //# sourceMappingURL=language.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.service.js","sourceRoot":"","sources":["../../../src/browser/language/language.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { QuickOpenHandler, QuickOpenModel, QuickOpenItem, CancellationToken, URI, QuickOpenMode } from '@opensumi/ide-core-browser';
2
+ import { WorkspaceSymbolProvider, WorkbenchEditorService } from '../../common';
3
+ import type { SymbolInformation } from 'vscode-languageserver-types';
4
+ import { IReporterService } from '@opensumi/ide-core-common';
5
+ export declare class WorkspaceSymbolQuickOpenHandler implements QuickOpenHandler {
6
+ private readonly languageService;
7
+ private readonly workspaceService;
8
+ private readonly logger;
9
+ private readonly workbenchEditorService;
10
+ private readonly workspaceSymbolActionProvider;
11
+ reporterService: IReporterService;
12
+ prefix: string;
13
+ get description(): string;
14
+ private cancellationSource;
15
+ getModel(): QuickOpenModel;
16
+ getOptions(): {
17
+ fuzzyMatchLabel: {
18
+ enableSeparateSubstringMatching: boolean;
19
+ };
20
+ showItemsWithoutHighlight: boolean;
21
+ fuzzyMatchDescription: boolean;
22
+ getPlaceholderItem: (lookFor: string, originLookFor: string) => QuickOpenItem;
23
+ };
24
+ onClose(): void;
25
+ onToggle(): void;
26
+ }
27
+ export declare class SymbolInformationQuickOpenItem extends QuickOpenItem {
28
+ protected readonly symbol: SymbolInformation;
29
+ private readonly provider;
30
+ private readonly workbenchEditorService;
31
+ private readonly token;
32
+ private relativePath;
33
+ constructor(symbol: SymbolInformation, provider: WorkspaceSymbolProvider, workbenchEditorService: WorkbenchEditorService, token: CancellationToken, relativePath: string);
34
+ getLabel(): string;
35
+ getUri(): URI;
36
+ getIconClass(): string;
37
+ getDescription(): string;
38
+ private fromRange;
39
+ private open;
40
+ run(mode: QuickOpenMode): boolean;
41
+ openSide(): Thenable<void>;
42
+ }
43
+ //# sourceMappingURL=workspace-symbol-quickopen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-symbol-quickopen.d.ts","sourceRoot":"","sources":["../../../src/browser/language/workspace-symbol-quickopen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAA2B,aAAa,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,EAA0B,MAAM,4BAA4B,CAAC;AACrL,OAAO,EAAE,uBAAuB,EAA2C,sBAAsB,EAA0B,MAAM,cAAc,CAAC;AAChJ,OAAO,KAAK,EAAE,iBAAiB,EAAS,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAqB,gBAAgB,EAAe,MAAM,2BAA2B,CAAC;AAkC7F,qBACa,+BAAgC,YAAW,gBAAgB;IAGtE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IAGnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAGjC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAGhE,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAgC;IAG9E,eAAe,EAAE,gBAAgB,CAAC;IAElC,MAAM,SAAO;IAEb,IAAI,WAAW,WAEd;IAED,OAAO,CAAC,kBAAkB,CAAiC;IAE3D,QAAQ,IAAI,cAAc;IAuE1B,UAAU;;;;;;sCAQwB,MAAM,iBAAiB,MAAM;;IAO/D,OAAO;IAIP,QAAQ;CAGT;AAED,qBAAa,8BAA+B,SAAQ,aAAa;IAG7D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,YAAY;gBAJD,MAAM,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,uBAAuB,EACjC,sBAAsB,EAAE,sBAAsB,EAC9C,KAAK,EAAE,iBAAiB,EACjC,YAAY,EAAE,MAAM;IAK9B,QAAQ,IAAI,MAAM;IAIlB,MAAM;IAIN,YAAY;IAIZ,cAAc;IAKd,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,IAAI;IAMZ,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAcjC,QAAQ;CAWT"}
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SymbolInformationQuickOpenItem = exports.WorkspaceSymbolQuickOpenHandler = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const modes_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/modes");
6
+ const di_1 = require("@opensumi/di");
7
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
8
+ const common_1 = require("../../common");
9
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
10
+ const ide_workspace_1 = require("@opensumi/ide-workspace");
11
+ const ide_quick_open_1 = require("@opensumi/ide-quick-open");
12
+ let WorkspaceSymbolOpenSideAction = class WorkspaceSymbolOpenSideAction extends ide_quick_open_1.QuickOpenBaseAction {
13
+ constructor() {
14
+ super({
15
+ id: 'workspace-symbol:splitToRight',
16
+ tooltip: (0, ide_core_common_1.localize)('quickOpen.openSide'),
17
+ class: (0, ide_core_browser_1.getIcon)('embed'),
18
+ });
19
+ }
20
+ async run(item) {
21
+ await item.openSide();
22
+ }
23
+ };
24
+ WorkspaceSymbolOpenSideAction = (0, tslib_1.__decorate)([
25
+ (0, di_1.Injectable)(),
26
+ (0, tslib_1.__metadata)("design:paramtypes", [])
27
+ ], WorkspaceSymbolOpenSideAction);
28
+ let WorkspaceSymbolActionProvider = class WorkspaceSymbolActionProvider {
29
+ hasActions() {
30
+ return true;
31
+ }
32
+ getActions() {
33
+ return [this.workspaceSymbolOpenSideActionOpen];
34
+ }
35
+ };
36
+ (0, tslib_1.__decorate)([
37
+ (0, di_1.Autowired)(),
38
+ (0, tslib_1.__metadata)("design:type", WorkspaceSymbolOpenSideAction)
39
+ ], WorkspaceSymbolActionProvider.prototype, "workspaceSymbolOpenSideActionOpen", void 0);
40
+ WorkspaceSymbolActionProvider = (0, tslib_1.__decorate)([
41
+ (0, di_1.Injectable)()
42
+ ], WorkspaceSymbolActionProvider);
43
+ let WorkspaceSymbolQuickOpenHandler = class WorkspaceSymbolQuickOpenHandler {
44
+ constructor() {
45
+ this.prefix = '#';
46
+ this.cancellationSource = new ide_core_browser_1.CancellationTokenSource();
47
+ }
48
+ get description() {
49
+ return (0, ide_core_common_1.localize)('editor.workspaceSymbol.description');
50
+ }
51
+ getModel() {
52
+ return {
53
+ onType: (lookFor, acceptor) => {
54
+ if (lookFor === '') {
55
+ acceptor([new ide_core_browser_1.QuickOpenItem({
56
+ label: (0, ide_core_common_1.localize)('editor.workspaceSymbol.search'),
57
+ run: () => false,
58
+ })]);
59
+ return;
60
+ }
61
+ if (lookFor === '#') {
62
+ return void acceptor([new ide_core_browser_1.QuickOpenItem({
63
+ label: (0, ide_core_common_1.localize)('editor.workspaceSymbolClass.search'),
64
+ run: () => false,
65
+ })]);
66
+ }
67
+ if (this.languageService.workspaceSymbolProviders.length === 0) {
68
+ acceptor([new ide_core_browser_1.QuickOpenItem({
69
+ label: (0, ide_core_common_1.localize)('editor.workspaceSymbol.notfound'),
70
+ run: () => false,
71
+ })]);
72
+ return;
73
+ }
74
+ const isSearchClass = lookFor[0] === '#';
75
+ const items = [];
76
+ this.cancellationSource.cancel();
77
+ const newCancellationSource = new ide_core_browser_1.CancellationTokenSource();
78
+ this.cancellationSource = newCancellationSource;
79
+ const param = {
80
+ query: isSearchClass ? lookFor.slice(1) : lookFor,
81
+ };
82
+ const timer = this.reporterService.time(ide_core_common_1.REPORT_NAME.QUICK_OPEN_MEASURE);
83
+ Promise.all(this.languageService.workspaceSymbolProviders.map(async (provider) => {
84
+ let symbols = await provider.provideWorkspaceSymbols(param, newCancellationSource.token);
85
+ if (isSearchClass) {
86
+ symbols = symbols === null || symbols === void 0 ? void 0 : symbols.filter((symbol) => symbol.kind === modes_1.SymbolKind.Class);
87
+ }
88
+ if (symbols && symbols.length && !newCancellationSource.token.isCancellationRequested) {
89
+ const quickOpenItems = await Promise.all(symbols.map(async (symbol) => {
90
+ const relativePath = await this.workspaceService.asRelativePath(new ide_core_browser_1.URI(symbol.location.uri).parent) || '';
91
+ return new SymbolInformationQuickOpenItem(symbol, provider, this.workbenchEditorService, newCancellationSource.token, relativePath);
92
+ }));
93
+ items.push(...quickOpenItems);
94
+ acceptor(items, this.workspaceSymbolActionProvider);
95
+ }
96
+ return symbols;
97
+ })).catch((e) => {
98
+ this.logger.log(e);
99
+ }).finally(() => {
100
+ if (!newCancellationSource.token.isCancellationRequested) {
101
+ // 无数据清空历史数据
102
+ if (!items.length) {
103
+ acceptor([]);
104
+ }
105
+ timer.timeEnd(isSearchClass ? 'class' : 'symbol', {
106
+ lookFor,
107
+ stat: {
108
+ symbol: items.length,
109
+ },
110
+ });
111
+ }
112
+ });
113
+ },
114
+ };
115
+ }
116
+ getOptions() {
117
+ return {
118
+ fuzzyMatchLabel: {
119
+ enableSeparateSubstringMatching: true,
120
+ },
121
+ showItemsWithoutHighlight: true,
122
+ // 不搜索文件路径
123
+ fuzzyMatchDescription: false,
124
+ getPlaceholderItem: (lookFor, originLookFor) => new ide_core_browser_1.QuickOpenItem({
125
+ label: (0, ide_core_common_1.localize)(originLookFor.startsWith('##') ? 'editor.workspaceSymbolClass.notfound' : 'editor.workspaceSymbol.notfound'),
126
+ run: () => false,
127
+ }),
128
+ };
129
+ }
130
+ onClose() {
131
+ this.cancellationSource.cancel();
132
+ }
133
+ onToggle() {
134
+ this.cancellationSource.cancel();
135
+ }
136
+ };
137
+ (0, tslib_1.__decorate)([
138
+ (0, di_1.Autowired)(common_1.ILanguageService),
139
+ (0, tslib_1.__metadata)("design:type", Object)
140
+ ], WorkspaceSymbolQuickOpenHandler.prototype, "languageService", void 0);
141
+ (0, tslib_1.__decorate)([
142
+ (0, di_1.Autowired)(ide_workspace_1.IWorkspaceService),
143
+ (0, tslib_1.__metadata)("design:type", Object)
144
+ ], WorkspaceSymbolQuickOpenHandler.prototype, "workspaceService", void 0);
145
+ (0, tslib_1.__decorate)([
146
+ (0, di_1.Autowired)(ide_core_common_1.ILogger),
147
+ (0, tslib_1.__metadata)("design:type", Object)
148
+ ], WorkspaceSymbolQuickOpenHandler.prototype, "logger", void 0);
149
+ (0, tslib_1.__decorate)([
150
+ (0, di_1.Autowired)(common_1.WorkbenchEditorService),
151
+ (0, tslib_1.__metadata)("design:type", common_1.WorkbenchEditorService)
152
+ ], WorkspaceSymbolQuickOpenHandler.prototype, "workbenchEditorService", void 0);
153
+ (0, tslib_1.__decorate)([
154
+ (0, di_1.Autowired)(),
155
+ (0, tslib_1.__metadata)("design:type", WorkspaceSymbolActionProvider)
156
+ ], WorkspaceSymbolQuickOpenHandler.prototype, "workspaceSymbolActionProvider", void 0);
157
+ (0, tslib_1.__decorate)([
158
+ (0, di_1.Autowired)(ide_core_common_1.IReporterService),
159
+ (0, tslib_1.__metadata)("design:type", Object)
160
+ ], WorkspaceSymbolQuickOpenHandler.prototype, "reporterService", void 0);
161
+ WorkspaceSymbolQuickOpenHandler = (0, tslib_1.__decorate)([
162
+ (0, di_1.Injectable)()
163
+ ], WorkspaceSymbolQuickOpenHandler);
164
+ exports.WorkspaceSymbolQuickOpenHandler = WorkspaceSymbolQuickOpenHandler;
165
+ class SymbolInformationQuickOpenItem extends ide_core_browser_1.QuickOpenItem {
166
+ constructor(symbol, provider, workbenchEditorService, token, relativePath) {
167
+ super({});
168
+ this.symbol = symbol;
169
+ this.provider = provider;
170
+ this.workbenchEditorService = workbenchEditorService;
171
+ this.token = token;
172
+ this.relativePath = relativePath;
173
+ }
174
+ getLabel() {
175
+ return this.symbol.name;
176
+ }
177
+ getUri() {
178
+ return new ide_core_browser_1.URI(this.symbol.location.uri);
179
+ }
180
+ getIconClass() {
181
+ return (0, ide_core_browser_1.getSymbolIcon)(this.symbol.kind);
182
+ }
183
+ getDescription() {
184
+ const containerName = this.symbol.containerName;
185
+ return `${containerName ? `${containerName} · ` : ''}${decodeURIComponent(this.relativePath)}`;
186
+ }
187
+ fromRange(range) {
188
+ if (!range) {
189
+ return undefined;
190
+ }
191
+ const { start, end } = range;
192
+ return {
193
+ startLineNumber: start.line + 1,
194
+ startColumn: start.character + 1,
195
+ endLineNumber: end.line + 1,
196
+ endColumn: end.character + 1,
197
+ };
198
+ }
199
+ open(uri, range) {
200
+ this.workbenchEditorService.open(uri, {
201
+ range: this.fromRange(range),
202
+ });
203
+ }
204
+ run(mode) {
205
+ const uri = this.getUri();
206
+ if (mode === ide_core_browser_1.QuickOpenMode.OPEN) {
207
+ this.provider.resolveWorkspaceSymbol(this.symbol, this.token).then((resolvedSymbol) => {
208
+ if (resolvedSymbol) {
209
+ this.open(uri, resolvedSymbol.location.range);
210
+ }
211
+ else {
212
+ this.open(uri, this.symbol.location.range);
213
+ }
214
+ });
215
+ }
216
+ return true;
217
+ }
218
+ openSide() {
219
+ const uri = this.getUri();
220
+ return this.provider.resolveWorkspaceSymbol(this.symbol, this.token).then((resolvedSymbol) => {
221
+ this.workbenchEditorService.open(uri, {
222
+ preview: false,
223
+ split: common_1.EditorGroupSplitAction.Right,
224
+ range: this.fromRange(resolvedSymbol ? resolvedSymbol.location.range : this.symbol.location.range),
225
+ focus: true,
226
+ });
227
+ });
228
+ }
229
+ }
230
+ exports.SymbolInformationQuickOpenItem = SymbolInformationQuickOpenItem;
231
+ //# sourceMappingURL=workspace-symbol-quickopen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-symbol-quickopen.js","sourceRoot":"","sources":["../../../src/browser/language/workspace-symbol-quickopen.ts"],"names":[],"mappings":";;;;AAAA,mFAAuG;AACvG,qCAAqD;AACrD,iEAAqL;AACrL,yCAAgJ;AAEhJ,+DAA6F;AAC7F,2DAA4D;AAC5D,6DAAwF;AAGxF,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,oCAAmB;IAC7D;QACE,KAAK,CAAC;YACJ,EAAE,EAAE,+BAA+B;YACnC,OAAO,EAAE,IAAA,0BAAQ,EAAC,oBAAoB,CAAC;YACvC,KAAK,EAAE,IAAA,0BAAO,EAAC,OAAO,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAoC;QAC5C,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;CACF,CAAA;AAZK,6BAA6B;IADlC,IAAA,eAAU,GAAE;;GACP,6BAA6B,CAYlC;AAGD,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAKjC,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AATC;IADC,IAAA,cAAS,GAAE;2CACuB,6BAA6B;wFAAC;AAH7D,6BAA6B;IADlC,IAAA,eAAU,GAAE;GACP,6BAA6B,CAYlC;AAGD,IAAa,+BAA+B,GAA5C,MAAa,+BAA+B;IAA5C;QAoBE,WAAM,GAAG,GAAG,CAAC;QAML,uBAAkB,GAAG,IAAI,0CAAuB,EAAE,CAAC;IA+F7D,CAAC;IAnGC,IAAI,WAAW;QACb,OAAO,IAAA,0BAAQ,EAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAID,QAAQ;QACN,OAAO;YACL,MAAM,EAAE,CAAC,OAAe,EAAE,QAAgG,EAAE,EAAE;gBAC5H,IAAI,OAAO,KAAK,EAAE,EAAE;oBAClB,QAAQ,CAAC,CAAC,IAAI,gCAAa,CAAC;4BAC1B,KAAK,EAAE,IAAA,0BAAQ,EAAC,+BAA+B,CAAC;4BAChD,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK;yBACjB,CAAC,CAAC,CAAC,CAAC;oBACL,OAAO;iBACR;gBAED,IAAI,OAAO,KAAK,GAAG,EAAE;oBACnB,OAAO,KAAK,QAAQ,CAAC,CAAC,IAAI,gCAAa,CAAC;4BACtC,KAAK,EAAE,IAAA,0BAAQ,EAAC,oCAAoC,CAAC;4BACrD,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK;yBACjB,CAAC,CAAC,CAAC,CAAC;iBACN;gBAED,IAAI,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9D,QAAQ,CAAC,CAAC,IAAI,gCAAa,CAAC;4BAC1B,KAAK,EAAE,IAAA,0BAAQ,EAAC,iCAAiC,CAAC;4BAClD,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK;yBACjB,CAAC,CAAC,CAAC,CAAC;oBACL,OAAO;iBACR;gBAED,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;gBAEzC,MAAM,KAAK,GAAoB,EAAE,CAAC;gBAClC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,qBAAqB,GAAG,IAAI,0CAAuB,EAAE,CAAC;gBAC5D,IAAI,CAAC,kBAAkB,GAAG,qBAAqB,CAAC;gBAEhD,MAAM,KAAK,GAA0B;oBACnC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;iBAClD,CAAC;gBACF,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,6BAAW,CAAC,kBAAkB,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;oBAC/E,IAAI,OAAO,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;oBACzF,IAAI,aAAa,EAAE;wBACjB,OAAO,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAc,CAAC,KAAK,CAAC,CAAC;qBAC7E;oBACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,uBAAuB,EAAE;wBACrF,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;4BACpE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,sBAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;4BAC3G,OAAO,IAAI,8BAA8B,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;wBACtI,CAAC,CAAC,CAAC,CAAC;wBACJ,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;wBAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;qBACrD;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,uBAAuB,EAAE;wBACxD,YAAY;wBACZ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;4BACjB,QAAQ,CAAC,EAAE,CAAC,CAAC;yBACd;wBACD,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;4BAChD,OAAO;4BACP,IAAI,EAAE;gCACJ,MAAM,EAAE,KAAK,CAAC,MAAM;6BACrB;yBACF,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO;YACL,eAAe,EAAE;gBACf,+BAA+B,EAAE,IAAI;aACtC;YACD,yBAAyB,EAAE,IAAI;YAC/B,UAAU;YACV,qBAAqB,EAAE,KAAK;YAC5B,kBAAkB,EAAE,CAAC,OAAe,EAAE,aAAqB,EAAE,EAAE,CAAC,IAAI,gCAAa,CAAC;gBAChF,KAAK,EAAE,IAAA,0BAAQ,EAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,iCAAiC,CAAC;gBAC5H,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK;aACjB,CAAC;SACH,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;CACF,CAAA;AAtHC;IADC,IAAA,cAAS,EAAC,yBAAgB,CAAC;;wEACuB;AAGnD;IADC,IAAA,cAAS,EAAC,iCAAiB,CAAC;;yEACwB;AAGrD;IADC,IAAA,cAAS,EAAC,yBAAO,CAAC;;+DACc;AAGjC;IADC,IAAA,cAAS,EAAC,+BAAsB,CAAC;2CACO,+BAAsB;+EAAC;AAGhE;IADC,IAAA,cAAS,GAAE;2CACoC,6BAA6B;sFAAC;AAG9E;IADC,IAAA,cAAS,EAAC,kCAAgB,CAAC;;wEACM;AAlBvB,+BAA+B;IAD3C,IAAA,eAAU,GAAE;GACA,+BAA+B,CAyH3C;AAzHY,0EAA+B;AA2H5C,MAAa,8BAA+B,SAAQ,gCAAa;IAE/D,YACqB,MAAyB,EAC3B,QAAiC,EACjC,sBAA8C,EAC9C,KAAwB,EACjC,YAAoB;QAE5B,KAAK,CAAC,EAAE,CAAC,CAAC;QANS,WAAM,GAAN,MAAM,CAAmB;QAC3B,aAAQ,GAAR,QAAQ,CAAyB;QACjC,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,UAAK,GAAL,KAAK,CAAmB;QACjC,iBAAY,GAAZ,YAAY,CAAQ;IAG9B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,sBAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY;QACV,OAAO,IAAA,gCAAa,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,cAAc;QACZ,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;IACjG,CAAC;IAEO,SAAS,CAAC,KAAY;QAC5B,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;QAC7B,OAAO;YACL,eAAe,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC;YAC/B,WAAW,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC;YAChC,aAAa,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;YAC3B,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC;SAC7B,CAAC;IACJ,CAAC;IAEO,IAAI,CAAC,GAAQ,EAAE,KAAY;QACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE;YACpC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,IAAmB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,gCAAa,CAAC,IAAI,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;gBACpF,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC/C;qBAAM;oBACL,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC5C;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;YAC3F,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpC,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,+BAAsB,CAAC,KAAK;gBACnC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAClG,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAzED,wEAyEC"}
@@ -0,0 +1,20 @@
1
+ import { Injector } from '@opensumi/di';
2
+ import { Disposable } from '@opensumi/ide-core-browser';
3
+ import { IEditor } from '../../common';
4
+ import { BrowserEditorContribution, IEditorFeatureRegistry } from '../types';
5
+ export declare class EditorContextMenuController extends Disposable {
6
+ private _editor;
7
+ private readonly contextMenuService;
8
+ private readonly globalContextKeyService;
9
+ private readonly contextMenuRenderer;
10
+ private readonly contextKeyService;
11
+ constructor(_editor: IEditor);
12
+ overrideContextmenuContribution(editor: IEditor): void;
13
+ private _doShowContextMenu;
14
+ private getMenuNodes;
15
+ }
16
+ export declare class EditorContextMenuBrowserEditorContribution implements BrowserEditorContribution {
17
+ injector: Injector;
18
+ registerEditorFeature(registry: IEditorFeatureRegistry): void;
19
+ }
20
+ //# sourceMappingURL=editor.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.context.d.ts","sourceRoot":"","sources":["../../../src/browser/menu/editor.context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyC,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,UAAU,EAA8B,MAAM,4BAA4B,CAAC;AAMpF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAE7E,qBACa,2BAA4B,SAAQ,UAAU;IAa7C,OAAO,CAAC,OAAO;IAV3B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;IAGhE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB;IAG7D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAmB;IAEvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;gBAEnC,OAAO,EAAE,OAAO;IAMpC,+BAA+B,CAAC,MAAM,EAAE,OAAO;IAqC/C,OAAO,CAAC,kBAAkB;IAmD1B,OAAO,CAAC,YAAY;CASrB;AAED,qBACa,0CAA2C,YAAW,yBAAyB;IAG1F,QAAQ,EAAE,QAAQ,CAAC;IAEnB,qBAAqB,CAAC,QAAQ,EAAE,sBAAsB;CAQvD"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EditorContextMenuBrowserEditorContribution = exports.EditorContextMenuController = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const monaco = (0, tslib_1.__importStar)(require("@opensumi/monaco-editor-core/esm/vs/editor/editor.api"));
6
+ const contextmenu_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/contrib/contextmenu/contextmenu");
7
+ const di_1 = require("@opensumi/di");
8
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
9
+ const next_1 = require("@opensumi/ide-core-browser/lib/menu/next");
10
+ const editorOptions_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/config/editorOptions");
11
+ const dom = (0, tslib_1.__importStar)(require("@opensumi/monaco-editor-core/esm/vs/base/browser/dom"));
12
+ const types_1 = require("../types");
13
+ let EditorContextMenuController = class EditorContextMenuController extends ide_core_browser_1.Disposable {
14
+ constructor(_editor) {
15
+ super();
16
+ this._editor = _editor;
17
+ this.contextKeyService = this.registerDispose(this.globalContextKeyService.createScoped(this._editor.monacoEditor._contextKeyService));
18
+ this.overrideContextmenuContribution(_editor);
19
+ }
20
+ overrideContextmenuContribution(editor) {
21
+ // https://github.com/Microsoft/monaco-editor/issues/1058#issuecomment-468681208
22
+ const contextmenu = editor.monacoEditor.getContribution(contextmenu_1.ContextMenuController.ID);
23
+ const _this = this;
24
+ const originMethod = contextmenu['showContextMenu'];
25
+ // https://github.com/microsoft/vscode/blob/master/src/vs/editor/contrib/contextmenu/contextmenu.ts#L124
26
+ contextmenu['showContextMenu'] = function (anchor) {
27
+ if (!this['_editor'].getOption(editorOptions_1.EditorOption.contextmenu)) {
28
+ return; // Context menu is turned off through configuration
29
+ }
30
+ if (!this['_editor'].hasModel()) {
31
+ return;
32
+ }
33
+ if (!this['_contextMenuService']) {
34
+ this['_editor'].focus();
35
+ return; // We need the context menu service to function
36
+ }
37
+ // Find actions available for menu
38
+ const menuNodes = _this.getMenuNodes();
39
+ // Show menu if we have actions to show
40
+ if (menuNodes.length > 0) {
41
+ _this._doShowContextMenu(menuNodes, anchor);
42
+ }
43
+ };
44
+ this.addDispose({
45
+ dispose: () => {
46
+ contextmenu['_onContextMenu'] = function () {
47
+ originMethod.apply(contextmenu, arguments);
48
+ };
49
+ },
50
+ });
51
+ }
52
+ _doShowContextMenu(menuNodes, anchor) {
53
+ const editor = this._editor.monacoEditor;
54
+ // https://github.com/microsoft/vscode/blob/master/src/vs/editor/contrib/contextmenu/contextmenu.ts#L196
55
+ if (!editor.hasModel()) {
56
+ return;
57
+ }
58
+ // Disable hover
59
+ const oldHoverSetting = this._editor.monacoEditor.getOption(monaco.editor.EditorOption.hover);
60
+ this._editor.monacoEditor.updateOptions({
61
+ hover: {
62
+ enabled: false,
63
+ },
64
+ });
65
+ if (!anchor) {
66
+ // Ensure selection is visible
67
+ editor.revealPosition(editor.getPosition(), monaco.editor.ScrollType.Immediate);
68
+ editor.render();
69
+ const cursorCoords = editor.getScrolledVisiblePosition(editor.getPosition());
70
+ // Translate to absolute editor position
71
+ const editorCoords = dom.getDomNodePagePosition(editor.getDomNode());
72
+ const posx = editorCoords.left + cursorCoords.left;
73
+ const posy = editorCoords.top + cursorCoords.top + cursorCoords.height;
74
+ anchor = { x: posx, y: posy };
75
+ }
76
+ // Show the context menu
77
+ this.contextMenuRenderer.show({
78
+ anchor: {
79
+ x: anchor.x - window.scrollX,
80
+ y: anchor.y - window.scrollY,
81
+ },
82
+ menuNodes,
83
+ args: [this._editor.currentUri],
84
+ onHide: (canceled) => {
85
+ // 无论是否取消都应该恢复 hover 的设置
86
+ this._editor.monacoEditor.updateOptions({
87
+ hover: oldHoverSetting,
88
+ });
89
+ // 右键菜单关闭后应该使编辑器重新 focus
90
+ // 原因是一些内置的 command (copy/cut/paste) 在执行时会在对应的 focusedEditor 执行,如果找不到 focusedEditor 则不会执行命令
91
+ this._editor.monacoEditor.focus();
92
+ },
93
+ });
94
+ }
95
+ getMenuNodes() {
96
+ const contextMenu = this.contextMenuService.createMenu({
97
+ id: next_1.MenuId.EditorContext,
98
+ contextKeyService: this.contextKeyService,
99
+ });
100
+ const menuNodes = contextMenu.getMergedMenuNodes();
101
+ contextMenu.dispose();
102
+ return menuNodes;
103
+ }
104
+ };
105
+ (0, tslib_1.__decorate)([
106
+ (0, di_1.Autowired)(next_1.AbstractContextMenuService),
107
+ (0, tslib_1.__metadata)("design:type", next_1.AbstractContextMenuService)
108
+ ], EditorContextMenuController.prototype, "contextMenuService", void 0);
109
+ (0, tslib_1.__decorate)([
110
+ (0, di_1.Autowired)(ide_core_browser_1.IContextKeyService),
111
+ (0, tslib_1.__metadata)("design:type", Object)
112
+ ], EditorContextMenuController.prototype, "globalContextKeyService", void 0);
113
+ (0, tslib_1.__decorate)([
114
+ (0, di_1.Autowired)(next_1.ICtxMenuRenderer),
115
+ (0, tslib_1.__metadata)("design:type", next_1.ICtxMenuRenderer)
116
+ ], EditorContextMenuController.prototype, "contextMenuRenderer", void 0);
117
+ EditorContextMenuController = (0, tslib_1.__decorate)([
118
+ (0, di_1.Injectable)({ multiple: true }),
119
+ (0, tslib_1.__metadata)("design:paramtypes", [Object])
120
+ ], EditorContextMenuController);
121
+ exports.EditorContextMenuController = EditorContextMenuController;
122
+ let EditorContextMenuBrowserEditorContribution = class EditorContextMenuBrowserEditorContribution {
123
+ registerEditorFeature(registry) {
124
+ registry.registerEditorFeatureContribution({
125
+ contribute: (editor) => {
126
+ return this.injector.get(EditorContextMenuController, [editor]);
127
+ },
128
+ });
129
+ }
130
+ };
131
+ (0, tslib_1.__decorate)([
132
+ (0, di_1.Autowired)(di_1.INJECTOR_TOKEN),
133
+ (0, tslib_1.__metadata)("design:type", di_1.Injector)
134
+ ], EditorContextMenuBrowserEditorContribution.prototype, "injector", void 0);
135
+ EditorContextMenuBrowserEditorContribution = (0, tslib_1.__decorate)([
136
+ (0, ide_core_browser_1.Domain)(types_1.BrowserEditorContribution)
137
+ ], EditorContextMenuBrowserEditorContribution);
138
+ exports.EditorContextMenuBrowserEditorContribution = EditorContextMenuBrowserEditorContribution;
139
+ //# sourceMappingURL=editor.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.context.js","sourceRoot":"","sources":["../../../src/browser/menu/editor.context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { IEditorActionRegistry } from '../types';
2
+ import { IDisposable, Disposable, ILogger } from '@opensumi/ide-core-browser';
3
+ import { IEditorGroup } from '../../common';
4
+ import { IMenu } from '@opensumi/ide-core-browser/lib/menu/next';
5
+ export declare class EditorActionRegistryImpl extends Disposable implements IEditorActionRegistry {
6
+ private _cachedMenus;
7
+ private contextKeyService;
8
+ private readonly menuService;
9
+ logger: ILogger;
10
+ registerEditorAction(): IDisposable;
11
+ getMenu(group: IEditorGroup): IMenu;
12
+ }
13
+ //# sourceMappingURL=editor.menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.menu.d.ts","sourceRoot":"","sources":["../../../src/browser/menu/editor.menu.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAsB,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAU,KAAK,EAAuB,MAAM,0CAA0C,CAAC;AAG9F,qBACa,wBAAyB,SAAQ,UAAW,YAAW,qBAAqB;IAEvF,OAAO,CAAC,YAAY,CAA4B;IAGhD,OAAO,CAAC,iBAAiB,CAAqB;IAG9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAGlD,MAAM,EAAE,OAAO,CAAC;IAEhB,oBAAoB,IAAI,WAAW;IAKnC,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK;CAepC"}