@difizen/libro-cofine-editor 0.1.13 → 0.1.15

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.
@@ -1,10 +1,13 @@
1
- import type { CodeEditorFactory } from '@difizen/libro-code-editor';
1
+ import type { CodeEditorFactory, EditorStateFactory } from '@difizen/libro-code-editor';
2
2
  import { CodeEditorContribution } from '@difizen/libro-code-editor';
3
+ import { LanguageSpecRegistry } from './language-specs.js';
3
4
  import { LibroE2EditorFactory } from './libro-e2-editor.js';
4
5
  export declare class LibroE2EditorContribution implements CodeEditorContribution {
6
+ protected readonly languageSpecRegistry: LanguageSpecRegistry;
5
7
  factory: CodeEditorFactory;
6
8
  defaultConfig: Required<import("./libro-e2-editor.js").LibroE2EditorConfig>;
7
9
  constructor(libroE2EditorFactory: LibroE2EditorFactory);
10
+ stateFactory: EditorStateFactory<any>;
8
11
  canHandle(mime: string): number;
9
12
  }
10
13
  //# sourceMappingURL=editor-contribution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-contribution.d.ts","sourceRoot":"","sources":["../src/editor-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAwB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAElF,qBACa,yBAA0B,YAAW,sBAAsB;IACtE,OAAO,EAAE,iBAAiB,CAAC;IAE3B,aAAa,+DAAwB;gBAGL,oBAAoB,EAAE,oBAAoB;IAK1E,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAWhC"}
1
+ {"version":3,"file":"editor-contribution.d.ts","sourceRoot":"","sources":["../src/editor-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAGL,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAE9B,qBACa,yBAA0B,YAAW,sBAAsB;IAEtE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE9D,OAAO,EAAE,iBAAiB,CAAC;IAE3B,aAAa,+DAAwB;gBAGL,oBAAoB,EAAE,oBAAoB;IAK1E,YAAY,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAKnC;IAEF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAWhC"}
@@ -1,19 +1,31 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _dec, _class;
2
+ var _dec, _dec2, _class, _class2, _descriptor;
3
+ function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
3
4
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4
5
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
5
6
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
6
7
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
8
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
+ function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
10
+ function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }
8
11
  import { CodeEditorContribution } from '@difizen/libro-code-editor';
9
12
  import { inject, singleton } from '@difizen/mana-app';
10
- import { libroE2DefaultConfig, LibroE2EditorFactory } from "./libro-e2-editor.js";
13
+ import { LanguageSpecRegistry } from "./language-specs.js";
14
+ import { e2StateFactory, libroE2DefaultConfig, LibroE2EditorFactory } from "./libro-e2-editor.js";
11
15
  export var LibroE2EditorContribution = (_dec = singleton({
12
16
  contrib: [CodeEditorContribution]
13
- }), _dec(_class = /*#__PURE__*/function () {
17
+ }), _dec2 = inject(LanguageSpecRegistry), _dec(_class = (_class2 = /*#__PURE__*/function () {
14
18
  function LibroE2EditorContribution(libroE2EditorFactory) {
19
+ var _this = this;
15
20
  _classCallCheck(this, LibroE2EditorContribution);
21
+ _initializerDefineProperty(this, "languageSpecRegistry", _descriptor, this);
16
22
  this.defaultConfig = libroE2DefaultConfig;
23
+ this.stateFactory = function (options) {
24
+ return e2StateFactory(_this.languageSpecRegistry)({
25
+ uuid: options.uuid,
26
+ model: options.model
27
+ });
28
+ };
17
29
  this.factory = libroE2EditorFactory;
18
30
  }
19
31
  LibroE2EditorContribution = inject(LibroE2EditorFactory)(LibroE2EditorContribution, undefined, 0) || LibroE2EditorContribution;
@@ -28,4 +40,9 @@ export var LibroE2EditorContribution = (_dec = singleton({
28
40
  }
29
41
  }]);
30
42
  return LibroE2EditorContribution;
31
- }()) || _class);
43
+ }(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "languageSpecRegistry", [_dec2], {
44
+ configurable: true,
45
+ enumerable: true,
46
+ writable: true,
47
+ initializer: null
48
+ })), _class2)) || _class);
@@ -1 +1 @@
1
- {"version":3,"file":"completion-provider.d.ts","sourceRoot":"","sources":["../../../src/language/lsp/completion-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAC;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGzE,qBAAa,kBACX,SAAQ,uBACR,YAAW,MAAM,CAAC,SAAS,CAAC,sBAAsB;IAElD,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjC,sBAAsB,UACpB,OAAO,MAAM,CAAC,UAAU,YACrB,OAAO,QAAQ,KACxB,QAAQ,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CAGrD;IAEF,SAAS,CAAC,gCAAgC,UACjC,OAAO,MAAM,CAAC,UAAU,YACrB,OAAO,QAAQ,KACxB,QAAQ,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CAuCrD;IAEF,SAAS,CAAC,mCAAmC,UACpC,OAAO,MAAM,CAAC,UAAU,YACrB,OAAO,QAAQ,KACxB,QAAQ,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CA8DrD;IAEF,qBAAqB,SACb,gBAAgB,CAAC,cAAc,SAC9B,OAAO,iBAAiB,KAC9B,QAAQ,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CAcrD;IAEF,mBAAmB,CACjB,IAAI,EAAE,GAAG,CAAC,cAAc,EACxB,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,GAC3D,MAAM,CAAC,SAAS,CAAC,cAAc;CAgDnC"}
1
+ {"version":3,"file":"completion-provider.d.ts","sourceRoot":"","sources":["../../../src/language/lsp/completion-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAC;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGzE,qBAAa,kBACX,SAAQ,uBACR,YAAW,MAAM,CAAC,SAAS,CAAC,sBAAsB;IAElD,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjC,sBAAsB,UACpB,OAAO,MAAM,CAAC,UAAU,YACrB,OAAO,QAAQ,KACxB,QAAQ,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CAGrD;IAEF,SAAS,CAAC,gCAAgC,UACjC,OAAO,MAAM,CAAC,UAAU,YACrB,OAAO,QAAQ,KACxB,QAAQ,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CAuCrD;IAEF,SAAS,CAAC,mCAAmC,UACpC,OAAO,MAAM,CAAC,UAAU,YACrB,OAAO,QAAQ,KACxB,QAAQ,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CA8DrD;IAEF,qBAAqB,SACb,gBAAgB,CAAC,cAAc,SAC9B,OAAO,iBAAiB,KAC9B,QAAQ,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CAarD;IAEF,mBAAmB,CACjB,IAAI,EAAE,GAAG,CAAC,cAAc,EACxB,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,GAC3D,MAAM,CAAC,SAAS,CAAC,cAAc;CAgDnC"}
@@ -196,7 +196,7 @@ export var CompletionProvider = /*#__PURE__*/function (_LangaugeFeatureProvi) {
196
196
  }();
197
197
  _this.resolveCompletionItem = /*#__PURE__*/function () {
198
198
  var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(item, token) {
199
- var original, itemResult, resolve;
199
+ var original, lspConnection, itemResult, resolve;
200
200
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
201
201
  while (1) switch (_context4.prev = _context4.next) {
202
202
  case 0:
@@ -208,18 +208,22 @@ export var CompletionProvider = /*#__PURE__*/function (_LangaugeFeatureProvi) {
208
208
  return _context4.abrupt("return");
209
209
  case 3:
210
210
  _context4.next = 5;
211
- return _this.lspConnection.clientRequests['completionItem/resolve'].request(original);
211
+ return _this.getLSPConnection();
212
212
  case 5:
213
+ lspConnection = _context4.sent;
214
+ _context4.next = 8;
215
+ return lspConnection.clientRequests['completionItem/resolve'].request(original);
216
+ case 8:
213
217
  itemResult = _context4.sent;
214
218
  if (!token.isCancellationRequested) {
215
- _context4.next = 8;
219
+ _context4.next = 11;
216
220
  break;
217
221
  }
218
222
  return _context4.abrupt("return");
219
- case 8:
223
+ case 11:
220
224
  resolve = _this.transformCompletion(itemResult, item.range);
221
225
  return _context4.abrupt("return", resolve);
222
- case 10:
226
+ case 13:
223
227
  case "end":
224
228
  return _context4.stop();
225
229
  }
@@ -1,5 +1,5 @@
1
1
  import type { LibroService } from '@difizen/libro-core';
2
- import type { LSPConnection, VirtualDocument } from '@difizen/libro-lsp';
2
+ import type { ILSPDocumentConnectionManager } from '@difizen/libro-lsp';
3
3
  import { DisposableCollection } from '@difizen/mana-app';
4
4
  import type { Disposable } from '@difizen/mana-app';
5
5
  import * as monaco from '@difizen/monaco-editor-core';
@@ -12,7 +12,7 @@ export declare enum MarkerSeverity {
12
12
  }
13
13
  export declare class DiagnosticProvider extends LangaugeFeatureProvider implements Disposable {
14
14
  protected toDispose: DisposableCollection;
15
- constructor(libroService: LibroService, lspConnection: LSPConnection, virtualDocument: VirtualDocument);
15
+ constructor(libroService: LibroService, lspDocumentConnectionManager: ILSPDocumentConnectionManager);
16
16
  protected diagnosticList: {
17
17
  model: monaco.editor.ITextModel;
18
18
  markers: monaco.editor.IMarkerData[];
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-provider.d.ts","sourceRoot":"","sources":["../../../src/language/lsp/diagnostic-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AAKtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,oBAAY,cAAc;IACxB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,OAAO,IAAI;IACX,KAAK,IAAI;CACV;AASD,qBAAa,kBAAmB,SAAQ,uBAAwB,YAAW,UAAU;IACnF,SAAS,CAAC,SAAS,uBAA8B;gBAE/C,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe;IAMlC,SAAS,CAAC,cAAc,EAAE;QACxB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;KACtC,EAAE,CAAM;IAET,SAAS,CAAC,aAAa,CACrB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;IAgBnC,SAAS,CAAC,eAAe;IAazB,SAAS,CAAC,iBAAiB;IAOrB,iBAAiB;IAuEvB,QAAQ,UAAS;IACjB,OAAO;CAQR"}
1
+ {"version":3,"file":"diagnostic-provider.d.ts","sourceRoot":"","sources":["../../../src/language/lsp/diagnostic-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AAKtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,oBAAY,cAAc;IACxB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,OAAO,IAAI;IACX,KAAK,IAAI;CACV;AASD,qBAAa,kBAAmB,SAAQ,uBAAwB,YAAW,UAAU;IACnF,SAAS,CAAC,SAAS,uBAA8B;gBAE/C,YAAY,EAAE,YAAY,EAC1B,4BAA4B,EAAE,6BAA6B;IAM7D,SAAS,CAAC,cAAc,EAAE;QACxB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;KACtC,EAAE,CAAM;IAET,SAAS,CAAC,aAAa,CACrB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;IAgBnC,SAAS,CAAC,eAAe;IAazB,SAAS,CAAC,iBAAiB;IAOrB,iBAAiB;IA+EvB,QAAQ,UAAS;IACjB,OAAO;CAQR"}
@@ -36,10 +36,10 @@ var vererityMap = {
36
36
  export var DiagnosticProvider = /*#__PURE__*/function (_LangaugeFeatureProvi) {
37
37
  _inherits(DiagnosticProvider, _LangaugeFeatureProvi);
38
38
  var _super = _createSuper(DiagnosticProvider);
39
- function DiagnosticProvider(libroService, lspConnection, virtualDocument) {
39
+ function DiagnosticProvider(libroService, lspDocumentConnectionManager) {
40
40
  var _this;
41
41
  _classCallCheck(this, DiagnosticProvider);
42
- _this = _super.call(this, libroService, lspConnection, virtualDocument);
42
+ _this = _super.call(this, libroService, lspDocumentConnectionManager);
43
43
  _this.toDispose = new DisposableCollection();
44
44
  _this.diagnosticList = [];
45
45
  _this.disposed = false;
@@ -90,71 +90,125 @@ export var DiagnosticProvider = /*#__PURE__*/function (_LangaugeFeatureProvi) {
90
90
  }, {
91
91
  key: "processDiagnostic",
92
92
  value: function () {
93
- var _processDiagnostic = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
93
+ var _processDiagnostic = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
94
94
  var _this2 = this;
95
- var toDispose;
96
- return _regeneratorRuntime().wrap(function _callee$(_context) {
97
- while (1) switch (_context.prev = _context.next) {
95
+ var lspConnection, toDispose;
96
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
97
+ while (1) switch (_context3.prev = _context3.next) {
98
98
  case 0:
99
- toDispose = this.lspConnection.serverNotifications['textDocument/publishDiagnostics'].event(function (e) {
100
- _this2.diagnosticList = [];
101
- e.diagnostics.forEach(function (diagnostic) {
102
- var _editor$monacoEditor, _diagnostic$relatedIn;
103
- var range = diagnostic.range;
104
- // the diagnostic range must be in current editor
105
- var editor = _this2.getEditorFromLSPPosition(range);
106
- if (!editor || editor.getOption('lspEnabled') !== true) {
107
- return;
108
- }
109
- var model = editor === null || editor === void 0 || (_editor$monacoEditor = editor.monacoEditor) === null || _editor$monacoEditor === void 0 ? void 0 : _editor$monacoEditor.getModel();
110
- if (!model) {
111
- return;
112
- }
113
- var editorStart = _this2.virtualDocument.transformVirtualToEditor({
114
- line: range.start.line,
115
- ch: range.start.character,
116
- isVirtual: true
117
- });
118
- var editorEnd = _this2.virtualDocument.transformVirtualToEditor({
119
- line: range.end.line,
120
- ch: range.end.character,
121
- isVirtual: true
122
- });
123
- if (!editorStart || !editorEnd) {
124
- return;
125
- }
126
- var markerRange = new MonacoRange(editorStart.line + 1, editorStart.ch, editorEnd.line + 1, editorEnd.ch);
127
- var marker = {
128
- source: diagnostic.source,
129
- tags: diagnostic.tags,
130
- message: diagnostic.message,
131
- code: String(diagnostic.code),
132
- severity: diagnostic.severity ? vererityMap[diagnostic.severity] : monaco.MarkerSeverity.Info,
133
- relatedInformation: (_diagnostic$relatedIn = diagnostic.relatedInformation) === null || _diagnostic$relatedIn === void 0 ? void 0 : _diagnostic$relatedIn.map(function (item) {
134
- return {
135
- message: item.message,
136
- resource: MonacoUri.parse(item.location.uri),
137
- startLineNumber: markerRange.startLineNumber,
138
- startColumn: markerRange.startColumn,
139
- endLineNumber: markerRange.endLineNumber,
140
- endColumn: markerRange.endColumn
141
- };
142
- }),
143
- startLineNumber: editorStart.line + 1,
144
- startColumn: editorStart.ch + 1,
145
- endLineNumber: editorEnd.line + 1,
146
- endColumn: editorEnd.ch + 1
147
- };
148
- _this2.addDiagnostic(model, marker);
149
- });
150
- _this2.displayDiagnostic();
151
- });
152
- this.toDispose.push(toDispose);
99
+ _context3.next = 2;
100
+ return this.getLSPConnection();
153
101
  case 2:
102
+ lspConnection = _context3.sent;
103
+ toDispose = lspConnection.serverNotifications['textDocument/publishDiagnostics'].event( /*#__PURE__*/function () {
104
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(e) {
105
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
106
+ while (1) switch (_context2.prev = _context2.next) {
107
+ case 0:
108
+ _this2.diagnosticList = [];
109
+ _context2.next = 3;
110
+ return Promise.all(e.diagnostics.map( /*#__PURE__*/function () {
111
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(diagnostic) {
112
+ var _editor$monacoEditor, _diagnostic$relatedIn;
113
+ var range, editor, model, virtualDocument, editorStart, editorEnd, markerRange, marker;
114
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
115
+ while (1) switch (_context.prev = _context.next) {
116
+ case 0:
117
+ range = diagnostic.range; // the diagnostic range must be in current editor
118
+ _context.next = 3;
119
+ return _this2.getEditorFromLSPPosition(range);
120
+ case 3:
121
+ editor = _context.sent;
122
+ if (!(!editor || editor.getOption('lspEnabled') !== true)) {
123
+ _context.next = 6;
124
+ break;
125
+ }
126
+ return _context.abrupt("return");
127
+ case 6:
128
+ model = editor === null || editor === void 0 || (_editor$monacoEditor = editor.monacoEditor) === null || _editor$monacoEditor === void 0 ? void 0 : _editor$monacoEditor.getModel();
129
+ if (model) {
130
+ _context.next = 9;
131
+ break;
132
+ }
133
+ return _context.abrupt("return");
134
+ case 9:
135
+ _context.next = 11;
136
+ return _this2.getVirtualDocument();
137
+ case 11:
138
+ virtualDocument = _context.sent;
139
+ if (virtualDocument) {
140
+ _context.next = 14;
141
+ break;
142
+ }
143
+ return _context.abrupt("return");
144
+ case 14:
145
+ editorStart = virtualDocument.transformVirtualToEditor({
146
+ line: range.start.line,
147
+ ch: range.start.character,
148
+ isVirtual: true
149
+ });
150
+ editorEnd = virtualDocument.transformVirtualToEditor({
151
+ line: range.end.line,
152
+ ch: range.end.character,
153
+ isVirtual: true
154
+ });
155
+ if (!(!editorStart || !editorEnd)) {
156
+ _context.next = 18;
157
+ break;
158
+ }
159
+ return _context.abrupt("return");
160
+ case 18:
161
+ markerRange = new MonacoRange(editorStart.line + 1, editorStart.ch, editorEnd.line + 1, editorEnd.ch);
162
+ marker = {
163
+ source: diagnostic.source,
164
+ tags: diagnostic.tags,
165
+ message: diagnostic.message,
166
+ code: String(diagnostic.code),
167
+ severity: diagnostic.severity ? vererityMap[diagnostic.severity] : monaco.MarkerSeverity.Info,
168
+ relatedInformation: (_diagnostic$relatedIn = diagnostic.relatedInformation) === null || _diagnostic$relatedIn === void 0 ? void 0 : _diagnostic$relatedIn.map(function (item) {
169
+ return {
170
+ message: item.message,
171
+ resource: MonacoUri.parse(item.location.uri),
172
+ startLineNumber: markerRange.startLineNumber,
173
+ startColumn: markerRange.startColumn,
174
+ endLineNumber: markerRange.endLineNumber,
175
+ endColumn: markerRange.endColumn
176
+ };
177
+ }),
178
+ startLineNumber: editorStart.line + 1,
179
+ startColumn: editorStart.ch + 1,
180
+ endLineNumber: editorEnd.line + 1,
181
+ endColumn: editorEnd.ch + 1
182
+ };
183
+ _this2.addDiagnostic(model, marker);
184
+ case 21:
185
+ case "end":
186
+ return _context.stop();
187
+ }
188
+ }, _callee);
189
+ }));
190
+ return function (_x2) {
191
+ return _ref2.apply(this, arguments);
192
+ };
193
+ }()));
194
+ case 3:
195
+ _this2.displayDiagnostic();
196
+ case 4:
197
+ case "end":
198
+ return _context2.stop();
199
+ }
200
+ }, _callee2);
201
+ }));
202
+ return function (_x) {
203
+ return _ref.apply(this, arguments);
204
+ };
205
+ }());
206
+ this.toDispose.push(toDispose);
207
+ case 5:
154
208
  case "end":
155
- return _context.stop();
209
+ return _context3.stop();
156
210
  }
157
- }, _callee, this);
211
+ }, _callee3, this);
158
212
  }));
159
213
  function processDiagnostic() {
160
214
  return _processDiagnostic.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"format-provider.d.ts","sourceRoot":"","sources":["../../../src/language/lsp/format-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,qBAAa,cACX,SAAQ,uBACR,YACE,MAAM,CAAC,SAAS,CAAC,8BAA8B,EAC/C,MAAM,CAAC,SAAS,CAAC,mCAAmC;IAEtD,WAAW,SAAqB;IAEhC,mCAAmC,UAC1B,OAAO,MAAM,CAAC,UAAU,SACxB,YAAY,WACV,OAAO,SAAS,CAAC,iBAAiB,SACpC,OAAO,iBAAiB,KAC9B,QAAQ,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,CAErC;IACF,8BAA8B,UACrB,OAAO,MAAM,CAAC,UAAU,WACtB,OAAO,SAAS,CAAC,iBAAiB,SACpC,OAAO,iBAAiB,KAC9B,QAAQ,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,CAErC;IAEF,qBAAqB,UACZ,OAAO,MAAM,CAAC,UAAU,SACxB,YAAY,WACV,OAAO,SAAS,CAAC,iBAAiB,SACpC,OAAO,iBAAiB,KAC9B,QAAQ,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,CAoDrC;CACH"}
1
+ {"version":3,"file":"format-provider.d.ts","sourceRoot":"","sources":["../../../src/language/lsp/format-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,qBAAa,cACX,SAAQ,uBACR,YACE,MAAM,CAAC,SAAS,CAAC,8BAA8B,EAC/C,MAAM,CAAC,SAAS,CAAC,mCAAmC;IAEtD,WAAW,SAAqB;IAEhC,mCAAmC,UAC1B,OAAO,MAAM,CAAC,UAAU,SACxB,YAAY,WACV,OAAO,SAAS,CAAC,iBAAiB,SACpC,OAAO,iBAAiB,KAC9B,QAAQ,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,CAErC;IACF,8BAA8B,UACrB,OAAO,MAAM,CAAC,UAAU,WACtB,OAAO,SAAS,CAAC,iBAAiB,SACpC,OAAO,iBAAiB,KAC9B,QAAQ,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,CAErC;IAEF,qBAAqB,UACZ,OAAO,MAAM,CAAC,UAAU,SACxB,YAAY,WACV,OAAO,SAAS,CAAC,iBAAiB,SACpC,OAAO,iBAAiB,KAC9B,QAAQ,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,CAqDrC;CACH"}
@@ -60,7 +60,7 @@ export var FormatProvider = /*#__PURE__*/function (_LangaugeFeatureProvi) {
60
60
  }();
61
61
  _this.formatDocumentByRange = /*#__PURE__*/function () {
62
62
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(model, range, options, token) {
63
- var provider, doc, result, edits;
63
+ var provider, doc, lspConnection, result, edits;
64
64
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
65
65
  while (1) switch (_context3.prev = _context3.next) {
66
66
  case 0:
@@ -76,7 +76,11 @@ export var FormatProvider = /*#__PURE__*/function (_LangaugeFeatureProvi) {
76
76
  case 5:
77
77
  doc = provider.virtualDocument;
78
78
  _context3.next = 8;
79
- return _this.lspConnection.clientRequests['textDocument/rangeFormatting'].request({
79
+ return _this.getLSPConnection();
80
+ case 8:
81
+ lspConnection = _context3.sent;
82
+ _context3.next = 11;
83
+ return lspConnection.clientRequests['textDocument/rangeFormatting'].request({
80
84
  // TODO: range transform
81
85
  // TODO: pyright-extend supoport range format
82
86
  range: {
@@ -97,20 +101,20 @@ export var FormatProvider = /*#__PURE__*/function (_LangaugeFeatureProvi) {
97
101
  tabSize: options.tabSize
98
102
  }
99
103
  });
100
- case 8:
104
+ case 11:
101
105
  result = _context3.sent;
102
106
  if (!token.isCancellationRequested) {
103
- _context3.next = 11;
107
+ _context3.next = 14;
104
108
  break;
105
109
  }
106
110
  return _context3.abrupt("return", []);
107
- case 11:
111
+ case 14:
108
112
  if (result) {
109
- _context3.next = 13;
113
+ _context3.next = 16;
110
114
  break;
111
115
  }
112
116
  return _context3.abrupt("return", []);
113
- case 13:
117
+ case 16:
114
118
  edits = result.map(function (item) {
115
119
  return {
116
120
  range: {
@@ -123,7 +127,7 @@ export var FormatProvider = /*#__PURE__*/function (_LangaugeFeatureProvi) {
123
127
  };
124
128
  });
125
129
  return _context3.abrupt("return", edits);
126
- case 15:
130
+ case 18:
127
131
  case "end":
128
132
  return _context3.stop();
129
133
  }
@@ -1,17 +1,22 @@
1
1
  import type { LibroService } from '@difizen/libro-core';
2
- import type { LSPProviderResult } from '@difizen/libro-lsp';
3
- import type { LSPConnection, VirtualDocument } from '@difizen/libro-lsp';
2
+ import type { ILSPDocumentConnectionManager } from '@difizen/libro-lsp';
3
+ import type { LSPConnection } from '@difizen/libro-lsp';
4
4
  import type monaco from '@difizen/monaco-editor-core';
5
5
  import type * as lsp from 'vscode-languageserver-protocol';
6
6
  import { LibroE2Editor } from '../../libro-e2-editor.js';
7
7
  export declare class LangaugeFeatureProvider {
8
8
  protected libroService: LibroService;
9
- protected lspProvider?: LSPProviderResult;
10
- protected lspConnection: LSPConnection;
11
- virtualDocument: VirtualDocument;
12
- constructor(libroService: LibroService, lspConnection: LSPConnection, virtualDocument: VirtualDocument);
9
+ lspDocumentConnectionManager: ILSPDocumentConnectionManager;
10
+ constructor(libroService: LibroService, lspDocumentConnectionManager: ILSPDocumentConnectionManager);
11
+ getVirtualDocument(): Promise<import("@difizen/libro-lsp").VirtualDocument | null | undefined>;
12
+ getLSPConnection(): Promise<LSPConnection>;
13
+ /**
14
+ * find cell editor from active notebook by model uri
15
+ * @param model
16
+ * @returns
17
+ */
13
18
  protected getEditorByModel(model: monaco.editor.ITextModel): LibroE2Editor | undefined;
14
- protected getEditorFromLSPPosition(range: lsp.Range): LibroE2Editor | undefined;
15
- protected getProvider(model: monaco.editor.ITextModel): Promise<LSPProviderResult | undefined>;
19
+ protected getEditorFromLSPPosition(range: lsp.Range): Promise<LibroE2Editor | undefined>;
20
+ protected getProvider(model: monaco.editor.ITextModel): Promise<import("@difizen/libro-lsp").LSPProviderResult | undefined>;
16
21
  }
17
22
  //# sourceMappingURL=language-feature-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"language-feature-provider.d.ts","sourceRoot":"","sources":["../../../src/language/lsp/language-feature-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,KAAK,GAAG,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,qBAAa,uBAAuB;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAC1C,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,eAAe,EAAE,eAAe,CAAC;gBAE/B,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe;IAOlC,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;IAoB1D,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK;cAanC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;CAW5D"}
1
+ {"version":3,"file":"language-feature-provider.d.ts","sourceRoot":"","sources":["../../../src/language/lsp/language-feature-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,KAAK,GAAG,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,qBAAa,uBAAuB;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,4BAA4B,EAAE,6BAA6B,CAAC;gBAE1D,YAAY,EAAE,YAAY,EAC1B,4BAA4B,EAAE,6BAA6B;IAMvD,kBAAkB;IAkBlB,gBAAgB;IActB;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;cAoB1C,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK;cAmBzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;CAU5D"}
@@ -10,13 +10,91 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
10
10
  import { EditorCellView } from '@difizen/libro-core';
11
11
  import { LibroE2Editor } from "../../libro-e2-editor.js";
12
12
  export var LangaugeFeatureProvider = /*#__PURE__*/function () {
13
- function LangaugeFeatureProvider(libroService, lspConnection, virtualDocument) {
13
+ function LangaugeFeatureProvider(libroService, lspDocumentConnectionManager) {
14
14
  _classCallCheck(this, LangaugeFeatureProvider);
15
15
  this.libroService = libroService;
16
- this.lspConnection = lspConnection;
17
- this.virtualDocument = virtualDocument;
16
+ this.lspDocumentConnectionManager = lspDocumentConnectionManager;
18
17
  }
19
18
  _createClass(LangaugeFeatureProvider, [{
19
+ key: "getVirtualDocument",
20
+ value: function () {
21
+ var _getVirtualDocument = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
22
+ var libroView, adapter, virtualDocument;
23
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
24
+ while (1) switch (_context.prev = _context.next) {
25
+ case 0:
26
+ libroView = this.libroService.active;
27
+ if (libroView) {
28
+ _context.next = 3;
29
+ break;
30
+ }
31
+ return _context.abrupt("return");
32
+ case 3:
33
+ _context.next = 5;
34
+ return this.lspDocumentConnectionManager.ready;
35
+ case 5:
36
+ adapter = this.lspDocumentConnectionManager.adapters.get(libroView.model.id);
37
+ if (adapter) {
38
+ _context.next = 8;
39
+ break;
40
+ }
41
+ throw new Error('no adapter');
42
+ case 8:
43
+ _context.next = 10;
44
+ return adapter.ready;
45
+ case 10:
46
+ // Get the associated virtual document of the opened document
47
+ virtualDocument = adapter.virtualDocument;
48
+ return _context.abrupt("return", virtualDocument);
49
+ case 12:
50
+ case "end":
51
+ return _context.stop();
52
+ }
53
+ }, _callee, this);
54
+ }));
55
+ function getVirtualDocument() {
56
+ return _getVirtualDocument.apply(this, arguments);
57
+ }
58
+ return getVirtualDocument;
59
+ }()
60
+ }, {
61
+ key: "getLSPConnection",
62
+ value: function () {
63
+ var _getLSPConnection = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
64
+ var virtualDocument, lspConnection;
65
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
66
+ while (1) switch (_context2.prev = _context2.next) {
67
+ case 0:
68
+ _context2.next = 2;
69
+ return this.getVirtualDocument();
70
+ case 2:
71
+ virtualDocument = _context2.sent;
72
+ if (virtualDocument) {
73
+ _context2.next = 5;
74
+ break;
75
+ }
76
+ throw new Error('no virtualDocument');
77
+ case 5:
78
+ // Get the LSP connection of the virtual document.
79
+ lspConnection = this.lspDocumentConnectionManager.connections.get(virtualDocument.uri);
80
+ return _context2.abrupt("return", lspConnection);
81
+ case 7:
82
+ case "end":
83
+ return _context2.stop();
84
+ }
85
+ }, _callee2, this);
86
+ }));
87
+ function getLSPConnection() {
88
+ return _getLSPConnection.apply(this, arguments);
89
+ }
90
+ return getLSPConnection;
91
+ }()
92
+ /**
93
+ * find cell editor from active notebook by model uri
94
+ * @param model
95
+ * @returns
96
+ */
97
+ }, {
20
98
  key: "getEditorByModel",
21
99
  value: function getEditorByModel(model) {
22
100
  var _this$libroService$ac;
@@ -39,47 +117,74 @@ export var LangaugeFeatureProvider = /*#__PURE__*/function () {
39
117
  }
40
118
  }, {
41
119
  key: "getEditorFromLSPPosition",
42
- value: function getEditorFromLSPPosition(range) {
43
- var currentEditor = this.virtualDocument.getEditorAtVirtualLine({
44
- line: range.start.line,
45
- ch: range.start.character,
46
- isVirtual: true
47
- });
48
- var editor = currentEditor.getEditor();
49
- if (editor instanceof LibroE2Editor) {
50
- return editor;
120
+ value: function () {
121
+ var _getEditorFromLSPPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(range) {
122
+ var virtualDocument, currentEditor, _editor;
123
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
124
+ while (1) switch (_context3.prev = _context3.next) {
125
+ case 0:
126
+ _context3.prev = 0;
127
+ _context3.next = 3;
128
+ return this.getVirtualDocument();
129
+ case 3:
130
+ virtualDocument = _context3.sent;
131
+ currentEditor = virtualDocument === null || virtualDocument === void 0 ? void 0 : virtualDocument.getEditorAtVirtualLine({
132
+ line: range.start.line,
133
+ ch: range.start.character,
134
+ isVirtual: true
135
+ });
136
+ _editor = currentEditor === null || currentEditor === void 0 ? void 0 : currentEditor.getEditor();
137
+ if (!(_editor instanceof LibroE2Editor)) {
138
+ _context3.next = 8;
139
+ break;
140
+ }
141
+ return _context3.abrupt("return", _editor);
142
+ case 8:
143
+ return _context3.abrupt("return");
144
+ case 11:
145
+ _context3.prev = 11;
146
+ _context3.t0 = _context3["catch"](0);
147
+ console.warn(_context3.t0);
148
+ return _context3.abrupt("return");
149
+ case 15:
150
+ case "end":
151
+ return _context3.stop();
152
+ }
153
+ }, _callee3, this, [[0, 11]]);
154
+ }));
155
+ function getEditorFromLSPPosition(_x) {
156
+ return _getEditorFromLSPPosition.apply(this, arguments);
51
157
  }
52
- return;
53
- }
158
+ return getEditorFromLSPPosition;
159
+ }()
54
160
  }, {
55
161
  key: "getProvider",
56
162
  value: function () {
57
- var _getProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(model) {
163
+ var _getProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(model) {
58
164
  var _editor$lspProvider;
59
165
  var editor, provider;
60
- return _regeneratorRuntime().wrap(function _callee$(_context) {
61
- while (1) switch (_context.prev = _context.next) {
166
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
167
+ while (1) switch (_context4.prev = _context4.next) {
62
168
  case 0:
63
169
  editor = this.getEditorByModel(model);
64
170
  if (editor) {
65
- _context.next = 3;
171
+ _context4.next = 3;
66
172
  break;
67
173
  }
68
- return _context.abrupt("return");
174
+ return _context4.abrupt("return");
69
175
  case 3:
70
- _context.next = 5;
176
+ _context4.next = 5;
71
177
  return (_editor$lspProvider = editor.lspProvider) === null || _editor$lspProvider === void 0 ? void 0 : _editor$lspProvider.call(editor);
72
178
  case 5:
73
- provider = _context.sent;
74
- this.lspProvider = provider;
75
- return _context.abrupt("return", provider);
76
- case 8:
179
+ provider = _context4.sent;
180
+ return _context4.abrupt("return", provider);
181
+ case 7:
77
182
  case "end":
78
- return _context.stop();
183
+ return _context4.stop();
79
184
  }
80
- }, _callee, this);
185
+ }, _callee4, this);
81
186
  }));
82
- function getProvider(_x) {
187
+ function getProvider(_x2) {
83
188
  return _getProvider.apply(this, arguments);
84
189
  }
85
190
  return getProvider;