@jupyterlab/codemirror 4.0.0-alpha.9 → 4.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/lib/codemirror-ipythongfm.d.ts +9 -3
  2. package/lib/codemirror-ipythongfm.js +52 -30
  3. package/lib/codemirror-ipythongfm.js.map +1 -1
  4. package/lib/commands.d.ts +13 -0
  5. package/lib/commands.js +32 -0
  6. package/lib/commands.js.map +1 -0
  7. package/lib/editor.d.ts +48 -273
  8. package/lib/editor.js +220 -819
  9. package/lib/editor.js.map +1 -1
  10. package/lib/extension.d.ts +236 -0
  11. package/lib/extension.js +696 -0
  12. package/lib/extension.js.map +1 -0
  13. package/lib/extensions/customStyle.d.ts +25 -0
  14. package/lib/extensions/customStyle.js +51 -0
  15. package/lib/extensions/customStyle.js.map +1 -0
  16. package/lib/extensions/index.d.ts +3 -0
  17. package/lib/extensions/index.js +8 -0
  18. package/lib/extensions/index.js.map +1 -0
  19. package/lib/extensions/rulers.d.ts +8 -0
  20. package/lib/extensions/rulers.js +85 -0
  21. package/lib/extensions/rulers.js.map +1 -0
  22. package/lib/extensions/ybinding.d.ts +129 -0
  23. package/lib/extensions/ybinding.js +229 -0
  24. package/lib/extensions/ybinding.js.map +1 -0
  25. package/lib/factory.d.ts +15 -5
  26. package/lib/factory.js +53 -24
  27. package/lib/factory.js.map +1 -1
  28. package/lib/index.d.ts +7 -19
  29. package/lib/index.js +7 -23
  30. package/lib/index.js.map +1 -1
  31. package/lib/language.d.ts +96 -0
  32. package/lib/language.js +1687 -0
  33. package/lib/language.js.map +1 -0
  34. package/lib/mimetype.d.ts +3 -0
  35. package/lib/mimetype.js +16 -5
  36. package/lib/mimetype.js.map +1 -1
  37. package/lib/searchprovider.d.ts +219 -0
  38. package/lib/searchprovider.js +640 -0
  39. package/lib/searchprovider.js.map +1 -0
  40. package/lib/theme.d.ts +57 -0
  41. package/lib/theme.js +194 -0
  42. package/lib/theme.js.map +1 -0
  43. package/lib/token.d.ts +375 -0
  44. package/lib/token.js +18 -0
  45. package/lib/token.js.map +1 -0
  46. package/package.json +45 -41
  47. package/src/codemirror-ipythongfm.ts +109 -0
  48. package/src/commands.ts +34 -0
  49. package/src/editor.ts +783 -0
  50. package/src/extension.ts +890 -0
  51. package/src/extensions/customStyle.ts +79 -0
  52. package/src/extensions/index.ts +8 -0
  53. package/src/extensions/rulers.ts +112 -0
  54. package/src/extensions/ybinding.ts +295 -0
  55. package/src/factory.ts +100 -0
  56. package/src/index.ts +17 -0
  57. package/src/language.ts +1726 -0
  58. package/src/mimetype.ts +54 -0
  59. package/src/searchprovider.ts +813 -0
  60. package/src/theme.ts +219 -0
  61. package/src/token.ts +436 -0
  62. package/src/typings.d.ts +13 -0
  63. package/style/base.css +33 -187
  64. package/style/index.css +1 -7
  65. package/style/index.js +1 -7
  66. package/lib/codemirror-ipython.d.ts +0 -2
  67. package/lib/codemirror-ipython.js +0 -30
  68. package/lib/codemirror-ipython.js.map +0 -1
  69. package/lib/mode.d.ts +0 -82
  70. package/lib/mode.js +0 -150
  71. package/lib/mode.js.map +0 -1
  72. package/lib/syntaxstatus.d.ts +0 -67
  73. package/lib/syntaxstatus.js +0 -140
  74. package/lib/syntaxstatus.js.map +0 -1
  75. package/lib/tokens.d.ts +0 -18
  76. package/lib/tokens.js +0 -8
  77. package/lib/tokens.js.map +0 -1
  78. package/typings/codemirror/codemirror.d.ts +0 -227
package/style/base.css CHANGED
@@ -3,7 +3,7 @@
3
3
  | Distributed under the terms of the Modified BSD License.
4
4
  |----------------------------------------------------------------------------*/
5
5
 
6
- .CodeMirror {
6
+ .cm-editor {
7
7
  line-height: var(--jp-code-line-height);
8
8
  font-size: var(--jp-code-font-size);
9
9
  font-family: var(--jp-code-font-family);
@@ -14,37 +14,22 @@
14
14
  /* Changed to auto to autogrow */
15
15
  }
16
16
 
17
- .CodeMirror pre {
17
+ .cm-editor pre {
18
18
  padding: 0 var(--jp-code-padding);
19
19
  }
20
20
 
21
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-dialog {
21
+ .jp-CodeMirrorEditor[data-type='inline'] .cm-dialog {
22
22
  background-color: var(--jp-layout-color0);
23
23
  color: var(--jp-content-font-color1);
24
24
  }
25
25
 
26
- /* This causes https://github.com/jupyter/jupyterlab/issues/522 */
27
-
28
- /* May not cause it not because we changed it! */
29
- .CodeMirror-lines {
30
- padding: var(--jp-code-padding) 0;
31
- }
32
-
33
- .CodeMirror-linenumber {
34
- padding: 0 8px;
35
- }
36
-
37
26
  .jp-CodeMirrorEditor {
38
27
  cursor: text;
39
28
  }
40
29
 
41
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
42
- border-left: var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color);
43
- }
44
-
45
30
  /* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */
46
31
  @media screen and (min-width: 2138px) and (max-width: 4319px) {
47
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
32
+ .jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
48
33
  border-left: var(--jp-code-cursor-width1) solid
49
34
  var(--jp-editor-cursor-color);
50
35
  }
@@ -52,21 +37,16 @@
52
37
 
53
38
  /* When zoomed out less than 33% */
54
39
  @media screen and (min-width: 4320px) {
55
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
40
+ .jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
56
41
  border-left: var(--jp-code-cursor-width2) solid
57
42
  var(--jp-editor-cursor-color);
58
43
  }
59
44
  }
60
45
 
61
- .CodeMirror.jp-mod-readOnly .CodeMirror-cursor {
46
+ .cm-editor.jp-mod-readOnly .cm-cursor {
62
47
  display: none;
63
48
  }
64
49
 
65
- .CodeMirror-gutters {
66
- border-right: 1px solid var(--jp-border-color2);
67
- background-color: var(--jp-layout-color0);
68
- }
69
-
70
50
  .jp-CollaboratorCursor {
71
51
  border-left: 5px solid transparent;
72
52
  border-right: 5px solid transparent;
@@ -77,30 +57,34 @@
77
57
  margin-right: -5px;
78
58
  }
79
59
 
80
- .CodeMirror-selectedtext.cm-searching {
81
- background-color: var(--jp-search-selected-match-background-color) !important;
82
- color: var(--jp-search-selected-match-color) !important;
60
+ .cm-searching,
61
+ .cm-searching span {
62
+ background-color: var(--jp-search-unselected-match-background-color);
63
+ color: var(--jp-search-unselected-match-color);
83
64
  }
84
65
 
85
- .cm-searching {
86
- background-color: var(
87
- --jp-search-unselected-match-background-color
88
- ) !important;
89
- color: var(--jp-search-unselected-match-color) !important;
66
+ .cm-content .cm-searching::selection,
67
+ .cm-content .cm-searching span::selection {
68
+ background-color: var(--jp-search-unselected-match-background-color);
69
+ color: var(--jp-search-unselected-match-color);
90
70
  }
91
71
 
92
- .cm-trailingspace {
93
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII=);
94
- background-position: center left;
95
- background-repeat: repeat-x;
72
+ .jp-current-match .cm-searching,
73
+ .jp-current-match .cm-searching span {
74
+ background-color: var(--jp-search-selected-match-background-color);
75
+ color: var(--jp-search-selected-match-color);
96
76
  }
97
77
 
98
- .CodeMirror-focused .CodeMirror-selected {
99
- background-color: var(--jp-editor-selected-focused-background);
78
+ .cm-content .jp-current-match .cm-searching::selection,
79
+ .cm-content .jp-current-match .cm-searching span::selection {
80
+ background-color: var(--jp-search-selected-match-background-color);
81
+ color: var(--jp-search-selected-match-color);
100
82
  }
101
83
 
102
- .CodeMirror-selected {
103
- background-color: var(--jp-editor-selected-background);
84
+ .cm-trailingspace {
85
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII=);
86
+ background-position: center left;
87
+ background-repeat: repeat-x;
104
88
  }
105
89
 
106
90
  .jp-CollaboratorCursor-hover {
@@ -122,160 +106,22 @@
122
106
  border-left: 1px dashed var(--jp-border-color2);
123
107
  }
124
108
 
125
- /**
126
- * Here is our jupyter theme for CodeMirror syntax highlighting
127
- * This is used in our marked.js syntax highlighting and CodeMirror itself
128
- * The string "jupyter" is set in ../codemirror/widget.DEFAULT_CODEMIRROR_THEME
129
- * This came from the classic notebook, which came form highlight.js/GitHub
130
- */
131
-
132
- /**
133
- * CodeMirror themes are handling the background/color in this way. This works
134
- * fine for CodeMirror editors outside the notebook, but the notebook styles
135
- * these things differently.
136
- */
137
- .CodeMirror.cm-s-jupyter {
138
- background: var(--jp-layout-color0);
139
- color: var(--jp-content-font-color1);
140
- }
141
-
142
- /* In the notebook, we want this styling to be handled by its container */
143
- .jp-CodeConsole .CodeMirror.cm-s-jupyter,
144
- .jp-Notebook .CodeMirror.cm-s-jupyter {
145
- background: transparent;
146
- }
147
-
148
- .cm-s-jupyter .CodeMirror-cursor {
149
- border-left: var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color);
150
- }
151
-
152
- .cm-s-jupyter span.cm-keyword {
153
- color: var(--jp-mirror-editor-keyword-color);
154
- font-weight: bold;
155
- }
156
-
157
- .cm-s-jupyter span.cm-atom {
158
- color: var(--jp-mirror-editor-atom-color);
159
- }
160
-
161
- .cm-s-jupyter span.cm-number {
162
- color: var(--jp-mirror-editor-number-color);
163
- }
164
-
165
- .cm-s-jupyter span.cm-def {
166
- color: var(--jp-mirror-editor-def-color);
167
- }
168
-
169
- .cm-s-jupyter span.cm-variable {
170
- color: var(--jp-mirror-editor-variable-color);
171
- }
172
-
173
- .cm-s-jupyter span.cm-variable-2 {
174
- color: var(--jp-mirror-editor-variable-2-color);
175
- }
176
-
177
- .cm-s-jupyter span.cm-variable-3 {
178
- color: var(--jp-mirror-editor-variable-3-color);
179
- }
180
-
181
- .cm-s-jupyter span.cm-punctuation {
182
- color: var(--jp-mirror-editor-punctuation-color);
183
- }
184
-
185
- .cm-s-jupyter span.cm-property {
186
- color: var(--jp-mirror-editor-property-color);
187
- }
188
-
189
- .cm-s-jupyter span.cm-operator {
190
- color: var(--jp-mirror-editor-operator-color);
191
- font-weight: bold;
192
- }
193
-
194
- .cm-s-jupyter span.cm-comment {
195
- color: var(--jp-mirror-editor-comment-color);
196
- font-style: italic;
197
- }
198
-
199
- .cm-s-jupyter span.cm-string {
200
- color: var(--jp-mirror-editor-string-color);
201
- }
202
-
203
- .cm-s-jupyter span.cm-string-2 {
204
- color: var(--jp-mirror-editor-string-2-color);
205
- }
206
-
207
- .cm-s-jupyter span.cm-meta {
208
- color: var(--jp-mirror-editor-meta-color);
209
- }
210
-
211
- .cm-s-jupyter span.cm-qualifier {
212
- color: var(--jp-mirror-editor-qualifier-color);
213
- }
214
-
215
- .cm-s-jupyter span.cm-builtin {
216
- color: var(--jp-mirror-editor-builtin-color);
217
- }
218
-
219
- .cm-s-jupyter span.cm-bracket {
220
- color: var(--jp-mirror-editor-bracket-color);
221
- }
222
-
223
- .cm-s-jupyter span.cm-tag {
224
- color: var(--jp-mirror-editor-tag-color);
225
- }
226
-
227
- .cm-s-jupyter span.cm-attribute {
228
- color: var(--jp-mirror-editor-attribute-color);
229
- }
230
-
231
- .cm-s-jupyter span.cm-header {
232
- color: var(--jp-mirror-editor-header-color);
233
- }
234
-
235
- .cm-s-jupyter span.cm-quote {
236
- color: var(--jp-mirror-editor-quote-color);
237
- }
238
-
239
- .cm-s-jupyter span.cm-link {
240
- color: var(--jp-mirror-editor-link-color);
241
- }
242
-
243
- .cm-s-jupyter span.cm-error {
244
- color: var(--jp-mirror-editor-error-color);
245
- }
246
-
247
- .cm-s-jupyter span.cm-hr {
248
- color: #999;
249
- }
250
-
251
- .cm-s-jupyter span.cm-tab {
252
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
253
- background-position: right;
254
- background-repeat: no-repeat;
255
- }
256
-
257
- .cm-s-jupyter .CodeMirror-activeline-background,
258
- .cm-s-jupyter .CodeMirror-gutter {
259
- background-color: var(--jp-layout-color2);
260
- }
261
-
262
109
  /* Styles for shared cursors (remote cursor locations and selected ranges) */
263
- .jp-CodeMirrorEditor .remote-caret {
110
+ .jp-CodeMirrorEditor .cm-ySelectionCaret {
264
111
  position: relative;
265
- border-left: 2px solid black;
112
+ border-left: 1px solid black;
266
113
  margin-left: -1px;
267
114
  margin-right: -1px;
268
115
  box-sizing: border-box;
269
116
  }
270
117
 
271
- .jp-CodeMirrorEditor .remote-caret > div {
118
+ .jp-CodeMirrorEditor .cm-ySelectionCaret > .cm-ySelectionInfo {
272
119
  white-space: nowrap;
273
120
  position: absolute;
274
121
  top: -1.15em;
275
122
  padding-bottom: 0.05em;
276
- left: -2px;
123
+ left: -1px;
277
124
  font-size: 0.95em;
278
- background-color: rgb(250, 129, 0);
279
125
  font-family: var(--jp-ui-font-family);
280
126
  font-weight: bold;
281
127
  line-height: normal;
@@ -283,16 +129,16 @@
283
129
  color: white;
284
130
  padding-left: 2px;
285
131
  padding-right: 2px;
286
- z-index: 3;
132
+ z-index: 101;
287
133
  transition: opacity 0.3s ease-in-out;
288
134
  }
289
135
 
290
- .jp-CodeMirrorEditor .remote-caret.hide-name > div {
136
+ .jp-CodeMirrorEditor .cm-ySelectionInfo {
291
137
  transition-delay: 0.7s;
292
138
  opacity: 0;
293
139
  }
294
140
 
295
- .jp-CodeMirrorEditor .remote-caret:hover > div {
141
+ .jp-CodeMirrorEditor .cm-ySelectionCaret:hover > .cm-ySelectionInfo {
296
142
  opacity: 1;
297
143
  transition-delay: 0s;
298
144
  }
package/style/index.css CHANGED
@@ -4,13 +4,7 @@
4
4
  |----------------------------------------------------------------------------*/
5
5
 
6
6
  /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */
7
- @import url('~@lumino/widgets/style/index.css');
8
- @import url('~@jupyterlab/ui-components/style/index.css');
9
- @import url('~@jupyterlab/statusbar/style/index.css');
10
- @import url('~@jupyterlab/apputils/style/index.css');
11
7
  @import url('~@jupyterlab/codeeditor/style/index.css');
12
- @import url('~codemirror/lib/codemirror.css');
13
- @import url('~codemirror/addon/dialog/dialog.css');
14
- @import url('~codemirror/addon/fold/foldgutter.css');
8
+ @import url('~@jupyterlab/documentsearch/style/index.css');
15
9
 
16
10
  @import url('./base.css');
package/style/index.js CHANGED
@@ -4,13 +4,7 @@
4
4
  |----------------------------------------------------------------------------*/
5
5
 
6
6
  /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */
7
- import '@lumino/widgets/style/index.js';
8
- import '@jupyterlab/ui-components/style/index.js';
9
- import '@jupyterlab/statusbar/style/index.js';
10
- import '@jupyterlab/apputils/style/index.js';
11
7
  import '@jupyterlab/codeeditor/style/index.js';
12
- import 'codemirror/lib/codemirror.css';
13
- import 'codemirror/addon/dialog/dialog.css';
14
- import 'codemirror/addon/fold/foldgutter.css';
8
+ import '@jupyterlab/documentsearch/style/index.js';
15
9
 
16
10
  import './base.css';
@@ -1,2 +0,0 @@
1
- import 'codemirror/mode/meta';
2
- import 'codemirror/mode/python/python';
@@ -1,30 +0,0 @@
1
- // Copyright (c) Jupyter Development Team.
2
- // Distributed under the terms of the Modified BSD License.
3
- import CodeMirror from 'codemirror';
4
- import 'codemirror/mode/meta';
5
- import 'codemirror/mode/python/python';
6
- /**
7
- * Define an IPython codemirror mode.
8
- *
9
- * It is a slightly altered Python Mode with a `?` operator.
10
- */
11
- CodeMirror.defineMode('ipython', (config, modeOptions) => {
12
- const pythonConf = {};
13
- for (const prop in modeOptions) {
14
- if (modeOptions.hasOwnProperty(prop)) {
15
- pythonConf[prop] = modeOptions[prop];
16
- }
17
- }
18
- pythonConf.name = 'python';
19
- pythonConf.singleOperators = new RegExp('^[\\+\\-\\*/%&|@\\^~<>!\\?]');
20
- pythonConf.identifiers = new RegExp('^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*');
21
- return CodeMirror.getMode(config, pythonConf);
22
- }, 'python');
23
- CodeMirror.defineMIME('text/x-ipython', 'ipython');
24
- CodeMirror.modeInfo.push({
25
- ext: [],
26
- mime: 'text/x-ipython',
27
- mode: 'ipython',
28
- name: 'ipython'
29
- });
30
- //# sourceMappingURL=codemirror-ipython.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codemirror-ipython.js","sourceRoot":"","sources":["../src/codemirror-ipython.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,+BAA+B,CAAC;AAEvC;;;;GAIG;AACH,UAAU,CAAC,UAAU,CACnB,SAAS,EACT,CAAC,MAAsC,EAAE,WAAiB,EAAE,EAAE;IAC5D,MAAM,UAAU,GAAQ,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC9B,IAAI,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YACpC,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;SACtC;KACF;IACD,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC3B,UAAU,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACvE,UAAU,CAAC,WAAW,GAAG,IAAI,MAAM,CACjC,mDAAmD,CACpD,CAAC;IACF,OAAO,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC,EACD,QAAQ,CACT,CAAC;AAEF,UAAU,CAAC,UAAU,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;AACnD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC"}
package/lib/mode.d.ts DELETED
@@ -1,82 +0,0 @@
1
- import { JSONValue } from '@lumino/coreutils';
2
- import 'codemirror/addon/runmode/runmode';
3
- import 'codemirror/mode/clike/clike';
4
- import 'codemirror/mode/css/css';
5
- import 'codemirror/mode/javascript/javascript';
6
- import 'codemirror/mode/jsx/jsx';
7
- import 'codemirror/mode/julia/julia';
8
- import 'codemirror/mode/markdown/markdown';
9
- import 'codemirror/mode/meta';
10
- import 'codemirror/mode/r/r';
11
- import 'codemirror/mode/shell/shell';
12
- import 'codemirror/mode/sql/sql';
13
- import './codemirror-ipython';
14
- import './codemirror-ipythongfm';
15
- /**
16
- * The namespace for CodeMirror Mode functionality.
17
- */
18
- export declare namespace Mode {
19
- /**
20
- * The interface of a codemirror modeInfo spec.
21
- */
22
- interface ISpec {
23
- ext?: string[];
24
- name?: string;
25
- mode: string;
26
- mime: string;
27
- }
28
- /**
29
- * The interface of a codemirror mode spec.
30
- */
31
- interface IMode {
32
- name: string;
33
- [key: string]: JSONValue;
34
- }
35
- /**
36
- * The interface for a codemirror spec resolver.
37
- */
38
- interface ISpecLoader {
39
- /**
40
- * A function which returns whether it was successfully loaded
41
- */
42
- (spec: ISpec): Promise<boolean>;
43
- }
44
- /**
45
- * Get the raw list of available modes specs.
46
- */
47
- function getModeInfo(): ISpec[];
48
- /**
49
- * Running a CodeMirror mode outside of an editor.
50
- */
51
- function run(code: string, mode: string | ISpec, el: HTMLElement): void;
52
- /**
53
- * Ensure a codemirror mode is available by name or Codemirror spec.
54
- *
55
- * @param mode - The mode to ensure. If it is a string, uses [findBest]
56
- * to get the appropriate spec.
57
- *
58
- * @returns A promise that resolves when the mode is available.
59
- */
60
- function ensure(mode: string | ISpec): Promise<ISpec | null>;
61
- function addSpecLoader(loader: ISpecLoader, rank: number): void;
62
- /**
63
- * Find a codemirror mode by name or CodeMirror spec.
64
- */
65
- function findBest(mode: string | ISpec): ISpec;
66
- /**
67
- * Find a codemirror mode by MIME.
68
- */
69
- function findByMIME(mime: string): ISpec;
70
- /**
71
- * Find a codemirror mode by name.
72
- */
73
- function findByName(name: string): ISpec;
74
- /**
75
- * Find a codemirror mode by filename.
76
- */
77
- function findByFileName(name: string): ISpec;
78
- /**
79
- * Find a codemirror mode by extension.
80
- */
81
- function findByExtension(ext: string | string[]): ISpec | null;
82
- }
package/lib/mode.js DELETED
@@ -1,150 +0,0 @@
1
- // Copyright (c) Jupyter Development Team.
2
- // Distributed under the terms of the Modified BSD License.
3
- import { IEditorMimeTypeService } from '@jupyterlab/codeeditor';
4
- import { PathExt } from '@jupyterlab/coreutils';
5
- import { ArrayExt } from '@lumino/algorithm';
6
- import CodeMirror from 'codemirror';
7
- import 'codemirror/addon/runmode/runmode';
8
- import 'codemirror/mode/clike/clike';
9
- import 'codemirror/mode/css/css';
10
- // Bundle other common modes
11
- import 'codemirror/mode/javascript/javascript';
12
- import 'codemirror/mode/jsx/jsx';
13
- import 'codemirror/mode/julia/julia';
14
- import 'codemirror/mode/markdown/markdown';
15
- import 'codemirror/mode/meta';
16
- import 'codemirror/mode/r/r';
17
- import 'codemirror/mode/shell/shell';
18
- import 'codemirror/mode/sql/sql';
19
- import './codemirror-ipython';
20
- import './codemirror-ipythongfm';
21
- /**
22
- * The namespace for CodeMirror Mode functionality.
23
- */
24
- export var Mode;
25
- (function (Mode) {
26
- const specLoaders = [
27
- {
28
- // Simplest, cheapest check by mode name.
29
- loader: async (spec) => CodeMirror.modes.hasOwnProperty(spec.mode),
30
- rank: 0
31
- },
32
- {
33
- // Fetch the mode asynchronously.
34
- loader: function (spec) {
35
- return new Promise((resolve, reject) => {
36
- // An arrow function below seems to miscompile in our current webpack to
37
- // invalid js.
38
- require([
39
- `codemirror/mode/${spec.mode}/${spec.mode}.js`
40
- ], function () {
41
- resolve(true);
42
- });
43
- });
44
- },
45
- rank: 99
46
- }
47
- ];
48
- /**
49
- * Get the raw list of available modes specs.
50
- */
51
- function getModeInfo() {
52
- return CodeMirror.modeInfo;
53
- }
54
- Mode.getModeInfo = getModeInfo;
55
- /**
56
- * Running a CodeMirror mode outside of an editor.
57
- */
58
- function run(code, mode, el) {
59
- CodeMirror.runMode(code, mode, el);
60
- }
61
- Mode.run = run;
62
- /**
63
- * Ensure a codemirror mode is available by name or Codemirror spec.
64
- *
65
- * @param mode - The mode to ensure. If it is a string, uses [findBest]
66
- * to get the appropriate spec.
67
- *
68
- * @returns A promise that resolves when the mode is available.
69
- */
70
- async function ensure(mode) {
71
- const spec = findBest(mode);
72
- for (const specLoader of specLoaders) {
73
- if (await specLoader.loader(spec)) {
74
- return spec;
75
- }
76
- }
77
- return null;
78
- }
79
- Mode.ensure = ensure;
80
- function addSpecLoader(loader, rank) {
81
- const item = { loader, rank };
82
- const index = ArrayExt.upperBound(specLoaders, item, Private.itemCmp);
83
- ArrayExt.insert(specLoaders, index, item);
84
- }
85
- Mode.addSpecLoader = addSpecLoader;
86
- /**
87
- * Find a codemirror mode by name or CodeMirror spec.
88
- */
89
- function findBest(mode) {
90
- var _a;
91
- const modename = typeof mode === 'string' ? mode : mode.mode || mode.name;
92
- const mimetype = typeof mode !== 'string' ? mode.mime : modename;
93
- const ext = typeof mode !== 'string' ? (_a = mode.ext) !== null && _a !== void 0 ? _a : [] : [];
94
- return (CodeMirror.findModeByName(modename || '') ||
95
- CodeMirror.findModeByMIME(mimetype || '') ||
96
- findByExtension(ext) ||
97
- CodeMirror.findModeByMIME(IEditorMimeTypeService.defaultMimeType) ||
98
- CodeMirror.findModeByMIME('text/plain'));
99
- }
100
- Mode.findBest = findBest;
101
- /**
102
- * Find a codemirror mode by MIME.
103
- */
104
- function findByMIME(mime) {
105
- return CodeMirror.findModeByMIME(mime);
106
- }
107
- Mode.findByMIME = findByMIME;
108
- /**
109
- * Find a codemirror mode by name.
110
- */
111
- function findByName(name) {
112
- return CodeMirror.findModeByName(name);
113
- }
114
- Mode.findByName = findByName;
115
- /**
116
- * Find a codemirror mode by filename.
117
- */
118
- function findByFileName(name) {
119
- const basename = PathExt.basename(name);
120
- return CodeMirror.findModeByFileName(basename);
121
- }
122
- Mode.findByFileName = findByFileName;
123
- /**
124
- * Find a codemirror mode by extension.
125
- */
126
- function findByExtension(ext) {
127
- if (typeof ext === 'string') {
128
- return CodeMirror.findModeByExtension(ext);
129
- }
130
- for (let i = 0; i < ext.length; i++) {
131
- const mode = CodeMirror.findModeByExtension(ext[i]);
132
- if (mode) {
133
- return mode;
134
- }
135
- }
136
- return null;
137
- }
138
- Mode.findByExtension = findByExtension;
139
- })(Mode || (Mode = {}));
140
- var Private;
141
- (function (Private) {
142
- /**
143
- * A less-than comparison function for the loader rank
144
- */
145
- function itemCmp(first, second) {
146
- return first.rank - second.rank;
147
- }
148
- Private.itemCmp = itemCmp;
149
- })(Private || (Private = {}));
150
- //# sourceMappingURL=mode.js.map
package/lib/mode.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"mode.js","sourceRoot":"","sources":["../src/mode.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- import { CodeEditor } from '@jupyterlab/codeeditor';
2
- import { ITranslator } from '@jupyterlab/translation';
3
- import { VDomModel, VDomRenderer } from '@jupyterlab/ui-components';
4
- import { CommandRegistry } from '@lumino/commands';
5
- /**
6
- * StatusBar item to change the language syntax highlighting of the file editor.
7
- */
8
- export declare class EditorSyntaxStatus extends VDomRenderer<EditorSyntaxStatus.Model> {
9
- /**
10
- * Construct a new VDomRenderer for the status item.
11
- */
12
- constructor(opts: EditorSyntaxStatus.IOptions);
13
- /**
14
- * Render the status item.
15
- */
16
- render(): JSX.Element | null;
17
- /**
18
- * Create a menu for selecting the mode of the editor.
19
- */
20
- private _handleClick;
21
- protected translator: ITranslator;
22
- private _commands;
23
- private _popup;
24
- }
25
- /**
26
- * A namespace for EditorSyntax statics.
27
- */
28
- export declare namespace EditorSyntaxStatus {
29
- /**
30
- * A VDomModel for the current editor/mode combination.
31
- */
32
- class Model extends VDomModel {
33
- /**
34
- * The current mode for the editor. If no editor is present,
35
- * returns the empty string.
36
- */
37
- get mode(): string;
38
- /**
39
- * The current editor for the application editor tracker.
40
- */
41
- get editor(): CodeEditor.IEditor | null;
42
- set editor(editor: CodeEditor.IEditor | null);
43
- /**
44
- * If the editor mode changes, update the model.
45
- */
46
- private _onMIMETypeChange;
47
- /**
48
- * Trigger a rerender of the model.
49
- */
50
- private _triggerChange;
51
- private _mode;
52
- private _editor;
53
- }
54
- /**
55
- * Options for the EditorSyntax status item.
56
- */
57
- interface IOptions {
58
- /**
59
- * The application command registry.
60
- */
61
- commands: CommandRegistry;
62
- /**
63
- * The language translator.
64
- */
65
- translator?: ITranslator;
66
- }
67
- }