@@ -6,19 +6,25 @@ use lsp_types::{
66 FileOperationFilter , FileOperationPattern , FileOperationPatternKind ,
77 FileOperationRegistrationOptions , FoldingRangeProviderCapability , HoverProviderCapability ,
88 ImplementationProviderCapability , InlayHintOptions , InlayHintServerCapabilities , OneOf ,
9- RenameOptions , SaveOptions , SelectionRangeProviderCapability , SemanticTokensFullOptions ,
10- SemanticTokensLegend , SemanticTokensOptions , ServerCapabilities , SignatureHelpOptions ,
11- TextDocumentSyncCapability , TextDocumentSyncKind , TextDocumentSyncOptions ,
12- TypeDefinitionProviderCapability , WorkDoneProgressOptions ,
9+ PositionEncodingKind , RenameOptions , SaveOptions , SelectionRangeProviderCapability ,
10+ SemanticTokensFullOptions , SemanticTokensLegend , SemanticTokensOptions , ServerCapabilities ,
11+ SignatureHelpOptions , TextDocumentSyncCapability , TextDocumentSyncKind ,
12+ TextDocumentSyncOptions , TypeDefinitionProviderCapability , WorkDoneProgressOptions ,
1313 WorkspaceFileOperationsServerCapabilities , WorkspaceServerCapabilities ,
1414} ;
1515use serde_json:: json;
1616
1717use crate :: config:: { Config , RustfmtConfig } ;
18+ use crate :: lsp_ext:: supports_utf8;
1819use crate :: semantic_tokens;
1920
2021pub fn server_capabilities ( config : & Config ) -> ServerCapabilities {
2122 ServerCapabilities {
23+ position_encoding : if supports_utf8 ( config. caps ( ) ) {
24+ Some ( PositionEncodingKind :: UTF8 )
25+ } else {
26+ None
27+ } ,
2228 text_document_sync : Some ( TextDocumentSyncCapability :: Options ( TextDocumentSyncOptions {
2329 open_close : Some ( true ) ,
2430 change : Some ( TextDocumentSyncKind :: INCREMENTAL ) ,
0 commit comments