diff --git a/README.md b/README.md index c2755b3..848d282 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,8 @@ | [`insertLine`](docs/insert_line.md) | Вставляет текст в строку с указанным номером | | [`addLine`](docs/add_line.md) | Добавляет новую строку с указанным текстом | | [`getPositionOffset`](docs/get_position_offset.md) | Возвращает координаты текущей позиции курсора | +| `jumpToBracket` | Переход к парной скобке `CTRL+[]` | +| `selectToBracket` | Выделяет скобки и текст между ними `CTRL+ALT+[` | ### Управление режимом работы / настройками | Функция | Описание | diff --git a/src/actions.js b/src/actions.js index fcfe139..2fefd1e 100644 --- a/src/actions.js +++ b/src/actions.js @@ -268,6 +268,36 @@ define(['vs/editor/editor.main'], function () { editor.trigger('', 'editor.action.deleteLines', {}) return null; } + }, + jumpToBracketOpen: { + label: 'Перейти к скобке', + key: monaco.KeyMod.CtrlCmd | monaco.KeyCode.US_OPEN_SQUARE_BRACKET, + cmd: monaco.KeyMod.chord(monaco.KeyMod.CtrlCmd | monaco.KeyCode.US_OPEN_SQUARE_BRACKET), + order: 0, + callback: function (ed) { + jumpToBracket(); + return null; + } + }, + jumpToBracketClose: { + label: 'Перейти к скобке', + key: monaco.KeyMod.CtrlCmd | monaco.KeyCode.US_CLOSE_SQUARE_BRACKET, + cmd: monaco.KeyMod.chord(monaco.KeyMod.CtrlCmd | monaco.KeyCode.US_CLOSE_SQUARE_BRACKET), + order: 0, + callback: function (ed) { + jumpToBracket(); + return null; + } + }, + selectToBracket: { + label: 'Выделить скобки и текст между ними', + key: monaco.KeyMod.Alt | monaco.KeyMod.CtrlCmd | monaco.KeyCode.US_OPEN_SQUARE_BRACKET, + cmd: monaco.KeyMod.chord(monaco.KeyMod.Alt | monaco.KeyMod.CtrlCmd | monaco.KeyCode.US_OPEN_SQUARE_BRACKET), + order: 0, + callback: function (ed) { + selectToBracket(); + return null; + } } } diff --git a/src/editor.js b/src/editor.js index 365efc2..b725b2c 100644 --- a/src/editor.js +++ b/src/editor.js @@ -1186,6 +1186,18 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit } + jumpToBracket = function () { + + editor.trigger('', 'editor.action.jumpToBracket'); + + } + + selectToBracket = function () { + + editor.trigger('', 'editor.action.selectToBracket'); + + } + editor = undefined; // Register languages @@ -1268,7 +1280,7 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit }); editor.onKeyDown(e => { - + if (e.keyCode == 16 && editor.getPosition().lineNumber == 1) // ArrowUp scrollToTop();