@@ -45,35 +45,26 @@ impl BackgroundDocumentRequestHandler for ResolveCompletionItem {
45
45
_notifier : super :: Notifier ,
46
46
mut original_completion : CompletionItem ,
47
47
) -> Result < CompletionItem > {
48
- let data = match original_completion. data . take ( ) {
49
- Some ( it) => it,
50
- None => return Ok ( original_completion) ,
51
- } ;
52
-
53
- let completion_item_data: CompletionItemData =
54
- serde_json:: from_value ( data) . expect ( "no error when deserializing!" ) ;
55
-
56
- original_completion. documentation = get_completion_item_documentation (
57
- & snapshot,
58
- completion_item_data,
59
- & original_completion,
60
- )
61
- . map ( |doc| {
62
- Documentation :: MarkupContent ( MarkupContent {
63
- kind : lsp_types:: MarkupKind :: Markdown ,
64
- value : doc,
65
- } )
66
- } ) ;
48
+ original_completion. documentation =
49
+ get_completion_item_documentation ( & snapshot, & mut original_completion) . map ( |doc| {
50
+ Documentation :: MarkupContent ( MarkupContent {
51
+ kind : lsp_types:: MarkupKind :: Markdown ,
52
+ value : doc,
53
+ } )
54
+ } ) ;
67
55
68
56
Ok ( original_completion)
69
57
}
70
58
}
71
59
72
60
fn get_completion_item_documentation (
73
61
snapshot : & DocumentSnapshot ,
74
- completion_item_data : CompletionItemData ,
75
- original_completion : & CompletionItem ,
62
+ original_completion : & mut CompletionItem ,
76
63
) -> Option < String > {
64
+ let data = original_completion. data . take ( ) ?;
65
+ let completion_item_data: CompletionItemData =
66
+ serde_json:: from_value ( data) . expect ( "no error when deserializing!" ) ;
67
+
77
68
let db = snapshot. db ( ) ;
78
69
match completion_item_data. payload ( ) ? {
79
70
CompletionItemDataPayload :: Module ( completion_item_module_data) => {
@@ -83,13 +74,12 @@ fn get_completion_item_documentation(
83
74
match completion_item_symbol_data. origin ( ) {
84
75
CompletionItemOrigin :: Builtin => {
85
76
let interpreter = snapshot. client_settings ( ) . interpreter ( ) ?;
86
- match get_python_doc ( interpreter, & original_completion. label ) {
87
- Ok ( doc) => doc,
88
- Err ( err) => {
89
- tracing:: error!( "Failed to get documentation for builtin symbol with Python script: {err}" ) ;
90
- None
91
- }
92
- }
77
+ get_python_doc ( interpreter, & original_completion. label ) . unwrap_or_else ( |err| {
78
+ tracing:: error!(
79
+ "Failed to get builtin symbol documentation with Python script: {err}"
80
+ ) ;
81
+ None
82
+ } )
93
83
}
94
84
_ => {
95
85
let non_stub_path = db
0 commit comments