diff --git a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx index 25a1c8f7..9e83ccdd 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx +++ b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx @@ -20,7 +20,7 @@ import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service import { SketchFactory } from './sketch-factory'; import { ArduinoToolbar } from './toolbar/arduino-toolbar'; import { EditorManager, EditorMainMenu } from '@theia/editor/lib/browser'; -import { ContextMenuRenderer, OpenerService, Widget } from '@theia/core/lib/browser'; +import { ContextMenuRenderer, OpenerService, Widget, StatusBar } from '@theia/core/lib/browser'; import { OpenFileDialogProps, FileDialogService } from '@theia/filesystem/lib/browser/file-dialog'; import { FileSystem } from '@theia/filesystem/lib/common'; import { ArduinoToolbarContextMenu } from './arduino-file-menu'; @@ -102,6 +102,9 @@ export class ArduinoFrontendContribution implements TabBarToolbarContribution, C @inject(CommandRegistry) protected readonly commands: CommandRegistry; + @inject(StatusBar) + protected readonly statusBar: StatusBar; + protected boardsToolbarItem: BoardsToolBarItem | null; protected wsSketchCount: number = 0; @@ -150,6 +153,7 @@ export class ArduinoFrontendContribution implements TabBarToolbarContribution, C key='boardsToolbarItem' ref={ref => this.boardsToolbarItem = ref} commands={this.commands} + statusBar={this.statusBar} contextMenuRenderer={this.contextMenuRenderer} boardsNotificationService={this.boardsNotificationService} boardService={this.boardService} />, diff --git a/arduino-ide-extension/src/browser/arduino-frontend-module.ts b/arduino-ide-extension/src/browser/arduino-frontend-module.ts index ec621585..e669bdc5 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-module.ts +++ b/arduino-ide-extension/src/browser/arduino-frontend-module.ts @@ -40,7 +40,7 @@ import { ArduinoToolbarContribution } from './toolbar/arduino-toolbar-contributi import { OutputToolbarContribution } from '@theia/output/lib/browser/output-toolbar-contribution'; import { ArduinoOutputToolContribution } from './customization/silent-output-tool-contribution'; import { EditorContribution } from '@theia/editor/lib/browser/editor-contribution'; -import { SilentEditorContribution } from './customization/silent-editor-contribution'; +import { CustomEditorContribution } from './customization/custom-editor-contribution'; import { MonacoStatusBarContribution } from '@theia/monaco/lib/browser/monaco-status-bar-contribution'; import { SilentMonacoStatusBarContribution } from './customization/silent-monaco-status-bar-contribution'; import { ApplicationShell } from '@theia/core/lib/browser'; @@ -149,7 +149,7 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un unbind(OutputToolbarContribution); bind(OutputToolbarContribution).to(ArduinoOutputToolContribution).inSingletonScope(); unbind(EditorContribution); - bind(EditorContribution).to(SilentEditorContribution).inSingletonScope(); + bind(EditorContribution).to(CustomEditorContribution).inSingletonScope(); unbind(MonacoStatusBarContribution); bind(MonacoStatusBarContribution).to(SilentMonacoStatusBarContribution).inSingletonScope(); unbind(ApplicationShell); diff --git a/arduino-ide-extension/src/browser/boards/boards-toolbar-item.tsx b/arduino-ide-extension/src/browser/boards/boards-toolbar-item.tsx index 8b2aba4c..7acc2239 100644 --- a/arduino-ide-extension/src/browser/boards/boards-toolbar-item.tsx +++ b/arduino-ide-extension/src/browser/boards/boards-toolbar-item.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { BoardsService, Board, AttachedSerialBoard } from '../../common/protocol/boards-service'; -import { ContextMenuRenderer } from '@theia/core/lib/browser'; +import { ContextMenuRenderer, StatusBar, StatusBarAlignment } from '@theia/core/lib/browser'; import { BoardsNotificationService } from '../boards-notification-service'; import { Command, CommandRegistry } from '@theia/core'; import { ArduinoCommands } from '../arduino-commands'; @@ -96,6 +96,7 @@ export namespace BoardsToolBarItem { readonly boardsNotificationService: BoardsNotificationService; readonly boardService: BoardsService; readonly commands: CommandRegistry; + readonly statusBar: StatusBar; } export interface State { @@ -207,14 +208,19 @@ export class BoardsToolBarItem extends React.Component
-
+
- {selectedBoard ? `${selectedBoard.name}${port ? ' at ' + port : ''}` : 'no board selected'} + {selectedBoard ? boardTxt : 'no board selected'}
diff --git a/arduino-ide-extension/src/browser/customization/custom-editor-contribution.ts b/arduino-ide-extension/src/browser/customization/custom-editor-contribution.ts new file mode 100644 index 00000000..d472de2a --- /dev/null +++ b/arduino-ide-extension/src/browser/customization/custom-editor-contribution.ts @@ -0,0 +1,21 @@ +import {EditorContribution} from '@theia/editor/lib/browser/editor-contribution'; +import { TextEditor } from '@theia/editor/lib/browser'; +import { StatusBarAlignment } from '@theia/core/lib/browser'; + +export class CustomEditorContribution extends EditorContribution { + protected updateLanguageStatus(editor: TextEditor | undefined): void { + } + + protected setCursorPositionStatus(editor: TextEditor | undefined): void { + if (!editor) { + this.statusBar.removeElement('editor-status-cursor-position'); + return; + } + const { cursor } = editor; + this.statusBar.setElement('editor-status-cursor-position', { + text: `${cursor.line + 1}`, + alignment: StatusBarAlignment.LEFT, + priority: 100 + }); + } +} \ No newline at end of file diff --git a/arduino-ide-extension/src/browser/customization/silent-editor-contribution.ts b/arduino-ide-extension/src/browser/customization/silent-editor-contribution.ts deleted file mode 100644 index 21870072..00000000 --- a/arduino-ide-extension/src/browser/customization/silent-editor-contribution.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {EditorContribution} from '@theia/editor/lib/browser/editor-contribution'; -import { TextEditor } from '@theia/editor/lib/browser'; - -export class SilentEditorContribution extends EditorContribution { - protected updateLanguageStatus(editor: TextEditor | undefined): void { - } - - protected setCursorPositionStatus(editor: TextEditor | undefined): void { - - } -} \ No newline at end of file