monaco-editor
Version:
A browser based code editor
35 lines (34 loc) • 1.69 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';
import { CursorMoveCommands } from '../../../common/cursor/cursorMoveCommands.js';
import { EditorContextKeys } from '../../../common/editorContextKeys.js';
import * as nls from '../../../../nls.js';
export class ExpandLineSelectionAction extends EditorAction {
constructor() {
super({
id: 'expandLineSelection',
label: nls.localize('expandLineSelection', "Expand Line Selection"),
alias: 'Expand Line Selection',
precondition: undefined,
kbOpts: {
weight: 0 /* KeybindingWeight.EditorCore */,
kbExpr: EditorContextKeys.textInputFocus,
primary: 2048 /* KeyMod.CtrlCmd */ | 42 /* KeyCode.KeyL */
},
});
}
run(_accessor, editor, args) {
args = args || {};
if (!editor.hasModel()) {
return;
}
const viewModel = editor._getViewModel();
viewModel.model.pushStackElement();
viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, CursorMoveCommands.expandLineSelection(viewModel, viewModel.getCursorStates()));
viewModel.revealPrimaryCursor(args.source, true);
}
}
registerEditorAction(ExpandLineSelectionAction);