refactor: no longer need so many .into()
This commit is contained in:
parent
2b0c425cc6
commit
565c981107
1 changed files with 48 additions and 44 deletions
|
@ -67,21 +67,21 @@ impl menu::Item for CompletionItem {
|
|||
|
||||
let kind = match self {
|
||||
CompletionItem::Lsp(LspCompletionItem { item, .. }) => match item.kind {
|
||||
Some(lsp::CompletionItemKind::TEXT) => "text".into(),
|
||||
Some(lsp::CompletionItemKind::METHOD) => "method".into(),
|
||||
Some(lsp::CompletionItemKind::FUNCTION) => "function".into(),
|
||||
Some(lsp::CompletionItemKind::CONSTRUCTOR) => "constructor".into(),
|
||||
Some(lsp::CompletionItemKind::FIELD) => "field".into(),
|
||||
Some(lsp::CompletionItemKind::VARIABLE) => "variable".into(),
|
||||
Some(lsp::CompletionItemKind::CLASS) => "class".into(),
|
||||
Some(lsp::CompletionItemKind::INTERFACE) => "interface".into(),
|
||||
Some(lsp::CompletionItemKind::MODULE) => "module".into(),
|
||||
Some(lsp::CompletionItemKind::PROPERTY) => "property".into(),
|
||||
Some(lsp::CompletionItemKind::UNIT) => "unit".into(),
|
||||
Some(lsp::CompletionItemKind::VALUE) => "value".into(),
|
||||
Some(lsp::CompletionItemKind::ENUM) => "enum".into(),
|
||||
Some(lsp::CompletionItemKind::KEYWORD) => "keyword".into(),
|
||||
Some(lsp::CompletionItemKind::SNIPPET) => "snippet".into(),
|
||||
Some(lsp::CompletionItemKind::TEXT) => "text",
|
||||
Some(lsp::CompletionItemKind::METHOD) => "method",
|
||||
Some(lsp::CompletionItemKind::FUNCTION) => "function",
|
||||
Some(lsp::CompletionItemKind::CONSTRUCTOR) => "constructor",
|
||||
Some(lsp::CompletionItemKind::FIELD) => "field",
|
||||
Some(lsp::CompletionItemKind::VARIABLE) => "variable",
|
||||
Some(lsp::CompletionItemKind::CLASS) => "class",
|
||||
Some(lsp::CompletionItemKind::INTERFACE) => "interface",
|
||||
Some(lsp::CompletionItemKind::MODULE) => "module",
|
||||
Some(lsp::CompletionItemKind::PROPERTY) => "property",
|
||||
Some(lsp::CompletionItemKind::UNIT) => "unit",
|
||||
Some(lsp::CompletionItemKind::VALUE) => "value",
|
||||
Some(lsp::CompletionItemKind::ENUM) => "enum",
|
||||
Some(lsp::CompletionItemKind::KEYWORD) => "keyword",
|
||||
Some(lsp::CompletionItemKind::SNIPPET) => "snippet",
|
||||
Some(lsp::CompletionItemKind::COLOR) => {
|
||||
let doc = item.documentation.clone();
|
||||
let maybe_hex_color = match &doc {
|
||||
|
@ -91,42 +91,46 @@ impl menu::Item for CompletionItem {
|
|||
}
|
||||
None => None,
|
||||
};
|
||||
maybe_hex_color.map_or(Span::raw("color"), |c| match Color::from_hex(c) {
|
||||
Ok(l) => Span::styled(" ", Style::default().bg(l)),
|
||||
Err(_) => Span::raw("color"),
|
||||
})
|
||||
return menu::Row::new([
|
||||
first_cell,
|
||||
maybe_hex_color
|
||||
.map_or(Span::raw("color"), |c| match Color::from_hex(c) {
|
||||
Ok(l) => Span::styled(" ", Style::default().bg(l)),
|
||||
Err(_) => Span::raw("color"),
|
||||
})
|
||||
.into(),
|
||||
]);
|
||||
}
|
||||
Some(lsp::CompletionItemKind::FILE) => "file".into(),
|
||||
Some(lsp::CompletionItemKind::REFERENCE) => "reference".into(),
|
||||
Some(lsp::CompletionItemKind::FOLDER) => "folder".into(),
|
||||
Some(lsp::CompletionItemKind::ENUM_MEMBER) => "enum_member".into(),
|
||||
Some(lsp::CompletionItemKind::CONSTANT) => "constant".into(),
|
||||
Some(lsp::CompletionItemKind::STRUCT) => "struct".into(),
|
||||
Some(lsp::CompletionItemKind::EVENT) => "event".into(),
|
||||
Some(lsp::CompletionItemKind::OPERATOR) => "operator".into(),
|
||||
Some(lsp::CompletionItemKind::TYPE_PARAMETER) => "type_param".into(),
|
||||
Some(lsp::CompletionItemKind::FILE) => "file",
|
||||
Some(lsp::CompletionItemKind::REFERENCE) => "reference",
|
||||
Some(lsp::CompletionItemKind::FOLDER) => "folder",
|
||||
Some(lsp::CompletionItemKind::ENUM_MEMBER) => "enum_member",
|
||||
Some(lsp::CompletionItemKind::CONSTANT) => "constant",
|
||||
Some(lsp::CompletionItemKind::STRUCT) => "struct",
|
||||
Some(lsp::CompletionItemKind::EVENT) => "event",
|
||||
Some(lsp::CompletionItemKind::OPERATOR) => "operator",
|
||||
Some(lsp::CompletionItemKind::TYPE_PARAMETER) => "type_param",
|
||||
Some(kind) => {
|
||||
log::error!("Received unknown completion item kind: {:?}", kind);
|
||||
"".into()
|
||||
""
|
||||
}
|
||||
None => "".into(),
|
||||
None => "",
|
||||
},
|
||||
CompletionItem::Other(core::CompletionItem { kind, .. }) => Span::raw(kind.to_string()),
|
||||
CompletionItem::Other(core::CompletionItem { kind, .. }) => kind,
|
||||
};
|
||||
|
||||
menu::Row::new([
|
||||
menu::Cell::from(Span::styled(
|
||||
label,
|
||||
if deprecated {
|
||||
Style::default().add_modifier(Modifier::CROSSED_OUT)
|
||||
} else if kind == "folder" {
|
||||
*dir_style
|
||||
} else {
|
||||
Style::default()
|
||||
},
|
||||
)),
|
||||
menu::Cell::from(kind),
|
||||
])
|
||||
let first_cell = menu::Cell::from(Span::styled(
|
||||
label,
|
||||
if deprecated {
|
||||
Style::default().add_modifier(Modifier::CROSSED_OUT)
|
||||
} else if kind.stuff == "folder" {
|
||||
*dir_style
|
||||
} else {
|
||||
Style::default()
|
||||
},
|
||||
));
|
||||
|
||||
menu::Row::new([first_cell, menu::Cell::from(kind)])
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue