fixup folding ranges for "lineFoldingOnly" clients #2033

This commit is contained in:
Alex Zatelepin
2019-10-21 02:04:55 +03:00
parent 6b9bd7bdd2
commit 9d5e932626
4 changed files with 74 additions and 24 deletions

View File

@@ -111,6 +111,21 @@ pub fn main_loop(
connection.sender.send(request.into()).unwrap();
}
let options = {
let text_document_caps = client_caps.text_document.as_ref();
Options {
publish_decorations: config.publish_decorations,
supports_location_link: text_document_caps
.and_then(|it| it.definition)
.and_then(|it| it.link_support)
.unwrap_or(false),
line_folding_only: text_document_caps
.and_then(|it| it.folding_range.as_ref())
.and_then(|it| it.line_folding_only)
.unwrap_or(false),
}
};
let feature_flags = {
let mut ff = FeatureFlags::default();
for (flag, value) in config.feature_flags {
@@ -133,14 +148,7 @@ pub fn main_loop(
config.lru_capacity,
&globs,
Watch(!config.use_client_watching),
Options {
publish_decorations: config.publish_decorations,
supports_location_link: client_caps
.text_document
.and_then(|it| it.definition)
.and_then(|it| it.link_support)
.unwrap_or(false),
},
options,
feature_flags,
)
};