@jupyterlab/fileeditor 4.1.0-alpha.2 → 4.1.0-alpha.4

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.
@@ -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 : 'text/plain'
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 != 'text/plain') {
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":"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"}
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 DocumentWidget({ content, context });
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.2",
3
+ "version": "4.1.0-alpha.4",
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.2",
44
- "@jupyterlab/codeeditor": "^4.1.0-alpha.2",
45
- "@jupyterlab/codemirror": "^4.1.0-alpha.2",
46
- "@jupyterlab/coreutils": "^6.1.0-alpha.2",
47
- "@jupyterlab/docregistry": "^4.1.0-alpha.2",
48
- "@jupyterlab/documentsearch": "^4.1.0-alpha.2",
49
- "@jupyterlab/lsp": "^4.1.0-alpha.2",
50
- "@jupyterlab/statusbar": "^4.1.0-alpha.2",
51
- "@jupyterlab/toc": "^6.1.0-alpha.2",
52
- "@jupyterlab/translation": "^4.1.0-alpha.2",
53
- "@jupyterlab/ui-components": "^4.1.0-alpha.2",
54
- "@lumino/commands": "^2.1.3",
43
+ "@jupyterlab/apputils": "^4.2.0-alpha.4",
44
+ "@jupyterlab/codeeditor": "^4.1.0-alpha.4",
45
+ "@jupyterlab/codemirror": "^4.1.0-alpha.4",
46
+ "@jupyterlab/coreutils": "^6.1.0-alpha.4",
47
+ "@jupyterlab/docregistry": "^4.1.0-alpha.4",
48
+ "@jupyterlab/documentsearch": "^4.1.0-alpha.4",
49
+ "@jupyterlab/lsp": "^4.1.0-alpha.4",
50
+ "@jupyterlab/statusbar": "^4.1.0-alpha.4",
51
+ "@jupyterlab/toc": "^6.1.0-alpha.4",
52
+ "@jupyterlab/translation": "^4.1.0-alpha.4",
53
+ "@jupyterlab/ui-components": "^4.1.0-alpha.4",
54
+ "@lumino/commands": "^2.2.0",
55
55
  "@lumino/coreutils": "^2.1.2",
56
56
  "@lumino/messaging": "^2.0.1",
57
- "@lumino/widgets": "^2.3.1-alpha.0",
57
+ "@lumino/widgets": "^2.3.1",
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.2",
62
+ "@jupyterlab/testing": "^4.1.0-alpha.4",
63
63
  "@types/jest": "^29.2.0",
64
64
  "jest": "^29.2.0",
65
- "rimraf": "~3.0.0",
65
+ "rimraf": "~5.0.5",
66
66
  "typedoc": "~0.24.7",
67
- "typescript": "~5.0.4"
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] ?? 'text/plain'
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 != 'text/plain') {
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 DocumentWidget({ content, context });
277
+ const widget = new FileEditorWidget({ content, context });
241
278
  return widget;
242
279
  }
243
280