From 939a905a6bc771745e366c7d0806b21354ad1328 Mon Sep 17 00:00:00 2001 From: Akos Kitta Date: Sat, 18 Jul 2020 14:43:46 +0200 Subject: [PATCH] go to line. Signed-off-by: Akos Kitta --- .../browser/arduino-ide-frontend-module.ts | 2 + .../browser/contributions/copy-to-forum.ts | 2 +- .../src/browser/contributions/go-to-line.ts | 45 +++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 arduino-ide-extension/src/browser/contributions/go-to-line.ts diff --git a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts index 44812d95..5e4ec4af 100644 --- a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts +++ b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts @@ -97,6 +97,7 @@ import { VerifySketch } from './contributions/verify-sketch'; import { UploadSketch } from './contributions/upload-sketch'; import { CommonFrontendContribution } from './customization/core/common-frontend-contribution'; import { CopyToForum } from './contributions/copy-to-forum'; +import { GoToLine } from './contributions/go-to-line'; const ElementQueries = require('css-element-queries/src/ElementQueries'); @@ -326,4 +327,5 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un Contribution.configure(bind, VerifySketch); Contribution.configure(bind, UploadSketch); Contribution.configure(bind, CopyToForum); + Contribution.configure(bind, GoToLine); }); diff --git a/arduino-ide-extension/src/browser/contributions/copy-to-forum.ts b/arduino-ide-extension/src/browser/contributions/copy-to-forum.ts index 9754e260..250e6dd3 100644 --- a/arduino-ide-extension/src/browser/contributions/copy-to-forum.ts +++ b/arduino-ide-extension/src/browser/contributions/copy-to-forum.ts @@ -12,7 +12,7 @@ export class CopyToForum extends EditorContribution { registerCommands(registry: CommandRegistry): void { registry.registerCommand(CopyToForum.Commands.COPY_TO_FORUM, { execute: () => this.copyToForum() - }) + }); } registerMenus(registry: MenuModelRegistry): void { diff --git a/arduino-ide-extension/src/browser/contributions/go-to-line.ts b/arduino-ide-extension/src/browser/contributions/go-to-line.ts new file mode 100644 index 00000000..4f00ab61 --- /dev/null +++ b/arduino-ide-extension/src/browser/contributions/go-to-line.ts @@ -0,0 +1,45 @@ +import { injectable } from 'inversify'; +import { EditorContribution, Command, MenuModelRegistry, KeybindingRegistry, CommandRegistry } from './contribution'; +import { ArduinoMenus } from '../menu/arduino-menus'; + +@injectable() +export class GoToLine extends EditorContribution { + + registerCommands(registry: CommandRegistry): void { + registry.registerCommand(GoToLine.Commands.GO_TO_LINE, { + execute: () => this.goToLine() + }); + } + + registerMenus(registry: MenuModelRegistry): void { + registry.registerMenuAction(ArduinoMenus.EDIT__TEXT_CONTROL_GROUP, { + commandId: GoToLine.Commands.GO_TO_LINE.id, + label: 'Go to Line...', + order: '6' + }); + } + + registerKeybindings(registry: KeybindingRegistry): void { + registry.registerKeybinding({ + command: GoToLine.Commands.GO_TO_LINE.id, + keybinding: 'CtrlCmd+L' + }); + } + + async goToLine(): Promise { + const editor = await this.current(); + if (editor) { + const action = editor.getControl().getAction('editor.action.gotoLine'); + return action.run(); + } + } + +} + +export namespace GoToLine { + export namespace Commands { + export const GO_TO_LINE: Command = { + id: 'arduino-go-to-line' + }; + } +}