Represents programming constructs like variables, classes, interfaces etc. that appear in a document. Document symbols can be hierarchical and they have two ranges: one that encloses its definition and one that points to its most interesting range, e.g. the range of an identifier.
Children of this symbol, e.g. properties of a class.
More detail for this symbol, e.g the signature of a function.
The kind of this symbol.
The name of this symbol.
The range enclosing this symbol not including leading/trailing whitespace but everything else, e.g comments and code.
The range that should be selected and reveal when this symbol is being picked, e.g the name of a function.
Must be contained by the