@atlaskit/editor-plugin-code-block-advanced 1.0.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 +13 -0
- package/LICENSE.md +11 -0
- package/README.md +1 -0
- package/afm-cc/tsconfig.json +36 -0
- package/build/tsconfig.json +17 -0
- package/dist/cjs/codeBlockAdvancedPlugin.js +33 -0
- package/dist/cjs/codeBlockAdvancedPluginType.js +5 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/nodeviews/codeBlockAdvanced.js +212 -0
- package/dist/cjs/nodeviews/codeBlockNodeWithToDOMFixed.js +55 -0
- package/dist/cjs/nodeviews/codemirrorSync/syncCMWithPM.js +38 -0
- package/dist/cjs/nodeviews/codemirrorSync/updateCMSelection.js +36 -0
- package/dist/cjs/nodeviews/extensions/bidiCharWarning.js +83 -0
- package/dist/cjs/nodeviews/extensions/keymap/backspace.js +33 -0
- package/dist/cjs/nodeviews/extensions/keymap/index.js +129 -0
- package/dist/cjs/nodeviews/extensions/keymap/maybeEscape.js +63 -0
- package/dist/cjs/nodeviews/languages/languageMap.js +100 -0
- package/dist/cjs/nodeviews/languages/loader.js +50 -0
- package/dist/cjs/nodeviews/lazyCodeBlockAdvanced.js +29 -0
- package/dist/cjs/pm-plugins/main.js +17 -0
- package/dist/cjs/ui/syntaxHighlightingTheme.js +76 -0
- package/dist/cjs/ui/theme.js +55 -0
- package/dist/es2019/codeBlockAdvancedPlugin.js +26 -0
- package/dist/es2019/codeBlockAdvancedPluginType.js +1 -0
- package/dist/es2019/index.js +4 -0
- package/dist/es2019/nodeviews/codeBlockAdvanced.js +170 -0
- package/dist/es2019/nodeviews/codeBlockNodeWithToDOMFixed.js +42 -0
- package/dist/es2019/nodeviews/codemirrorSync/syncCMWithPM.js +35 -0
- package/dist/es2019/nodeviews/codemirrorSync/updateCMSelection.js +30 -0
- package/dist/es2019/nodeviews/extensions/bidiCharWarning.js +53 -0
- package/dist/es2019/nodeviews/extensions/keymap/backspace.js +28 -0
- package/dist/es2019/nodeviews/extensions/keymap/index.js +107 -0
- package/dist/es2019/nodeviews/extensions/keymap/maybeEscape.js +57 -0
- package/dist/es2019/nodeviews/languages/languageMap.js +82 -0
- package/dist/es2019/nodeviews/languages/loader.js +37 -0
- package/dist/es2019/nodeviews/lazyCodeBlockAdvanced.js +18 -0
- package/dist/es2019/pm-plugins/main.js +11 -0
- package/dist/es2019/ui/syntaxHighlightingTheme.js +70 -0
- package/dist/es2019/ui/theme.js +49 -0
- package/dist/esm/codeBlockAdvancedPlugin.js +27 -0
- package/dist/esm/codeBlockAdvancedPluginType.js +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/nodeviews/codeBlockAdvanced.js +205 -0
- package/dist/esm/nodeviews/codeBlockNodeWithToDOMFixed.js +48 -0
- package/dist/esm/nodeviews/codemirrorSync/syncCMWithPM.js +32 -0
- package/dist/esm/nodeviews/codemirrorSync/updateCMSelection.js +30 -0
- package/dist/esm/nodeviews/extensions/bidiCharWarning.js +77 -0
- package/dist/esm/nodeviews/extensions/keymap/backspace.js +27 -0
- package/dist/esm/nodeviews/extensions/keymap/index.js +122 -0
- package/dist/esm/nodeviews/extensions/keymap/maybeEscape.js +56 -0
- package/dist/esm/nodeviews/languages/languageMap.js +86 -0
- package/dist/esm/nodeviews/languages/loader.js +44 -0
- package/dist/esm/nodeviews/lazyCodeBlockAdvanced.js +17 -0
- package/dist/esm/pm-plugins/main.js +11 -0
- package/dist/esm/ui/syntaxHighlightingTheme.js +70 -0
- package/dist/esm/ui/theme.js +49 -0
- package/dist/types/codeBlockAdvancedPlugin.d.ts +2 -0
- package/dist/types/codeBlockAdvancedPluginType.d.ts +11 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/nodeviews/codeBlockAdvanced.d.ts +38 -0
- package/dist/types/nodeviews/codeBlockNodeWithToDOMFixed.d.ts +2 -0
- package/dist/types/nodeviews/codemirrorSync/syncCMWithPM.d.ts +17 -0
- package/dist/types/nodeviews/codemirrorSync/updateCMSelection.d.ts +11 -0
- package/dist/types/nodeviews/extensions/bidiCharWarning.d.ts +8 -0
- package/dist/types/nodeviews/extensions/keymap/backspace.d.ts +12 -0
- package/dist/types/nodeviews/extensions/keymap/index.d.ts +14 -0
- package/dist/types/nodeviews/extensions/keymap/maybeEscape.d.ts +17 -0
- package/dist/types/nodeviews/languages/languageMap.d.ts +5 -0
- package/dist/types/nodeviews/languages/loader.d.ts +11 -0
- package/dist/types/nodeviews/lazyCodeBlockAdvanced.d.ts +9 -0
- package/dist/types/pm-plugins/main.d.ts +10 -0
- package/dist/types/ui/syntaxHighlightingTheme.d.ts +2 -0
- package/dist/types/ui/theme.d.ts +1 -0
- package/dist/types-ts4.5/codeBlockAdvancedPlugin.d.ts +2 -0
- package/dist/types-ts4.5/codeBlockAdvancedPluginType.d.ts +15 -0
- package/dist/types-ts4.5/index.d.ts +2 -0
- package/dist/types-ts4.5/nodeviews/codeBlockAdvanced.d.ts +38 -0
- package/dist/types-ts4.5/nodeviews/codeBlockNodeWithToDOMFixed.d.ts +2 -0
- package/dist/types-ts4.5/nodeviews/codemirrorSync/syncCMWithPM.d.ts +17 -0
- package/dist/types-ts4.5/nodeviews/codemirrorSync/updateCMSelection.d.ts +11 -0
- package/dist/types-ts4.5/nodeviews/extensions/bidiCharWarning.d.ts +8 -0
- package/dist/types-ts4.5/nodeviews/extensions/keymap/backspace.d.ts +12 -0
- package/dist/types-ts4.5/nodeviews/extensions/keymap/index.d.ts +14 -0
- package/dist/types-ts4.5/nodeviews/extensions/keymap/maybeEscape.d.ts +17 -0
- package/dist/types-ts4.5/nodeviews/languages/languageMap.d.ts +5 -0
- package/dist/types-ts4.5/nodeviews/languages/loader.d.ts +12 -0
- package/dist/types-ts4.5/nodeviews/lazyCodeBlockAdvanced.d.ts +9 -0
- package/dist/types-ts4.5/pm-plugins/main.d.ts +10 -0
- package/dist/types-ts4.5/ui/syntaxHighlightingTheme.d.ts +2 -0
- package/dist/types-ts4.5/ui/theme.d.ts +1 -0
- package/docs/0-intro.tsx +56 -0
- package/package.json +96 -0
- package/src/codeBlockAdvancedPlugin.tsx +25 -0
- package/src/codeBlockAdvancedPluginType.ts +18 -0
- package/src/index.ts +5 -0
- package/src/nodeviews/codeBlockAdvanced.ts +223 -0
- package/src/nodeviews/codeBlockNodeWithToDOMFixed.ts +59 -0
- package/src/nodeviews/codemirrorSync/syncCMWithPM.ts +40 -0
- package/src/nodeviews/codemirrorSync/updateCMSelection.ts +40 -0
- package/src/nodeviews/extensions/bidiCharWarning.ts +72 -0
- package/src/nodeviews/extensions/keymap/backspace.ts +47 -0
- package/src/nodeviews/extensions/keymap/index.ts +118 -0
- package/src/nodeviews/extensions/keymap/maybeEscape.ts +69 -0
- package/src/nodeviews/languages/languageMap.ts +91 -0
- package/src/nodeviews/languages/loader.ts +44 -0
- package/src/nodeviews/lazyCodeBlockAdvanced.ts +32 -0
- package/src/pm-plugins/main.ts +22 -0
- package/src/ui/syntaxHighlightingTheme.ts +50 -0
- package/src/ui/theme.ts +52 -0
- package/tsconfig.json +10 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.keymapExtension = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _commands = require("@codemirror/commands");
|
|
10
|
+
var _view = require("@codemirror/view");
|
|
11
|
+
var _commands2 = require("@atlaskit/editor-prosemirror/commands");
|
|
12
|
+
var _history = require("@atlaskit/editor-prosemirror/history");
|
|
13
|
+
var _backspace = require("./backspace");
|
|
14
|
+
var _maybeEscape = require("./maybeEscape");
|
|
15
|
+
var keymapExtension = exports.keymapExtension = function keymapExtension(_ref) {
|
|
16
|
+
var view = _ref.view,
|
|
17
|
+
getNode = _ref.getNode,
|
|
18
|
+
getPos = _ref.getPos,
|
|
19
|
+
selectCodeBlockNode = _ref.selectCodeBlockNode,
|
|
20
|
+
onMaybeNodeSelection = _ref.onMaybeNodeSelection;
|
|
21
|
+
return _view.keymap.of(codeBlockKeymap({
|
|
22
|
+
view: view,
|
|
23
|
+
getNode: getNode,
|
|
24
|
+
getPos: getPos,
|
|
25
|
+
selectCodeBlockNode: selectCodeBlockNode,
|
|
26
|
+
onMaybeNodeSelection: onMaybeNodeSelection
|
|
27
|
+
}));
|
|
28
|
+
};
|
|
29
|
+
var codeBlockKeymap = function codeBlockKeymap(_ref2) {
|
|
30
|
+
var view = _ref2.view,
|
|
31
|
+
getNode = _ref2.getNode,
|
|
32
|
+
getPos = _ref2.getPos,
|
|
33
|
+
selectCodeBlockNode = _ref2.selectCodeBlockNode,
|
|
34
|
+
onMaybeNodeSelection = _ref2.onMaybeNodeSelection;
|
|
35
|
+
return [{
|
|
36
|
+
key: 'ArrowUp',
|
|
37
|
+
run: function run(cm) {
|
|
38
|
+
return (0, _maybeEscape.maybeEscapeKeymap)({
|
|
39
|
+
unit: 'line',
|
|
40
|
+
dir: -1,
|
|
41
|
+
cm: cm,
|
|
42
|
+
view: view,
|
|
43
|
+
getNode: getNode,
|
|
44
|
+
getPos: getPos,
|
|
45
|
+
selectCodeBlockNode: selectCodeBlockNode,
|
|
46
|
+
onMaybeNodeSelection: onMaybeNodeSelection
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
key: 'ArrowLeft',
|
|
51
|
+
run: function run(cm) {
|
|
52
|
+
return (0, _maybeEscape.maybeEscapeKeymap)({
|
|
53
|
+
unit: 'char',
|
|
54
|
+
dir: -1,
|
|
55
|
+
cm: cm,
|
|
56
|
+
view: view,
|
|
57
|
+
getNode: getNode,
|
|
58
|
+
getPos: getPos,
|
|
59
|
+
selectCodeBlockNode: selectCodeBlockNode,
|
|
60
|
+
onMaybeNodeSelection: onMaybeNodeSelection
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}, {
|
|
64
|
+
key: 'ArrowDown',
|
|
65
|
+
run: function run(cm) {
|
|
66
|
+
return (0, _maybeEscape.maybeEscapeKeymap)({
|
|
67
|
+
unit: 'line',
|
|
68
|
+
dir: 1,
|
|
69
|
+
cm: cm,
|
|
70
|
+
view: view,
|
|
71
|
+
getNode: getNode,
|
|
72
|
+
getPos: getPos,
|
|
73
|
+
selectCodeBlockNode: selectCodeBlockNode,
|
|
74
|
+
onMaybeNodeSelection: onMaybeNodeSelection
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}, {
|
|
78
|
+
key: 'ArrowRight',
|
|
79
|
+
run: function run(cm) {
|
|
80
|
+
return (0, _maybeEscape.maybeEscapeKeymap)({
|
|
81
|
+
unit: 'char',
|
|
82
|
+
dir: 1,
|
|
83
|
+
cm: cm,
|
|
84
|
+
view: view,
|
|
85
|
+
getNode: getNode,
|
|
86
|
+
getPos: getPos,
|
|
87
|
+
selectCodeBlockNode: selectCodeBlockNode,
|
|
88
|
+
onMaybeNodeSelection: onMaybeNodeSelection
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}, {
|
|
92
|
+
key: 'Ctrl-Enter',
|
|
93
|
+
run: function run() {
|
|
94
|
+
if (!(0, _commands2.exitCode)(view.state, view.dispatch)) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
view.focus();
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
}, {
|
|
101
|
+
key: 'Ctrl-z',
|
|
102
|
+
mac: 'Cmd-z',
|
|
103
|
+
run: function run() {
|
|
104
|
+
return (0, _history.undo)(view.state, view.dispatch);
|
|
105
|
+
}
|
|
106
|
+
}, {
|
|
107
|
+
key: 'Shift-Ctrl-z',
|
|
108
|
+
mac: 'Shift-Cmd-z',
|
|
109
|
+
run: function run() {
|
|
110
|
+
return (0, _history.redo)(view.state, view.dispatch);
|
|
111
|
+
}
|
|
112
|
+
}, {
|
|
113
|
+
key: 'Ctrl-y',
|
|
114
|
+
mac: 'Cmd-y',
|
|
115
|
+
run: function run() {
|
|
116
|
+
return (0, _history.redo)(view.state, view.dispatch);
|
|
117
|
+
}
|
|
118
|
+
}, {
|
|
119
|
+
key: 'Backspace',
|
|
120
|
+
run: function run(cm) {
|
|
121
|
+
return (0, _backspace.backspaceKeymap)({
|
|
122
|
+
cm: cm,
|
|
123
|
+
view: view,
|
|
124
|
+
getNode: getNode,
|
|
125
|
+
getPos: getPos
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}].concat((0, _toConsumableArray2.default)(_commands.defaultKeymap.concat(_commands.indentWithTab)));
|
|
129
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.maybeEscapeKeymap = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _selection = require("@atlaskit/editor-common/selection");
|
|
10
|
+
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
var maybeEscapeKeymap = exports.maybeEscapeKeymap = function maybeEscapeKeymap(_ref) {
|
|
14
|
+
var _getPos;
|
|
15
|
+
var unit = _ref.unit,
|
|
16
|
+
dir = _ref.dir,
|
|
17
|
+
view = _ref.view,
|
|
18
|
+
cm = _ref.cm,
|
|
19
|
+
getPos = _ref.getPos,
|
|
20
|
+
getNode = _ref.getNode,
|
|
21
|
+
onMaybeNodeSelection = _ref.onMaybeNodeSelection,
|
|
22
|
+
selectCodeBlockNode = _ref.selectCodeBlockNode;
|
|
23
|
+
if (unit === 'char') {
|
|
24
|
+
onMaybeNodeSelection();
|
|
25
|
+
}
|
|
26
|
+
var node = getNode();
|
|
27
|
+
var state = cm.state;
|
|
28
|
+
var main = state.selection.main;
|
|
29
|
+
if (!main.empty) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (unit === 'line') {
|
|
33
|
+
main = _objectSpread(_objectSpread({}, state.doc.lineAt(main.head)), {}, {
|
|
34
|
+
head: 0,
|
|
35
|
+
empty: false
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (dir < 0 ? main.from > 0 : main.to < state.doc.length) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
var targetPos = ((_getPos = getPos === null || getPos === void 0 ? void 0 : getPos()) !== null && _getPos !== void 0 ? _getPos : 0) + (dir < 0 ? 0 : node.nodeSize);
|
|
42
|
+
if (unit === 'char') {
|
|
43
|
+
view.focus();
|
|
44
|
+
selectCodeBlockNode(dir === -1 ? _selection.RelativeSelectionPos.Start : _selection.RelativeSelectionPos.End);
|
|
45
|
+
return true;
|
|
46
|
+
} else {
|
|
47
|
+
createParagraphIfEndOfDoc(view, targetPos);
|
|
48
|
+
var tr = view.state.tr;
|
|
49
|
+
var selection = _state.Selection.near(tr.doc.resolve(targetPos), dir);
|
|
50
|
+
tr.setSelection(selection).scrollIntoView();
|
|
51
|
+
view.dispatch(tr);
|
|
52
|
+
view.focus();
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
var createParagraphIfEndOfDoc = function createParagraphIfEndOfDoc(view, targetPos) {
|
|
57
|
+
if (targetPos === view.state.doc.content.size) {
|
|
58
|
+
var paragraph = view.state.schema.nodes.paragraph.createChecked({});
|
|
59
|
+
var tr = view.state.tr.insert(targetPos, paragraph);
|
|
60
|
+
// Note: we purposefully do a multi-dispatch here, otherwise we get stuck in codemirror
|
|
61
|
+
view.dispatch(tr);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.mapLanguageToCodeMirror = void 0;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
var _language = require("@codemirror/language");
|
|
10
|
+
var _languageData = require("@codemirror/language-data");
|
|
11
|
+
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); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != (0, _typeof2.default)(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; }
|
|
13
|
+
// getLanguageIdentifier defines `language.alias[0]`
|
|
14
|
+
var mapLanguageToCodeMirror = exports.mapLanguageToCodeMirror = function mapLanguageToCodeMirror(language) {
|
|
15
|
+
if (!language || language === 'none') {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
switch (language) {
|
|
19
|
+
case 'coldfusion':
|
|
20
|
+
return _languageData.languages.find(function (l) {
|
|
21
|
+
return l.name.toLowerCase() === 'xml';
|
|
22
|
+
});
|
|
23
|
+
case 'matlab':
|
|
24
|
+
return _languageData.languages.find(function (l) {
|
|
25
|
+
return l.name.toLowerCase() === 'octave';
|
|
26
|
+
});
|
|
27
|
+
case 'javafx':
|
|
28
|
+
return _languageData.languages.find(function (l) {
|
|
29
|
+
return l.name.toLowerCase() === 'java';
|
|
30
|
+
});
|
|
31
|
+
case 'vbnet':
|
|
32
|
+
return _languageData.languages.find(function (l) {
|
|
33
|
+
return l.name === 'VB.NET';
|
|
34
|
+
});
|
|
35
|
+
case 'pas':
|
|
36
|
+
return _languageData.languages.find(function (l) {
|
|
37
|
+
return l.name.toLowerCase() === 'pascal';
|
|
38
|
+
});
|
|
39
|
+
case 'cuda':
|
|
40
|
+
return _languageData.languages.find(function (l) {
|
|
41
|
+
return l.name.toLowerCase() === 'c++';
|
|
42
|
+
});
|
|
43
|
+
case 'racket':
|
|
44
|
+
return _languageData.languages.find(function (l) {
|
|
45
|
+
return l.name === 'Common Lisp';
|
|
46
|
+
});
|
|
47
|
+
case 'abap':
|
|
48
|
+
return _languageData.languages.find(function (l) {
|
|
49
|
+
return l.name === 'SQL';
|
|
50
|
+
});
|
|
51
|
+
case 'standardmL':
|
|
52
|
+
return _languageData.languages.find(function (l) {
|
|
53
|
+
return l.name === 'SML';
|
|
54
|
+
});
|
|
55
|
+
case 'objective-j':
|
|
56
|
+
return _languageData.languages.find(function (l) {
|
|
57
|
+
return l.name === 'Objective-C';
|
|
58
|
+
});
|
|
59
|
+
case 'docker':
|
|
60
|
+
return _languageData.languages.find(function (l) {
|
|
61
|
+
return l.name === 'Dockerfile';
|
|
62
|
+
});
|
|
63
|
+
case 'arduino':
|
|
64
|
+
return _languageData.languages.find(function (l) {
|
|
65
|
+
return l.name === 'C++';
|
|
66
|
+
});
|
|
67
|
+
case 'visualbasic':
|
|
68
|
+
return _languageData.languages.find(function (l) {
|
|
69
|
+
return l.name === 'VB.NET';
|
|
70
|
+
});
|
|
71
|
+
case 'elixir':
|
|
72
|
+
return _language.LanguageDescription.of({
|
|
73
|
+
name: 'Elixir',
|
|
74
|
+
load: function load() {
|
|
75
|
+
return Promise.resolve().then(function () {
|
|
76
|
+
return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-elixir" */
|
|
77
|
+
'codemirror-lang-elixir'));
|
|
78
|
+
}).then(function (m) {
|
|
79
|
+
return m.elixir();
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
case 'graphql':
|
|
84
|
+
return _language.LanguageDescription.of({
|
|
85
|
+
name: 'GraphQL',
|
|
86
|
+
load: function load() {
|
|
87
|
+
return Promise.resolve().then(function () {
|
|
88
|
+
return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_@atlaskit/editor-plugin-code-block-advanced-lang-graphql" */
|
|
89
|
+
'cm6-graphql'));
|
|
90
|
+
}).then(function (m) {
|
|
91
|
+
return m.graphqlLanguageSupport();
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
default:
|
|
96
|
+
return _languageData.languages.find(function (l) {
|
|
97
|
+
return l.alias.includes(language) || l.name.toLowerCase() === (language === null || language === void 0 ? void 0 : language.toLowerCase());
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.LanguageLoader = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
var _languageMap = require("./languageMap");
|
|
12
|
+
/**
|
|
13
|
+
* Manages loading the languages (for syntax highlighting, etc.)
|
|
14
|
+
* from CodeMirror and updating the language in the CodeMirror view
|
|
15
|
+
*/
|
|
16
|
+
var LanguageLoader = exports.LanguageLoader = /*#__PURE__*/function () {
|
|
17
|
+
function LanguageLoader(updateLanguageCompartment) {
|
|
18
|
+
(0, _classCallCheck2.default)(this, LanguageLoader);
|
|
19
|
+
(0, _defineProperty2.default)(this, "languageName", '');
|
|
20
|
+
this.updateLanguageCompartment = updateLanguageCompartment;
|
|
21
|
+
}
|
|
22
|
+
return (0, _createClass2.default)(LanguageLoader, [{
|
|
23
|
+
key: "updateLanguage",
|
|
24
|
+
value: function updateLanguage(languageName) {
|
|
25
|
+
var _this = this;
|
|
26
|
+
if (languageName === this.languageName) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
var language = (0, _languageMap.mapLanguageToCodeMirror)(languageName);
|
|
30
|
+
var configureEmpty = function configureEmpty() {
|
|
31
|
+
_this.updateLanguageCompartment([]);
|
|
32
|
+
_this.languageName = '';
|
|
33
|
+
};
|
|
34
|
+
if (!language) {
|
|
35
|
+
configureEmpty();
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
language.load().then(function (lang) {
|
|
39
|
+
if (lang) {
|
|
40
|
+
_this.updateLanguageCompartment(lang);
|
|
41
|
+
_this.languageName = languageName;
|
|
42
|
+
} else {
|
|
43
|
+
configureEmpty();
|
|
44
|
+
}
|
|
45
|
+
}).catch(function () {
|
|
46
|
+
configureEmpty();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}]);
|
|
50
|
+
}();
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.lazyCodeBlockView = void 0;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
|
|
10
|
+
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" != (0, _typeof2.default)(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
|
+
var lazyCodeBlockView = exports.lazyCodeBlockView = function lazyCodeBlockView(props) {
|
|
13
|
+
return (0, _lazyNodeView.withLazyLoading)({
|
|
14
|
+
nodeName: 'codeBlock',
|
|
15
|
+
getNodeViewOptions: function getNodeViewOptions() {},
|
|
16
|
+
loader: function loader() {
|
|
17
|
+
var result = Promise.resolve().then(function () {
|
|
18
|
+
return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_editor-plugin-code-block-advanced-nodeview" */
|
|
19
|
+
'./codeBlockAdvanced'));
|
|
20
|
+
}).then(function (_ref) {
|
|
21
|
+
var getCodeBlockAdvancedNodeView = _ref.getCodeBlockAdvancedNodeView;
|
|
22
|
+
return function (node, view, getPos) {
|
|
23
|
+
return getCodeBlockAdvancedNodeView(props)(node, view, getPos);
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createPlugin = void 0;
|
|
7
|
+
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
8
|
+
var _lazyCodeBlockAdvanced = require("../nodeviews/lazyCodeBlockAdvanced");
|
|
9
|
+
var createPlugin = exports.createPlugin = function createPlugin(props) {
|
|
10
|
+
return new _safePlugin.SafePlugin({
|
|
11
|
+
props: {
|
|
12
|
+
nodeViews: {
|
|
13
|
+
codeBlock: (0, _lazyCodeBlockAdvanced.lazyCodeBlockView)(props)
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.highlightStyle = void 0;
|
|
7
|
+
var _language = require("@codemirror/language");
|
|
8
|
+
var _highlight = require("@lezer/highlight");
|
|
9
|
+
// Based on `platform/packages/design-system/code/src/internal/theme/styles.tsx`
|
|
10
|
+
var highlightStyle = exports.highlightStyle = _language.HighlightStyle.define([{
|
|
11
|
+
tag: _highlight.tags.meta,
|
|
12
|
+
color: "var(--ds-text, #172B4D)"
|
|
13
|
+
}, {
|
|
14
|
+
tag: _highlight.tags.link,
|
|
15
|
+
textDecoration: 'underline'
|
|
16
|
+
}, {
|
|
17
|
+
tag: _highlight.tags.heading,
|
|
18
|
+
textDecoration: 'underline',
|
|
19
|
+
// Custom syntax styling to match existing styling
|
|
20
|
+
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
21
|
+
fontWeight: "var(--ds-font-weight-bold, 700)"
|
|
22
|
+
}, {
|
|
23
|
+
tag: _highlight.tags.emphasis,
|
|
24
|
+
fontStyle: 'italic'
|
|
25
|
+
}, {
|
|
26
|
+
tag: _highlight.tags.strong,
|
|
27
|
+
// Custom syntax styling to match existing styling
|
|
28
|
+
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
29
|
+
fontWeight: "var(--ds-font-weight-bold, 700)"
|
|
30
|
+
}, {
|
|
31
|
+
tag: _highlight.tags.strikethrough,
|
|
32
|
+
textDecoration: 'line-through'
|
|
33
|
+
}, {
|
|
34
|
+
tag: _highlight.tags.keyword,
|
|
35
|
+
color: "var(--ds-text-accent-blue, #0055CC)",
|
|
36
|
+
// Custom syntax styling to match existing styling
|
|
37
|
+
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
38
|
+
fontWeight: "var(--ds-font-weight-bold, 700)"
|
|
39
|
+
}, {
|
|
40
|
+
tag: [_highlight.tags.atom, _highlight.tags.bool, _highlight.tags.url, _highlight.tags.contentSeparator, _highlight.tags.labelName],
|
|
41
|
+
color: "var(--ds-text-accent-blue, #0055CC)"
|
|
42
|
+
}, {
|
|
43
|
+
tag: [_highlight.tags.literal, _highlight.tags.inserted],
|
|
44
|
+
color: "var(--ds-text-accent-blue, #0055CC)"
|
|
45
|
+
}, {
|
|
46
|
+
tag: [_highlight.tags.string, _highlight.tags.deleted],
|
|
47
|
+
color: "var(--ds-text-accent-green, #216E4E)"
|
|
48
|
+
}, {
|
|
49
|
+
tag: [_highlight.tags.regexp, _highlight.tags.escape, _highlight.tags.special(_highlight.tags.string)],
|
|
50
|
+
color: "var(--ds-text, #172B4D)"
|
|
51
|
+
}, {
|
|
52
|
+
tag: _highlight.tags.definition(_highlight.tags.variableName),
|
|
53
|
+
color: "var(--ds-text, #172B4D)"
|
|
54
|
+
}, {
|
|
55
|
+
tag: _highlight.tags.local(_highlight.tags.variableName),
|
|
56
|
+
color: "var(--ds-text, #172B4D)"
|
|
57
|
+
}, {
|
|
58
|
+
tag: [_highlight.tags.typeName, _highlight.tags.namespace],
|
|
59
|
+
color: "var(--ds-text-accent-blue, #0055CC)"
|
|
60
|
+
}, {
|
|
61
|
+
tag: _highlight.tags.className,
|
|
62
|
+
color: "var(--ds-text-accent-purple, #5E4DB2)"
|
|
63
|
+
}, {
|
|
64
|
+
tag: [_highlight.tags.special(_highlight.tags.variableName), _highlight.tags.macroName],
|
|
65
|
+
color: "var(--ds-text, #172B4D)"
|
|
66
|
+
}, {
|
|
67
|
+
tag: _highlight.tags.definition(_highlight.tags.propertyName),
|
|
68
|
+
color: "var(--ds-text, #172B4D)"
|
|
69
|
+
}, {
|
|
70
|
+
tag: _highlight.tags.comment,
|
|
71
|
+
color: "var(--ds-text-subtlest, #626F86)",
|
|
72
|
+
fontStyle: 'italic'
|
|
73
|
+
}, {
|
|
74
|
+
tag: _highlight.tags.invalid,
|
|
75
|
+
color: "var(--ds-text, #172B4D)"
|
|
76
|
+
}]);
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.cmTheme = void 0;
|
|
7
|
+
var _view = require("@codemirror/view");
|
|
8
|
+
var cmTheme = exports.cmTheme = _view.EditorView.theme({
|
|
9
|
+
'&': {
|
|
10
|
+
backgroundColor: "var(--ds-background-neutral, #091E420F)",
|
|
11
|
+
padding: '0',
|
|
12
|
+
marginTop: "var(--ds-space-100, 8px)",
|
|
13
|
+
marginBottom: "var(--ds-space-100, 8px)",
|
|
14
|
+
borderRadius: "var(--ds-border-radius, 4px)",
|
|
15
|
+
fontSize: '0.875rem',
|
|
16
|
+
// Custom syntax styling to match existing styling
|
|
17
|
+
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
18
|
+
lineHeight: '1.5rem'
|
|
19
|
+
},
|
|
20
|
+
'&.cm-focused': {
|
|
21
|
+
outline: 'none'
|
|
22
|
+
},
|
|
23
|
+
'.cm-line': {
|
|
24
|
+
padding: '0'
|
|
25
|
+
},
|
|
26
|
+
'&.cm-editor.code-block.danger': {
|
|
27
|
+
backgroundColor: "var(--ds-background-danger, #FFECEB)"
|
|
28
|
+
},
|
|
29
|
+
'.cm-content': {
|
|
30
|
+
cursor: 'text',
|
|
31
|
+
caretColor: "var(--ds-text, #172B4D)",
|
|
32
|
+
margin: "var(--ds-space-100, 8px)",
|
|
33
|
+
padding: "var(--ds-space-0, 0px)"
|
|
34
|
+
},
|
|
35
|
+
'.cm-scroller': {
|
|
36
|
+
backgroundColor: "var(--ds-background-neutral, #091E420F)",
|
|
37
|
+
// Custom syntax styling to match existing styling
|
|
38
|
+
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
39
|
+
lineHeight: 'unset',
|
|
40
|
+
fontFamily: "var(--ds-font-family-code, ui-monospace, Menlo, \"Segoe UI Mono\", \"Ubuntu Mono\", monospace)"
|
|
41
|
+
},
|
|
42
|
+
'&.cm-focused .cm-cursor': {
|
|
43
|
+
borderLeftColor: "var(--ds-text, #172B4D)"
|
|
44
|
+
},
|
|
45
|
+
'.cm-gutters': {
|
|
46
|
+
backgroundColor: "var(--ds-background-neutral, #091E420F)",
|
|
47
|
+
border: 'none',
|
|
48
|
+
padding: "var(--ds-space-100, 8px)"
|
|
49
|
+
},
|
|
50
|
+
'.cm-lineNumbers .cm-gutterElement': {
|
|
51
|
+
paddingLeft: "var(--ds-space-0, 0px)",
|
|
52
|
+
paddingRight: "var(--ds-space-0, 0px)",
|
|
53
|
+
minWidth: 'unset'
|
|
54
|
+
}
|
|
55
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { codeBlockNodeWithFixedToDOM } from './nodeviews/codeBlockNodeWithToDOMFixed';
|
|
2
|
+
import { createPlugin } from './pm-plugins/main';
|
|
3
|
+
export const codeBlockAdvancedPlugin = ({
|
|
4
|
+
api,
|
|
5
|
+
config
|
|
6
|
+
}) => ({
|
|
7
|
+
name: 'codeBlockAdvanced',
|
|
8
|
+
nodes() {
|
|
9
|
+
return [{
|
|
10
|
+
name: 'codeBlock',
|
|
11
|
+
node: codeBlockNodeWithFixedToDOM()
|
|
12
|
+
}];
|
|
13
|
+
},
|
|
14
|
+
pmPlugins() {
|
|
15
|
+
return [{
|
|
16
|
+
name: 'codeBlockAdvancedPlugin',
|
|
17
|
+
plugin: () => {
|
|
18
|
+
var _config$extensions;
|
|
19
|
+
return createPlugin({
|
|
20
|
+
api,
|
|
21
|
+
extensions: (_config$extensions = config === null || config === void 0 ? void 0 : config.extensions) !== null && _config$extensions !== void 0 ? _config$extensions : []
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|