Skip to content

ren-wei/html-languageservice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

html-languageservice

The basics of an HTML language server.

Features

  • customize data providers
  • parse html document
  • scanner
  • complete
  • hover
  • format
  • findDocumentHighlights
  • findDocumentLinks
  • findDocumentSymbols
  • getFoldingRanges
  • getSelectionRanges
  • quoteComplete
  • tagComplete
  • rename
  • findMatchingTagPosition
  • findLinkedEditingRanges

Example

use std::sync::Arc;

use html_languageservice::{
    services::html_completion::DefaultDocumentContext, LanguageService, LanguageServiceOptions,
};
use lsp_textdocument::FullTextDocument;
use lsp_types::Position;

#[tokio::main]
async fn main() {
    // init
    let options = Arc::new(LanguageServiceOptions::default());
    let language_service = LanguageService::new(options, None);
    // prepare
    let document = FullTextDocument::new("html".to_string(), 1, "<div></div>".to_string());
    let html_document = language_service.parse_html_document(&document).await;
    let position = Position::new(0, 1);
    let document_context = DefaultDocumentContext {};
    // complete
    let completion_list = language_service
        .do_complete(&document, &position, &html_document, document_context, None)
        .await;
    println!("completion_list: {:#?}", completion_list);
    // hover
    let hover = language_service
        .do_hover(&document, &position, &html_document, None)
        .await;
    println!("hover: {:#?}", hover);
}

About

html language service for rust implementation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages