@atlaskit/editor-plugin-code-block-advanced 2.1.4 → 2.2.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.
- package/CHANGELOG.md +15 -0
- package/dist/cjs/nodeviews/codeBlockAdvanced.js +5 -3
- package/dist/cjs/nodeviews/languages/languageMap.js +12 -0
- package/dist/cjs/nodeviews/lazyCodeBlockAdvanced.js +32 -14
- package/dist/es2019/nodeviews/codeBlockAdvanced.js +5 -3
- package/dist/es2019/nodeviews/languages/languageMap.js +9 -1
- package/dist/es2019/nodeviews/lazyCodeBlockAdvanced.js +5 -9
- package/dist/esm/nodeviews/codeBlockAdvanced.js +5 -3
- package/dist/esm/nodeviews/languages/languageMap.js +11 -1
- package/dist/esm/nodeviews/lazyCodeBlockAdvanced.js +28 -10
- package/dist/types/nodeviews/codeBlockAdvanced.d.ts +2 -2
- package/dist/types-ts4.5/nodeviews/codeBlockAdvanced.d.ts +2 -2
- package/package.json +4 -3
- package/src/nodeviews/codeBlockAdvanced.ts +22 -3
- package/src/nodeviews/languages/languageMap.ts +11 -1
- package/src/nodeviews/lazyCodeBlockAdvanced.ts +12 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-code-block-advanced
|
|
2
2
|
|
|
3
|
+
## 2.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#137683](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/137683)
|
|
8
|
+
[`c1020ef8cdf87`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c1020ef8cdf87) -
|
|
9
|
+
Adds support for Handlebars syntax highlighting.
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#137043](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/137043)
|
|
14
|
+
[`616c9cd4a2c60`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/616c9cd4a2c60) -
|
|
15
|
+
Fix line wrapping and decorations being lost on breakout in advanced codeblocks
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
|
|
3
18
|
## 2.1.4
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -26,7 +26,7 @@ var _prosemirrorDecorations = require("./extensions/prosemirrorDecorations");
|
|
|
26
26
|
var _loader = require("./languages/loader");
|
|
27
27
|
// Based on: https://prosemirror.net/examples/codemirror/
|
|
28
28
|
var CodeBlockAdvancedNodeView = /*#__PURE__*/function () {
|
|
29
|
-
function CodeBlockAdvancedNodeView(node, view, getPos, config) {
|
|
29
|
+
function CodeBlockAdvancedNodeView(node, view, getPos, innerDecorations, config) {
|
|
30
30
|
var _config$api,
|
|
31
31
|
_this = this,
|
|
32
32
|
_config$api2,
|
|
@@ -87,6 +87,8 @@ var CodeBlockAdvancedNodeView = /*#__PURE__*/function () {
|
|
|
87
87
|
// inner editor
|
|
88
88
|
this.updating = false;
|
|
89
89
|
this.updateLanguage();
|
|
90
|
+
this.updateWordWrap(node);
|
|
91
|
+
this.updateProseMirrorDecorations(innerDecorations);
|
|
90
92
|
}
|
|
91
93
|
return (0, _createClass2.default)(CodeBlockAdvancedNodeView, [{
|
|
92
94
|
key: "destroy",
|
|
@@ -251,7 +253,7 @@ var CodeBlockAdvancedNodeView = /*#__PURE__*/function () {
|
|
|
251
253
|
}]);
|
|
252
254
|
}();
|
|
253
255
|
var getCodeBlockAdvancedNodeView = exports.getCodeBlockAdvancedNodeView = function getCodeBlockAdvancedNodeView(props) {
|
|
254
|
-
return function (node, view, getPos) {
|
|
255
|
-
return new CodeBlockAdvancedNodeView(node, view, getPos, props);
|
|
256
|
+
return function (node, view, getPos, innerDecorations) {
|
|
257
|
+
return new CodeBlockAdvancedNodeView(node, view, getPos, innerDecorations, props);
|
|
256
258
|
};
|
|
257
259
|
};
|
|
@@ -68,6 +68,18 @@ var mapLanguageToCodeMirror = exports.mapLanguageToCodeMirror = function mapLang
|
|
|
68
68
|
return _languageData.languages.find(function (l) {
|
|
69
69
|
return l.name === 'VB.NET';
|
|
70
70
|
});
|
|
71
|
+
case 'handlebars':
|
|
72
|
+
return _language.LanguageDescription.of({
|
|
73
|
+
name: 'Handlebars',
|
|
74
|
+
load: function load() {
|
|
75
|
+
return Promise.resolve().then(function () {
|
|
76
|
+
return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-handlebars" */
|
|
77
|
+
'@xiechao/codemirror-lang-handlebars'));
|
|
78
|
+
}).then(function (m) {
|
|
79
|
+
return new _language.LanguageSupport(m.handlebarsLanguage);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
71
83
|
case 'elixir':
|
|
72
84
|
return _language.LanguageDescription.of({
|
|
73
85
|
name: 'Elixir',
|
|
@@ -1,29 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.lazyCodeBlockView = void 0;
|
|
8
|
-
var
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
11
|
var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
|
|
10
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
11
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != (
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
14
|
var lazyCodeBlockView = exports.lazyCodeBlockView = function lazyCodeBlockView(props) {
|
|
13
15
|
return (0, _lazyNodeView.withLazyLoading)({
|
|
14
16
|
nodeName: 'codeBlock',
|
|
15
17
|
getNodeViewOptions: function getNodeViewOptions() {},
|
|
16
|
-
loader: function
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
loader: function () {
|
|
19
|
+
var _loader = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
20
|
+
var _yield$import, getCodeBlockAdvancedNodeView;
|
|
21
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
22
|
+
while (1) switch (_context.prev = _context.next) {
|
|
23
|
+
case 0:
|
|
24
|
+
_context.next = 2;
|
|
25
|
+
return Promise.resolve().then(function () {
|
|
26
|
+
return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_editor-plugin-code-block-advanced-nodeview" */
|
|
27
|
+
'./codeBlockAdvanced'));
|
|
28
|
+
});
|
|
29
|
+
case 2:
|
|
30
|
+
_yield$import = _context.sent;
|
|
31
|
+
getCodeBlockAdvancedNodeView = _yield$import.getCodeBlockAdvancedNodeView;
|
|
32
|
+
return _context.abrupt("return", function (node, view, getPos, _decs, _nodeViewOptions, innerDecorations) {
|
|
33
|
+
return getCodeBlockAdvancedNodeView(props)(node, view, getPos, innerDecorations);
|
|
34
|
+
});
|
|
35
|
+
case 5:
|
|
36
|
+
case "end":
|
|
37
|
+
return _context.stop();
|
|
38
|
+
}
|
|
39
|
+
}, _callee);
|
|
40
|
+
}));
|
|
41
|
+
function loader() {
|
|
42
|
+
return _loader.apply(this, arguments);
|
|
43
|
+
}
|
|
44
|
+
return loader;
|
|
45
|
+
}()
|
|
28
46
|
});
|
|
29
47
|
};
|
|
@@ -16,7 +16,7 @@ import { prosemirrorDecorationPlugin } from './extensions/prosemirrorDecorations
|
|
|
16
16
|
import { LanguageLoader } from './languages/loader';
|
|
17
17
|
// Based on: https://prosemirror.net/examples/codemirror/
|
|
18
18
|
class CodeBlockAdvancedNodeView {
|
|
19
|
-
constructor(node, view, getPos, config) {
|
|
19
|
+
constructor(node, view, getPos, innerDecorations, config) {
|
|
20
20
|
var _config$api, _config$api$selection, _config$api2, _config$api2$editorDi, _config$api3;
|
|
21
21
|
_defineProperty(this, "lineWrappingCompartment", new Compartment());
|
|
22
22
|
_defineProperty(this, "languageCompartment", new Compartment());
|
|
@@ -67,6 +67,8 @@ class CodeBlockAdvancedNodeView {
|
|
|
67
67
|
// inner editor
|
|
68
68
|
this.updating = false;
|
|
69
69
|
this.updateLanguage();
|
|
70
|
+
this.updateWordWrap(node);
|
|
71
|
+
this.updateProseMirrorDecorations(innerDecorations);
|
|
70
72
|
}
|
|
71
73
|
destroy() {
|
|
72
74
|
var _this$cleanupDisabled;
|
|
@@ -201,6 +203,6 @@ class CodeBlockAdvancedNodeView {
|
|
|
201
203
|
return true;
|
|
202
204
|
}
|
|
203
205
|
}
|
|
204
|
-
export const getCodeBlockAdvancedNodeView = props => (node, view, getPos) => {
|
|
205
|
-
return new CodeBlockAdvancedNodeView(node, view, getPos, props);
|
|
206
|
+
export const getCodeBlockAdvancedNodeView = props => (node, view, getPos, innerDecorations) => {
|
|
207
|
+
return new CodeBlockAdvancedNodeView(node, view, getPos, innerDecorations, props);
|
|
206
208
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LanguageDescription } from '@codemirror/language';
|
|
1
|
+
import { LanguageDescription, LanguageSupport } from '@codemirror/language';
|
|
2
2
|
import { languages } from '@codemirror/language-data';
|
|
3
3
|
// getLanguageIdentifier defines `language.alias[0]`
|
|
4
4
|
export const mapLanguageToCodeMirror = language => {
|
|
@@ -58,6 +58,14 @@ export const mapLanguageToCodeMirror = language => {
|
|
|
58
58
|
return languages.find(l => {
|
|
59
59
|
return l.name === 'VB.NET';
|
|
60
60
|
});
|
|
61
|
+
case 'handlebars':
|
|
62
|
+
return LanguageDescription.of({
|
|
63
|
+
name: 'Handlebars',
|
|
64
|
+
load() {
|
|
65
|
+
return import( /* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-handlebars" */
|
|
66
|
+
'@xiechao/codemirror-lang-handlebars').then(m => new LanguageSupport(m.handlebarsLanguage));
|
|
67
|
+
}
|
|
68
|
+
});
|
|
61
69
|
case 'elixir':
|
|
62
70
|
return LanguageDescription.of({
|
|
63
71
|
name: 'Elixir',
|
|
@@ -3,16 +3,12 @@ export const lazyCodeBlockView = props => {
|
|
|
3
3
|
return withLazyLoading({
|
|
4
4
|
nodeName: 'codeBlock',
|
|
5
5
|
getNodeViewOptions: () => {},
|
|
6
|
-
loader: () => {
|
|
7
|
-
const
|
|
8
|
-
'./codeBlockAdvanced').then(({
|
|
6
|
+
loader: async () => {
|
|
7
|
+
const {
|
|
9
8
|
getCodeBlockAdvancedNodeView
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
});
|
|
15
|
-
return result;
|
|
9
|
+
} = await import( /* webpackChunkName: "@atlaskit-internal_editor-plugin-code-block-advanced-nodeview" */
|
|
10
|
+
'./codeBlockAdvanced');
|
|
11
|
+
return (node, view, getPos, _decs, _nodeViewOptions, innerDecorations) => getCodeBlockAdvancedNodeView(props)(node, view, getPos, innerDecorations);
|
|
16
12
|
}
|
|
17
13
|
});
|
|
18
14
|
};
|
|
@@ -19,7 +19,7 @@ import { prosemirrorDecorationPlugin } from './extensions/prosemirrorDecorations
|
|
|
19
19
|
import { LanguageLoader } from './languages/loader';
|
|
20
20
|
// Based on: https://prosemirror.net/examples/codemirror/
|
|
21
21
|
var CodeBlockAdvancedNodeView = /*#__PURE__*/function () {
|
|
22
|
-
function CodeBlockAdvancedNodeView(node, view, getPos, config) {
|
|
22
|
+
function CodeBlockAdvancedNodeView(node, view, getPos, innerDecorations, config) {
|
|
23
23
|
var _config$api,
|
|
24
24
|
_this = this,
|
|
25
25
|
_config$api2,
|
|
@@ -80,6 +80,8 @@ var CodeBlockAdvancedNodeView = /*#__PURE__*/function () {
|
|
|
80
80
|
// inner editor
|
|
81
81
|
this.updating = false;
|
|
82
82
|
this.updateLanguage();
|
|
83
|
+
this.updateWordWrap(node);
|
|
84
|
+
this.updateProseMirrorDecorations(innerDecorations);
|
|
83
85
|
}
|
|
84
86
|
return _createClass(CodeBlockAdvancedNodeView, [{
|
|
85
87
|
key: "destroy",
|
|
@@ -244,7 +246,7 @@ var CodeBlockAdvancedNodeView = /*#__PURE__*/function () {
|
|
|
244
246
|
}]);
|
|
245
247
|
}();
|
|
246
248
|
export var getCodeBlockAdvancedNodeView = function getCodeBlockAdvancedNodeView(props) {
|
|
247
|
-
return function (node, view, getPos) {
|
|
248
|
-
return new CodeBlockAdvancedNodeView(node, view, getPos, props);
|
|
249
|
+
return function (node, view, getPos, innerDecorations) {
|
|
250
|
+
return new CodeBlockAdvancedNodeView(node, view, getPos, innerDecorations, props);
|
|
249
251
|
};
|
|
250
252
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LanguageDescription } from '@codemirror/language';
|
|
1
|
+
import { LanguageDescription, LanguageSupport } from '@codemirror/language';
|
|
2
2
|
import { languages } from '@codemirror/language-data';
|
|
3
3
|
// getLanguageIdentifier defines `language.alias[0]`
|
|
4
4
|
export var mapLanguageToCodeMirror = function mapLanguageToCodeMirror(language) {
|
|
@@ -58,6 +58,16 @@ export var mapLanguageToCodeMirror = function mapLanguageToCodeMirror(language)
|
|
|
58
58
|
return languages.find(function (l) {
|
|
59
59
|
return l.name === 'VB.NET';
|
|
60
60
|
});
|
|
61
|
+
case 'handlebars':
|
|
62
|
+
return LanguageDescription.of({
|
|
63
|
+
name: 'Handlebars',
|
|
64
|
+
load: function load() {
|
|
65
|
+
return import( /* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-handlebars" */
|
|
66
|
+
'@xiechao/codemirror-lang-handlebars').then(function (m) {
|
|
67
|
+
return new LanguageSupport(m.handlebarsLanguage);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
});
|
|
61
71
|
case 'elixir':
|
|
62
72
|
return LanguageDescription.of({
|
|
63
73
|
name: 'Elixir',
|
|
@@ -1,17 +1,35 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
1
3
|
import { withLazyLoading } from '@atlaskit/editor-common/lazy-node-view';
|
|
2
4
|
export var lazyCodeBlockView = function lazyCodeBlockView(props) {
|
|
3
5
|
return withLazyLoading({
|
|
4
6
|
nodeName: 'codeBlock',
|
|
5
7
|
getNodeViewOptions: function getNodeViewOptions() {},
|
|
6
|
-
loader: function
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
loader: function () {
|
|
9
|
+
var _loader = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
10
|
+
var _yield$import, getCodeBlockAdvancedNodeView;
|
|
11
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
12
|
+
while (1) switch (_context.prev = _context.next) {
|
|
13
|
+
case 0:
|
|
14
|
+
_context.next = 2;
|
|
15
|
+
return import( /* webpackChunkName: "@atlaskit-internal_editor-plugin-code-block-advanced-nodeview" */
|
|
16
|
+
'./codeBlockAdvanced');
|
|
17
|
+
case 2:
|
|
18
|
+
_yield$import = _context.sent;
|
|
19
|
+
getCodeBlockAdvancedNodeView = _yield$import.getCodeBlockAdvancedNodeView;
|
|
20
|
+
return _context.abrupt("return", function (node, view, getPos, _decs, _nodeViewOptions, innerDecorations) {
|
|
21
|
+
return getCodeBlockAdvancedNodeView(props)(node, view, getPos, innerDecorations);
|
|
22
|
+
});
|
|
23
|
+
case 5:
|
|
24
|
+
case "end":
|
|
25
|
+
return _context.stop();
|
|
26
|
+
}
|
|
27
|
+
}, _callee);
|
|
28
|
+
}));
|
|
29
|
+
function loader() {
|
|
30
|
+
return _loader.apply(this, arguments);
|
|
31
|
+
}
|
|
32
|
+
return loader;
|
|
33
|
+
}()
|
|
16
34
|
});
|
|
17
35
|
};
|
|
@@ -24,7 +24,7 @@ declare class CodeBlockAdvancedNodeView implements NodeView {
|
|
|
24
24
|
private cleanupDisabledState;
|
|
25
25
|
private languageLoader;
|
|
26
26
|
private pmFacet;
|
|
27
|
-
constructor(node: PMNode, view: EditorView, getPos: getPosHandlerNode, config: ConfigProps);
|
|
27
|
+
constructor(node: PMNode, view: EditorView, getPos: getPosHandlerNode, innerDecorations: DecorationSource, config: ConfigProps);
|
|
28
28
|
destroy(): void;
|
|
29
29
|
forwardUpdate(update: ViewUpdate): void;
|
|
30
30
|
setSelection(anchor: number, head: number): void;
|
|
@@ -43,5 +43,5 @@ declare class CodeBlockAdvancedNodeView implements NodeView {
|
|
|
43
43
|
private clearProseMirrorDecorations;
|
|
44
44
|
stopEvent(e: Event): boolean;
|
|
45
45
|
}
|
|
46
|
-
export declare const getCodeBlockAdvancedNodeView: (props: ConfigProps) => (node: PMNode, view: EditorView, getPos: getPosHandler) => CodeBlockAdvancedNodeView;
|
|
46
|
+
export declare const getCodeBlockAdvancedNodeView: (props: ConfigProps) => (node: PMNode, view: EditorView, getPos: getPosHandler, innerDecorations: DecorationSource) => CodeBlockAdvancedNodeView;
|
|
47
47
|
export {};
|
|
@@ -24,7 +24,7 @@ declare class CodeBlockAdvancedNodeView implements NodeView {
|
|
|
24
24
|
private cleanupDisabledState;
|
|
25
25
|
private languageLoader;
|
|
26
26
|
private pmFacet;
|
|
27
|
-
constructor(node: PMNode, view: EditorView, getPos: getPosHandlerNode, config: ConfigProps);
|
|
27
|
+
constructor(node: PMNode, view: EditorView, getPos: getPosHandlerNode, innerDecorations: DecorationSource, config: ConfigProps);
|
|
28
28
|
destroy(): void;
|
|
29
29
|
forwardUpdate(update: ViewUpdate): void;
|
|
30
30
|
setSelection(anchor: number, head: number): void;
|
|
@@ -43,5 +43,5 @@ declare class CodeBlockAdvancedNodeView implements NodeView {
|
|
|
43
43
|
private clearProseMirrorDecorations;
|
|
44
44
|
stopEvent(e: Event): boolean;
|
|
45
45
|
}
|
|
46
|
-
export declare const getCodeBlockAdvancedNodeView: (props: ConfigProps) => (node: PMNode, view: EditorView, getPos: getPosHandler) => CodeBlockAdvancedNodeView;
|
|
46
|
+
export declare const getCodeBlockAdvancedNodeView: (props: ConfigProps) => (node: PMNode, view: EditorView, getPos: getPosHandler, innerDecorations: DecorationSource) => CodeBlockAdvancedNodeView;
|
|
47
47
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-code-block-advanced",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "CodeBlockAdvanced plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@atlaskit/adf-schema": "^47.6.0",
|
|
36
|
-
"@atlaskit/editor-common": "^102.
|
|
36
|
+
"@atlaskit/editor-common": "^102.19.0",
|
|
37
37
|
"@atlaskit/editor-plugin-code-block": "^4.2.0",
|
|
38
38
|
"@atlaskit/editor-plugin-editor-disabled": "^2.0.0",
|
|
39
39
|
"@atlaskit/editor-plugin-find-replace": "^2.0.0",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"@codemirror/state": "6.5.1",
|
|
50
50
|
"@codemirror/view": "6.36.2",
|
|
51
51
|
"@lezer/highlight": "1.2.1",
|
|
52
|
+
"@xiechao/codemirror-lang-handlebars": "^1.0.4",
|
|
52
53
|
"cm6-graphql": "0.2.0",
|
|
53
54
|
"codemirror-lang-elixir": "4.0.0"
|
|
54
55
|
},
|
|
@@ -56,7 +57,7 @@
|
|
|
56
57
|
"react": "^18.2.0"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
|
-
"@atlaskit/code": "^
|
|
60
|
+
"@atlaskit/code": "^17.0.0",
|
|
60
61
|
"typescript": "~5.4.2"
|
|
61
62
|
},
|
|
62
63
|
"techstack": {
|
|
@@ -55,7 +55,13 @@ class CodeBlockAdvancedNodeView implements NodeView {
|
|
|
55
55
|
private languageLoader: LanguageLoader;
|
|
56
56
|
private pmFacet = Facet.define<DecorationSource>();
|
|
57
57
|
|
|
58
|
-
constructor(
|
|
58
|
+
constructor(
|
|
59
|
+
node: PMNode,
|
|
60
|
+
view: EditorView,
|
|
61
|
+
getPos: getPosHandlerNode,
|
|
62
|
+
innerDecorations: DecorationSource,
|
|
63
|
+
config: ConfigProps,
|
|
64
|
+
) {
|
|
59
65
|
this.node = node;
|
|
60
66
|
this.view = view;
|
|
61
67
|
this.getPos = getPos;
|
|
@@ -111,6 +117,8 @@ class CodeBlockAdvancedNodeView implements NodeView {
|
|
|
111
117
|
// inner editor
|
|
112
118
|
this.updating = false;
|
|
113
119
|
this.updateLanguage();
|
|
120
|
+
this.updateWordWrap(node);
|
|
121
|
+
this.updateProseMirrorDecorations(innerDecorations);
|
|
114
122
|
}
|
|
115
123
|
|
|
116
124
|
destroy() {
|
|
@@ -261,6 +269,17 @@ class CodeBlockAdvancedNodeView implements NodeView {
|
|
|
261
269
|
|
|
262
270
|
export const getCodeBlockAdvancedNodeView =
|
|
263
271
|
(props: ConfigProps) =>
|
|
264
|
-
(
|
|
265
|
-
|
|
272
|
+
(
|
|
273
|
+
node: PMNode,
|
|
274
|
+
view: EditorView,
|
|
275
|
+
getPos: getPosHandler,
|
|
276
|
+
innerDecorations: DecorationSource,
|
|
277
|
+
): CodeBlockAdvancedNodeView => {
|
|
278
|
+
return new CodeBlockAdvancedNodeView(
|
|
279
|
+
node,
|
|
280
|
+
view,
|
|
281
|
+
getPos as getPosHandlerNode,
|
|
282
|
+
innerDecorations,
|
|
283
|
+
props,
|
|
284
|
+
);
|
|
266
285
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LanguageDescription } from '@codemirror/language';
|
|
1
|
+
import { LanguageDescription, LanguageSupport } from '@codemirror/language';
|
|
2
2
|
import { languages } from '@codemirror/language-data';
|
|
3
3
|
|
|
4
4
|
import type { LanguageAlias } from '@atlaskit/code';
|
|
@@ -63,6 +63,16 @@ export const mapLanguageToCodeMirror = (language: LanguageAliasValue) => {
|
|
|
63
63
|
return languages.find((l) => {
|
|
64
64
|
return l.name === 'VB.NET';
|
|
65
65
|
});
|
|
66
|
+
case 'handlebars':
|
|
67
|
+
return LanguageDescription.of({
|
|
68
|
+
name: 'Handlebars',
|
|
69
|
+
load() {
|
|
70
|
+
return import(
|
|
71
|
+
/* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-handlebars" */
|
|
72
|
+
'@xiechao/codemirror-lang-handlebars'
|
|
73
|
+
).then((m) => new LanguageSupport(m.handlebarsLanguage));
|
|
74
|
+
},
|
|
75
|
+
});
|
|
66
76
|
case 'elixir':
|
|
67
77
|
return LanguageDescription.of({
|
|
68
78
|
name: 'Elixir',
|
|
@@ -3,7 +3,7 @@ import { Extension } from '@codemirror/state';
|
|
|
3
3
|
import { withLazyLoading } from '@atlaskit/editor-common/lazy-node-view';
|
|
4
4
|
import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
|
|
5
5
|
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
6
|
-
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
6
|
+
import type { EditorView, DecorationSource, Decoration } from '@atlaskit/editor-prosemirror/view';
|
|
7
7
|
|
|
8
8
|
import type { CodeBlockAdvancedPlugin } from '../codeBlockAdvancedPluginType';
|
|
9
9
|
|
|
@@ -16,16 +16,19 @@ export const lazyCodeBlockView = (props: Props) => {
|
|
|
16
16
|
return withLazyLoading({
|
|
17
17
|
nodeName: 'codeBlock',
|
|
18
18
|
getNodeViewOptions: () => {},
|
|
19
|
-
loader: () => {
|
|
20
|
-
const
|
|
19
|
+
loader: async () => {
|
|
20
|
+
const { getCodeBlockAdvancedNodeView } = await import(
|
|
21
21
|
/* webpackChunkName: "@atlaskit-internal_editor-plugin-code-block-advanced-nodeview" */
|
|
22
22
|
'./codeBlockAdvanced'
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
);
|
|
24
|
+
return (
|
|
25
|
+
node: PMNode,
|
|
26
|
+
view: EditorView,
|
|
27
|
+
getPos: () => number | undefined,
|
|
28
|
+
_decs: readonly Decoration[],
|
|
29
|
+
_nodeViewOptions: () => void,
|
|
30
|
+
innerDecorations: DecorationSource,
|
|
31
|
+
) => getCodeBlockAdvancedNodeView(props)(node, view, getPos, innerDecorations);
|
|
29
32
|
},
|
|
30
33
|
});
|
|
31
34
|
};
|