@inst/vscode-bin-darwin
Version:
BINARY ONLY - VSCode binary deployment for macOS
49 lines (48 loc) • 2.25 kB
JavaScript
;
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const vscode = require("vscode");
const util_1 = require("./util");
function mergeLines() {
let editor = vscode.window.activeTextEditor;
if (!util_1.validate(false)) {
return;
}
let rootNode = util_1.parseDocument(editor.document);
if (!rootNode) {
return;
}
return editor.edit(editBuilder => {
editor.selections.reverse().forEach(selection => {
let textEdit = getRangesToReplace(editor.document, selection, rootNode);
if (textEdit) {
editBuilder.replace(textEdit.range, textEdit.newText);
}
});
});
}
exports.mergeLines = mergeLines;
function getRangesToReplace(document, selection, rootNode) {
let startNodeToUpdate;
let endNodeToUpdate;
if (selection.isEmpty) {
startNodeToUpdate = endNodeToUpdate = util_1.getNode(rootNode, selection.start);
}
else {
startNodeToUpdate = util_1.getNode(rootNode, selection.start, true);
endNodeToUpdate = util_1.getNode(rootNode, selection.end, true);
}
if (!startNodeToUpdate || !endNodeToUpdate || startNodeToUpdate.start.line === endNodeToUpdate.end.line) {
return;
}
let rangeToReplace = new vscode.Range(startNodeToUpdate.start, endNodeToUpdate.end);
let textToReplaceWith = document.lineAt(startNodeToUpdate.start.line).text.substr(startNodeToUpdate.start.character);
for (let i = startNodeToUpdate.start.line + 1; i <= endNodeToUpdate.end.line; i++) {
textToReplaceWith += document.lineAt(i).text.trim();
}
return new vscode.TextEdit(rangeToReplace, textToReplaceWith);
}
//# sourceMappingURL=https://ticino.blob.core.windows.net/sourcemaps/b813d12980308015bcd2b3a2f6efa5c810c33ba5/extensions/emmet/out/mergeLines.js.map