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