Skip to content

Commit f8b97fc

Browse files
authored
Merge bfcb518 into fe3fbb1
2 parents fe3fbb1 + bfcb518 commit f8b97fc

File tree

65 files changed

+3275
-4149
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+3275
-4149
lines changed

Diff for: .gitignore

+1-3
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,14 @@ build/
77
Examples/
88
!electron/build/
99
src-gen/
10-
!webpack.config.js
10+
webpack.config.js
1111
gen-webpack.config.js
1212
.DS_Store
1313
# switching from `electron` to `browser` in dev mode.
1414
.browser_modules
1515
yarn*.log
1616
# For the VS Code extensions used by Theia.
1717
plugins
18-
# the config files for the CLI
19-
arduino-ide-extension/data/cli/config
2018
# the tokens folder for the themes
2119
scripts/themes/tokens
2220
# environment variables

Diff for: arduino-ide-extension/package.json

+31-32
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,31 @@
2121
},
2222
"dependencies": {
2323
"@grpc/grpc-js": "^1.6.7",
24-
"@theia/application-package": "1.25.0",
25-
"@theia/core": "1.25.0",
26-
"@theia/editor": "1.25.0",
27-
"@theia/electron": "1.25.0",
28-
"@theia/filesystem": "1.25.0",
29-
"@theia/keymaps": "1.25.0",
30-
"@theia/markers": "1.25.0",
31-
"@theia/monaco": "1.25.0",
32-
"@theia/navigator": "1.25.0",
33-
"@theia/outline-view": "1.25.0",
34-
"@theia/output": "1.25.0",
35-
"@theia/preferences": "1.25.0",
36-
"@theia/search-in-workspace": "1.25.0",
37-
"@theia/terminal": "1.25.0",
38-
"@theia/workspace": "1.25.0",
24+
"@theia/application-package": "1.31.1",
25+
"@theia/core": "1.31.1",
26+
"@theia/debug": "1.31.1",
27+
"@theia/editor": "1.31.1",
28+
"@theia/electron": "1.31.1",
29+
"@theia/filesystem": "1.31.1",
30+
"@theia/keymaps": "1.31.1",
31+
"@theia/markers": "1.31.1",
32+
"@theia/messages": "1.31.1",
33+
"@theia/monaco": "1.31.1",
34+
"@theia/monaco-editor-core": "1.67.2",
35+
"@theia/navigator": "1.31.1",
36+
"@theia/outline-view": "1.31.1",
37+
"@theia/output": "1.31.1",
38+
"@theia/plugin-ext": "1.31.1",
39+
"@theia/preferences": "1.31.1",
40+
"@theia/scm": "1.31.1",
41+
"@theia/search-in-workspace": "1.31.1",
42+
"@theia/terminal": "1.31.1",
43+
"@theia/typehierarchy": "1.31.1",
44+
"@theia/workspace": "1.31.1",
3945
"@tippyjs/react": "^4.2.5",
40-
"@types/atob": "^2.1.2",
4146
"@types/auth0-js": "^9.14.0",
4247
"@types/btoa": "^1.2.3",
4348
"@types/dateformat": "^3.0.1",
44-
"@types/deep-equal": "^1.0.1",
4549
"@types/deepmerge": "^2.2.0",
4650
"@types/glob": "^7.2.0",
4751
"@types/google-protobuf": "^3.7.2",
@@ -50,49 +54,48 @@
5054
"@types/lodash.debounce": "^4.0.6",
5155
"@types/ncp": "^2.0.4",
5256
"@types/node-fetch": "^2.5.7",
57+
"@types/p-queue": "^2.3.1",
5358
"@types/ps-tree": "^1.1.0",
54-
"@types/react-select": "^3.0.0",
5559
"@types/react-tabs": "^2.3.2",
60+
"@types/react-virtualized": "^9.21.21",
5661
"@types/temp": "^0.8.34",
5762
"@types/which": "^1.3.1",
58-
"ajv": "^6.5.3",
5963
"arduino-serial-plotter-webapp": "0.2.0",
6064
"async-mutex": "^0.3.0",
61-
"atob": "^2.1.2",
6265
"auth0-js": "^9.14.0",
6366
"btoa": "^1.2.1",
6467
"classnames": "^2.3.1",
6568
"dateformat": "^3.0.3",
66-
"deep-equal": "^2.0.5",
6769
"deepmerge": "2.0.1",
6870
"electron-updater": "^4.6.5",
6971
"fast-safe-stringify": "^2.1.1",
7072
"glob": "^7.1.6",
7173
"google-protobuf": "^3.20.1",
7274
"hash.js": "^1.1.7",
73-
"is-valid-path": "^0.1.1",
7475
"js-yaml": "^3.13.1",
7576
"jwt-decode": "^3.1.2",
7677
"keytar": "7.2.0",
7778
"lodash.debounce": "^4.0.8",
79+
"minimatch": "^3.1.2",
7880
"ncp": "^2.0.0",
7981
"node-fetch": "^2.6.1",
8082
"open": "^8.0.6",
81-
"p-queue": "^5.0.0",
83+
"p-debounce": "^2.1.0",
84+
"p-queue": "^2.4.2",
8285
"ps-tree": "^1.2.0",
8386
"query-string": "^7.0.1",
84-
"react-disable": "^0.1.0",
87+
"react-disable": "^0.1.1",
8588
"react-markdown": "^8.0.0",
86-
"react-select": "^3.0.4",
89+
"react-perfect-scrollbar": "^1.5.8",
90+
"react-select": "^5.6.0",
8791
"react-tabs": "^3.1.2",
92+
"react-virtualized": "^9.22.3",
8893
"react-window": "^1.8.6",
8994
"semver": "^7.3.2",
9095
"string-natural-compare": "^2.0.3",
9196
"temp": "^0.9.1",
9297
"temp-dir": "^2.0.0",
9398
"tree-kill": "^1.2.1",
94-
"upath": "^1.1.2",
95-
"url": "^0.11.0",
9699
"which": "^1.3.1"
97100
},
98101
"devDependencies": {
@@ -101,11 +104,10 @@
101104
"@types/chai-string": "^1.4.2",
102105
"@types/mocha": "^5.2.7",
103106
"@types/react-window": "^1.8.5",
104-
"@types/sinon": "^10.0.6",
105-
"@types/sinon-chai": "^3.2.6",
106107
"chai": "^4.2.0",
107108
"chai-string": "^1.5.0",
108109
"decompress": "^4.2.0",
110+
"decompress-tarbz2": "^4.1.1",
109111
"decompress-targz": "^4.1.1",
110112
"decompress-unzip": "^4.0.1",
111113
"download": "^7.1.0",
@@ -115,9 +117,6 @@
115117
"moment": "^2.24.0",
116118
"protoc": "^1.0.4",
117119
"shelljs": "^0.8.3",
118-
"sinon": "^12.0.1",
119-
"sinon-chai": "^3.7.0",
120-
"typemoq": "^2.1.0",
121120
"uuid": "^3.2.1",
122121
"yargs": "^11.1.0"
123122
},

Diff for: arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts

+32-61
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@ import { ContainerModule } from '@theia/core/shared/inversify';
33
import { WidgetFactory } from '@theia/core/lib/browser/widget-manager';
44
import { CommandContribution } from '@theia/core/lib/common/command';
55
import { bindViewContribution } from '@theia/core/lib/browser/shell/view-contribution';
6-
import {
7-
TabBarToolbarContribution,
8-
TabBarToolbarFactory,
9-
} from '@theia/core/lib/browser/shell/tab-bar-toolbar';
6+
import { TabBarToolbarContribution } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
107
import { WebSocketConnectionProvider } from '@theia/core/lib/browser/messaging/ws-connection-provider';
118
import {
129
FrontendApplicationContribution,
@@ -84,10 +81,7 @@ import { BoardsAutoInstaller } from './boards/boards-auto-installer';
8481
import { ShellLayoutRestorer } from './theia/core/shell-layout-restorer';
8582
import { ListItemRenderer } from './widgets/component-list/list-item-renderer';
8683
import { ColorContribution } from '@theia/core/lib/browser/color-application-contribution';
87-
import {
88-
MonacoThemeJson,
89-
MonacoThemingService,
90-
} from '@theia/monaco/lib/browser/monaco-theming-service';
84+
9185
import {
9286
ArduinoDaemonPath,
9387
ArduinoDaemon,
@@ -137,7 +131,6 @@ import { Settings } from './contributions/settings';
137131
import { WorkspaceCommandContribution } from './theia/workspace/workspace-commands';
138132
import { WorkspaceDeleteHandler as TheiaWorkspaceDeleteHandler } from '@theia/workspace/lib/browser/workspace-delete-handler';
139133
import { WorkspaceDeleteHandler } from './theia/workspace/workspace-delete-handler';
140-
import { TabBarToolbar } from './theia/core/tab-bar-toolbar';
141134
import { EditorWidgetFactory as TheiaEditorWidgetFactory } from '@theia/editor/lib/browser/editor-widget-factory';
142135
import { EditorWidgetFactory } from './theia/editor/editor-widget-factory';
143136
import { BurnBootloader } from './contributions/burn-bootloader';
@@ -181,8 +174,6 @@ import { EditorCommandContribution } from './theia/editor/editor-command';
181174
import { NavigatorTabBarDecorator as TheiaNavigatorTabBarDecorator } from '@theia/navigator/lib/browser/navigator-tab-bar-decorator';
182175
import { NavigatorTabBarDecorator } from './theia/navigator/navigator-tab-bar-decorator';
183176
import { Debug } from './contributions/debug';
184-
import { DebugSessionManager } from './theia/debug/debug-session-manager';
185-
import { DebugSessionManager as TheiaDebugSessionManager } from '@theia/debug/lib/browser/debug-session-manager';
186177
import { Sketchbook } from './contributions/sketchbook';
187178
import { DebugFrontendApplicationContribution } from './theia/debug/debug-frontend-application-contribution';
188179
import { DebugFrontendApplicationContribution as TheiaDebugFrontendApplicationContribution } from '@theia/debug/lib/browser/debug-frontend-application-contribution';
@@ -241,7 +232,6 @@ import { UploadFirmware } from './contributions/upload-firmware';
241232
import {
242233
UploadFirmwareDialog,
243234
UploadFirmwareDialogProps,
244-
UploadFirmwareDialogWidget,
245235
} from './dialogs/firmware-uploader/firmware-uploader-dialog';
246236

247237
import { UploadCertificate } from './contributions/upload-certificate';
@@ -271,7 +261,6 @@ import { IDEUpdaterClientImpl } from './ide-updater/ide-updater-client-impl';
271261
import {
272262
IDEUpdaterDialog,
273263
IDEUpdaterDialogProps,
274-
IDEUpdaterDialogWidget,
275264
} from './dialogs/ide-updater/ide-updater-dialog';
276265
import { ElectronIpcConnectionProvider } from '@theia/core/lib/electron-browser/messaging/electron-ipc-connection-provider';
277266
import { MonitorModel } from './monitor-model';
@@ -313,10 +302,6 @@ import { SelectedBoard } from './contributions/selected-board';
313302
import { CheckForIDEUpdates } from './contributions/check-for-ide-updates';
314303
import { OpenBoardsConfig } from './contributions/open-boards-config';
315304
import { SketchFilesTracker } from './contributions/sketch-files-tracker';
316-
import { MonacoThemeServiceIsReady } from './utils/window';
317-
import { Deferred } from '@theia/core/lib/common/promise-util';
318-
import { StatusBarImpl } from './theia/core/status-bar';
319-
import { StatusBarImpl as TheiaStatusBarImpl } from '@theia/core/lib/browser';
320305
import { EditorMenuContribution } from './theia/editor/editor-file';
321306
import { EditorMenuContribution as TheiaEditorMenuContribution } from '@theia/editor/lib/browser/editor-menu';
322307
import { PreferencesEditorWidget as TheiaPreferencesEditorWidget } from '@theia/preferences/lib/browser/views/preference-editor-widget';
@@ -337,32 +322,16 @@ import { InterfaceScale } from './contributions/interface-scale';
337322
import { OpenHandler } from '@theia/core/lib/browser/opener-service';
338323
import { NewCloudSketch } from './contributions/new-cloud-sketch';
339324
import { SketchbookCompositeWidget } from './widgets/sketchbook/sketchbook-composite-widget';
340-
341-
const registerArduinoThemes = () => {
342-
const themes: MonacoThemeJson[] = [
343-
{
344-
id: 'arduino-theme',
345-
label: 'Light (Arduino)',
346-
uiTheme: 'vs',
347-
json: require('../../src/browser/data/default.color-theme.json'),
348-
},
349-
{
350-
id: 'arduino-theme-dark',
351-
label: 'Dark (Arduino)',
352-
uiTheme: 'vs-dark',
353-
json: require('../../src/browser/data/dark.color-theme.json'),
354-
},
355-
];
356-
themes.forEach((theme) => MonacoThemingService.register(theme));
357-
};
358-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
359-
const global = window as any;
360-
const ready = global[MonacoThemeServiceIsReady] as Deferred;
361-
if (ready) {
362-
ready.promise.then(registerArduinoThemes);
363-
} else {
364-
registerArduinoThemes();
365-
}
325+
import { WindowTitleUpdater } from './theia/core/window-title-updater';
326+
import { WindowTitleUpdater as TheiaWindowTitleUpdater } from '@theia/core/lib/browser/window/window-title-updater';
327+
import { ThemeService } from './theia/core/theming';
328+
import { ThemeService as TheiaThemeService } from '@theia/core/lib/browser/theming';
329+
import { MonacoThemingService } from './theia/monaco/monaco-theming-service';
330+
import { MonacoThemingService as TheiaMonacoThemingService } from '@theia/monaco/lib/browser/monaco-theming-service';
331+
import { TypeHierarchyServiceProvider } from './theia/typehierarchy/type-hierarchy-service';
332+
import { TypeHierarchyServiceProvider as TheiaTypeHierarchyServiceProvider } from '@theia/typehierarchy/lib/browser/typehierarchy-service';
333+
import { TypeHierarchyContribution } from './theia/typehierarchy/type-hierarchy-contribution';
334+
import { TypeHierarchyContribution as TheiaTypeHierarchyContribution } from '@theia/typehierarchy/lib/browser/typehierarchy-contribution';
366335

367336
export default new ContainerModule((bind, unbind, isBound, rebind) => {
368337
// Commands and toolbar items
@@ -587,14 +556,6 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
587556
.to(WorkspaceDeleteHandler)
588557
.inSingletonScope();
589558
rebind(TheiaEditorWidgetFactory).to(EditorWidgetFactory).inSingletonScope();
590-
rebind(TabBarToolbarFactory).toFactory(
591-
({ container: parentContainer }) =>
592-
() => {
593-
const container = parentContainer.createChild();
594-
container.bind(TabBarToolbar).toSelf().inSingletonScope();
595-
return container.get(TabBarToolbar);
596-
}
597-
);
598559
bind(OutputChannelManager).toSelf().inSingletonScope();
599560
rebind(TheiaOutputChannelManager).toService(OutputChannelManager);
600561
bind(OutputChannelRegistryMainImpl).toSelf().inTransientScope();
@@ -838,9 +799,6 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
838799
bind(AboutDialog).toSelf().inSingletonScope();
839800
rebind(TheiaAboutDialog).toService(AboutDialog);
840801

841-
// To avoid running `Save All` when there are no dirty editors before starting the debug session.
842-
bind(DebugSessionManager).toSelf().inSingletonScope();
843-
rebind(TheiaDebugSessionManager).toService(DebugSessionManager);
844802
// To remove the `Run` menu item from the application menu.
845803
bind(DebugFrontendApplicationContribution).toSelf().inSingletonScope();
846804
rebind(TheiaDebugFrontendApplicationContribution).toService(
@@ -854,10 +812,6 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
854812
bind(WidgetManager).toSelf().inSingletonScope();
855813
rebind(TheiaWidgetManager).toService(WidgetManager);
856814

857-
// To avoid running a status bar update on every single `keypress` event from the editor.
858-
bind(StatusBarImpl).toSelf().inSingletonScope();
859-
rebind(TheiaStatusBarImpl).toService(StatusBarImpl);
860-
861815
// Debounced update for the tab-bar toolbar when typing in the editor.
862816
bind(DockPanelRenderer).toSelf();
863817
rebind(TheiaDockPanelRenderer).toService(DockPanelRenderer);
@@ -942,12 +896,11 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
942896
bind(LocalCacheFsProvider).toSelf().inSingletonScope();
943897
bind(FileServiceContribution).toService(LocalCacheFsProvider);
944898
bind(CloudSketchbookCompositeWidget).toSelf();
945-
bind<WidgetFactory>(WidgetFactory).toDynamicValue((ctx) => ({
899+
bind(WidgetFactory).toDynamicValue((ctx) => ({
946900
id: 'cloud-sketchbook-composite-widget',
947901
createWidget: () => ctx.container.get(CloudSketchbookCompositeWidget),
948902
}));
949903

950-
bind(UploadFirmwareDialogWidget).toSelf().inSingletonScope();
951904
bind(UploadFirmwareDialog).toSelf().inSingletonScope();
952905
bind(UploadFirmwareDialogProps).toConstantValue({
953906
title: 'UploadFirmware',
@@ -958,7 +911,6 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
958911
title: 'UploadCertificate',
959912
});
960913

961-
bind(IDEUpdaterDialogWidget).toSelf().inSingletonScope();
962914
bind(IDEUpdaterDialog).toSelf().inSingletonScope();
963915
bind(IDEUpdaterDialogProps).toConstantValue({
964916
title: 'IDEUpdater',
@@ -991,4 +943,23 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
991943
rebind(TheiaHostedPluginSupport).toService(HostedPluginSupport);
992944
bind(HostedPluginEvents).toSelf().inSingletonScope();
993945
bind(FrontendApplicationContribution).toService(HostedPluginEvents);
946+
947+
// custom window titles
948+
bind(WindowTitleUpdater).toSelf().inSingletonScope();
949+
rebind(TheiaWindowTitleUpdater).toService(WindowTitleUpdater);
950+
951+
// register Arduino themes
952+
bind(ThemeService).toSelf().inSingletonScope();
953+
rebind(TheiaThemeService).toService(ThemeService);
954+
bind(MonacoThemingService).toSelf().inSingletonScope();
955+
rebind(TheiaMonacoThemingService).toService(MonacoThemingService);
956+
957+
// disable type-hierarchy support
958+
// https://github.com/eclipse-theia/theia/commit/16c88a584bac37f5cf3cc5eb92ffdaa541bda5be
959+
bind(TypeHierarchyServiceProvider).toSelf().inSingletonScope();
960+
rebind(TheiaTypeHierarchyServiceProvider).toService(
961+
TypeHierarchyServiceProvider
962+
);
963+
bind(TypeHierarchyContribution).toSelf().inSingletonScope();
964+
rebind(TheiaTypeHierarchyContribution).toService(TypeHierarchyContribution);
994965
});

Diff for: arduino-ide-extension/src/browser/contributions/sketch-control.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ export class SketchControl extends SketchContribution {
235235
});
236236
registry.registerKeybinding({
237237
command: CommonCommands.PREVIOUS_TAB.id,
238-
keybinding: 'CtrlCmd+Alt+Left', // TODO: check why electron does not show the keybindings in the UI.
238+
keybinding: 'CtrlCmd+Alt+Left',
239239
});
240240
registry.registerKeybinding({
241241
command: CommonCommands.NEXT_TAB.id,

Diff for: arduino-ide-extension/src/browser/create/create-uri.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { URI as Uri } from 'vscode-uri';
1+
import { URI as Uri } from '@theia/core/shared/vscode-uri';
22
import URI from '@theia/core/lib/common/uri';
33
import { toPosixPath, parentPosix, posix } from './create-paths';
44
import { Create } from './typings';

0 commit comments

Comments
 (0)