@jupyterlab/codemirror 4.0.0-alpha.2 → 4.0.0-alpha.20

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 -279
  8. package/lib/editor.js +220 -818
  9. package/lib/editor.js.map +1 -1
  10. package/lib/extension.d.ts +236 -0
  11. package/lib/extension.js +687 -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 +125 -0
  23. package/lib/extensions/ybinding.js +213 -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 +1690 -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 +197 -0
  38. package/lib/searchprovider.js +550 -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 +878 -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 +267 -0
  55. package/src/factory.ts +100 -0
  56. package/src/index.ts +17 -0
  57. package/src/language.ts +1729 -0
  58. package/src/mimetype.ts +54 -0
  59. package/src/searchprovider.ts +700 -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 +22 -162
  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 -81
  70. package/lib/mode.js +0 -149
  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 -9
  77. package/lib/tokens.js.map +0 -1
  78. package/typings/codemirror/codemirror.d.ts +0 -227
package/style/base.css CHANGED
@@ -3,46 +3,33 @@
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);
10
10
  border: 0;
11
11
  border-radius: 0;
12
12
  height: auto;
13
+
13
14
  /* Changed to auto to autogrow */
14
15
  }
15
16
 
16
- .CodeMirror pre {
17
+ .cm-editor pre {
17
18
  padding: 0 var(--jp-code-padding);
18
19
  }
19
20
 
20
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-dialog {
21
+ .jp-CodeMirrorEditor[data-type='inline'] .cm-dialog {
21
22
  background-color: var(--jp-layout-color0);
22
23
  color: var(--jp-content-font-color1);
23
24
  }
24
25
 
25
- /* This causes https://github.com/jupyter/jupyterlab/issues/522 */
26
- /* May not cause it not because we changed it! */
27
- .CodeMirror-lines {
28
- padding: var(--jp-code-padding) 0;
29
- }
30
-
31
- .CodeMirror-linenumber {
32
- padding: 0 8px;
33
- }
34
-
35
26
  .jp-CodeMirrorEditor {
36
27
  cursor: text;
37
28
  }
38
29
 
39
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
40
- border-left: var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color);
41
- }
42
-
43
30
  /* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */
44
31
  @media screen and (min-width: 2138px) and (max-width: 4319px) {
45
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
32
+ .jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
46
33
  border-left: var(--jp-code-cursor-width1) solid
47
34
  var(--jp-editor-cursor-color);
48
35
  }
@@ -50,21 +37,16 @@
50
37
 
51
38
  /* When zoomed out less than 33% */
52
39
  @media screen and (min-width: 4320px) {
53
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
40
+ .jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
54
41
  border-left: var(--jp-code-cursor-width2) solid
55
42
  var(--jp-editor-cursor-color);
56
43
  }
57
44
  }
58
45
 
59
- .CodeMirror.jp-mod-readOnly .CodeMirror-cursor {
46
+ .cm-editor.jp-mod-readOnly .cm-cursor {
60
47
  display: none;
61
48
  }
62
49
 
63
- .CodeMirror-gutters {
64
- border-right: 1px solid var(--jp-border-color2);
65
- background-color: var(--jp-layout-color0);
66
- }
67
-
68
50
  .jp-CollaboratorCursor {
69
51
  border-left: 5px solid transparent;
70
52
  border-right: 5px solid transparent;
@@ -75,16 +57,16 @@
75
57
  margin-right: -5px;
76
58
  }
77
59
 
78
- .CodeMirror-selectedtext.cm-searching {
79
- background-color: var(--jp-search-selected-match-background-color) !important;
80
- 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);
81
64
  }
82
65
 
83
- .cm-searching {
84
- background-color: var(
85
- --jp-search-unselected-match-background-color
86
- ) !important;
87
- color: var(--jp-search-unselected-match-color) !important;
66
+ .cm-searching::selection,
67
+ .cm-searching span::selection {
68
+ background-color: var(--jp-search-selected-match-background-color) !important;
69
+ color: var(--jp-search-selected-match-color) !important;
88
70
  }
89
71
 
90
72
  .cm-trailingspace {
@@ -93,14 +75,6 @@
93
75
  background-repeat: repeat-x;
94
76
  }
95
77
 
96
- .CodeMirror-focused .CodeMirror-selected {
97
- background-color: var(--jp-editor-selected-focused-background);
98
- }
99
-
100
- .CodeMirror-selected {
101
- background-color: var(--jp-editor-selected-background);
102
- }
103
-
104
78
  .jp-CollaboratorCursor-hover {
105
79
  position: absolute;
106
80
  z-index: 1;
@@ -120,136 +94,22 @@
120
94
  border-left: 1px dashed var(--jp-border-color2);
121
95
  }
122
96
 
123
- /**
124
- * Here is our jupyter theme for CodeMirror syntax highlighting
125
- * This is used in our marked.js syntax highlighting and CodeMirror itself
126
- * The string "jupyter" is set in ../codemirror/widget.DEFAULT_CODEMIRROR_THEME
127
- * This came from the classic notebook, which came form highlight.js/GitHub
128
- */
129
-
130
- /**
131
- * CodeMirror themes are handling the background/color in this way. This works
132
- * fine for CodeMirror editors outside the notebook, but the notebook styles
133
- * these things differently.
134
- */
135
- .CodeMirror.cm-s-jupyter {
136
- background: var(--jp-layout-color0);
137
- color: var(--jp-content-font-color1);
138
- }
139
-
140
- /* In the notebook, we want this styling to be handled by its container */
141
- .jp-CodeConsole .CodeMirror.cm-s-jupyter,
142
- .jp-Notebook .CodeMirror.cm-s-jupyter {
143
- background: transparent;
144
- }
145
-
146
- .cm-s-jupyter .CodeMirror-cursor {
147
- border-left: var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color);
148
- }
149
- .cm-s-jupyter span.cm-keyword {
150
- color: var(--jp-mirror-editor-keyword-color);
151
- font-weight: bold;
152
- }
153
- .cm-s-jupyter span.cm-atom {
154
- color: var(--jp-mirror-editor-atom-color);
155
- }
156
- .cm-s-jupyter span.cm-number {
157
- color: var(--jp-mirror-editor-number-color);
158
- }
159
- .cm-s-jupyter span.cm-def {
160
- color: var(--jp-mirror-editor-def-color);
161
- }
162
- .cm-s-jupyter span.cm-variable {
163
- color: var(--jp-mirror-editor-variable-color);
164
- }
165
- .cm-s-jupyter span.cm-variable-2 {
166
- color: var(--jp-mirror-editor-variable-2-color);
167
- }
168
- .cm-s-jupyter span.cm-variable-3 {
169
- color: var(--jp-mirror-editor-variable-3-color);
170
- }
171
- .cm-s-jupyter span.cm-punctuation {
172
- color: var(--jp-mirror-editor-punctuation-color);
173
- }
174
- .cm-s-jupyter span.cm-property {
175
- color: var(--jp-mirror-editor-property-color);
176
- }
177
- .cm-s-jupyter span.cm-operator {
178
- color: var(--jp-mirror-editor-operator-color);
179
- font-weight: bold;
180
- }
181
- .cm-s-jupyter span.cm-comment {
182
- color: var(--jp-mirror-editor-comment-color);
183
- font-style: italic;
184
- }
185
- .cm-s-jupyter span.cm-string {
186
- color: var(--jp-mirror-editor-string-color);
187
- }
188
- .cm-s-jupyter span.cm-string-2 {
189
- color: var(--jp-mirror-editor-string-2-color);
190
- }
191
- .cm-s-jupyter span.cm-meta {
192
- color: var(--jp-mirror-editor-meta-color);
193
- }
194
- .cm-s-jupyter span.cm-qualifier {
195
- color: var(--jp-mirror-editor-qualifier-color);
196
- }
197
- .cm-s-jupyter span.cm-builtin {
198
- color: var(--jp-mirror-editor-builtin-color);
199
- }
200
- .cm-s-jupyter span.cm-bracket {
201
- color: var(--jp-mirror-editor-bracket-color);
202
- }
203
- .cm-s-jupyter span.cm-tag {
204
- color: var(--jp-mirror-editor-tag-color);
205
- }
206
- .cm-s-jupyter span.cm-attribute {
207
- color: var(--jp-mirror-editor-attribute-color);
208
- }
209
- .cm-s-jupyter span.cm-header {
210
- color: var(--jp-mirror-editor-header-color);
211
- }
212
- .cm-s-jupyter span.cm-quote {
213
- color: var(--jp-mirror-editor-quote-color);
214
- }
215
- .cm-s-jupyter span.cm-link {
216
- color: var(--jp-mirror-editor-link-color);
217
- }
218
- .cm-s-jupyter span.cm-error {
219
- color: var(--jp-mirror-editor-error-color);
220
- }
221
- .cm-s-jupyter span.cm-hr {
222
- color: #999;
223
- }
224
-
225
- .cm-s-jupyter span.cm-tab {
226
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
227
- background-position: right;
228
- background-repeat: no-repeat;
229
- }
230
-
231
- .cm-s-jupyter .CodeMirror-activeline-background,
232
- .cm-s-jupyter .CodeMirror-gutter {
233
- background-color: var(--jp-layout-color2);
234
- }
235
-
236
97
  /* Styles for shared cursors (remote cursor locations and selected ranges) */
237
- .jp-CodeMirrorEditor .remote-caret {
98
+ .jp-CodeMirrorEditor .cm-ySelectionCaret {
238
99
  position: relative;
239
- border-left: 2px solid black;
100
+ border-left: 1px solid black;
240
101
  margin-left: -1px;
241
102
  margin-right: -1px;
242
103
  box-sizing: border-box;
243
104
  }
244
105
 
245
- .jp-CodeMirrorEditor .remote-caret > div {
106
+ .jp-CodeMirrorEditor .cm-ySelectionCaret > .cm-ySelectionInfo {
246
107
  white-space: nowrap;
247
108
  position: absolute;
248
109
  top: -1.15em;
249
110
  padding-bottom: 0.05em;
250
- left: -2px;
111
+ left: -1px;
251
112
  font-size: 0.95em;
252
- background-color: rgb(250, 129, 0);
253
113
  font-family: var(--jp-ui-font-family);
254
114
  font-weight: bold;
255
115
  line-height: normal;
@@ -257,16 +117,16 @@
257
117
  color: white;
258
118
  padding-left: 2px;
259
119
  padding-right: 2px;
260
- z-index: 3;
120
+ z-index: 101;
261
121
  transition: opacity 0.3s ease-in-out;
262
122
  }
263
123
 
264
- .jp-CodeMirrorEditor .remote-caret.hide-name > div {
124
+ .jp-CodeMirrorEditor .cm-ySelectionInfo {
265
125
  transition-delay: 0.7s;
266
126
  opacity: 0;
267
127
  }
268
128
 
269
- .jp-CodeMirrorEditor .remote-caret:hover > div {
129
+ .jp-CodeMirrorEditor .cm-ySelectionCaret:hover > .cm-ySelectionInfo {
270
130
  opacity: 1;
271
131
  transition-delay: 0s;
272
132
  }
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/apputils/style/index.css');
10
7
  @import url('~@jupyterlab/codeeditor/style/index.css');
11
- @import url('~@jupyterlab/statusbar/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/apputils/style/index.js';
10
7
  import '@jupyterlab/codeeditor/style/index.js';
11
- import '@jupyterlab/statusbar/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,81 +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/julia/julia';
7
- import 'codemirror/mode/markdown/markdown';
8
- import 'codemirror/mode/meta';
9
- import 'codemirror/mode/r/r';
10
- import 'codemirror/mode/shell/shell';
11
- import 'codemirror/mode/sql/sql';
12
- import './codemirror-ipython';
13
- import './codemirror-ipythongfm';
14
- /**
15
- * The namespace for CodeMirror Mode functionality.
16
- */
17
- export declare namespace Mode {
18
- /**
19
- * The interface of a codemirror modeInfo spec.
20
- */
21
- interface ISpec {
22
- ext?: string[];
23
- name?: string;
24
- mode: string;
25
- mime: string;
26
- }
27
- /**
28
- * The interface of a codemirror mode spec.
29
- */
30
- interface IMode {
31
- name: string;
32
- [key: string]: JSONValue;
33
- }
34
- /**
35
- * The interface for a codemirror spec resolver.
36
- */
37
- interface ISpecLoader {
38
- /**
39
- * A function which returns whether it was successfully loaded
40
- */
41
- (spec: ISpec): Promise<boolean>;
42
- }
43
- /**
44
- * Get the raw list of available modes specs.
45
- */
46
- function getModeInfo(): ISpec[];
47
- /**
48
- * Running a CodeMirror mode outside of an editor.
49
- */
50
- function run(code: string, mode: string | ISpec, el: HTMLElement): void;
51
- /**
52
- * Ensure a codemirror mode is available by name or Codemirror spec.
53
- *
54
- * @param mode - The mode to ensure. If it is a string, uses [findBest]
55
- * to get the appropriate spec.
56
- *
57
- * @returns A promise that resolves when the mode is available.
58
- */
59
- function ensure(mode: string | ISpec): Promise<ISpec | null>;
60
- function addSpecLoader(loader: ISpecLoader, rank: number): void;
61
- /**
62
- * Find a codemirror mode by name or CodeMirror spec.
63
- */
64
- function findBest(mode: string | ISpec): ISpec;
65
- /**
66
- * Find a codemirror mode by MIME.
67
- */
68
- function findByMIME(mime: string): ISpec;
69
- /**
70
- * Find a codemirror mode by name.
71
- */
72
- function findByName(name: string): ISpec;
73
- /**
74
- * Find a codemirror mode by filename.
75
- */
76
- function findByFileName(name: string): ISpec;
77
- /**
78
- * Find a codemirror mode by extension.
79
- */
80
- function findByExtension(ext: string | string[]): ISpec | null;
81
- }
package/lib/mode.js DELETED
@@ -1,149 +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/julia/julia';
13
- import 'codemirror/mode/markdown/markdown';
14
- import 'codemirror/mode/meta';
15
- import 'codemirror/mode/r/r';
16
- import 'codemirror/mode/shell/shell';
17
- import 'codemirror/mode/sql/sql';
18
- import './codemirror-ipython';
19
- import './codemirror-ipythongfm';
20
- /**
21
- * The namespace for CodeMirror Mode functionality.
22
- */
23
- export var Mode;
24
- (function (Mode) {
25
- const specLoaders = [
26
- {
27
- // Simplest, cheapest check by mode name.
28
- loader: async (spec) => CodeMirror.modes.hasOwnProperty(spec.mode),
29
- rank: 0
30
- },
31
- {
32
- // Fetch the mode asynchronously.
33
- loader: function (spec) {
34
- return new Promise((resolve, reject) => {
35
- // An arrow function below seems to miscompile in our current webpack to
36
- // invalid js.
37
- require([
38
- `codemirror/mode/${spec.mode}/${spec.mode}.js`
39
- ], function () {
40
- resolve(true);
41
- });
42
- });
43
- },
44
- rank: 99
45
- }
46
- ];
47
- /**
48
- * Get the raw list of available modes specs.
49
- */
50
- function getModeInfo() {
51
- return CodeMirror.modeInfo;
52
- }
53
- Mode.getModeInfo = getModeInfo;
54
- /**
55
- * Running a CodeMirror mode outside of an editor.
56
- */
57
- function run(code, mode, el) {
58
- CodeMirror.runMode(code, mode, el);
59
- }
60
- Mode.run = run;
61
- /**
62
- * Ensure a codemirror mode is available by name or Codemirror spec.
63
- *
64
- * @param mode - The mode to ensure. If it is a string, uses [findBest]
65
- * to get the appropriate spec.
66
- *
67
- * @returns A promise that resolves when the mode is available.
68
- */
69
- async function ensure(mode) {
70
- const spec = findBest(mode);
71
- for (const specLoader of specLoaders) {
72
- if (await specLoader.loader(spec)) {
73
- return spec;
74
- }
75
- }
76
- return null;
77
- }
78
- Mode.ensure = ensure;
79
- function addSpecLoader(loader, rank) {
80
- const item = { loader, rank };
81
- const index = ArrayExt.upperBound(specLoaders, item, Private.itemCmp);
82
- ArrayExt.insert(specLoaders, index, item);
83
- }
84
- Mode.addSpecLoader = addSpecLoader;
85
- /**
86
- * Find a codemirror mode by name or CodeMirror spec.
87
- */
88
- function findBest(mode) {
89
- var _a;
90
- const modename = typeof mode === 'string' ? mode : mode.mode || mode.name;
91
- const mimetype = typeof mode !== 'string' ? mode.mime : modename;
92
- const ext = typeof mode !== 'string' ? (_a = mode.ext) !== null && _a !== void 0 ? _a : [] : [];
93
- return (CodeMirror.findModeByName(modename || '') ||
94
- CodeMirror.findModeByMIME(mimetype || '') ||
95
- findByExtension(ext) ||
96
- CodeMirror.findModeByMIME(IEditorMimeTypeService.defaultMimeType) ||
97
- CodeMirror.findModeByMIME('text/plain'));
98
- }
99
- Mode.findBest = findBest;
100
- /**
101
- * Find a codemirror mode by MIME.
102
- */
103
- function findByMIME(mime) {
104
- return CodeMirror.findModeByMIME(mime);
105
- }
106
- Mode.findByMIME = findByMIME;
107
- /**
108
- * Find a codemirror mode by name.
109
- */
110
- function findByName(name) {
111
- return CodeMirror.findModeByName(name);
112
- }
113
- Mode.findByName = findByName;
114
- /**
115
- * Find a codemirror mode by filename.
116
- */
117
- function findByFileName(name) {
118
- const basename = PathExt.basename(name);
119
- return CodeMirror.findModeByFileName(basename);
120
- }
121
- Mode.findByFileName = findByFileName;
122
- /**
123
- * Find a codemirror mode by extension.
124
- */
125
- function findByExtension(ext) {
126
- if (typeof ext === 'string') {
127
- return CodeMirror.findModeByExtension(ext);
128
- }
129
- for (let i = 0; i < ext.length; i++) {
130
- const mode = CodeMirror.findModeByExtension(ext[i]);
131
- if (mode) {
132
- return mode;
133
- }
134
- }
135
- return null;
136
- }
137
- Mode.findByExtension = findByExtension;
138
- })(Mode || (Mode = {}));
139
- var Private;
140
- (function (Private) {
141
- /**
142
- * A less-than comparison function for the loader rank
143
- */
144
- function itemCmp(first, second) {
145
- return first.rank - second.rank;
146
- }
147
- Private.itemCmp = itemCmp;
148
- })(Private || (Private = {}));
149
- //# 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
- }