@theia/plugin-ext 1.63.0-next.52 → 1.63.0

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 (73) hide show
  1. package/lib/common/plugin-api-rpc.d.ts +19 -1
  2. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  3. package/lib/common/plugin-api-rpc.js.map +1 -1
  4. package/lib/hosted/browser/worker/worker-plugin-module.d.ts.map +1 -1
  5. package/lib/hosted/browser/worker/worker-plugin-module.js +2 -0
  6. package/lib/hosted/browser/worker/worker-plugin-module.js.map +1 -1
  7. package/lib/hosted/node/plugin-host-module.d.ts.map +1 -1
  8. package/lib/hosted/node/plugin-host-module.js +2 -0
  9. package/lib/hosted/node/plugin-host-module.js.map +1 -1
  10. package/lib/main/browser/comments/comment-thread-widget.d.ts +1 -2
  11. package/lib/main/browser/comments/comment-thread-widget.d.ts.map +1 -1
  12. package/lib/main/browser/comments/comment-thread-widget.js +8 -6
  13. package/lib/main/browser/comments/comment-thread-widget.js.map +1 -1
  14. package/lib/main/browser/documents-main.d.ts +3 -3
  15. package/lib/main/browser/documents-main.d.ts.map +1 -1
  16. package/lib/main/browser/documents-main.js +41 -28
  17. package/lib/main/browser/documents-main.js.map +1 -1
  18. package/lib/main/browser/editors-and-documents-main.d.ts +1 -0
  19. package/lib/main/browser/editors-and-documents-main.d.ts.map +1 -1
  20. package/lib/main/browser/editors-and-documents-main.js +4 -1
  21. package/lib/main/browser/editors-and-documents-main.js.map +1 -1
  22. package/lib/main/browser/main-context.d.ts.map +1 -1
  23. package/lib/main/browser/main-context.js +1 -3
  24. package/lib/main/browser/main-context.js.map +1 -1
  25. package/lib/main/browser/text-editor-model-service.d.ts +9 -2
  26. package/lib/main/browser/text-editor-model-service.d.ts.map +1 -1
  27. package/lib/main/browser/text-editor-model-service.js +10 -0
  28. package/lib/main/browser/text-editor-model-service.js.map +1 -1
  29. package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
  30. package/lib/main/browser/view/tree-view-widget.js +4 -3
  31. package/lib/main/browser/view/tree-view-widget.js.map +1 -1
  32. package/lib/main/browser/workspace-main.d.ts +20 -0
  33. package/lib/main/browser/workspace-main.d.ts.map +1 -1
  34. package/lib/main/browser/workspace-main.js +54 -15
  35. package/lib/main/browser/workspace-main.js.map +1 -1
  36. package/lib/plugin/document-data.d.ts +3 -1
  37. package/lib/plugin/document-data.d.ts.map +1 -1
  38. package/lib/plugin/document-data.js +7 -1
  39. package/lib/plugin/document-data.js.map +1 -1
  40. package/lib/plugin/documents.d.ts +7 -1
  41. package/lib/plugin/documents.d.ts.map +1 -1
  42. package/lib/plugin/documents.js +21 -3
  43. package/lib/plugin/documents.js.map +1 -1
  44. package/lib/plugin/editors-and-documents.d.ts.map +1 -1
  45. package/lib/plugin/editors-and-documents.js +1 -1
  46. package/lib/plugin/editors-and-documents.js.map +1 -1
  47. package/lib/plugin/notebook/notebook-document.d.ts.map +1 -1
  48. package/lib/plugin/notebook/notebook-document.js +2 -1
  49. package/lib/plugin/notebook/notebook-document.js.map +1 -1
  50. package/lib/plugin/plugin-context.d.ts.map +1 -1
  51. package/lib/plugin/plugin-context.js +23 -10
  52. package/lib/plugin/plugin-context.js.map +1 -1
  53. package/lib/plugin/workspace.d.ts +11 -0
  54. package/lib/plugin/workspace.d.ts.map +1 -1
  55. package/lib/plugin/workspace.js +33 -0
  56. package/lib/plugin/workspace.js.map +1 -1
  57. package/package.json +30 -30
  58. package/src/common/plugin-api-rpc.ts +7 -2
  59. package/src/hosted/browser/worker/worker-plugin-module.ts +2 -0
  60. package/src/hosted/node/plugin-host-module.ts +2 -0
  61. package/src/main/browser/comments/comment-thread-widget.tsx +6 -7
  62. package/src/main/browser/documents-main.ts +49 -39
  63. package/src/main/browser/editors-and-documents-main.ts +5 -1
  64. package/src/main/browser/main-context.ts +1 -3
  65. package/src/main/browser/text-editor-model-service.ts +14 -2
  66. package/src/main/browser/view/tree-view-widget.tsx +4 -3
  67. package/src/main/browser/workspace-main.ts +66 -1
  68. package/src/plugin/document-data.ts +8 -1
  69. package/src/plugin/documents.ts +22 -5
  70. package/src/plugin/editors-and-documents.ts +2 -1
  71. package/src/plugin/notebook/notebook-document.ts +2 -1
  72. package/src/plugin/plugin-context.ts +27 -14
  73. package/src/plugin/workspace.ts +39 -1
@@ -39,6 +39,9 @@ const message_registry_1 = require("./message-registry");
39
39
  const Converter = require("./type-converters");
40
40
  const types_1 = require("../common/types");
41
41
  const logger_1 = require("./logger");
42
+ const stream_1 = require("@theia/core/lib/common/stream");
43
+ const encoding_service_1 = require("@theia/core/lib/common/encoding-service");
44
+ const buffer_1 = require("@theia/core/lib/common/buffer");
42
45
  let WorkspaceExtImpl = class WorkspaceExtImpl {
43
46
  constructor() {
44
47
  this.workspaceFoldersChangedEmitter = new event_1.Emitter();
@@ -417,6 +420,32 @@ let WorkspaceExtImpl = class WorkspaceExtImpl {
417
420
  $registerEditSessionIdentityProvider(scheme, provider) {
418
421
  return types_impl_1.Disposable.NULL;
419
422
  }
423
+ async decode(content, args) {
424
+ const [uri, opts] = this.asEncodeDecodeParameters(args);
425
+ const { preferredEncoding, guessEncoding } = await this.proxy.$resolveDecoding(uri, opts);
426
+ const decodeStreamOptions = {
427
+ guessEncoding,
428
+ overwriteEncoding: (detectedEncoding) => {
429
+ if (detectedEncoding === null || detectedEncoding === preferredEncoding) {
430
+ return Promise.resolve(preferredEncoding);
431
+ }
432
+ return this.proxy.$getValidEncoding(uri, detectedEncoding, opts);
433
+ }
434
+ };
435
+ const stream = (await this.encodingService.decodeStream(buffer_1.BinaryBufferReadableStream.fromBuffer(buffer_1.BinaryBuffer.wrap(content)), decodeStreamOptions)).stream;
436
+ return (0, stream_1.consumeStream)(stream, s => s.join(''));
437
+ }
438
+ async encode(content, args) {
439
+ const [uri, options] = this.asEncodeDecodeParameters(args);
440
+ const { encoding, hasBOM } = await this.proxy.$resolveEncoding(uri, options);
441
+ const buffer = this.encodingService.encode(content, { encoding, hasBOM });
442
+ return buffer.buffer;
443
+ }
444
+ asEncodeDecodeParameters(opts) {
445
+ const uri = Converter.isUriComponents(opts === null || opts === void 0 ? void 0 : opts.uri) ? opts.uri : undefined;
446
+ const encoding = typeof (opts === null || opts === void 0 ? void 0 : opts.encoding) === 'string' ? opts.encoding : undefined;
447
+ return [uri, encoding ? { encoding } : undefined];
448
+ }
420
449
  };
421
450
  exports.WorkspaceExtImpl = WorkspaceExtImpl;
422
451
  tslib_1.__decorate([
@@ -431,6 +460,10 @@ tslib_1.__decorate([
431
460
  (0, inversify_1.inject)(message_registry_1.MessageRegistryExt),
432
461
  tslib_1.__metadata("design:type", message_registry_1.MessageRegistryExt)
433
462
  ], WorkspaceExtImpl.prototype, "messageService", void 0);
463
+ tslib_1.__decorate([
464
+ (0, inversify_1.inject)(encoding_service_1.EncodingService),
465
+ tslib_1.__metadata("design:type", encoding_service_1.EncodingService)
466
+ ], WorkspaceExtImpl.prototype, "encodingService", void 0);
434
467
  tslib_1.__decorate([
435
468
  (0, inversify_1.postConstruct)(),
436
469
  tslib_1.__metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/plugin/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/plugin/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,38 +1,38 @@
1
1
  {
2
2
  "name": "@theia/plugin-ext",
3
- "version": "1.63.0-next.52+176018e53",
3
+ "version": "1.63.0",
4
4
  "description": "Theia - Plugin Extension",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
7
7
  "dependencies": {
8
- "@theia/ai-mcp": "1.63.0-next.52+176018e53",
9
- "@theia/bulk-edit": "1.63.0-next.52+176018e53",
10
- "@theia/callhierarchy": "1.63.0-next.52+176018e53",
11
- "@theia/console": "1.63.0-next.52+176018e53",
12
- "@theia/core": "1.63.0-next.52+176018e53",
13
- "@theia/debug": "1.63.0-next.52+176018e53",
14
- "@theia/editor": "1.63.0-next.52+176018e53",
15
- "@theia/editor-preview": "1.63.0-next.52+176018e53",
16
- "@theia/file-search": "1.63.0-next.52+176018e53",
17
- "@theia/filesystem": "1.63.0-next.52+176018e53",
18
- "@theia/markers": "1.63.0-next.52+176018e53",
19
- "@theia/messages": "1.63.0-next.52+176018e53",
20
- "@theia/monaco": "1.63.0-next.52+176018e53",
8
+ "@theia/ai-mcp": "1.63.0",
9
+ "@theia/bulk-edit": "1.63.0",
10
+ "@theia/callhierarchy": "1.63.0",
11
+ "@theia/console": "1.63.0",
12
+ "@theia/core": "1.63.0",
13
+ "@theia/debug": "1.63.0",
14
+ "@theia/editor": "1.63.0",
15
+ "@theia/editor-preview": "1.63.0",
16
+ "@theia/file-search": "1.63.0",
17
+ "@theia/filesystem": "1.63.0",
18
+ "@theia/markers": "1.63.0",
19
+ "@theia/messages": "1.63.0",
20
+ "@theia/monaco": "1.63.0",
21
21
  "@theia/monaco-editor-core": "1.96.302",
22
- "@theia/navigator": "1.63.0-next.52+176018e53",
23
- "@theia/notebook": "1.63.0-next.52+176018e53",
24
- "@theia/output": "1.63.0-next.52+176018e53",
25
- "@theia/plugin": "1.63.0-next.52+176018e53",
26
- "@theia/preferences": "1.63.0-next.52+176018e53",
27
- "@theia/scm": "1.63.0-next.52+176018e53",
28
- "@theia/search-in-workspace": "1.63.0-next.52+176018e53",
29
- "@theia/task": "1.63.0-next.52+176018e53",
30
- "@theia/terminal": "1.63.0-next.52+176018e53",
31
- "@theia/test": "1.63.0-next.52+176018e53",
32
- "@theia/timeline": "1.63.0-next.52+176018e53",
33
- "@theia/typehierarchy": "1.63.0-next.52+176018e53",
34
- "@theia/variable-resolver": "1.63.0-next.52+176018e53",
35
- "@theia/workspace": "1.63.0-next.52+176018e53",
22
+ "@theia/navigator": "1.63.0",
23
+ "@theia/notebook": "1.63.0",
24
+ "@theia/output": "1.63.0",
25
+ "@theia/plugin": "1.63.0",
26
+ "@theia/preferences": "1.63.0",
27
+ "@theia/scm": "1.63.0",
28
+ "@theia/search-in-workspace": "1.63.0",
29
+ "@theia/task": "1.63.0",
30
+ "@theia/terminal": "1.63.0",
31
+ "@theia/test": "1.63.0",
32
+ "@theia/timeline": "1.63.0",
33
+ "@theia/typehierarchy": "1.63.0",
34
+ "@theia/variable-resolver": "1.63.0",
35
+ "@theia/workspace": "1.63.0",
36
36
  "@types/mime": "^2.0.1",
37
37
  "@vscode/debugprotocol": "^1.51.0",
38
38
  "@vscode/proxy-agent": "^0.13.2",
@@ -90,7 +90,7 @@
90
90
  "watch": "theiaext watch"
91
91
  },
92
92
  "devDependencies": {
93
- "@theia/ext-scripts": "1.62.0",
93
+ "@theia/ext-scripts": "1.63.0",
94
94
  "@types/decompress": "^4.2.2",
95
95
  "@types/escape-html": "^0.0.20",
96
96
  "@types/lodash.clonedeep": "^4.5.3",
@@ -99,5 +99,5 @@
99
99
  "nyc": {
100
100
  "extends": "../../configs/nyc.json"
101
101
  },
102
- "gitHead": "176018e53e62cafec9b25b23ac9f0b4826b6d0f7"
102
+ "gitHead": "facf442522991134333495a0b90cf56a56990280"
103
103
  }
@@ -769,6 +769,9 @@ export interface WorkspaceMain {
769
769
  $registerCanonicalUriProvider(scheme: string): Promise<void | undefined>;
770
770
  $unregisterCanonicalUriProvider(scheme: string): void;
771
771
  $getCanonicalUri(uri: string, targetScheme: string, token: theia.CancellationToken): Promise<string | undefined>;
772
+ $resolveDecoding(resource: UriComponents | undefined, options?: { encoding?: string }): Promise<{ preferredEncoding: string; guessEncoding: boolean; }>;
773
+ $resolveEncoding(resource: UriComponents | undefined, options?: { encoding?: string }): Promise<{ encoding: string; hasBOM: boolean }>;
774
+ $getValidEncoding(uri: UriComponents | undefined, detectedEncoding: string | undefined, opts: { encoding: string; } | undefined): Promise<string>;
772
775
  }
773
776
 
774
777
  export interface WorkspaceExt {
@@ -1367,6 +1370,7 @@ export interface ModelAddedData {
1367
1370
  EOL: string;
1368
1371
  modeId: string;
1369
1372
  isDirty: boolean;
1373
+ encoding: string;
1370
1374
  }
1371
1375
 
1372
1376
  export interface TextEditorAddData {
@@ -1416,13 +1420,14 @@ export interface DocumentsExt {
1416
1420
  $acceptModelSaved(strUrl: UriComponents): void;
1417
1421
  $acceptModelWillSave(strUrl: UriComponents, reason: theia.TextDocumentSaveReason, saveTimeout: number): Promise<SingleEditOperation[]>;
1418
1422
  $acceptDirtyStateChanged(strUrl: UriComponents, isDirty: boolean): void;
1423
+ $acceptEncodingChanged(strUrl: UriComponents, encoding: string): void;
1419
1424
  $acceptModelChanged(strUrl: UriComponents, e: ModelChangedEvent, isDirty: boolean): void;
1420
1425
  }
1421
1426
 
1422
1427
  export interface DocumentsMain {
1423
- $tryCreateDocument(options?: { language?: string; content?: string; }): Promise<UriComponents>;
1428
+ $tryCreateDocument(options?: { language?: string; content?: string; encoding?: string }): Promise<UriComponents>;
1424
1429
  $tryShowDocument(uri: UriComponents, options?: TextDocumentShowOptions): Promise<void>;
1425
- $tryOpenDocument(uri: UriComponents): Promise<boolean>;
1430
+ $tryOpenDocument(uri: UriComponents, encoding?: string): Promise<boolean>;
1426
1431
  $trySaveDocument(uri: UriComponents): Promise<boolean>;
1427
1432
  }
1428
1433
 
@@ -35,6 +35,7 @@ import { EnvExtImpl } from '../../../plugin/env';
35
35
  import { WorkerEnvExtImpl } from './worker-env-ext';
36
36
  import { DebugExtImpl } from '../../../plugin/debug/debug-ext';
37
37
  import { LocalizationExtImpl } from '../../../plugin/localization-ext';
38
+ import { EncodingService } from '@theia/core/lib/common/encoding-service';
38
39
 
39
40
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
41
  const ctx = self as any;
@@ -70,6 +71,7 @@ export default new ContainerModule(bind => {
70
71
  child.bind(DebugExtImpl).toSelf();
71
72
  return createDebugExtStub(child);
72
73
  }).inSingletonScope();
74
+ bind(EncodingService).toSelf().inSingletonScope();
73
75
  bind(EditorsAndDocumentsExtImpl).toSelf().inSingletonScope();
74
76
  bind(WorkspaceExtImpl).toSelf().inSingletonScope();
75
77
  bind(MessageRegistryExt).toSelf().inSingletonScope();
@@ -37,6 +37,7 @@ import { TerminalServiceExtImpl } from '../../plugin/terminal-ext';
37
37
  import { InternalSecretsExt, SecretsExtImpl } from '../../plugin/secrets-ext';
38
38
  import { setupPluginHostLogger } from './plugin-host-logger';
39
39
  import { LmExtImpl } from '../../plugin/lm-ext';
40
+ import { EncodingService } from '@theia/core/lib/common/encoding-service';
40
41
 
41
42
  export default new ContainerModule(bind => {
42
43
  const channel = new IPCChannel();
@@ -65,6 +66,7 @@ export default new ContainerModule(bind => {
65
66
  bind(PreferenceRegistryExtImpl).toSelf().inSingletonScope();
66
67
  bind(DebugExtImpl).toSelf().inSingletonScope();
67
68
  bind(LmExtImpl).toSelf().inSingletonScope();
69
+ bind(EncodingService).toSelf().inSingletonScope();
68
70
  bind(EditorsAndDocumentsExtImpl).toSelf().inSingletonScope();
69
71
  bind(WorkspaceExtImpl).toSelf().inSingletonScope();
70
72
  bind(MessageRegistryExt).toSelf().inSingletonScope();
@@ -57,7 +57,6 @@ export class CommentThreadWidget extends BaseWidget {
57
57
  protected readonly zoneWidget: MonacoEditorZoneWidget;
58
58
  protected readonly containerNodeRoot: Root;
59
59
  protected readonly commentGlyphWidget: CommentGlyphWidget;
60
- protected readonly contextMenu: CompoundMenuNode;
61
60
  protected readonly commentFormRef: RefObject<CommentForm> = React.createRef<CommentForm>();
62
61
 
63
62
  protected isExpanded?: boolean;
@@ -101,8 +100,8 @@ export class CommentThreadWidget extends BaseWidget {
101
100
  this.toDispose.push(this._commentThread.onDidChangeState(_state => {
102
101
  this.update();
103
102
  }));
104
- this.contextMenu = this.menus.getMenu(COMMENT_THREAD_CONTEXT);
105
- this.contextMenu.children.forEach(node => {
103
+ const contextMenu = this.menus.getMenu(COMMENT_THREAD_CONTEXT);
104
+ contextMenu?.children.forEach(node => {
106
105
  if (node.onDidChange) {
107
106
  this.toDispose.push(node.onDidChange(() => {
108
107
  const commentForm = this.commentFormRef.current;
@@ -560,7 +559,7 @@ export class ReviewComment<P extends ReviewComment.Props = ReviewComment.Props>
560
559
  <span className={'isPending'}>{comment.label}</span>
561
560
  <div className={'theia-comments-inline-actions-container'}>
562
561
  <div className={'theia-comments-inline-actions'} role={'toolbar'}>
563
- {hover && menus.getMenuNode(COMMENT_TITLE) && menus.getMenu(COMMENT_TITLE).children.map((node, index): React.ReactNode => CommandMenu.is(node) &&
562
+ {hover && menus.getMenuNode(COMMENT_TITLE) && menus.getMenu(COMMENT_TITLE)?.children.map((node, index): React.ReactNode => CommandMenu.is(node) &&
564
563
  <CommentsInlineAction key={index} {...{
565
564
  node, nodePath: [...COMMENT_TITLE, node.id], commands, commentThread, commentUniqueId,
566
565
  contextKeyService, commentsContext
@@ -662,7 +661,7 @@ export class CommentEditContainer extends React.Component<CommentEditContainer.P
662
661
  </div>
663
662
  </div>
664
663
  <div className={'form-actions'}>
665
- {menus.getMenu(COMMENT_CONTEXT).children.map((node, index): React.ReactNode => {
664
+ {menus.getMenu(COMMENT_CONTEXT)?.children.map((node, index): React.ReactNode => {
666
665
  const onClick = () => {
667
666
  commands.executeCommand(node.id, {
668
667
  commentControlHandle: commentThread.controllerHandle,
@@ -722,7 +721,7 @@ namespace CommentActions {
722
721
  contextKeyService: ContextKeyService;
723
722
  commentsContext: CommentsContext;
724
723
  menuPath: MenuPath,
725
- menu: CompoundMenuNode;
724
+ menu: CompoundMenuNode | undefined;
726
725
  commentThread: CommentThread;
727
726
  getInput: () => string;
728
727
  clearInput: () => void;
@@ -733,7 +732,7 @@ export class CommentActions extends React.Component<CommentActions.Props> {
733
732
  override render(): React.ReactNode {
734
733
  const { contextKeyService, commentsContext, menuPath, menu, commentThread, getInput, clearInput } = this.props;
735
734
  return <div className={'form-actions'}>
736
- {menu.children.map((node, index) => CommandMenu.is(node) &&
735
+ {menu?.children.map((node, index) => CommandMenu.is(node) &&
737
736
  <CommentAction key={index}
738
737
  nodePath={menuPath}
739
738
  node={node}
@@ -16,14 +16,14 @@
16
16
  import { DocumentsMain, MAIN_RPC_CONTEXT, DocumentsExt } from '../../common/plugin-api-rpc';
17
17
  import { UriComponents } from '../../common/uri-components';
18
18
  import { EditorsAndDocumentsMain } from './editors-and-documents-main';
19
- import { DisposableCollection, Disposable, UntitledResourceResolver, CancellationToken } from '@theia/core';
19
+ import { DisposableCollection, Disposable, UntitledResourceResolver } from '@theia/core';
20
20
  import { MonacoEditorModel } from '@theia/monaco/lib/browser/monaco-editor-model';
21
21
  import { RPCProtocol } from '../../common/rpc-protocol';
22
22
  import { EditorModelService } from './text-editor-model-service';
23
- import { EditorOpenerOptions } from '@theia/editor/lib/browser';
23
+ import { EditorOpenerOptions, EncodingMode } from '@theia/editor/lib/browser';
24
24
  import URI from '@theia/core/lib/common/uri';
25
25
  import { URI as CodeURI } from '@theia/core/shared/vscode-uri';
26
- import { ApplicationShell, SaveOptions, SaveReason } from '@theia/core/lib/browser';
26
+ import { ApplicationShell, SaveReason } from '@theia/core/lib/browser';
27
27
  import { TextDocumentShowOptions } from '../../common/plugin-api-rpc-model';
28
28
  import { Range } from '@theia/core/shared/vscode-languageserver-protocol';
29
29
  import { OpenerService } from '@theia/core/lib/browser/opener-service';
@@ -33,8 +33,6 @@ import { MonacoLanguages } from '@theia/monaco/lib/browser/monaco-languages';
33
33
  import * as monaco from '@theia/monaco-editor-core';
34
34
  import { TextDocumentChangeReason } from '../../plugin/types-impl';
35
35
  import { NotebookDocumentsMainImpl } from './notebooks/notebook-documents-main';
36
- import { MonacoEditorProvider, SAVE_PARTICIPANT_DEFAULT_ORDER } from '@theia/monaco/lib/browser/monaco-editor-provider';
37
- import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
38
36
 
39
37
  /*---------------------------------------------------------------------------------------------
40
38
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -99,8 +97,7 @@ export class DocumentsMainImpl implements DocumentsMain, Disposable {
99
97
  private openerService: OpenerService,
100
98
  private shell: ApplicationShell,
101
99
  private untitledResourceResolver: UntitledResourceResolver,
102
- private languageService: MonacoLanguages,
103
- monacoEditorProvider: MonacoEditorProvider
100
+ private languageService: MonacoLanguages
104
101
  ) {
105
102
  this.proxy = rpc.getProxy(MAIN_RPC_CONTEXT.DOCUMENTS_EXT);
106
103
 
@@ -114,39 +111,36 @@ export class DocumentsMainImpl implements DocumentsMain, Disposable {
114
111
  this.toDispose.push(modelService.onModelSaved(m => {
115
112
  this.proxy.$acceptModelSaved(m.textEditorModel.uri);
116
113
  }));
117
- this.toDispose.push(monacoEditorProvider.registerSaveParticipant(({
118
- order: SAVE_PARTICIPANT_DEFAULT_ORDER,
119
- applyChangesOnSave: async (
120
- editor: MonacoEditor,
121
- cancellationToken: CancellationToken,
122
- options: SaveOptions): Promise<void> => {
123
-
124
- const saveReason = options.saveReason ?? SaveReason.Manual;
125
-
126
- const edits = await this.proxy.$acceptModelWillSave(editor.uri.toComponents(), saveReason.valueOf(), this.saveTimeout);
127
- const editOperations: monaco.editor.IIdentifiedSingleEditOperation[] = [];
128
- for (const edit of edits) {
129
- const { range, text } = edit;
130
- if (!range && !text) {
131
- continue;
132
- }
133
- if (range && range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn && !edit.text) {
134
- continue;
135
- }
136
-
137
- editOperations.push({
138
- range: range ? monaco.Range.lift(range) : editor.document.textEditorModel.getFullModelRange(),
139
- /* eslint-disable-next-line no-null/no-null */
140
- text: text || null,
141
- forceMoveMarkers: edit.forceMoveMarkers
142
- });
114
+ this.toDispose.push(modelService.onModelWillSave(async e => {
115
+
116
+ const saveReason = e.options?.saveReason ?? SaveReason.Manual;
117
+
118
+ const edits = await this.proxy.$acceptModelWillSave(new URI(e.model.uri).toComponents(), saveReason.valueOf(), this.saveTimeout);
119
+ const editOperations: monaco.editor.IIdentifiedSingleEditOperation[] = [];
120
+ for (const edit of edits) {
121
+ const { range, text } = edit;
122
+ if (!range && !text) {
123
+ continue;
124
+ }
125
+ if (range && range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn && !edit.text) {
126
+ continue;
143
127
  }
144
- editor.document.textEditorModel.applyEdits(editOperations);
128
+
129
+ editOperations.push({
130
+ range: range ? monaco.Range.lift(range) : e.model.textEditorModel.getFullModelRange(),
131
+ /* eslint-disable-next-line no-null/no-null */
132
+ text: text || null,
133
+ forceMoveMarkers: edit.forceMoveMarkers
134
+ });
145
135
  }
146
- })));
136
+ e.model.textEditorModel.applyEdits(editOperations);
137
+ }));
147
138
  this.toDispose.push(modelService.onModelDirtyChanged(m => {
148
139
  this.proxy.$acceptDirtyStateChanged(m.textEditorModel.uri, m.dirty);
149
140
  }));
141
+ this.toDispose.push(modelService.onModelEncodingChanged(e => {
142
+ this.proxy.$acceptEncodingChanged(e.model.textEditorModel.uri, e.encoding);
143
+ }));
150
144
  }
151
145
 
152
146
  dispose(): void {
@@ -192,10 +186,11 @@ export class DocumentsMainImpl implements DocumentsMain, Disposable {
192
186
  }
193
187
  }
194
188
 
195
- async $tryCreateDocument(options?: { language?: string; content?: string; }): Promise<UriComponents> {
189
+ async $tryCreateDocument(options?: { language?: string; content?: string; encoding?: string }): Promise<UriComponents> {
196
190
  const language = options?.language && this.languageService.getExtension(options.language);
197
191
  const content = options?.content;
198
- const resource = await this.untitledResourceResolver.createUntitledResource(content, language);
192
+ const encoding = options?.encoding;
193
+ const resource = await this.untitledResourceResolver.createUntitledResource(content, language, undefined, encoding);
199
194
  return monaco.Uri.parse(resource.uri.toString());
200
195
  }
201
196
 
@@ -217,9 +212,24 @@ export class DocumentsMainImpl implements DocumentsMain, Disposable {
217
212
  return this.modelService.save(new URI(CodeURI.revive(uri)));
218
213
  }
219
214
 
220
- async $tryOpenDocument(uri: UriComponents): Promise<boolean> {
221
- const ref = await this.modelService.createModelReference(new URI(CodeURI.revive(uri)));
215
+ async $tryOpenDocument(uri: UriComponents, encoding?: string): Promise<boolean> {
216
+ // Convert URI to Theia URI
217
+ const theiaUri = new URI(CodeURI.revive(uri));
218
+
219
+ // Create model reference
220
+ const ref = await this.modelService.createModelReference(theiaUri);
221
+
222
222
  if (ref.object) {
223
+ // If we have encoding option, make sure to apply it
224
+ if (encoding && ref.object.setEncoding) {
225
+ try {
226
+ await ref.object.setEncoding(encoding, EncodingMode.Decode);
227
+ } catch (e) {
228
+ // If encoding fails, log error but continue
229
+ console.error(`Failed to set encoding ${encoding} for ${theiaUri.toString()}`, e);
230
+ }
231
+ }
232
+
223
233
  this.modelReferenceCache.add(ref);
224
234
  return true;
225
235
  } else {
@@ -37,6 +37,7 @@ import { SaveableService } from '@theia/core/lib/browser/saveable-service';
37
37
  import { TabsMainImpl } from './tabs/tabs-main';
38
38
  import { NotebookCellEditorService, NotebookEditorWidgetService } from '@theia/notebook/lib/browser';
39
39
  import { SimpleMonacoEditor } from '@theia/monaco/lib/browser/simple-monaco-editor';
40
+ import { EncodingRegistry } from '@theia/core/lib/browser/encoding-registry';
40
41
 
41
42
  export class EditorsAndDocumentsMain implements Disposable {
42
43
 
@@ -48,6 +49,7 @@ export class EditorsAndDocumentsMain implements Disposable {
48
49
  private readonly modelService: EditorModelService;
49
50
  private readonly editorManager: EditorManager;
50
51
  private readonly saveResourceService: SaveableService;
52
+ private readonly encodingRegistry: EncodingRegistry;
51
53
 
52
54
  private readonly onTextEditorAddEmitter = new Emitter<TextEditorMain[]>();
53
55
  private readonly onTextEditorRemoveEmitter = new Emitter<string[]>();
@@ -69,6 +71,7 @@ export class EditorsAndDocumentsMain implements Disposable {
69
71
  this.editorManager = container.get(EditorManager);
70
72
  this.modelService = container.get(EditorModelService);
71
73
  this.saveResourceService = container.get(SaveableService);
74
+ this.encodingRegistry = container.get(EncodingRegistry);
72
75
 
73
76
  this.stateComputer = new EditorAndDocumentStateComputer(d => this.onDelta(d),
74
77
  this.editorManager,
@@ -153,7 +156,8 @@ export class EditorsAndDocumentsMain implements Disposable {
153
156
  languageId: model.getLanguageId(),
154
157
  EOL: model.textEditorModel.getEOL(),
155
158
  modeId: model.languageId,
156
- isDirty: model.dirty
159
+ isDirty: model.dirty,
160
+ encoding: this.encodingRegistry.getEncodingForResource(URI.fromComponents(model.textEditorModel.uri), model.getEncoding())
157
161
  };
158
162
  }
159
163
 
@@ -66,7 +66,6 @@ import { NotebooksAndEditorsMain } from './notebooks/notebook-documents-and-edit
66
66
  import { TestingMainImpl } from './test-main';
67
67
  import { UriMainImpl } from './uri-main';
68
68
  import { LoggerMainImpl } from './logger-main';
69
- import { MonacoEditorProvider } from '@theia/monaco/lib/browser/monaco-editor-provider';
70
69
  import { McpServerDefinitionRegistryMainImpl } from './lm-main';
71
70
 
72
71
  export function setUpPluginApi(rpc: RPCProtocol, container: interfaces.Container): void {
@@ -107,9 +106,8 @@ export function setUpPluginApi(rpc: RPCProtocol, container: interfaces.Container
107
106
  const shell = container.get(ApplicationShell);
108
107
  const untitledResourceResolver = container.get(UntitledResourceResolver);
109
108
  const languageService = container.get(MonacoLanguages);
110
- const monacoEditorProvider = container.get(MonacoEditorProvider);
111
109
  const documentsMain = new DocumentsMainImpl(editorsAndDocuments, notebookDocumentsMain, modelService, rpc,
112
- openerService, shell, untitledResourceResolver, languageService, monacoEditorProvider);
110
+ openerService, shell, untitledResourceResolver, languageService);
113
111
  rpc.set(PLUGIN_RPC_CONTEXT.DOCUMENTS_MAIN, documentsMain);
114
112
 
115
113
  rpc.set(PLUGIN_RPC_CONTEXT.NOTEBOOKS_MAIN, new NotebooksMainImpl(rpc, container, commandRegistryMain));
@@ -13,8 +13,8 @@
13
13
  //
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
- import { Event, Emitter } from '@theia/core';
17
- import { MonacoEditorModel } from '@theia/monaco/lib/browser/monaco-editor-model';
16
+ import { Event, Emitter, ListenerList, Listener } from '@theia/core';
17
+ import { MonacoEditorModel, WillSaveMonacoModelEvent } from '@theia/monaco/lib/browser/monaco-editor-model';
18
18
  import { injectable, inject } from '@theia/core/shared/inversify';
19
19
  import { MonacoTextModelService } from '@theia/monaco/lib/browser/monaco-text-model-service';
20
20
  import { MonacoWorkspace } from '@theia/monaco/lib/browser/monaco-workspace';
@@ -29,9 +29,13 @@ export class EditorModelService {
29
29
  private modelModeChangedEmitter = new Emitter<{ model: MonacoEditorModel, oldModeId: string }>();
30
30
  private onModelRemovedEmitter = new Emitter<MonacoEditorModel>();
31
31
  private modelDirtyEmitter = new Emitter<MonacoEditorModel>();
32
+ private modelEncodingEmitter = new Emitter<{ model: MonacoEditorModel, encoding: string }>();
32
33
  private modelSavedEmitter = new Emitter<MonacoEditorModel>();
34
+ private onModelWillSaveListeners: ListenerList<WillSaveMonacoModelEvent, Promise<void>> = new ListenerList();
33
35
 
34
36
  readonly onModelDirtyChanged = this.modelDirtyEmitter.event;
37
+ readonly onModelEncodingChanged = this.modelEncodingEmitter.event;
38
+ readonly onModelWillSave = this.onModelWillSaveListeners.registration;
35
39
  readonly onModelSaved = this.modelSavedEmitter.event;
36
40
  readonly onModelModeChanged = this.modelModeChangedEmitter.event;
37
41
  readonly onModelRemoved = this.onModelRemovedEmitter.event;
@@ -58,9 +62,17 @@ export class EditorModelService {
58
62
  this.modelSavedEmitter.fire(model);
59
63
  });
60
64
 
65
+ model.onModelWillSaveModel(async (e: WillSaveMonacoModelEvent) => {
66
+ await Listener.await(e, this.onModelWillSaveListeners);
67
+ });
68
+
61
69
  model.onDirtyChanged(_ => {
62
70
  this.modelDirtyEmitter.fire(model);
63
71
  });
72
+
73
+ model.onDidChangeEncoding(encoding => {
74
+ this.modelEncodingEmitter.fire({ model, encoding });
75
+ });
64
76
  }
65
77
 
66
78
  get onModelAdded(): Event<MonacoEditorModel> {
@@ -724,9 +724,10 @@ export class TreeViewWidget extends TreeViewWelcomeWidget {
724
724
  if (f) {
725
725
  const fileId = this.dndFileContentStore.addFile(f);
726
726
  files.push(fileId);
727
- const uri = f.path ? {
727
+ const path = window.electronTheiaCore.getPathForFile(f);
728
+ const uri = path ? {
728
729
  scheme: 'file',
729
- path: f.path,
730
+ path: path,
730
731
  authority: '',
731
732
  query: '',
732
733
  fragment: ''
@@ -763,7 +764,7 @@ export class TreeViewWidget extends TreeViewWelcomeWidget {
763
764
  return this.contextKeys.with({ view: this.id, viewItem: treeViewNode.contextValue }, () => {
764
765
  const menu = this.menus.getMenu(VIEW_ITEM_INLINE_MENU);
765
766
  const args = this.toContextMenuArgs(treeViewNode);
766
- const inlineCommands = menu.children.filter((item): item is CommandMenu => CommandMenu.is(item));
767
+ const inlineCommands = menu?.children.filter((item): item is CommandMenu => CommandMenu.is(item)) || [];
767
768
  const tailDecorations = super.renderTailDecorations(treeViewNode, props);
768
769
  return <React.Fragment>
769
770
  {inlineCommands.length > 0 && <div className={TREE_NODE_SEGMENT_CLASS + ' flex'}>