Struct lsp_textdocument::TextDocuments
source · pub struct TextDocuments(_);
Implementations§
source§impl TextDocuments
impl TextDocuments
sourcepub fn new() -> Self
pub fn new() -> Self
create a text documents
Examples
Basic usage:
use lsp_textdocument::TextDocuments;
let text_documents = TextDocuments::new();
pub fn documents(&self) -> &HashMap<Url, FullTextDocument>
sourcepub fn get_document(&self, uri: &Url) -> Option<&FullTextDocument>
pub fn get_document(&self, uri: &Url) -> Option<&FullTextDocument>
get specify document by giving Url
Examples:
Basic usage:
use lsp_textdocument::TextDocuments;
use lsp_types::Url;
let text_documents = TextDocuments::new();
let uri:Url = "file://example.txt".parse().unwrap();
text_documents.get_document(&uri);
sourcepub fn get_document_content(
&self,
uri: &Url,
range: Option<Range>
) -> Option<&str>
pub fn get_document_content(
&self,
uri: &Url,
range: Option<Range>
) -> Option<&str>
get specify document content by giving Range
Examples
Basic usage:
use lsp_textdocument::TextDocuments;
use lsp_types::{Url, Range, Position};
let uri: Url = "file://example.txt".parse().unwrap();
let text_documents = TextDocuments::new();
// get document all content
let content = text_documents.get_document_content(&uri, None);
assert_eq!(content, Some("hello rust!"));
// get document specify content by range
let (start, end) = (Position::new(0, 1), Position::new(0, 9));
let range = Range::new(start, end);
let sub_content = text_documents.get_document_content(&uri, Some(range));
assert_eq!(sub_content, Some("ello rus"));
sourcepub fn get_document_language(&self, uri: &Url) -> Option<&str>
pub fn get_document_language(&self, uri: &Url) -> Option<&str>
get specify document’s language by giving Url
Examples
Basic usage:
use lsp_textdocument::TextDocuments;
use lsp_types::Url;
let text_documents = TextDocuments::new();
let uri:Url = "file://example.js".parse().unwrap();
let language = text_documents.get_document_language(&uri);
assert_eq!(language, Some("javascript"));
sourcepub fn listen(&mut self, method: &str, params: &Value) -> bool
pub fn listen(&mut self, method: &str, params: &Value) -> bool
listening the notification from client, you just need to pass method
and params
Examples:
Basic usage:
use lsp_textdocument::TextDocuments;
let method = "textDocument/didOpen";
let params = serde_json::to_value("message produced by client").unwrap();
let mut text_documents = TextDocuments::new();
text_documents.listen(method, ¶ms);