@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
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.asDiagnostic = exports.asDiagnostics = exports.asRelatedInformation = exports.asRelatedInformations = exports.asSeverity = exports.DiagnosticTag = exports.DiagnosticSeverity = exports.ILanguageService = void 0;
3
+ exports.asMonacoDiagnostic = exports.asMonacoDiagnostics = exports.asRelatedInformation = exports.asRelatedInformations = exports.asSeverity = exports.DiagnosticTag = exports.DiagnosticSeverity = exports.ILanguageService = void 0;
4
4
  const ide_core_common_1 = require("@opensumi/ide-core-common");
5
5
  const uri_1 = require("@opensumi/monaco-editor-core/esm/vs/base/common/uri");
6
6
  exports.ILanguageService = Symbol('ILanguageService');
@@ -47,19 +47,27 @@ function asRelatedInformation(relatedInformation) {
47
47
  };
48
48
  }
49
49
  exports.asRelatedInformation = asRelatedInformation;
50
- function asDiagnostics(diagnostics) {
50
+ function asMonacoDiagnostics(diagnostics) {
51
51
  if (!diagnostics) {
52
52
  return undefined;
53
53
  }
54
- return diagnostics.map((diagnostic) => asDiagnostic(diagnostic));
54
+ return diagnostics.map((diagnostic) => asMonacoDiagnostic(diagnostic));
55
55
  }
56
- exports.asDiagnostics = asDiagnostics;
57
- function asDiagnostic(diagnostic) {
56
+ exports.asMonacoDiagnostics = asMonacoDiagnostics;
57
+ function asMonacoDiagnostic(diagnostic) {
58
58
  return {
59
- code: typeof diagnostic.code === 'number' ? diagnostic.code.toString() : diagnostic.code,
59
+ code: typeof diagnostic.code === 'number'
60
+ ? diagnostic.code.toString()
61
+ : typeof diagnostic.code === 'object'
62
+ ? {
63
+ value: diagnostic.code.value.toString(),
64
+ target: diagnostic.code.target,
65
+ }
66
+ : diagnostic.code,
60
67
  severity: asSeverity(diagnostic.severity),
61
68
  message: diagnostic.message,
62
69
  source: diagnostic.source,
70
+ // language server range is 0-based, marker is 1-based
63
71
  startLineNumber: diagnostic.range.start.line + 1,
64
72
  startColumn: diagnostic.range.start.character + 1,
65
73
  endLineNumber: diagnostic.range.end.line + 1,
@@ -68,5 +76,5 @@ function asDiagnostic(diagnostic) {
68
76
  tags: diagnostic.tags,
69
77
  };
70
78
  }
71
- exports.asDiagnostic = asDiagnostic;
79
+ exports.asMonacoDiagnostic = asMonacoDiagnostic;
72
80
  //# sourceMappingURL=language.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/common/language.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/common/language.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workbench-editor.service.js","sourceRoot":"","sources":["../../../src/common/mocks/workbench-editor.service.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,+DAA2E;AAI3E,sCAAgH;AAIhH,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,+BAAsB;IAAtE;;QACmB,4BAAuB,GAAG,IAAI,yBAAO,EAAwB,CAAC;QAC/D,2BAAsB,GAAgC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;QAExF,8BAAyB,GAAG,IAAI,yBAAO,EAAQ,CAAC;QACjD,6BAAwB,GAAgB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAE5E,oCAA+B,GAAG,IAAI,yBAAO,EAAgB,CAAC;QAC/D,mCAA8B,GAAwB,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC;IAkCnH,CAAC;IAhCC,KAAK,CAAC,QAAQ,CAAC,GAAS,EAAE,KAAe;QACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAQ,EAAE,OAA8B;QACjD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAU;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,eAAyB;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ,EAAE,KAAe;QACnC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa;IACb,sBAAsB,CAAC,OAA0B;QAC/C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,0BAA0B;QACxB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AA1CY,0BAA0B;IADtC,IAAA,eAAU,GAAE;GACA,0BAA0B,CA0CtC;AA1CY,gEAA0B"}
1
+ {"version":3,"file":"workbench-editor.service.js","sourceRoot":"","sources":["../../../src/common/mocks/workbench-editor.service.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,+DAA2E;AAI3E,sCAAgH;AAIzG,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,+BAAsB;IAA/D;;QACY,4BAAuB,GAAG,IAAI,yBAAO,EAAwB,CAAC;QAC/D,2BAAsB,GAAgC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;QAExF,8BAAyB,GAAG,IAAI,yBAAO,EAAQ,CAAC;QACjD,6BAAwB,GAAgB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAE5E,oCAA+B,GAAG,IAAI,yBAAO,EAAgB,CAAC;QAC/D,mCAA8B,GAAwB,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC;IAkCnH,CAAC;IAhCC,KAAK,CAAC,QAAQ,CAAC,GAAS,EAAE,KAAe;QACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAQ,EAAE,OAA8B;QACjD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAU;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,eAAyB;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ,EAAE,KAAe;QACnC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa;IACb,sBAAsB,CAAC,OAA0B;QAC/C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,0BAA0B;QACxB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AA1CY,0BAA0B;IADtC,IAAA,eAAU,GAAE;GACA,0BAA0B,CA0CtC;AA1CY,gEAA0B"}
@@ -74,7 +74,7 @@ export declare class ResourceDecorationChangeEvent extends BasicEvent<IResourceD
74
74
  }
75
75
  export declare class ResourceDecorationNeedChangeEvent extends BasicEvent<IResourceDecorationChangeEventPayload> {
76
76
  }
77
- export declare type IResourceUpdateType = 'change' | 'remove';
77
+ export type IResourceUpdateType = 'change' | 'remove';
78
78
  export interface IResourceDecoration {
79
79
  dirty: boolean;
80
80
  }
@@ -97,7 +97,7 @@ export interface IResource<MetaData = any> {
97
97
  metadata?: MetaData;
98
98
  deleted?: any;
99
99
  }
100
- export declare type IDiffResource = IResource<{
100
+ export type IDiffResource = IResource<{
101
101
  original: URI;
102
102
  modified: URI;
103
103
  }>;
@@ -108,4 +108,10 @@ export declare enum AskSaveResult {
108
108
  SAVE = 2,
109
109
  CANCEL = 3
110
110
  }
111
+ export type IMergeEditorResource = IResource<{
112
+ ancestor: string;
113
+ input1: string;
114
+ input2: string;
115
+ output: string;
116
+ }>;
111
117
  //# sourceMappingURL=resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/common/resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/common/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAE9F,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;IAE9B,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAEnD,sBAAsB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC;IAEzF,mBAAmB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACjG;;;OAGG;IACH,iCAAiC,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAE/E,KAAK,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAE9E,iBAAiB,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;CAC/C;AAED,8BAAsB,eAAe;IACnC;;OAEG;IACH,QAAQ,CAAC,0BAA0B,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC9D;;OAEG;IACH,QAAQ,CAAC,4BAA4B,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAChE;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAEzD;;;OAGG;IACH,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,WAAW;IAE3E;;OAEG;IACH,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAEnG;;;OAGG;IACH,QAAQ,CAAC,iCAAiC,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IACjF,KAAK,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE7E,QAAQ,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB;IAE7D,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,IAAI;IAE5F;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAExD;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;CACvC;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,UAAU,CAAC,GAAG,CAAC;CAAG;AAE/D,qBAAa,sBAAuB,SAAQ,UAAU,CAAC,GAAG,CAAC;CAAG;AAE9D,qBAAa,mBAAoB,SAAQ,UAAU,CAAC,GAAG,CAAC;CAAG;AAE3D,qBAAa,6BAA8B,SAAQ,UAAU,CAAC,qCAAqC,CAAC;CAAG;AAEvG,qBAAa,iCAAkC,SAAQ,UAAU,CAAC,qCAAqC,CAAC;CAAG;AAE3G,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,qCAAqC;IACpD,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS,CAAC,QAAQ,GAAG,GAAG;IACvC;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,IAAI,EAAE,MAAM,CAAC;IAEb,GAAG,EAAE,GAAG,CAAC;IAET,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,CAAC,CAAC;AAExE,eAAO,MAAM,WAAW,SAAS,CAAC;AAElC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,QAAQ,IAAI,aAAa,CAE7E;AAED,oBAAY,aAAa;IACvB,MAAM,IAAI;IACV,IAAI,IAAI;IACR,MAAM,IAAI;CACX;AAGD,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC"}
@@ -34,4 +34,5 @@ var AskSaveResult;
34
34
  AskSaveResult[AskSaveResult["SAVE"] = 2] = "SAVE";
35
35
  AskSaveResult[AskSaveResult["CANCEL"] = 3] = "CANCEL";
36
36
  })(AskSaveResult = exports.AskSaveResult || (exports.AskSaveResult = {}));
37
+ // #endregion merge editor
37
38
  //# sourceMappingURL=resource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/common/resource.ts"],"names":[],"mappings":";;;AAAA,+DAA8F;AA6B9F,MAAsB,eAAe;CAgDpC;AAhDD,0CAgDC;AAED;;GAEG;AACH,MAAa,uBAAwB,SAAQ,4BAAe;CAAG;AAA/D,0DAA+D;AAE/D,MAAa,sBAAuB,SAAQ,4BAAe;CAAG;AAA9D,wDAA8D;AAE9D,MAAa,mBAAoB,SAAQ,4BAAe;CAAG;AAA3D,kDAA2D;AAE3D,MAAa,6BAA8B,SAAQ,4BAAiD;CAAG;AAAvG,sEAAuG;AAEvG,MAAa,iCAAkC,SAAQ,4BAAiD;CAAG;AAA3G,8EAA2G;AAqC9F,QAAA,WAAW,GAAG,MAAM,CAAC;AAElC,SAAgB,cAAc,CAAC,QAAmB;IAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,KAAK,mBAAW,CAAC;AAC7C,CAAC;AAFD,wCAEC;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,qDAAU,CAAA;IACV,iDAAQ,CAAA;IACR,qDAAU,CAAA;AACZ,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB"}
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/common/resource.ts"],"names":[],"mappings":";;;AAAA,+DAA8F;AA6B9F,MAAsB,eAAe;CAgDpC;AAhDD,0CAgDC;AAED;;GAEG;AACH,MAAa,uBAAwB,SAAQ,4BAAe;CAAG;AAA/D,0DAA+D;AAE/D,MAAa,sBAAuB,SAAQ,4BAAe;CAAG;AAA9D,wDAA8D;AAE9D,MAAa,mBAAoB,SAAQ,4BAAe;CAAG;AAA3D,kDAA2D;AAE3D,MAAa,6BAA8B,SAAQ,4BAAiD;CAAG;AAAvG,sEAAuG;AAEvG,MAAa,iCAAkC,SAAQ,4BAAiD;CAAG;AAA3G,8EAA2G;AAqC9F,QAAA,WAAW,GAAG,MAAM,CAAC;AAElC,SAAgB,cAAc,CAAC,QAAmB;IAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,KAAK,mBAAW,CAAC;AAC7C,CAAC;AAFD,wCAEC;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,qDAAU,CAAA;IACV,iDAAQ,CAAA;IACR,qDAAU,CAAA;AACZ,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB;AASD,0BAA0B"}
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@opensumi/ide-editor",
3
- "version": "2.21.13",
3
+ "version": "2.22.0",
4
4
  "files": [
5
- "lib"
5
+ "lib",
6
+ "src"
6
7
  ],
7
8
  "license": "MIT",
8
9
  "main": "lib/index.js",
9
10
  "typings": "lib/index.d.ts",
10
11
  "scripts": {
11
- "prepublishOnly": "npm run build",
12
+ "prepublishOnly": "yarn run build",
12
13
  "build": "tsc --build ../../configs/ts/references/tsconfig.editor.json"
13
14
  },
14
15
  "repository": {
@@ -16,21 +17,21 @@
16
17
  "url": "git@github.com:opensumi/core.git"
17
18
  },
18
19
  "dependencies": {
19
- "@opensumi/ide-core-common": "2.21.13",
20
- "@opensumi/ide-core-node": "2.21.13",
21
- "@opensumi/ide-file-service": "2.21.13",
22
- "@opensumi/ide-monaco": "2.21.13",
23
- "@opensumi/ide-utils": "2.21.13",
20
+ "@opensumi/ide-core-common": "2.22.0",
21
+ "@opensumi/ide-core-node": "2.22.0",
22
+ "@opensumi/ide-file-service": "2.22.0",
23
+ "@opensumi/ide-monaco": "2.22.0",
24
+ "@opensumi/ide-utils": "2.22.0",
24
25
  "vscode-oniguruma": "1.5.1"
25
26
  },
26
27
  "devDependencies": {
27
- "@opensumi/ide-components": "2.21.13",
28
- "@opensumi/ide-core-browser": "2.21.13",
29
- "@opensumi/ide-dev-tool": "^1.3.1",
30
- "@opensumi/ide-overlay": "2.21.13",
31
- "@opensumi/ide-quick-open": "2.21.13",
32
- "@opensumi/ide-theme": "2.21.13",
33
- "@opensumi/ide-workspace": "2.21.13"
28
+ "@opensumi/ide-components": "2.22.0",
29
+ "@opensumi/ide-core-browser": "2.22.0",
30
+ "@opensumi/ide-dev-tool": "1.3.1",
31
+ "@opensumi/ide-overlay": "2.22.0",
32
+ "@opensumi/ide-quick-open": "2.22.0",
33
+ "@opensumi/ide-theme": "2.22.0",
34
+ "@opensumi/ide-workspace": "2.22.0"
34
35
  },
35
- "gitHead": "1480afacfef7ef11eae65c5cbbddce416f227fe8"
36
+ "gitHead": "927717e1c60f9cf5f01622fd51085b318a175eeb"
36
37
  }
@@ -0,0 +1,299 @@
1
+ import debounce from 'lodash/debounce';
2
+
3
+ import { Autowired, Injectable } from '@opensumi/di';
4
+ import {
5
+ CommandService,
6
+ EDITOR_COMMANDS,
7
+ Event,
8
+ Emitter,
9
+ getSymbolIcon,
10
+ IPosition,
11
+ IRange,
12
+ MaybeNull,
13
+ OnEvent,
14
+ URI,
15
+ WithEventBus,
16
+ LRUMap,
17
+ path,
18
+ Schemes,
19
+ } from '@opensumi/ide-core-browser';
20
+ import { LabelService } from '@opensumi/ide-core-browser/lib/services';
21
+ import { FileStat } from '@opensumi/ide-file-service/lib/common';
22
+ import { IFileServiceClient } from '@opensumi/ide-file-service/lib/common/file-service-client';
23
+ import { IWorkspaceService } from '@opensumi/ide-workspace/lib/common/workspace.interface';
24
+
25
+ import { IEditor } from '../../common';
26
+ import { EditorSelectionChangeEvent, IBreadCrumbPart, IBreadCrumbProvider } from '../types';
27
+
28
+ import { DocumentSymbolChangedEvent, DocumentSymbolStore, INormalizedDocumentSymbol } from './document-symbol';
29
+
30
+ const { Path } = path;
31
+ @Injectable()
32
+ export class DefaultBreadCrumbProvider extends WithEventBus implements IBreadCrumbProvider {
33
+ private _onDidUpdateBreadCrumb = new Emitter<URI>();
34
+ public onDidUpdateBreadCrumb: Event<URI> = this._onDidUpdateBreadCrumb.event;
35
+
36
+ @Autowired(IFileServiceClient)
37
+ fileServiceClient: IFileServiceClient;
38
+
39
+ @Autowired(IWorkspaceService)
40
+ workspaceService: IWorkspaceService;
41
+
42
+ @Autowired(LabelService)
43
+ labelService: LabelService;
44
+
45
+ @Autowired(CommandService)
46
+ commandService: CommandService;
47
+
48
+ @Autowired()
49
+ documentSymbolStore: DocumentSymbolStore;
50
+
51
+ private debouncedFireUriEvent = new Map<string, () => any>();
52
+
53
+ private cachedBreadCrumb = new LRUMap<string, IBreadCrumbPart>(200, 100);
54
+
55
+ handlesUri(uri: URI): boolean {
56
+ return this.fileServiceClient.handlesScheme(uri.scheme);
57
+ }
58
+
59
+ provideBreadCrumbForUri(uri: URI, editor: MaybeNull<IEditor>): IBreadCrumbPart[] {
60
+ return this.getFileParts(uri).concat(this.getDocumentSymbolParts(uri, editor));
61
+ }
62
+
63
+ private getFileParts(uri: URI): IBreadCrumbPart[] {
64
+ const workspaceRoot: URI | undefined = this.workspaceService.workspace
65
+ ? new URI(this.workspaceService.workspace.uri)
66
+ : undefined;
67
+ let root: URI;
68
+ let relativePaths: path.Path;
69
+ if (workspaceRoot && workspaceRoot.isEqualOrParent(uri)) {
70
+ root = workspaceRoot;
71
+ relativePaths = workspaceRoot.relative(uri)!;
72
+ } else {
73
+ root = URI.from({
74
+ scheme: uri.scheme,
75
+ authority: uri.authority,
76
+ });
77
+ relativePaths = uri.path;
78
+ }
79
+
80
+ let p = root.path;
81
+ const result: IBreadCrumbPart[] = [];
82
+ for (const r of relativePaths
83
+ .toString()
84
+ .split(Path.separator)
85
+ .filter((p) => !!p)) {
86
+ p = p.join(r);
87
+ const u = root.withPath(p);
88
+ result.push(this.createFilePartBreadCrumbUri(u, !u.isEqual(uri)));
89
+ }
90
+ return result;
91
+ }
92
+
93
+ private createFilePartBreadCrumbUri(uri: URI, isDirectory: boolean): IBreadCrumbPart {
94
+ const uriString = uri.toString();
95
+ if (this.cachedBreadCrumb.has(uriString)) {
96
+ return this.cachedBreadCrumb.get(uriString)!;
97
+ }
98
+
99
+ const res: IBreadCrumbPart = {
100
+ name: uri.path.base,
101
+ icon: this.labelService.getIcon(uri, { isDirectory }),
102
+ getSiblings: async () => {
103
+ const parentDir = URI.from({
104
+ scheme: uri.scheme,
105
+ }).withPath(uri.path.dir);
106
+ const stat = await this.fileServiceClient.getFileStat(parentDir.toString());
107
+ const parts: IBreadCrumbPart[] = [];
108
+ let currentIndex = -1;
109
+ if (stat && stat.children && stat.children.length > 0) {
110
+ sortByNumeric(stat.children).forEach((file, i) => {
111
+ parts.push(this.createFilePartBreadCrumbUri(new URI(file.uri), file.isDirectory));
112
+ if (currentIndex === -1 && uri.toString() === file.uri) {
113
+ currentIndex = i;
114
+ }
115
+ });
116
+ }
117
+ return {
118
+ parts,
119
+ currentIndex,
120
+ };
121
+ },
122
+ };
123
+
124
+ if (isDirectory) {
125
+ res.getChildren = async () => {
126
+ const stat = await this.fileServiceClient.getFileStat(uri.toString());
127
+ const parts: IBreadCrumbPart[] = [];
128
+ if (stat && stat.children && stat.children.length > 0) {
129
+ sortByNumeric(stat.children).forEach((file, i) => {
130
+ parts.push(this.createFilePartBreadCrumbUri(new URI(file.uri), file.isDirectory));
131
+ });
132
+ }
133
+ return parts;
134
+ };
135
+ } else {
136
+ res.onClick = () => {
137
+ this.commandService.executeCommand(EDITOR_COMMANDS.OPEN_RESOURCE.id, uri);
138
+ };
139
+ }
140
+
141
+ this.cachedBreadCrumb.set(uriString, res);
142
+ return res;
143
+ }
144
+
145
+ private getDocumentSymbolParts(uri: URI, editor: MaybeNull<IEditor>): IBreadCrumbPart[] {
146
+ if (!editor) {
147
+ return [];
148
+ }
149
+ const symbols = this.documentSymbolStore.getDocumentSymbol(uri);
150
+ if (symbols && symbols.length > 0) {
151
+ const currentSymbols = findCurrentDocumentSymbol(symbols, editor.monacoEditor.getPosition());
152
+ if (currentSymbols.length > 0) {
153
+ return currentSymbols.map((symbol) => this.createFromDocumentSymbol(symbol, editor));
154
+ } else {
155
+ return [
156
+ {
157
+ name: '...',
158
+ getSiblings: () => ({
159
+ parts: symbols
160
+ .sort((a, b) => sortByRangeStart(a.range, b.range))
161
+ .map((symbol) => this.createFromDocumentSymbol(symbol, editor)),
162
+ currentIndex: -1,
163
+ }),
164
+ },
165
+ ];
166
+ }
167
+ } else {
168
+ return [];
169
+ }
170
+ }
171
+
172
+ private createFromDocumentSymbol(symbol: INormalizedDocumentSymbol, editor: IEditor): IBreadCrumbPart {
173
+ const res: IBreadCrumbPart = {
174
+ name: symbol.name,
175
+ icon: getSymbolIcon(symbol.kind),
176
+ onClick: () => {
177
+ editor.setSelection({
178
+ startColumn: symbol.range.startColumn,
179
+ endColumn: symbol.range.startColumn,
180
+ startLineNumber: symbol.range.startLineNumber,
181
+ endLineNumber: symbol.range.startLineNumber,
182
+ });
183
+ editor.monacoEditor.revealRangeInCenter(symbol.range);
184
+ editor.monacoEditor.focus();
185
+ },
186
+ };
187
+ if (symbol.parent) {
188
+ res.getSiblings = () => ({
189
+ parts: symbol
190
+ .parent!.children!.sort((a, b) => sortByRangeStart(a.range, b.range))
191
+ .map((symbol) => this.createFromDocumentSymbol(symbol, editor)),
192
+ currentIndex: symbol.parent!.children!.indexOf(symbol),
193
+ });
194
+ }
195
+ if (symbol.children && symbol.children.length > 0) {
196
+ res.getChildren = () =>
197
+ symbol
198
+ .children!.sort((a, b) => sortByRangeStart(a.range, b.range))
199
+ .map((symbol) => this.createFromDocumentSymbol(symbol, editor));
200
+ }
201
+ return res;
202
+ }
203
+
204
+ @OnEvent(DocumentSymbolChangedEvent)
205
+ onDocumentSymbolChangedEvent(e: DocumentSymbolChangedEvent) {
206
+ this.notifyUpdate(e.payload);
207
+ }
208
+
209
+ @OnEvent(EditorSelectionChangeEvent)
210
+ onEditorSelectionChangeEvent(e: EditorSelectionChangeEvent) {
211
+ this.notifyUpdate(e.payload.editorUri);
212
+ }
213
+
214
+ private notifyUpdate(uri: URI) {
215
+ if (!this.debouncedFireUriEvent.has(uri.toString())) {
216
+ this.debouncedFireUriEvent.set(
217
+ uri.toString(),
218
+ debounce(
219
+ () => {
220
+ this._onDidUpdateBreadCrumb.fire(uri);
221
+ },
222
+ 100,
223
+ { maxWait: 1000 },
224
+ ),
225
+ );
226
+ }
227
+ this.debouncedFireUriEvent.get(uri.toString())!();
228
+ }
229
+ }
230
+
231
+ export function findCurrentDocumentSymbol(
232
+ documentSymbols: INormalizedDocumentSymbol[],
233
+ position: MaybeNull<IPosition>,
234
+ ): INormalizedDocumentSymbol[] {
235
+ const result: INormalizedDocumentSymbol[] = [];
236
+ if (!position) {
237
+ return result;
238
+ }
239
+ let toFindIn: INormalizedDocumentSymbol[] | undefined = documentSymbols;
240
+ while (toFindIn && toFindIn.length > 0) {
241
+ let found = false;
242
+ for (const documentSymbol of toFindIn) {
243
+ if (positionInRange(position, documentSymbol.range)) {
244
+ result.push(documentSymbol);
245
+ toFindIn = documentSymbol.children;
246
+ found = true;
247
+ break;
248
+ }
249
+ }
250
+ if (!found) {
251
+ break;
252
+ }
253
+ }
254
+ return result;
255
+ }
256
+
257
+ function sortByNumeric(files: FileStat[]): FileStat[] {
258
+ return files.sort((a: FileStat, b: FileStat) => {
259
+ if ((a.isDirectory && b.isDirectory) || (!a.isDirectory && !b.isDirectory)) {
260
+ // numeric 参数确保数字为第一排序优先级
261
+ const nameA = new URI(a.uri).path.name;
262
+ const nameB = new URI(b.uri).path.name;
263
+ return nameA.localeCompare(nameB, 'kn', { numeric: true });
264
+ } else if (a.isDirectory && !b.isDirectory) {
265
+ return -1;
266
+ } else if (!a.isDirectory && b.isDirectory) {
267
+ return 1;
268
+ } else {
269
+ return 0;
270
+ }
271
+ });
272
+ }
273
+
274
+ function positionInRange(pos: IPosition, range: IRange): boolean {
275
+ if (pos.lineNumber < range.startLineNumber) {
276
+ return false;
277
+ } else if (pos.lineNumber === range.startLineNumber) {
278
+ return pos.column >= range.startColumn;
279
+ } else if (pos.lineNumber < range.endLineNumber) {
280
+ return true;
281
+ } else if (pos.lineNumber === range.endLineNumber) {
282
+ return pos.column <= range.endColumn;
283
+ } else {
284
+ return false;
285
+ }
286
+ }
287
+
288
+ function sortByRangeStart(rangeA: IRange, rangeB: IRange) {
289
+ if (rangeA.startLineNumber > rangeB.startLineNumber) {
290
+ return 1;
291
+ } else if (rangeA.startLineNumber < rangeB.startLineNumber) {
292
+ return -1;
293
+ } else {
294
+ if (rangeA.startColumn === rangeB.startColumn) {
295
+ return 0;
296
+ }
297
+ return rangeA.startColumn > rangeB.startColumn ? 1 : -1;
298
+ }
299
+ }
@@ -0,0 +1,187 @@
1
+ import debounce from 'lodash/debounce';
2
+
3
+ import { Injectable, Autowired } from '@opensumi/di';
4
+ import {
5
+ WithEventBus,
6
+ MaybeNull,
7
+ OnEvent,
8
+ BasicEvent,
9
+ URI,
10
+ CancellationTokenSource,
11
+ Deferred,
12
+ CancellationToken,
13
+ } from '@opensumi/ide-core-browser';
14
+ import { languageFeaturesService } from '@opensumi/ide-monaco/lib/browser/monaco-api/languages';
15
+ import { DocumentSymbol, SymbolTag } from '@opensumi/monaco-editor-core/esm/vs/editor/common/languages';
16
+
17
+ import { WorkbenchEditorService } from '../../common';
18
+ import { IEditorDocumentModelService, EditorDocumentModelContentChangedEvent } from '../doc-model/types';
19
+
20
+ @Injectable()
21
+ export class DocumentSymbolStore extends WithEventBus {
22
+ @Autowired(IEditorDocumentModelService)
23
+ editorDocumentModelRegistry: IEditorDocumentModelService;
24
+
25
+ @Autowired(WorkbenchEditorService)
26
+ editorService: WorkbenchEditorService;
27
+
28
+ private documentSymbols = new Map<string, INormalizedDocumentSymbol[] | undefined>();
29
+
30
+ private pendingUpdate = new Set<string>();
31
+
32
+ private debounced = new Map<string, () => any>();
33
+
34
+ private symbolDeferred = new Map<string, Deferred<void>>();
35
+
36
+ constructor() {
37
+ super();
38
+ this.addDispose(
39
+ languageFeaturesService.documentSymbolProvider.onDidChange(() => {
40
+ Array.from(this.documentSymbols.keys()).forEach((uriString) => {
41
+ this.markNeedUpdate(new URI(uriString));
42
+ });
43
+ }),
44
+ );
45
+ }
46
+
47
+ getDocumentSymbol(uri: URI): INormalizedDocumentSymbol[] | undefined {
48
+ if (!this.documentSymbols.has(uri.toString())) {
49
+ this.documentSymbols.set(uri.toString(), undefined);
50
+ this.createDocumentSymbolCache(uri);
51
+ }
52
+ if (this.pendingUpdate.has(uri.toString())) {
53
+ this.updateDocumentSymbolCache(uri);
54
+ }
55
+ return this.documentSymbols.get(uri.toString());
56
+ }
57
+
58
+ /**
59
+ * 等待获取文件 symbol,否则文件搜索一个未打开过的文件 symbols 为空
60
+ */
61
+ async getDocumentSymbolAsync(uri: URI, token?: CancellationToken): Promise<INormalizedDocumentSymbol[] | undefined> {
62
+ const uriStr = uri.toString();
63
+ if (token) {
64
+ token.onCancellationRequested(() => {
65
+ this.symbolDeferred.get(uriStr)?.resolve();
66
+ this.symbolDeferred.delete(uriStr);
67
+ });
68
+ }
69
+ if ((!this.documentSymbols.has(uriStr) || this.pendingUpdate.has(uriStr)) && !this.symbolDeferred.has(uriStr)) {
70
+ this.symbolDeferred.set(uriStr, new Deferred());
71
+ this.updateDocumentSymbolCache(uri);
72
+ }
73
+ await this.symbolDeferred.get(uriStr)?.promise;
74
+ return this.documentSymbols.get(uriStr);
75
+ }
76
+
77
+ async createDocumentSymbolCache(uri: URI) {
78
+ this.updateDocumentSymbolCache(uri);
79
+ }
80
+
81
+ async doUpdateDocumentSymbolCache(uri: URI) {
82
+ this.pendingUpdate.delete(uri.toString());
83
+ const modelRef = await this.editorDocumentModelRegistry.createModelReference(uri);
84
+ if (!modelRef) {
85
+ this.symbolDeferred.get(uri.toString())?.resolve();
86
+ return;
87
+ }
88
+ try {
89
+ const supports = languageFeaturesService.documentSymbolProvider.all(modelRef.instance.getMonacoModel());
90
+ let result: MaybeNull<DocumentSymbol[]>;
91
+ for (const support of supports) {
92
+ result = await support.provideDocumentSymbols(
93
+ modelRef.instance.getMonacoModel(),
94
+ new CancellationTokenSource().token,
95
+ );
96
+ if (result) {
97
+ break;
98
+ }
99
+ }
100
+ if (result) {
101
+ normalizeDocumentSymbols(result, { children: result } as INormalizedDocumentSymbol, uri);
102
+ }
103
+ this.documentSymbols.set(uri.toString(), result as INormalizedDocumentSymbol[]);
104
+ this.eventBus.fire(new DocumentSymbolChangedEvent(uri));
105
+ } finally {
106
+ modelRef.dispose();
107
+ }
108
+ this.symbolDeferred.get(uri.toString())?.resolve();
109
+ }
110
+
111
+ updateDocumentSymbolCache(uri: URI) {
112
+ if (!this.debounced.has(uri.toString())) {
113
+ this.debounced.set(
114
+ uri.toString(),
115
+ debounce(() => this.doUpdateDocumentSymbolCache(uri), 100, { maxWait: 1000 }),
116
+ );
117
+ }
118
+ this.debounced.get(uri.toString())!();
119
+ }
120
+
121
+ @OnEvent(EditorDocumentModelContentChangedEvent)
122
+ onEditorDocumentModelContentChangedEvent(e: EditorDocumentModelContentChangedEvent) {
123
+ if (e.payload.changes && e.payload.changes.length > 0) {
124
+ this.markNeedUpdate(e.payload.uri);
125
+ }
126
+ }
127
+
128
+ private markNeedUpdate(uri: URI) {
129
+ this.pendingUpdate.add(uri.toString());
130
+ if (this.isWatching(uri)) {
131
+ this.updateDocumentSymbolCache(uri);
132
+ }
133
+ }
134
+
135
+ private isWatching(uri: URI): boolean {
136
+ for (const g of this.editorService.editorGroups) {
137
+ if (g.currentResource && g.currentResource.uri.isEqual(uri)) {
138
+ return true;
139
+ }
140
+ }
141
+ return false;
142
+ }
143
+ }
144
+
145
+ export class DocumentSymbolChangedEvent extends BasicEvent<URI> {}
146
+
147
+ export { DocumentSymbol, SymbolTag };
148
+
149
+ export interface INormalizedDocumentSymbol extends DocumentSymbol {
150
+ parent?: INormalizedDocumentSymbol | IDummyRoot;
151
+ children?: INormalizedDocumentSymbol[];
152
+ id: string;
153
+ }
154
+
155
+ export interface IDummyRoot {
156
+ children?: INormalizedDocumentSymbol[];
157
+ }
158
+
159
+ function normalizeDocumentSymbols(
160
+ documentSymbols: DocumentSymbol[],
161
+ parent: INormalizedDocumentSymbol | IDummyRoot,
162
+ uri: URI,
163
+ ): INormalizedDocumentSymbol[] {
164
+ documentSymbols.forEach((documentSymbol, index) => {
165
+ const symbol = documentSymbol as INormalizedDocumentSymbol;
166
+ symbol.parent = parent;
167
+ symbol.id = getSymbolId(uri, symbol, index);
168
+ if (documentSymbol.children && documentSymbol.children.length > 0) {
169
+ normalizeDocumentSymbols(documentSymbol.children, documentSymbol as INormalizedDocumentSymbol, uri);
170
+ }
171
+ });
172
+ return documentSymbols as INormalizedDocumentSymbol[];
173
+ }
174
+
175
+ function getSymbolId(uri: URI, symbol: INormalizedDocumentSymbol, index: number) {
176
+ const symbolNameList: string[] = [symbol.name];
177
+ while (symbol.parent) {
178
+ const parent = symbol.parent as INormalizedDocumentSymbol;
179
+ // dummyRoot
180
+ if (!parent.name) {
181
+ break;
182
+ }
183
+ symbolNameList.unshift(parent.name);
184
+ symbol = parent;
185
+ }
186
+ return `${uri.toString()}__${symbolNameList.join('-')}__${index}`;
187
+ }