Add compile-on-save
This commit is contained in:
		
							parent
							
								
									766a853b48
								
							
						
					
					
						commit
						8e41deb653
					
				| @ -9,13 +9,14 @@ use reid::parse_module; | |||||||
| use tokio::sync::Mutex; | use tokio::sync::Mutex; | ||||||
| use tower_lsp::lsp_types::{ | use tower_lsp::lsp_types::{ | ||||||
|     self, CompletionItem, CompletionOptions, CompletionParams, CompletionResponse, Diagnostic, DiagnosticSeverity, |     self, CompletionItem, CompletionOptions, CompletionParams, CompletionResponse, Diagnostic, DiagnosticSeverity, | ||||||
|     DidChangeTextDocumentParams, DidOpenTextDocumentParams, DocumentFilter, GotoDefinitionParams, |     DidChangeTextDocumentParams, DidOpenTextDocumentParams, DidSaveTextDocumentParams, DocumentFilter, | ||||||
|     GotoDefinitionResponse, Hover, HoverContents, HoverParams, HoverProviderCapability, InitializeParams, |     GotoDefinitionParams, GotoDefinitionResponse, Hover, HoverContents, HoverParams, HoverProviderCapability, | ||||||
|     InitializeResult, InitializedParams, Location, MarkupContent, MarkupKind, MessageType, OneOf, Range, |     InitializeParams, InitializeResult, InitializedParams, Location, MarkupContent, MarkupKind, MessageType, OneOf, | ||||||
|     ReferenceParams, RenameParams, SemanticToken, SemanticTokensLegend, SemanticTokensOptions, SemanticTokensParams, |     Range, ReferenceParams, RenameParams, SemanticToken, SemanticTokensLegend, SemanticTokensOptions, | ||||||
|     SemanticTokensResult, SemanticTokensServerCapabilities, ServerCapabilities, TextDocumentItem, |     SemanticTokensParams, SemanticTokensResult, SemanticTokensServerCapabilities, ServerCapabilities, TextDocumentItem, | ||||||
|     TextDocumentRegistrationOptions, TextDocumentSyncCapability, TextDocumentSyncKind, TextDocumentSyncOptions, |     TextDocumentRegistrationOptions, TextDocumentSyncCapability, TextDocumentSyncKind, TextDocumentSyncOptions, | ||||||
|     TextEdit, Url, WorkspaceEdit, WorkspaceFoldersServerCapabilities, WorkspaceServerCapabilities, |     TextDocumentSyncSaveOptions, TextEdit, Url, WorkspaceEdit, WorkspaceFoldersServerCapabilities, | ||||||
|  |     WorkspaceServerCapabilities, | ||||||
| }; | }; | ||||||
| use tower_lsp::{Client, LanguageServer, LspService, Server, jsonrpc}; | use tower_lsp::{Client, LanguageServer, LspService, Server, jsonrpc}; | ||||||
| 
 | 
 | ||||||
| @ -44,7 +45,9 @@ impl LanguageServer for Backend { | |||||||
|             change: Some(TextDocumentSyncKind::FULL), |             change: Some(TextDocumentSyncKind::FULL), | ||||||
|             will_save: None, |             will_save: None, | ||||||
|             will_save_wait_until: None, |             will_save_wait_until: None, | ||||||
|             save: None, |             save: Some(TextDocumentSyncSaveOptions::SaveOptions(lsp_types::SaveOptions { | ||||||
|  |                 include_text: Some(true), | ||||||
|  |             })), | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         let capabilities = ServerCapabilities { |         let capabilities = ServerCapabilities { | ||||||
| @ -204,6 +207,16 @@ impl LanguageServer for Backend { | |||||||
|         .await |         .await | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     async fn did_save(&self, params: DidSaveTextDocumentParams) { | ||||||
|  |         self.recompile(TextDocumentItem { | ||||||
|  |             text: params.text.unwrap(), | ||||||
|  |             uri: params.text_document.uri, | ||||||
|  |             version: 0, | ||||||
|  |             language_id: String::new(), | ||||||
|  |         }) | ||||||
|  |         .await | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     async fn semantic_tokens_full( |     async fn semantic_tokens_full( | ||||||
|         &self, |         &self, | ||||||
|         params: SemanticTokensParams, |         params: SemanticTokensParams, | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user