@jupyterlab/fileeditor 4.1.0-alpha.1 → 4.1.0-alpha.3
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/lib/fileeditorlspadapter.d.ts +1 -0
- package/lib/fileeditorlspadapter.js +4 -2
- package/lib/fileeditorlspadapter.js.map +1 -1
- package/lib/widget.d.ts +10 -1
- package/lib/widget.js +35 -1
- package/lib/widget.js.map +1 -1
- package/package.json +16 -16
- package/src/fileeditorlspadapter.ts +4 -2
- package/src/widget.ts +38 -1
|
@@ -63,6 +63,7 @@ export declare class FileEditorAdapter extends WidgetLSPAdapter<IDocumentWidget<
|
|
|
63
63
|
* Get the index of editor from the cursor position in the virtual
|
|
64
64
|
* document. Since there is only one editor, this method always return
|
|
65
65
|
* 0
|
|
66
|
+
* @deprecated This is error-prone and will be removed in JupyterLab 5.0, use `getEditorIndex()` with `virtualDocument.getEditorAtVirtualLine(position)` instead.
|
|
66
67
|
*
|
|
67
68
|
* @param position - the position of cursor in the virtual document.
|
|
68
69
|
* @return {number} - index of the virtual editor
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
|
+
import { IEditorMimeTypeService } from '@jupyterlab/codeeditor';
|
|
3
4
|
import { VirtualDocument, WidgetLSPAdapter } from '@jupyterlab/lsp';
|
|
4
5
|
import { PromiseDelegate } from '@lumino/coreutils';
|
|
5
6
|
export class FileEditorAdapter extends WidgetLSPAdapter {
|
|
@@ -41,12 +42,12 @@ export class FileEditorAdapter extends WidgetLSPAdapter {
|
|
|
41
42
|
var _a;
|
|
42
43
|
const mimeTypeFromModel = this.editor.model.mimeType;
|
|
43
44
|
const codeMirrorMimeType = Array.isArray(mimeTypeFromModel)
|
|
44
|
-
? (_a = mimeTypeFromModel[0]) !== null && _a !== void 0 ? _a :
|
|
45
|
+
? (_a = mimeTypeFromModel[0]) !== null && _a !== void 0 ? _a : IEditorMimeTypeService.defaultMimeType
|
|
45
46
|
: mimeTypeFromModel;
|
|
46
47
|
const contentsModel = this.editor.context.contentsModel;
|
|
47
48
|
// when MIME type is not known it defaults to 'text/plain',
|
|
48
49
|
// so if it is different we can accept it as it is
|
|
49
|
-
if (codeMirrorMimeType !=
|
|
50
|
+
if (codeMirrorMimeType != IEditorMimeTypeService.defaultMimeType) {
|
|
50
51
|
return codeMirrorMimeType;
|
|
51
52
|
}
|
|
52
53
|
else if (contentsModel) {
|
|
@@ -135,6 +136,7 @@ export class FileEditorAdapter extends WidgetLSPAdapter {
|
|
|
135
136
|
* Get the index of editor from the cursor position in the virtual
|
|
136
137
|
* document. Since there is only one editor, this method always return
|
|
137
138
|
* 0
|
|
139
|
+
* @deprecated This is error-prone and will be removed in JupyterLab 5.0, use `getEditorIndex()` with `virtualDocument.getEditorAtVirtualLine(position)` instead.
|
|
138
140
|
*
|
|
139
141
|
* @param position - the position of cursor in the virtual document.
|
|
140
142
|
* @return {number} - index of the virtual editor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileeditorlspadapter.js","sourceRoot":"","sources":["../src/fileeditorlspadapter.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;
|
|
1
|
+
{"version":3,"file":"fileeditorlspadapter.js","sourceRoot":"","sources":["../src/fileeditorlspadapter.ts"],"names":[],"mappings":"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"}
|
package/lib/widget.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodeEditor, IEditorMimeTypeService, IEditorServices } from '@jupyterlab/codeeditor';
|
|
2
|
-
import { ABCWidgetFactory, DocumentRegistry, IDocumentWidget } from '@jupyterlab/docregistry';
|
|
2
|
+
import { ABCWidgetFactory, DocumentRegistry, DocumentWidget, IDocumentWidget } from '@jupyterlab/docregistry';
|
|
3
3
|
import { Message } from '@lumino/messaging';
|
|
4
4
|
import { Widget } from '@lumino/widgets';
|
|
5
5
|
/**
|
|
@@ -86,6 +86,15 @@ export declare namespace FileEditor {
|
|
|
86
86
|
*/
|
|
87
87
|
const defaultEditorConfig: Record<string, any>;
|
|
88
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* A document widget for file editor widgets.
|
|
91
|
+
*/
|
|
92
|
+
export declare class FileEditorWidget extends DocumentWidget<FileEditor> {
|
|
93
|
+
/**
|
|
94
|
+
* Set URI fragment identifier for text files
|
|
95
|
+
*/
|
|
96
|
+
setFragment(fragment: string): Promise<void>;
|
|
97
|
+
}
|
|
89
98
|
/**
|
|
90
99
|
* A widget factory for editors.
|
|
91
100
|
*/
|
package/lib/widget.js
CHANGED
|
@@ -144,6 +144,40 @@ export class FileEditor extends Widget {
|
|
|
144
144
|
scrollPastEnd: true
|
|
145
145
|
};
|
|
146
146
|
})(FileEditor || (FileEditor = {}));
|
|
147
|
+
/**
|
|
148
|
+
* A document widget for file editor widgets.
|
|
149
|
+
*/
|
|
150
|
+
export class FileEditorWidget extends DocumentWidget {
|
|
151
|
+
/**
|
|
152
|
+
* Set URI fragment identifier for text files
|
|
153
|
+
*/
|
|
154
|
+
async setFragment(fragment) {
|
|
155
|
+
const parsedFragments = fragment.split('=');
|
|
156
|
+
// TODO: expand to allow more schemes of Fragment Identification Syntax
|
|
157
|
+
// reference: https://datatracker.ietf.org/doc/html/rfc5147#section-3
|
|
158
|
+
if (parsedFragments[0] !== '#line') {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const positionOrRange = parsedFragments[1];
|
|
162
|
+
let firstLine;
|
|
163
|
+
if (positionOrRange.includes(',')) {
|
|
164
|
+
// Only respect range start for now.
|
|
165
|
+
firstLine = positionOrRange.split(',')[0] || '0';
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
firstLine = positionOrRange;
|
|
169
|
+
}
|
|
170
|
+
// Reveal the line
|
|
171
|
+
return this.context.ready.then(() => {
|
|
172
|
+
const position = {
|
|
173
|
+
line: parseInt(firstLine, 10),
|
|
174
|
+
column: 0
|
|
175
|
+
};
|
|
176
|
+
this.content.editor.setCursorPosition(position);
|
|
177
|
+
this.content.editor.revealPosition(position);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
147
181
|
/**
|
|
148
182
|
* A widget factory for editors.
|
|
149
183
|
*/
|
|
@@ -170,7 +204,7 @@ export class FileEditorFactory extends ABCWidgetFactory {
|
|
|
170
204
|
mimeTypeService: this._services.mimeTypeService
|
|
171
205
|
});
|
|
172
206
|
content.title.icon = textEditorIcon;
|
|
173
|
-
const widget = new
|
|
207
|
+
const widget = new FileEditorWidget({ content, context });
|
|
174
208
|
return widget;
|
|
175
209
|
}
|
|
176
210
|
}
|
package/lib/widget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.js","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"widget.js","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/fileeditor",
|
|
3
|
-
"version": "4.1.0-alpha.
|
|
3
|
+
"version": "4.1.0-alpha.3",
|
|
4
4
|
"description": "JupyterLab - Editor Widget",
|
|
5
5
|
"homepage": "https://github.com/jupyterlab/jupyterlab",
|
|
6
6
|
"bugs": {
|
|
@@ -40,31 +40,31 @@
|
|
|
40
40
|
"watch": "tsc -b --watch"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@jupyterlab/apputils": "^4.2.0-alpha.
|
|
44
|
-
"@jupyterlab/codeeditor": "^4.1.0-alpha.
|
|
45
|
-
"@jupyterlab/codemirror": "^4.1.0-alpha.
|
|
46
|
-
"@jupyterlab/coreutils": "^6.1.0-alpha.
|
|
47
|
-
"@jupyterlab/docregistry": "^4.1.0-alpha.
|
|
48
|
-
"@jupyterlab/documentsearch": "^4.1.0-alpha.
|
|
49
|
-
"@jupyterlab/lsp": "^4.1.0-alpha.
|
|
50
|
-
"@jupyterlab/statusbar": "^4.1.0-alpha.
|
|
51
|
-
"@jupyterlab/toc": "^6.1.0-alpha.
|
|
52
|
-
"@jupyterlab/translation": "^4.1.0-alpha.
|
|
53
|
-
"@jupyterlab/ui-components": "^4.1.0-alpha.
|
|
43
|
+
"@jupyterlab/apputils": "^4.2.0-alpha.3",
|
|
44
|
+
"@jupyterlab/codeeditor": "^4.1.0-alpha.3",
|
|
45
|
+
"@jupyterlab/codemirror": "^4.1.0-alpha.3",
|
|
46
|
+
"@jupyterlab/coreutils": "^6.1.0-alpha.3",
|
|
47
|
+
"@jupyterlab/docregistry": "^4.1.0-alpha.3",
|
|
48
|
+
"@jupyterlab/documentsearch": "^4.1.0-alpha.3",
|
|
49
|
+
"@jupyterlab/lsp": "^4.1.0-alpha.3",
|
|
50
|
+
"@jupyterlab/statusbar": "^4.1.0-alpha.3",
|
|
51
|
+
"@jupyterlab/toc": "^6.1.0-alpha.3",
|
|
52
|
+
"@jupyterlab/translation": "^4.1.0-alpha.3",
|
|
53
|
+
"@jupyterlab/ui-components": "^4.1.0-alpha.3",
|
|
54
54
|
"@lumino/commands": "^2.1.3",
|
|
55
55
|
"@lumino/coreutils": "^2.1.2",
|
|
56
56
|
"@lumino/messaging": "^2.0.1",
|
|
57
|
-
"@lumino/widgets": "^2.3.0",
|
|
57
|
+
"@lumino/widgets": "^2.3.1-alpha.0",
|
|
58
58
|
"react": "^18.2.0",
|
|
59
59
|
"regexp-match-indices": "^1.0.2"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@jupyterlab/testing": "^4.1.0-alpha.
|
|
62
|
+
"@jupyterlab/testing": "^4.1.0-alpha.3",
|
|
63
63
|
"@types/jest": "^29.2.0",
|
|
64
64
|
"jest": "^29.2.0",
|
|
65
|
-
"rimraf": "~
|
|
65
|
+
"rimraf": "~5.0.5",
|
|
66
66
|
"typedoc": "~0.24.7",
|
|
67
|
-
"typescript": "~5.
|
|
67
|
+
"typescript": "~5.1.6"
|
|
68
68
|
},
|
|
69
69
|
"publishConfig": {
|
|
70
70
|
"access": "public"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
|
|
4
|
+
import { IEditorMimeTypeService } from '@jupyterlab/codeeditor';
|
|
4
5
|
import { CodeMirrorEditor } from '@jupyterlab/codemirror';
|
|
5
6
|
import { DocumentRegistry, IDocumentWidget } from '@jupyterlab/docregistry';
|
|
6
7
|
import {
|
|
@@ -73,13 +74,13 @@ export class FileEditorAdapter extends WidgetLSPAdapter<
|
|
|
73
74
|
get mimeType(): string {
|
|
74
75
|
const mimeTypeFromModel = this.editor.model.mimeType;
|
|
75
76
|
const codeMirrorMimeType: string = Array.isArray(mimeTypeFromModel)
|
|
76
|
-
? mimeTypeFromModel[0] ??
|
|
77
|
+
? mimeTypeFromModel[0] ?? IEditorMimeTypeService.defaultMimeType
|
|
77
78
|
: mimeTypeFromModel;
|
|
78
79
|
const contentsModel = this.editor.context.contentsModel;
|
|
79
80
|
|
|
80
81
|
// when MIME type is not known it defaults to 'text/plain',
|
|
81
82
|
// so if it is different we can accept it as it is
|
|
82
|
-
if (codeMirrorMimeType !=
|
|
83
|
+
if (codeMirrorMimeType != IEditorMimeTypeService.defaultMimeType) {
|
|
83
84
|
return codeMirrorMimeType;
|
|
84
85
|
} else if (contentsModel) {
|
|
85
86
|
// a script that does not have a MIME type known by the editor
|
|
@@ -174,6 +175,7 @@ export class FileEditorAdapter extends WidgetLSPAdapter<
|
|
|
174
175
|
* Get the index of editor from the cursor position in the virtual
|
|
175
176
|
* document. Since there is only one editor, this method always return
|
|
176
177
|
* 0
|
|
178
|
+
* @deprecated This is error-prone and will be removed in JupyterLab 5.0, use `getEditorIndex()` with `virtualDocument.getEditorAtVirtualLine(position)` instead.
|
|
177
179
|
*
|
|
178
180
|
* @param position - the position of cursor in the virtual document.
|
|
179
181
|
* @return {number} - index of the virtual editor
|
package/src/widget.ts
CHANGED
|
@@ -204,6 +204,43 @@ export namespace FileEditor {
|
|
|
204
204
|
};
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
+
/**
|
|
208
|
+
* A document widget for file editor widgets.
|
|
209
|
+
*/
|
|
210
|
+
export class FileEditorWidget extends DocumentWidget<FileEditor> {
|
|
211
|
+
/**
|
|
212
|
+
* Set URI fragment identifier for text files
|
|
213
|
+
*/
|
|
214
|
+
async setFragment(fragment: string): Promise<void> {
|
|
215
|
+
const parsedFragments = fragment.split('=');
|
|
216
|
+
|
|
217
|
+
// TODO: expand to allow more schemes of Fragment Identification Syntax
|
|
218
|
+
// reference: https://datatracker.ietf.org/doc/html/rfc5147#section-3
|
|
219
|
+
if (parsedFragments[0] !== '#line') {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
const positionOrRange = parsedFragments[1];
|
|
224
|
+
let firstLine: string;
|
|
225
|
+
if (positionOrRange.includes(',')) {
|
|
226
|
+
// Only respect range start for now.
|
|
227
|
+
firstLine = positionOrRange.split(',')[0] || '0';
|
|
228
|
+
} else {
|
|
229
|
+
firstLine = positionOrRange;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// Reveal the line
|
|
233
|
+
return this.context.ready.then(() => {
|
|
234
|
+
const position = {
|
|
235
|
+
line: parseInt(firstLine, 10),
|
|
236
|
+
column: 0
|
|
237
|
+
};
|
|
238
|
+
this.content.editor.setCursorPosition(position);
|
|
239
|
+
this.content.editor.revealPosition(position);
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
207
244
|
/**
|
|
208
245
|
* A widget factory for editors.
|
|
209
246
|
*/
|
|
@@ -237,7 +274,7 @@ export class FileEditorFactory extends ABCWidgetFactory<
|
|
|
237
274
|
});
|
|
238
275
|
|
|
239
276
|
content.title.icon = textEditorIcon;
|
|
240
|
-
const widget = new
|
|
277
|
+
const widget = new FileEditorWidget({ content, context });
|
|
241
278
|
return widget;
|
|
242
279
|
}
|
|
243
280
|
|