January 19th 2020
Allocate buffer markers inside a managed scope and attach them to a buffer
the standard custom layer context pointer
the buffer on which them markers will be attached
the number of markers to allocate
either a null pointer, or a pointer to a managed scope
on success, when the buffer exists, and the optional_extra_scope is valid, a new managed object id, otherwise zero
By default, markers are allocated in the scope of the buffer they are attached to, this is how their lifetime is tied to the lifetime of the buffer. When an additional scope is supplied, it is combined with the buffer's scope via the same joining operation used in get_managed_scope_with_multiple_dependencies and the markers are allocated in that scope instead.
Markers are updated by edits to the buffer to which they are attached, so that they the same position in the buffer even as text is shifted around by edit operations. This can be used, for instance, to track the locations of compilation errors even as some compilation errors have already been fixed and shifted the position of later errors.