Skip to content

Commit 0d9b47b

Browse files
authored
Merge 9e042ae into fe3fbb1
2 parents fe3fbb1 + 9e042ae commit 0d9b47b

File tree

61 files changed

+3209
-4067
lines changed

Some content is hidden

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

61 files changed

+3209
-4067
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-59
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';
@@ -271,7 +262,6 @@ import { IDEUpdaterClientImpl } from './ide-updater/ide-updater-client-impl';
271262
import {
272263
IDEUpdaterDialog,
273264
IDEUpdaterDialogProps,
274-
IDEUpdaterDialogWidget,
275265
} from './dialogs/ide-updater/ide-updater-dialog';
276266
import { ElectronIpcConnectionProvider } from '@theia/core/lib/electron-browser/messaging/electron-ipc-connection-provider';
277267
import { MonitorModel } from './monitor-model';
@@ -313,10 +303,6 @@ import { SelectedBoard } from './contributions/selected-board';
313303
import { CheckForIDEUpdates } from './contributions/check-for-ide-updates';
314304
import { OpenBoardsConfig } from './contributions/open-boards-config';
315305
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';
320306
import { EditorMenuContribution } from './theia/editor/editor-file';
321307
import { EditorMenuContribution as TheiaEditorMenuContribution } from '@theia/editor/lib/browser/editor-menu';
322308
import { PreferencesEditorWidget as TheiaPreferencesEditorWidget } from '@theia/preferences/lib/browser/views/preference-editor-widget';
@@ -337,32 +323,16 @@ import { InterfaceScale } from './contributions/interface-scale';
337323
import { OpenHandler } from '@theia/core/lib/browser/opener-service';
338324
import { NewCloudSketch } from './contributions/new-cloud-sketch';
339325
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-
}
326+
import { WindowTitleUpdater } from './theia/core/window-title-updater';
327+
import { WindowTitleUpdater as TheiaWindowTitleUpdater } from '@theia/core/lib/browser/window/window-title-updater';
328+
import { ThemeService } from './theia/core/theming';
329+
import { ThemeService as TheiaThemeService } from '@theia/core/lib/browser/theming';
330+
import { MonacoThemingService } from './theia/monaco/monaco-theming-service';
331+
import { MonacoThemingService as TheiaMonacoThemingService } from '@theia/monaco/lib/browser/monaco-theming-service';
332+
import { TypeHierarchyServiceProvider } from './theia/typehierarchy/type-hierarchy-service';
333+
import { TypeHierarchyServiceProvider as TheiaTypeHierarchyServiceProvider } from '@theia/typehierarchy/lib/browser/typehierarchy-service';
334+
import { TypeHierarchyContribution } from './theia/typehierarchy/type-hierarchy-contribution';
335+
import { TypeHierarchyContribution as TheiaTypeHierarchyContribution } from '@theia/typehierarchy/lib/browser/typehierarchy-contribution';
366336

367337
export default new ContainerModule((bind, unbind, isBound, rebind) => {
368338
// Commands and toolbar items
@@ -587,14 +557,6 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
587557
.to(WorkspaceDeleteHandler)
588558
.inSingletonScope();
589559
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-
);
598560
bind(OutputChannelManager).toSelf().inSingletonScope();
599561
rebind(TheiaOutputChannelManager).toService(OutputChannelManager);
600562
bind(OutputChannelRegistryMainImpl).toSelf().inTransientScope();
@@ -838,9 +800,6 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
838800
bind(AboutDialog).toSelf().inSingletonScope();
839801
rebind(TheiaAboutDialog).toService(AboutDialog);
840802

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);
844803
// To remove the `Run` menu item from the application menu.
845804
bind(DebugFrontendApplicationContribution).toSelf().inSingletonScope();
846805
rebind(TheiaDebugFrontendApplicationContribution).toService(
@@ -854,10 +813,6 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
854813
bind(WidgetManager).toSelf().inSingletonScope();
855814
rebind(TheiaWidgetManager).toService(WidgetManager);
856815

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-
861816
// Debounced update for the tab-bar toolbar when typing in the editor.
862817
bind(DockPanelRenderer).toSelf();
863818
rebind(TheiaDockPanelRenderer).toService(DockPanelRenderer);
@@ -942,7 +897,7 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
942897
bind(LocalCacheFsProvider).toSelf().inSingletonScope();
943898
bind(FileServiceContribution).toService(LocalCacheFsProvider);
944899
bind(CloudSketchbookCompositeWidget).toSelf();
945-
bind<WidgetFactory>(WidgetFactory).toDynamicValue((ctx) => ({
900+
bind(WidgetFactory).toDynamicValue((ctx) => ({
946901
id: 'cloud-sketchbook-composite-widget',
947902
createWidget: () => ctx.container.get(CloudSketchbookCompositeWidget),
948903
}));
@@ -958,7 +913,6 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
958913
title: 'UploadCertificate',
959914
});
960915

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

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)