Path: blob/main/src/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { ICodeEditor } from '../../../browser/editorBrowser.js';6import { EditorAction, registerEditorAction, ServicesAccessor } from '../../../browser/editorExtensions.js';7import { InsertFinalNewLineCommand } from './insertFinalNewLineCommand.js';8import { EditorContextKeys } from '../../../common/editorContextKeys.js';9import * as nls from '../../../../nls.js';1011export class InsertFinalNewLineAction extends EditorAction {1213public static readonly ID = 'editor.action.insertFinalNewLine';1415constructor() {16super({17id: InsertFinalNewLineAction.ID,18label: nls.localize2('insertFinalNewLine', "Insert Final New Line"),19precondition: EditorContextKeys.writable20});21}2223public run(_accessor: ServicesAccessor, editor: ICodeEditor, args: any): void {24const selection = editor.getSelection();25if (selection === null) {26return;27}2829const command = new InsertFinalNewLineCommand(selection);3031editor.pushUndoStop();32editor.executeCommands(this.id, [command]);33editor.pushUndoStop();34}35}3637registerEditorAction(InsertFinalNewLineAction);383940