diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 0dc764fd500..578c48a80e2 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -125,6 +125,12 @@ declare module 'vscode' { */ save(): Thenable; + /** + * The [end of line](#EndOfLine) sequence that is predominately + * used in this document. + */ + readonly eol: EndOfLine; + /** * The number of lines in this document. */ diff --git a/src/vs/workbench/api/node/extHostDocumentData.ts b/src/vs/workbench/api/node/extHostDocumentData.ts index 29735c3ac8f..51d6ca030cc 100644 --- a/src/vs/workbench/api/node/extHostDocumentData.ts +++ b/src/vs/workbench/api/node/extHostDocumentData.ts @@ -7,7 +7,7 @@ import { regExpLeadsToEndlessLoop } from 'vs/base/common/strings'; import { MirrorModel2 } from 'vs/editor/common/model/mirrorModel2'; import URI from 'vs/base/common/uri'; -import { Range, Position } from 'vs/workbench/api/node/extHostTypes'; +import { Range, Position, EndOfLine } from 'vs/workbench/api/node/extHostTypes'; import * as vscode from 'vscode'; import { getWordAtText, ensureValidWordDefinition } from 'vs/editor/common/model/wordHelper'; import { MainThreadDocumentsShape } from './extHost.protocol'; @@ -70,6 +70,7 @@ export class ExtHostDocumentData extends MirrorModel2 { get isDirty() { return data._isDirty; }, save() { return data._proxy.$trySaveDocument(data._uri); }, getText(range?) { return range ? data._getTextInRange(range) : data.getText(); }, + get eol() { return data._eol === '\n' ? EndOfLine.LF : EndOfLine.CRLF; }, get lineCount() { return data._lines.length; }, lineAt(lineOrPos) { return data.lineAt(lineOrPos); }, offsetAt(pos) { return data.offsetAt(pos); },