• Public
  • Public/Protected
  • All

Interface TextDocument

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


  • TextDocument



The end of line sequence that is predominately used in this document.

fileName: string

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

isClosed: boolean

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

isDirty: boolean

true if there are unpersisted changes.

isUntitled: boolean

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 uri.scheme to figure out where a document will be saved, e.g. file, ftp etc.

languageId: string

The identifier of the language associated with this document.

lineCount: number

The number of lines in this document.

uri: 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.





version: number

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


  • getText(range?: Range): string
  • Get the text of this document. A substring can be retrieved by providing a range. The range will be adjusted.


    • Optional range: Range

      Include only the text included by the range.

    Returns string

    The text inside the provided range or the entire text.

  • getWordRangeAtPosition(position: Position, regex?: RegExp): undefined | 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 TextLine.text for more complex, non-wordy, scenarios.

    The position will be adjusted.


    • position: Position

      A position.

    • Optional regex: RegExp

      Optional regular expression that describes what a word is.

    Returns undefined | Range

    A range spanning a word, or undefined.

  • Save the underlying file.

    Returns Thenable<boolean>

    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.