@jupyterlab/fileeditor 4.1.0-alpha.2 → 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.js +3 -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 +15 -15
- package/src/fileeditorlspadapter.ts +3 -2
- package/src/widget.ts +38 -1
|
@@ -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) {
|
|
@@ -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,17 +40,17 @@
|
|
|
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",
|
|
@@ -59,12 +59,12 @@
|
|
|
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
|
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
|
|