on master help sign in
Rebase cleanup/fixes and use lsp::CompletionItem in item_to_transaction directly
2a512f7Philipp Mildenberger
helix-lsp/src/lib.rs+1−1
@@ -682,7 +682,7 @@ impl Registry {
682
682
683 /// If this method is called, all documents that have a reference to language servers used by the language config have to refresh their language servers,
683 /// If this method is called, all documents that have a reference to language servers used by the language config have to refresh their language servers,
684 /// as it could be that language servers of these documents were stopped by this method.
684 /// as it could be that language servers of these documents were stopped by this method.
685− /// See [helix_view::editor::Editor::refresh_language_servers]
685+ /// See helix_view::editor::Editor::refresh_language_servers
686 pub fn restart(
686 pub fn restart(
687 &mut self,
687 &mut self,
688 language_config: &LanguageConfiguration,
688 language_config: &LanguageConfiguration,
helix-term/src/commands.rs+1−1
@@ -4242,7 +4242,7 @@ pub fn completion(cx: &mut Context) {
4242 .map(|language_server| {
4242 .map(|language_server| {
4243 let language_server_id = language_server.id();
4243 let language_server_id = language_server.id();
4244 let offset_encoding = language_server.offset_encoding();
4244 let offset_encoding = language_server.offset_encoding();
4245− let pos = pos_to_lsp_pos(doc.text(), cursor, offset_encoding);
4245+ let pos = pos_to_lsp_pos(&text, cursor, offset_encoding);
4246 let doc_id = doc.identifier();
4246 let doc_id = doc.identifier();
4247 let completion_request = language_server.completion(doc_id, pos, None).unwrap();
4247 let completion_request = language_server.completion(doc_id, pos, None).unwrap();
4248
4248
helix-term/src/ui/completion.rs+7−8
@@ -119,7 +119,7 @@ impl Completion {
119 fn item_to_transaction(
119 fn item_to_transaction(
120 doc: &Document,
120 doc: &Document,
121 view_id: ViewId,
121 view_id: ViewId,
122− item: &CompletionItem,
122+ item: &lsp::CompletionItem,
123 offset_encoding: OffsetEncoding,
123 offset_encoding: OffsetEncoding,
124 trigger_offset: usize,
124 trigger_offset: usize,
125 include_placeholder: bool,
125 include_placeholder: bool,
@@ -130,7 +130,7 @@ impl Completion {
130 let text = doc.text().slice(..);
130 let text = doc.text().slice(..);
131 let primary_cursor = selection.primary().cursor(text);
131 let primary_cursor = selection.primary().cursor(text);
132
132
133− let (edit_offset, new_text) = if let Some(edit) = &item.item.text_edit {
133+ let (edit_offset, new_text) = if let Some(edit) = &item.text_edit {
134 let edit = match edit {
134 let edit = match edit {
135 lsp::CompletionTextEdit::Edit(edit) => edit.clone(),
135 lsp::CompletionTextEdit::Edit(edit) => edit.clone(),
136 lsp::CompletionTextEdit::InsertAndReplace(item) => {
136 lsp::CompletionTextEdit::InsertAndReplace(item) => {
@@ -153,10 +153,9 @@ impl Completion {
153 (Some((start_offset, end_offset)), edit.new_text)
153 (Some((start_offset, end_offset)), edit.new_text)
154 } else {
154 } else {
155 let new_text = item
155 let new_text = item
156− .item
157 .insert_text
156 .insert_text
158 .clone()
157 .clone()
159− .unwrap_or_else(|| item.item.label.clone());
158+ .unwrap_or_else(|| item.label.clone());
160 // check that we are still at the correct savepoint
159 // check that we are still at the correct savepoint
161 // we can still generate a transaction regardless but if the
160 // we can still generate a transaction regardless but if the
162 // document changed (and not just the selection) then we will
161 // document changed (and not just the selection) then we will
@@ -165,9 +164,9 @@ impl Completion {
165 (None, new_text)
164 (None, new_text)
166 };
165 };
167
166
168− if matches!(item.item.kind, Some(lsp::CompletionItemKind::SNIPPET))
167+ if matches!(item.kind, Some(lsp::CompletionItemKind::SNIPPET))
169 || matches!(
168 || matches!(
170− item.item.insert_text_format,
169+ item.insert_text_format,
171 Some(lsp::InsertTextFormat::SNIPPET)
170 Some(lsp::InsertTextFormat::SNIPPET)
172 )
171 )
173 {
172 {
@@ -256,7 +255,7 @@ impl Completion {
256 let transaction = item_to_transaction(
255 let transaction = item_to_transaction(
257 doc,
256 doc,
258 view.id,
257 view.id,
259− item,
258+ &item.item,
260 language_server!(item).offset_encoding(),
259 language_server!(item).offset_encoding(),
261 trigger_offset,
260 trigger_offset,
262 true,
261 true,
@@ -294,7 +293,7 @@ impl Completion {
294 let transaction = item_to_transaction(
293 let transaction = item_to_transaction(
295 doc,
294 doc,
296 view.id,
295 view.id,
297− &item,
296+ &item.item,
298 offset_encoding,
297 offset_encoding,
299 trigger_offset,
298 trigger_offset,
300 false,
299 false,