@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.
- package/es/editor-contribution.d.ts +4 -1
- package/es/editor-contribution.d.ts.map +1 -1
- package/es/editor-contribution.js +21 -4
- package/es/language/lsp/completion-provider.d.ts.map +1 -1
- package/es/language/lsp/completion-provider.js +9 -5
- package/es/language/lsp/diagnostic-provider.d.ts +2 -2
- package/es/language/lsp/diagnostic-provider.d.ts.map +1 -1
- package/es/language/lsp/diagnostic-provider.js +116 -62
- package/es/language/lsp/format-provider.d.ts.map +1 -1
- package/es/language/lsp/format-provider.js +12 -8
- package/es/language/lsp/language-feature-provider.d.ts +13 -8
- package/es/language/lsp/language-feature-provider.d.ts.map +1 -1
- package/es/language/lsp/language-feature-provider.js +132 -27
- package/es/language/lsp/lsp-contribution.d.ts +5 -8
- package/es/language/lsp/lsp-contribution.d.ts.map +1 -1
- package/es/language/lsp/lsp-contribution.js +48 -129
- package/es/libro-e2-editor.d.ts +13 -4
- package/es/libro-e2-editor.d.ts.map +1 -1
- package/es/libro-e2-editor.js +66 -31
- package/es/module.d.ts.map +1 -1
- package/es/module.js +6 -2
- package/package.json +8 -8
- package/src/editor-contribution.ts +17 -2
- package/src/language/lsp/completion-provider.ts +2 -3
- package/src/language/lsp/diagnostic-provider.ts +70 -63
- package/src/language/lsp/format-provider.ts +2 -1
- package/src/language/lsp/language-feature-provider.ts +58 -20
- package/src/language/lsp/lsp-contribution.ts +64 -100
- package/src/libro-e2-editor.ts +74 -23
- package/src/module.ts +4 -2
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { EditorHandlerContribution
|
|
1
|
+
import { EditorHandlerContribution } from '@difizen/libro-cofine-editor-core';
|
|
2
2
|
import { LibroService } from '@difizen/libro-core';
|
|
3
|
-
import type { LSPConnection } from '@difizen/libro-lsp';
|
|
4
3
|
import { ILSPDocumentConnectionManager } from '@difizen/libro-lsp';
|
|
5
4
|
import { DisposableCollection } from '@difizen/mana-app';
|
|
6
|
-
import
|
|
5
|
+
import type { editor } from '@difizen/monaco-editor-core';
|
|
6
|
+
import { languages } from '@difizen/monaco-editor-core';
|
|
7
7
|
export declare class LSPContribution implements EditorHandlerContribution {
|
|
8
|
-
protected readonly optionsResgistry: LanguageOptionsRegistry;
|
|
9
8
|
protected readonly libroService: LibroService;
|
|
10
9
|
protected readonly lspDocumentConnectionManager: ILSPDocumentConnectionManager;
|
|
11
10
|
protected toDispose: DisposableCollection;
|
|
@@ -13,10 +12,8 @@ export declare class LSPContribution implements EditorHandlerContribution {
|
|
|
13
12
|
beforeCreate(): void;
|
|
14
13
|
afterCreate(editor: any): void;
|
|
15
14
|
canHandle(language: string): boolean;
|
|
16
|
-
getLanguageSelector(model:
|
|
17
|
-
|
|
18
|
-
getLSPConnection(): Promise<LSPConnection>;
|
|
19
|
-
registerLSPFeature(editor: monaco.editor.IStandaloneCodeEditor): void;
|
|
15
|
+
getLanguageSelector(model: editor.ITextModel): languages.LanguageFilter;
|
|
16
|
+
registerLSPFeature(editor: editor.IStandaloneCodeEditor): void;
|
|
20
17
|
protected isDisposed: boolean;
|
|
21
18
|
get disposed(): boolean;
|
|
22
19
|
disposeLanguageFeature(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-contribution.d.ts","sourceRoot":"","sources":["../../../src/language/lsp/lsp-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"lsp-contribution.d.ts","sourceRoot":"","sources":["../../../src/language/lsp/lsp-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAc,oBAAoB,EAAqB,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAYxD,qBAGa,eAAgB,YAAW,yBAAyB;IACzC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,4BAA4B,EAAE,6BAA6B,CAAC;IAE/E,SAAS,CAAC,SAAS,uBAA8B;IAEjD,SAAS,CAAC,QAAQ,WAAc;IAEhC,YAAY;IAGZ,WAAW,CAAC,MAAM,EAAE,GAAG;IAgBvB,SAAS,CAAC,QAAQ,EAAE,MAAM;IAI1B,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,cAAc;IAOvE,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,qBAAqB;IAsDvD,SAAS,CAAC,UAAU,UAAS;IAE7B,IAAI,QAAQ,YAEX;IAED,sBAAsB;IAItB,OAAO;CAIR"}
|
|
@@ -1,14 +1,5 @@
|
|
|
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, _dec2, _dec3,
|
|
3
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
7
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
8
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
9
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
10
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
11
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
2
|
+
var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2;
|
|
12
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 }); }
|
|
13
4
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
14
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); } }
|
|
@@ -17,11 +8,15 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
|
17
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); }
|
|
18
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; }
|
|
19
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.'); }
|
|
20
|
-
import { EditorHandlerContribution
|
|
11
|
+
import { EditorHandlerContribution } from '@difizen/libro-cofine-editor-core';
|
|
21
12
|
import { LibroService } from '@difizen/libro-core';
|
|
22
13
|
import { ILSPDocumentConnectionManager } from '@difizen/libro-lsp';
|
|
23
14
|
import { Disposable, DisposableCollection, inject, singleton } from '@difizen/mana-app';
|
|
24
|
-
import
|
|
15
|
+
import { languages } from '@difizen/monaco-editor-core';
|
|
16
|
+
// import { ILanguageFeaturesService } from '@difizen/monaco-editor-core/esm/vs/editor/common/services/languageFeatures.js';
|
|
17
|
+
// import { StandaloneServices } from '@difizen/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js';
|
|
18
|
+
// import { getSingletonServiceDescriptors } from '@difizen/monaco-editor-core/esm/vs/platform/instantiation/common/extensions.js';
|
|
19
|
+
|
|
25
20
|
import { LibroE2URIScheme } from "../../libro-e2-editor.js";
|
|
26
21
|
import { CompletionProvider } from "./completion-provider.js";
|
|
27
22
|
import { DiagnosticProvider } from "./diagnostic-provider.js";
|
|
@@ -29,12 +24,11 @@ import { HoverProvider } from "./hover-provider.js";
|
|
|
29
24
|
import { SignatureHelpProvider } from "./signature-help-provider.js";
|
|
30
25
|
export var LSPContribution = (_dec = singleton({
|
|
31
26
|
contrib: [EditorHandlerContribution]
|
|
32
|
-
}), _dec2 = inject(
|
|
27
|
+
}), _dec2 = inject(LibroService), _dec3 = inject(ILSPDocumentConnectionManager), _dec(_class = (_class2 = /*#__PURE__*/function () {
|
|
33
28
|
function LSPContribution() {
|
|
34
29
|
_classCallCheck(this, LSPContribution);
|
|
35
|
-
_initializerDefineProperty(this, "
|
|
36
|
-
_initializerDefineProperty(this, "
|
|
37
|
-
_initializerDefineProperty(this, "lspDocumentConnectionManager", _descriptor3, this);
|
|
30
|
+
_initializerDefineProperty(this, "libroService", _descriptor, this);
|
|
31
|
+
_initializerDefineProperty(this, "lspDocumentConnectionManager", _descriptor2, this);
|
|
38
32
|
this.toDispose = new DisposableCollection();
|
|
39
33
|
this.lspLangs = ['python'];
|
|
40
34
|
this.isDisposed = false;
|
|
@@ -48,6 +42,19 @@ export var LSPContribution = (_dec = singleton({
|
|
|
48
42
|
key: "afterCreate",
|
|
49
43
|
value: function afterCreate(editor) {
|
|
50
44
|
this.registerLSPFeature(editor);
|
|
45
|
+
// const languageFeaturesService = getOrigin(StandaloneServices).get(
|
|
46
|
+
// ILanguageFeaturesService,
|
|
47
|
+
// );
|
|
48
|
+
// for (const [id, descriptor] of getSingletonServiceDescriptors()) {
|
|
49
|
+
// if (id === ILanguageFeaturesService) {
|
|
50
|
+
// console.log('lll', descriptor);
|
|
51
|
+
// }
|
|
52
|
+
// }
|
|
53
|
+
// console.log(
|
|
54
|
+
// StandaloneServices,
|
|
55
|
+
// StandaloneServices.initialize(),
|
|
56
|
+
// getOrigin(languageFeaturesService),
|
|
57
|
+
// );
|
|
51
58
|
}
|
|
52
59
|
}, {
|
|
53
60
|
key: "canHandle",
|
|
@@ -62,123 +69,40 @@ export var LSPContribution = (_dec = singleton({
|
|
|
62
69
|
pattern: model.uri.path
|
|
63
70
|
};
|
|
64
71
|
}
|
|
65
|
-
}, {
|
|
66
|
-
key: "getVirtualDocument",
|
|
67
|
-
value: function () {
|
|
68
|
-
var _getVirtualDocument = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
69
|
-
var libroView, adapter, virtualDocument;
|
|
70
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
71
|
-
while (1) switch (_context.prev = _context.next) {
|
|
72
|
-
case 0:
|
|
73
|
-
libroView = this.libroService.active;
|
|
74
|
-
if (libroView) {
|
|
75
|
-
_context.next = 3;
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
return _context.abrupt("return");
|
|
79
|
-
case 3:
|
|
80
|
-
_context.next = 5;
|
|
81
|
-
return this.lspDocumentConnectionManager.ready;
|
|
82
|
-
case 5:
|
|
83
|
-
adapter = this.lspDocumentConnectionManager.adapters.get(libroView.model.id);
|
|
84
|
-
if (adapter) {
|
|
85
|
-
_context.next = 8;
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
throw new Error('no adapter');
|
|
89
|
-
case 8:
|
|
90
|
-
_context.next = 10;
|
|
91
|
-
return adapter.ready;
|
|
92
|
-
case 10:
|
|
93
|
-
// Get the associated virtual document of the opened document
|
|
94
|
-
virtualDocument = adapter.virtualDocument;
|
|
95
|
-
return _context.abrupt("return", virtualDocument);
|
|
96
|
-
case 12:
|
|
97
|
-
case "end":
|
|
98
|
-
return _context.stop();
|
|
99
|
-
}
|
|
100
|
-
}, _callee, this);
|
|
101
|
-
}));
|
|
102
|
-
function getVirtualDocument() {
|
|
103
|
-
return _getVirtualDocument.apply(this, arguments);
|
|
104
|
-
}
|
|
105
|
-
return getVirtualDocument;
|
|
106
|
-
}()
|
|
107
|
-
}, {
|
|
108
|
-
key: "getLSPConnection",
|
|
109
|
-
value: function () {
|
|
110
|
-
var _getLSPConnection = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
111
|
-
var virtualDocument, lspConnection;
|
|
112
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
113
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
114
|
-
case 0:
|
|
115
|
-
_context2.next = 2;
|
|
116
|
-
return this.getVirtualDocument();
|
|
117
|
-
case 2:
|
|
118
|
-
virtualDocument = _context2.sent;
|
|
119
|
-
if (virtualDocument) {
|
|
120
|
-
_context2.next = 5;
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
throw new Error('no virtualDocument');
|
|
124
|
-
case 5:
|
|
125
|
-
// Get the LSP connection of the virtual document.
|
|
126
|
-
lspConnection = this.lspDocumentConnectionManager.connections.get(virtualDocument.uri);
|
|
127
|
-
return _context2.abrupt("return", lspConnection);
|
|
128
|
-
case 7:
|
|
129
|
-
case "end":
|
|
130
|
-
return _context2.stop();
|
|
131
|
-
}
|
|
132
|
-
}, _callee2, this);
|
|
133
|
-
}));
|
|
134
|
-
function getLSPConnection() {
|
|
135
|
-
return _getLSPConnection.apply(this, arguments);
|
|
136
|
-
}
|
|
137
|
-
return getLSPConnection;
|
|
138
|
-
}()
|
|
139
72
|
}, {
|
|
140
73
|
key: "registerLSPFeature",
|
|
141
74
|
value: function registerLSPFeature(editor) {
|
|
142
|
-
var _this = this;
|
|
143
75
|
var model = editor.getModel();
|
|
144
76
|
if (!model) {
|
|
145
77
|
return;
|
|
146
78
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
// formatProvider,
|
|
169
|
-
// );
|
|
170
|
-
// monaco.languages.registerDocumentRangeFormattingEditProvider(
|
|
171
|
-
// this.getLanguageSelector(model),
|
|
172
|
-
// formatProvider,
|
|
173
|
-
// );
|
|
174
|
-
return;
|
|
175
|
-
}).catch(console.error);
|
|
79
|
+
this.toDispose.push(languages.registerCompletionItemProvider(this.getLanguageSelector(model), new CompletionProvider(this.libroService, this.lspDocumentConnectionManager)));
|
|
80
|
+
this.toDispose.push(languages.registerHoverProvider(this.getLanguageSelector(model), new HoverProvider(this.libroService, this.lspDocumentConnectionManager)));
|
|
81
|
+
var provider = new DiagnosticProvider(this.libroService, this.lspDocumentConnectionManager);
|
|
82
|
+
this.toDispose.push(Disposable.create(function () {
|
|
83
|
+
return provider.dispose();
|
|
84
|
+
}));
|
|
85
|
+
this.toDispose.push(languages.registerSignatureHelpProvider(this.getLanguageSelector(model), new SignatureHelpProvider(this.libroService, this.lspDocumentConnectionManager)));
|
|
86
|
+
// const formatProvider = new FormatProvider(
|
|
87
|
+
// this.libroService,
|
|
88
|
+
// lspConnection,
|
|
89
|
+
// virtualDocument,
|
|
90
|
+
// );
|
|
91
|
+
// languages.registerDocumentFormattingEditProvider(
|
|
92
|
+
// this.getLanguageSelector(model),
|
|
93
|
+
// formatProvider,
|
|
94
|
+
// );
|
|
95
|
+
// languages.registerDocumentRangeFormattingEditProvider(
|
|
96
|
+
// this.getLanguageSelector(model),
|
|
97
|
+
// formatProvider,
|
|
98
|
+
// );
|
|
99
|
+
return;
|
|
176
100
|
|
|
177
101
|
// // SignatureHelp
|
|
178
|
-
//
|
|
102
|
+
// languages.registerSignatureHelpProvider(id, new SignatureHelpProvider(this._worker));
|
|
179
103
|
|
|
180
104
|
// // 定义跳转;
|
|
181
|
-
//
|
|
105
|
+
// languages.registerDefinitionProvider(id, new DefinitionAdapter(this._worker));
|
|
182
106
|
}
|
|
183
107
|
}, {
|
|
184
108
|
key: "disposed",
|
|
@@ -198,17 +122,12 @@ export var LSPContribution = (_dec = singleton({
|
|
|
198
122
|
}
|
|
199
123
|
}]);
|
|
200
124
|
return LSPContribution;
|
|
201
|
-
}(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "
|
|
202
|
-
configurable: true,
|
|
203
|
-
enumerable: true,
|
|
204
|
-
writable: true,
|
|
205
|
-
initializer: null
|
|
206
|
-
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "libroService", [_dec3], {
|
|
125
|
+
}(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "libroService", [_dec2], {
|
|
207
126
|
configurable: true,
|
|
208
127
|
enumerable: true,
|
|
209
128
|
writable: true,
|
|
210
129
|
initializer: null
|
|
211
|
-
}),
|
|
130
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "lspDocumentConnectionManager", [_dec3], {
|
|
212
131
|
configurable: true,
|
|
213
132
|
enumerable: true,
|
|
214
133
|
writable: true,
|
package/es/libro-e2-editor.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { CodeEditorFactory, CompletionProvider, ICoordinate, IEditor, IEditorConfig, IEditorOptions, IModel, IPosition, IRange, SearchMatch, TooltipProvider } from '@difizen/libro-code-editor';
|
|
1
|
+
import type { CodeEditorFactory, CompletionProvider, EditorState, EditorStateFactory, ICoordinate, IEditor, IEditorConfig, IEditorOptions, IModel, IPosition, IRange, SearchMatch, TooltipProvider } from '@difizen/libro-code-editor';
|
|
2
2
|
import type { E2Editor } from '@difizen/libro-cofine-editor-core';
|
|
3
3
|
import type { LSPProvider } from '@difizen/libro-lsp';
|
|
4
|
-
import { CommandRegistry, ThemeService } from '@difizen/mana-app';
|
|
4
|
+
import { CommandRegistry, Deferred, ThemeService } from '@difizen/mana-app';
|
|
5
5
|
import { DisposableCollection, Emitter } from '@difizen/mana-app';
|
|
6
6
|
import 'resize-observer-polyfill';
|
|
7
7
|
import { LSPContribution } from './language/lsp/lsp-contribution.js';
|
|
@@ -9,6 +9,7 @@ import { LanguageSpecRegistry } from './language-specs.js';
|
|
|
9
9
|
import { PlaceholderContentWidget } from './placeholder.js';
|
|
10
10
|
import type { MonacoEditorOptions, MonacoEditorType, MonacoMatch } from './types.js';
|
|
11
11
|
import './index.less';
|
|
12
|
+
import * as monaco from '@difizen/monaco-editor-core';
|
|
12
13
|
export interface LibroE2EditorConfig extends IEditorConfig {
|
|
13
14
|
/**
|
|
14
15
|
* The mode to use.
|
|
@@ -154,12 +155,18 @@ export interface LibroE2EditorOptions extends IEditorOptions {
|
|
|
154
155
|
*/
|
|
155
156
|
config?: Partial<LibroE2EditorConfig>;
|
|
156
157
|
}
|
|
158
|
+
export declare const LibroE2EditorState: unique symbol;
|
|
159
|
+
export type LibroE2EditorState = EditorState<E2EditorState>;
|
|
157
160
|
export declare const libroE2DefaultConfig: Required<LibroE2EditorConfig>;
|
|
158
161
|
export declare const LibroE2EditorFactory: unique symbol;
|
|
159
162
|
export type LibroE2EditorFactory = CodeEditorFactory;
|
|
160
163
|
export declare const E2EditorClassname = "libro-e2-editor";
|
|
161
164
|
export declare const LibroE2URIScheme = "libro-e2";
|
|
165
|
+
export type E2EditorState = monaco.editor.ITextModel | null;
|
|
166
|
+
export declare const e2StateFactory: (languageSpecRegistry: LanguageSpecRegistry) => EditorStateFactory<E2EditorState>;
|
|
162
167
|
export declare class LibroE2Editor implements IEditor {
|
|
168
|
+
protected editorReadyDeferred: Deferred<void>;
|
|
169
|
+
editorReady: Promise<void>;
|
|
163
170
|
protected readonly themeService: ThemeService;
|
|
164
171
|
protected readonly languageSpecRegistry: LanguageSpecRegistry;
|
|
165
172
|
protected readonly commandRegistry: CommandRegistry;
|
|
@@ -177,7 +184,7 @@ export declare class LibroE2Editor implements IEditor {
|
|
|
177
184
|
protected placeholder: PlaceholderContentWidget;
|
|
178
185
|
protected oldDeltaDecorations: string[];
|
|
179
186
|
protected _config: LibroE2EditorConfig;
|
|
180
|
-
private
|
|
187
|
+
private intersectionObserver;
|
|
181
188
|
private editorContentHeight;
|
|
182
189
|
protected _uuid: string;
|
|
183
190
|
/**
|
|
@@ -190,6 +197,7 @@ export declare class LibroE2Editor implements IEditor {
|
|
|
190
197
|
* Returns a model for this editor.
|
|
191
198
|
*/
|
|
192
199
|
get model(): IModel;
|
|
200
|
+
editorState: EditorState<E2EditorState>;
|
|
193
201
|
protected _editor?: E2Editor<MonacoEditorType>;
|
|
194
202
|
get editor(): E2Editor<MonacoEditorType> | undefined;
|
|
195
203
|
get monacoEditor(): MonacoEditorType | undefined;
|
|
@@ -198,10 +206,11 @@ export declare class LibroE2Editor implements IEditor {
|
|
|
198
206
|
completionProvider?: CompletionProvider;
|
|
199
207
|
tooltipProvider?: TooltipProvider;
|
|
200
208
|
protected isLayouting: boolean;
|
|
201
|
-
constructor(options: LibroE2EditorOptions, themeService: ThemeService, languageSpecRegistry: LanguageSpecRegistry);
|
|
209
|
+
constructor(options: LibroE2EditorOptions, state: LibroE2EditorState, themeService: ThemeService, languageSpecRegistry: LanguageSpecRegistry);
|
|
202
210
|
get languageSpec(): import("./language-specs.js").LanguageSpec | undefined;
|
|
203
211
|
get theme(): string;
|
|
204
212
|
protected toMonacoOptions(editorConfig: Partial<LibroE2EditorConfig>): MonacoEditorOptions;
|
|
213
|
+
getState(): EditorState<E2EditorState>;
|
|
205
214
|
protected createEditor(host: HTMLElement, config: LibroE2EditorConfig): Promise<void>;
|
|
206
215
|
protected inspectResize(): void;
|
|
207
216
|
protected getEditorNode(): HTMLDivElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libro-e2-editor.d.ts","sourceRoot":"","sources":["../src/libro-e2-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,aAAa,EACb,cAAc,EACd,MAAM,EACN,SAAS,EACT,MAAM,EACN,WAAW,EACX,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAGlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,eAAe,
|
|
1
|
+
{"version":3,"file":"libro-e2-editor.d.ts","sourceRoot":"","sources":["../src/libro-e2-editor.ts"],"names":[],"mappings":"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"}
|
package/es/libro-e2-editor.js
CHANGED
|
@@ -17,7 +17,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
17
17
|
import { defaultConfig } from '@difizen/libro-code-editor';
|
|
18
18
|
import { EditorProvider, MonacoEnvironment } from '@difizen/libro-cofine-editor-core';
|
|
19
19
|
import { NotebookCommands } from '@difizen/libro-core';
|
|
20
|
-
import { CommandRegistry, inject, ThemeService, transient, watch } from '@difizen/mana-app';
|
|
20
|
+
import { CommandRegistry, Deferred, getOrigin, inject, ThemeService, transient, watch } from '@difizen/mana-app';
|
|
21
21
|
import { Disposable, DisposableCollection, Emitter } from '@difizen/mana-app';
|
|
22
22
|
import { editor, Selection } from '@difizen/monaco-editor-core';
|
|
23
23
|
import 'resize-observer-polyfill';
|
|
@@ -27,7 +27,9 @@ import { LanguageSpecRegistry } from "./language-specs.js";
|
|
|
27
27
|
import { PlaceholderContentWidget } from "./placeholder.js";
|
|
28
28
|
import { MonacoRange, MonacoUri } from "./types.js";
|
|
29
29
|
import "./index.less";
|
|
30
|
+
import * as monaco from '@difizen/monaco-editor-core';
|
|
30
31
|
export var LibroE2EditorOptions = Symbol('LibroE2EditorOptions');
|
|
32
|
+
export var LibroE2EditorState = Symbol('LibroE2EditorState');
|
|
31
33
|
export var libroE2DefaultConfig = _objectSpread(_objectSpread({}, defaultConfig), {}, {
|
|
32
34
|
theme: {
|
|
33
35
|
dark: 'libro-dark',
|
|
@@ -82,10 +84,33 @@ export var libroE2DefaultConfig = _objectSpread(_objectSpread({}, defaultConfig)
|
|
|
82
84
|
export var LibroE2EditorFactory = Symbol('LibroE2EditorFactory');
|
|
83
85
|
export var E2EditorClassname = 'libro-e2-editor';
|
|
84
86
|
export var LibroE2URIScheme = 'libro-e2';
|
|
87
|
+
export var e2StateFactory = function e2StateFactory(languageSpecRegistry) {
|
|
88
|
+
return function (options) {
|
|
89
|
+
var spec = languageSpecRegistry.languageSpecs.find(function (item) {
|
|
90
|
+
return item.mime === options.model.mimeType;
|
|
91
|
+
});
|
|
92
|
+
var uri = MonacoUri.from({
|
|
93
|
+
scheme: LibroE2URIScheme,
|
|
94
|
+
path: "".concat(options.uuid).concat(spec === null || spec === void 0 ? void 0 : spec.ext[0])
|
|
95
|
+
});
|
|
96
|
+
var monacoModel = monaco.editor.createModel(options.model.value, spec === null || spec === void 0 ? void 0 : spec.language, uri);
|
|
97
|
+
return {
|
|
98
|
+
state: monacoModel,
|
|
99
|
+
toJSON: function toJSON() {
|
|
100
|
+
return {};
|
|
101
|
+
},
|
|
102
|
+
dispose: function dispose() {
|
|
103
|
+
monacoModel.dispose();
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
};
|
|
85
108
|
export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry), _dec3 = inject(LSPContribution), _dec(_class = (_class2 = /*#__PURE__*/function () {
|
|
86
|
-
function LibroE2Editor(options, themeService, languageSpecRegistry) {
|
|
109
|
+
function LibroE2Editor(options, state, themeService, languageSpecRegistry) {
|
|
87
110
|
var _this = this;
|
|
88
111
|
_classCallCheck(this, LibroE2Editor);
|
|
112
|
+
this.editorReadyDeferred = new Deferred();
|
|
113
|
+
this.editorReady = this.editorReadyDeferred.promise;
|
|
89
114
|
_initializerDefineProperty(this, "commandRegistry", _descriptor, this);
|
|
90
115
|
_initializerDefineProperty(this, "lspContribution", _descriptor2, this);
|
|
91
116
|
this.defaultLineHeight = 20;
|
|
@@ -153,8 +178,10 @@ export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry),
|
|
|
153
178
|
(_this$monacoEditor7 = _this.monacoEditor) === null || _this$monacoEditor7 === void 0 || _this$monacoEditor7.trigger('source', 'redo', {});
|
|
154
179
|
};
|
|
155
180
|
this.focus = function () {
|
|
156
|
-
|
|
157
|
-
|
|
181
|
+
window.requestAnimationFrame(function () {
|
|
182
|
+
var _this$monacoEditor8;
|
|
183
|
+
(_this$monacoEditor8 = _this.monacoEditor) === null || _this$monacoEditor8 === void 0 || _this$monacoEditor8.focus();
|
|
184
|
+
});
|
|
158
185
|
};
|
|
159
186
|
this.hasFocus = function () {
|
|
160
187
|
var _this$monacoEditor$ha, _this$monacoEditor9;
|
|
@@ -311,8 +338,8 @@ export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry),
|
|
|
311
338
|
_this._isDisposed = true;
|
|
312
339
|
};
|
|
313
340
|
this.disposeResizeObserver = function () {
|
|
314
|
-
if (_this.
|
|
315
|
-
_this.
|
|
341
|
+
if (_this.intersectionObserver) {
|
|
342
|
+
getOrigin(_this.intersectionObserver).disconnect();
|
|
316
343
|
}
|
|
317
344
|
};
|
|
318
345
|
this.themeService = themeService;
|
|
@@ -330,6 +357,7 @@ export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry),
|
|
|
330
357
|
this.lspProvider = options.lspProvider;
|
|
331
358
|
this.editorHost = document.createElement('div');
|
|
332
359
|
this.host.append(this.editorHost);
|
|
360
|
+
this.editorState = state;
|
|
333
361
|
this.createEditor(this.editorHost, fullConfig);
|
|
334
362
|
this.onMimeTypeChanged();
|
|
335
363
|
this.onCursorActivity();
|
|
@@ -338,8 +366,9 @@ export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry),
|
|
|
338
366
|
this.toDispose.push(watch(this._model, 'selections', this.onSelectionChange));
|
|
339
367
|
this.toDispose.push(this.themeService.onDidColorThemeChange(this.onThemeChange));
|
|
340
368
|
}
|
|
341
|
-
LibroE2Editor = inject(LanguageSpecRegistry)(LibroE2Editor, undefined,
|
|
342
|
-
LibroE2Editor = inject(ThemeService)(LibroE2Editor, undefined,
|
|
369
|
+
LibroE2Editor = inject(LanguageSpecRegistry)(LibroE2Editor, undefined, 3) || LibroE2Editor;
|
|
370
|
+
LibroE2Editor = inject(ThemeService)(LibroE2Editor, undefined, 2) || LibroE2Editor;
|
|
371
|
+
LibroE2Editor = inject(LibroE2EditorState)(LibroE2Editor, undefined, 1) || LibroE2Editor;
|
|
343
372
|
LibroE2Editor = inject(LibroE2EditorOptions)(LibroE2Editor, undefined, 0) || LibroE2Editor;
|
|
344
373
|
_createClass(LibroE2Editor, [{
|
|
345
374
|
key: "uuid",
|
|
@@ -409,7 +438,7 @@ export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry),
|
|
|
409
438
|
lineDecorationsWidth: 15,
|
|
410
439
|
lineNumbersMinChars: 3,
|
|
411
440
|
suggestSelection: 'first',
|
|
412
|
-
wordBasedSuggestions:
|
|
441
|
+
wordBasedSuggestions: false,
|
|
413
442
|
scrollBeyondLastLine: false,
|
|
414
443
|
/**
|
|
415
444
|
* 使用该选项可以让modal widget出现在正确的范围,而不是被遮挡,解决z-index问题,但是会导致hover组件之类的无法被选中
|
|
@@ -443,10 +472,23 @@ export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry),
|
|
|
443
472
|
rulers: editorConfig.rulers,
|
|
444
473
|
wordWrapColumn: editorConfig.wordWrapColumn,
|
|
445
474
|
'semanticHighlighting.enabled': true,
|
|
446
|
-
maxTokenizationLineLength: 10000
|
|
475
|
+
maxTokenizationLineLength: 10000,
|
|
447
476
|
// wrappingStrategy: 'advanced',
|
|
477
|
+
hover: {
|
|
478
|
+
enabled: true
|
|
479
|
+
}
|
|
448
480
|
};
|
|
449
481
|
}
|
|
482
|
+
}, {
|
|
483
|
+
key: "getState",
|
|
484
|
+
value: function getState() {
|
|
485
|
+
var cursorPosition = this.getCursorPosition();
|
|
486
|
+
var selections = this.getSelections();
|
|
487
|
+
return _objectSpread(_objectSpread({}, this.editorState), {}, {
|
|
488
|
+
cursorPosition: cursorPosition,
|
|
489
|
+
selections: selections
|
|
490
|
+
});
|
|
491
|
+
}
|
|
450
492
|
}, {
|
|
451
493
|
key: "createEditor",
|
|
452
494
|
value: function () {
|
|
@@ -462,7 +504,7 @@ export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry),
|
|
|
462
504
|
_this$monacoEditor32,
|
|
463
505
|
_this$languageSpec2,
|
|
464
506
|
_this$languageSpec2$a;
|
|
465
|
-
var editorConfig, editorPorvider,
|
|
507
|
+
var editorConfig, editorPorvider, model, options;
|
|
466
508
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
467
509
|
while (1) switch (_context.prev = _context.next) {
|
|
468
510
|
case 0:
|
|
@@ -482,21 +524,16 @@ export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry),
|
|
|
482
524
|
return (_this$languageSpec = this.languageSpec) === null || _this$languageSpec === void 0 || (_this$languageSpec$be = _this$languageSpec.beforeEditorInit) === null || _this$languageSpec$be === void 0 ? void 0 : _this$languageSpec$be.call(_this$languageSpec);
|
|
483
525
|
case 8:
|
|
484
526
|
editorPorvider = MonacoEnvironment.container.get(EditorProvider);
|
|
485
|
-
|
|
486
|
-
scheme: LibroE2URIScheme,
|
|
487
|
-
path: "".concat(this.uuid).concat(this.languageSpec.ext[0])
|
|
488
|
-
});
|
|
527
|
+
model = this.editorState.state;
|
|
489
528
|
options = _objectSpread(_objectSpread({}, this.toMonacoOptions(editorConfig)), {}, {
|
|
490
529
|
/**
|
|
491
530
|
* language ia an uri:
|
|
492
531
|
*/
|
|
493
532
|
language: this.languageSpec.language,
|
|
494
|
-
uri: uri,
|
|
495
533
|
theme: this.theme,
|
|
496
|
-
|
|
534
|
+
model: getOrigin(model)
|
|
497
535
|
});
|
|
498
|
-
|
|
499
|
-
this._editor = e2Editor;
|
|
536
|
+
this._editor = editorPorvider.create(host, options);
|
|
500
537
|
this.toDispose.push((_this$monacoEditor$on = (_this$monacoEditor30 = this.monacoEditor) === null || _this$monacoEditor30 === void 0 ? void 0 : _this$monacoEditor30.onDidChangeModelContent(function () {
|
|
501
538
|
var _this3$monacoEditor;
|
|
502
539
|
var value = (_this3$monacoEditor = _this3.monacoEditor) === null || _this3$monacoEditor === void 0 ? void 0 : _this3$monacoEditor.getValue();
|
|
@@ -512,10 +549,11 @@ export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry),
|
|
|
512
549
|
this.updateEditorSize();
|
|
513
550
|
this.inspectResize();
|
|
514
551
|
this.handleCommand(this.commandRegistry);
|
|
515
|
-
_context.next =
|
|
552
|
+
_context.next = 20;
|
|
516
553
|
return (_this$languageSpec2 = this.languageSpec) === null || _this$languageSpec2 === void 0 || (_this$languageSpec2$a = _this$languageSpec2.afterEditorInit) === null || _this$languageSpec2$a === void 0 ? void 0 : _this$languageSpec2$a.call(_this$languageSpec2, this);
|
|
517
|
-
case
|
|
554
|
+
case 20:
|
|
518
555
|
this.placeholder = new PlaceholderContentWidget(config.placeholder, this.monacoEditor);
|
|
556
|
+
this.editorReadyDeferred.resolve();
|
|
519
557
|
|
|
520
558
|
// console.log(
|
|
521
559
|
// 'editor._themeService.getColorTheme()',
|
|
@@ -541,16 +579,13 @@ export var LibroE2Editor = (_dec = transient(), _dec2 = inject(CommandRegistry),
|
|
|
541
579
|
}, {
|
|
542
580
|
key: "inspectResize",
|
|
543
581
|
value: function inspectResize() {
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
// });
|
|
552
|
-
// });
|
|
553
|
-
// this.resizeObserver.observe(this.host);
|
|
582
|
+
var _this4 = this;
|
|
583
|
+
this.intersectionObserver = new IntersectionObserver(function (entries) {
|
|
584
|
+
if (entries[0].isIntersecting) {
|
|
585
|
+
_this4.updateEditorSize();
|
|
586
|
+
}
|
|
587
|
+
});
|
|
588
|
+
this.intersectionObserver.observe(this.host);
|
|
554
589
|
}
|
|
555
590
|
}, {
|
|
556
591
|
key: "getEditorNode",
|
package/es/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiB/C,eAAO,MAAM,mBAAmB,YA0B5B,CAAC"}
|
package/es/module.js
CHANGED
|
@@ -6,18 +6,22 @@ import { CodeEditorModule } from '@difizen/libro-code-editor';
|
|
|
6
6
|
import { ManaModule } from '@difizen/mana-app';
|
|
7
7
|
import { LibroE2EditorContribution } from "./editor-contribution.js";
|
|
8
8
|
import { LanguageSpecContribution, LanguageSpecRegistry, LibroLanguageSpecs } from "./language-specs.js";
|
|
9
|
-
import { LibroE2Editor, LibroE2EditorFactory, LibroE2EditorOptions } from "./libro-e2-editor.js";
|
|
9
|
+
import { LibroE2Editor, LibroE2EditorFactory, LibroE2EditorOptions, LibroE2EditorState } from "./libro-e2-editor.js";
|
|
10
10
|
import { loadE2 } from "./libro-e2-preload.js";
|
|
11
11
|
import { LibroSQLRequestAPI } from "./libro-sql-api.js";
|
|
12
12
|
export var LibroE2EditorModule = ManaModule.create().register(LibroE2EditorContribution, LibroE2Editor, LanguageSpecRegistry, LibroLanguageSpecs, LibroSQLRequestAPI, {
|
|
13
13
|
token: LibroE2EditorFactory,
|
|
14
14
|
useFactory: function useFactory(ctx) {
|
|
15
|
-
return function (options) {
|
|
15
|
+
return function (options, editorState) {
|
|
16
16
|
var child = ctx.container.createChild();
|
|
17
17
|
child.register({
|
|
18
18
|
token: LibroE2EditorOptions,
|
|
19
19
|
useValue: options
|
|
20
20
|
});
|
|
21
|
+
child.register({
|
|
22
|
+
token: LibroE2EditorState,
|
|
23
|
+
useValue: editorState
|
|
24
|
+
});
|
|
21
25
|
return child.get(LibroE2Editor);
|
|
22
26
|
};
|
|
23
27
|
}
|