DocumentTracker

Struct DocumentTracker 

Source
pub struct DocumentTracker { /* private fields */ }
Expand description

Tracks document state across the workspace.

Implementations§

Source§

impl DocumentTracker

Source

pub fn new() -> Self

Create a new document tracker with default limits.

Source

pub fn with_limits(limits: ResourceLimits) -> Self

Create a new document tracker with custom limits.

Source

pub fn is_open(&self, path: &Path) -> bool

Check if a document is currently open.

Source

pub fn get(&self, path: &Path) -> Option<&DocumentState>

Get the state of an open document.

Source

pub fn len(&self) -> usize

Get the number of open documents.

Source

pub fn is_empty(&self) -> bool

Check if there are no open documents.

Source

pub fn open(&mut self, path: PathBuf, content: String) -> Result<Uri>

Open a document and track its state.

Returns the document URI for use in LSP requests.

§Errors

Returns an error if:

  • Document limit is exceeded
  • File size limit is exceeded
Source

pub fn update(&mut self, path: &Path, content: String) -> Option<i32>

Update a document’s content and increment its version.

Returns None if the document is not open.

Source

pub fn close(&mut self, path: &Path) -> Option<DocumentState>

Close a document and remove it from tracking.

Returns the document state if it was open.

Source

pub fn close_all(&mut self) -> Vec<DocumentState>

Close all documents.

Source

pub async fn ensure_open( &mut self, path: &Path, lsp_client: &LspClient, ) -> Result<Uri>

Ensure a document is open, opening it lazily if necessary.

If the document is already open, returns its URI immediately. Otherwise, reads the file from disk, opens it in the tracker, and sends a didOpen notification to the LSP server.

§Errors

Returns an error if:

  • The file cannot be read from disk
  • The didOpen notification fails to send
  • Resource limits are exceeded

Trait Implementations§

Source§

impl Debug for DocumentTracker

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DocumentTracker

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more