Represents a text document, such as a source file. Text documents have {@link TextLine lines} and knowledge about an underlying resource like a file.

Fields

read onlyversion:Int

The version number of this document (it will strictly increase after each change, including undo/redo).

validateRange(range:Range):Range

Ensure a range is completely contained in this document.

Parameters:

range

A range.

Returns:

The given range or a new, adjusted range.

validatePosition(position:Position):Position

Ensure a position is contained in the range of this document.

Parameters:

position

A position.

Returns:

The given position or a new, adjusted position.

read onlyuri:Uri

The associated uri for this document.

Note that most documents use the file-scheme, which means they are files on disk. However, not all documents are saved on disk and therefore the scheme must be checked before trying to access the underlying file or siblings on disk.

@link FileSystemProvider} @link TextDocumentContentProvider}

See also:

  • {

  • {

save():Thenable<Bool>

Save the underlying file.

Returns:

A promise that will resolve to true when the file has been saved. If the file was not dirty or the save failed, will return false.

positionAt(offset:Int):Position

Converts a zero-based offset to a position.

@link Position}.

Parameters:

offset

A zero-based offset.

Returns:

A valid {

offsetAt(position:Position):Int

Converts the position to a zero-based offset.

The position will be {@link TextDocument.validatePosition adjusted}.

Parameters:

position

A position.

Returns:

A valid zero-based offset.

read onlylineCount:Int

The number of lines in this document.

lineAt(line:Int):TextLine

lineAt(position:Position):TextLine

Returns a text line denoted by the line number. Note that the returned object is not live and changes to the document are not reflected.

@link TextLine line}.

Parameters:

line

A line number in [0, lineCount).

Returns:

A {

read onlylanguageId:String

The identifier of the language associated with this document.

read onlyisUntitled:Bool

Is this document representing an untitled file which has never been saved yet. Note that this does not mean the document will be saved to disk, use {@linkcode Uri.scheme} to figure out where a document will be {@link FileSystemProvider saved}, e.g. file, ftp etc.

read onlyisDirty:Bool

true if there are unpersisted changes.

read onlyisClosed:Bool

true if the document has been closed. A closed document isn't synchronized anymore and won't be re-used when the same resource is opened again.

getWordRangeAtPosition(position:Position, ?regex:RegExp):Null<Range>

Get a word-range at the given position. By default words are defined by common separators, like space, -, _, etc. In addition, per language custom [word definitions} can be defined. It is also possible to provide a custom regular expression.

  • Note 1: A custom regular expression must not match the empty string and if it does, it will be ignored.
  • Note 2: A custom regular expression will fail to match multiline strings and in the name of speed regular expressions should not match words with spaces. Use {@linkcode TextLine.text} for more complex, non-wordy, scenarios.

The position will be {@link TextDocument.validatePosition adjusted}.

Parameters:

position

A position.

regex

Optional regular expression that describes what a word is.

Returns:

A range spanning a word, or undefined.

getText(?range:Range):String

Get the text of this document. A substring can be retrieved by providing a range. The range will be {@link TextDocument.validateRange adjusted}.

Parameters:

range

Include only the text included by the range.

Returns:

The text inside the provided range or the entire text.

read onlyfileName:String

The file system path of the associated resource. Shorthand notation for {@link TextDocument.uri TextDocument.uri.fsPath}. Independent of the uri scheme.

read onlyeol:EndOfLine

The {@link EndOfLine end of line} sequence that is predominately used in this document.