diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts index 3c1b144fc8ca1ee9c6cb3bbb2052d7ad578bdede..e7e09a3e86ff8e3b04611e094476926116cc8916 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts @@ -10,6 +10,7 @@ import os = require('os'); import path = require('path'); import platform = require('vs/base/common/platform'); import {Builder} from 'vs/base/browser/builder'; +import {EndOfLinePreference} from 'vs/editor/common/editorCommon'; import {ICodeEditorService} from 'vs/editor/common/services/codeEditorService'; import {IConfigurationService} from 'vs/platform/configuration/common/configuration'; import {IPanelService} from 'vs/workbench/services/panel/common/panelService'; @@ -108,9 +109,9 @@ export class TerminalService implements ITerminalService { public runSelectedText(): TPromise { return this.showAndGetTerminalPanel().then((terminalPanel) => { let editor = this.codeEditorService.getFocusedCodeEditor(); - let selection = editor.getModel().getValueInRange(editor.getSelection()); + let selection = editor.getModel().getValueInRange(editor.getSelection(), os.EOL === '\n' ? EndOfLinePreference.LF : EndOfLinePreference.CRLF); // Add a new line if one doesn't already exist so the text is executed - let text = selection + (selection[selection.length - 1] === '\n' ? '' : '\n'); + let text = selection + (selection.substr(selection.length - os.EOL.length) === os.EOL ? '' : os.EOL); this.terminalProcesses[this.activeTerminalIndex].process.send({ event: 'input', data: text