aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_lsp_server/src/main_loop.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_lsp_server/src/main_loop.rs')
-rw-r--r--crates/ra_lsp_server/src/main_loop.rs24
1 files changed, 16 insertions, 8 deletions
diff --git a/crates/ra_lsp_server/src/main_loop.rs b/crates/ra_lsp_server/src/main_loop.rs
index 35c35d32b..0b5d9c44d 100644
--- a/crates/ra_lsp_server/src/main_loop.rs
+++ b/crates/ra_lsp_server/src/main_loop.rs
@@ -111,6 +111,21 @@ pub fn main_loop(
111 connection.sender.send(request.into()).unwrap(); 111 connection.sender.send(request.into()).unwrap();
112 } 112 }
113 113
114 let options = {
115 let text_document_caps = client_caps.text_document.as_ref();
116 Options {
117 publish_decorations: config.publish_decorations,
118 supports_location_link: text_document_caps
119 .and_then(|it| it.definition)
120 .and_then(|it| it.link_support)
121 .unwrap_or(false),
122 line_folding_only: text_document_caps
123 .and_then(|it| it.folding_range.as_ref())
124 .and_then(|it| it.line_folding_only)
125 .unwrap_or(false),
126 }
127 };
128
114 let feature_flags = { 129 let feature_flags = {
115 let mut ff = FeatureFlags::default(); 130 let mut ff = FeatureFlags::default();
116 for (flag, value) in config.feature_flags { 131 for (flag, value) in config.feature_flags {
@@ -133,14 +148,7 @@ pub fn main_loop(
133 config.lru_capacity, 148 config.lru_capacity,
134 &globs, 149 &globs,
135 Watch(!config.use_client_watching), 150 Watch(!config.use_client_watching),
136 Options { 151 options,
137 publish_decorations: config.publish_decorations,
138 supports_location_link: client_caps
139 .text_document
140 .and_then(|it| it.definition)
141 .and_then(|it| it.link_support)
142 .unwrap_or(false),
143 },
144 feature_flags, 152 feature_flags,
145 ) 153 )
146 }; 154 };