Skip to content

Commit ffdc938

Browse files
committed
fix rebase error
1 parent 9ff0979 commit ffdc938

File tree

5 files changed

+30
-43
lines changed

5 files changed

+30
-43
lines changed

crates/emmylua_code_analysis/src/compilation/analyzer/unresolve/resolve_closure.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -320,11 +320,10 @@ fn resolve_doc_function(
320320
fn get_owner_type_id(db: &DbIndex, info: &LuaMemberInfo) -> Option<LuaTypeDeclId> {
321321
match &info.property_owner_id {
322322
Some(LuaSemanticDeclId::Member(member_id)) => {
323-
if let Some(member) = db.get_member_index().get_member(member_id) {
324-
member.get_owner().get_type_id().cloned()
325-
} else {
326-
None
323+
if let Some(owner) = db.get_member_index().get_current_owner(member_id) {
324+
return owner.get_type_id().cloned();
327325
}
326+
None
328327
}
329328
_ => None,
330329
}

crates/emmylua_ls/src/handlers/completion/providers/function_provider.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,7 @@ fn add_enum_members_completion(
504504
.clone(),
505505
)
506506
})
507+
.sorted_by(|a, b| a.0.cmp(&b.0))
507508
.collect::<Vec<_>>();
508509

509510
// 判断是否为字符串字面量触发

crates/emmylua_ls/src/handlers/hover/build_hover.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,13 @@ pub fn build_hover_content_for_completion<'a>(
6464
) -> Option<HoverBuilder<'a>> {
6565
let typ = match property_id {
6666
LuaSemanticDeclId::LuaDecl(decl_id) => {
67-
let decl = db.get_decl_index().get_decl(&decl_id)?;
68-
Some(decl.get_type()?.clone())
67+
// let decl = db.get_decl_index().get_decl(&decl_id)?;
68+
Some(semantic_model.get_type(decl_id.into()).clone())
6969
}
7070
LuaSemanticDeclId::Member(member_id) => {
71-
let member = db.get_member_index().get_member(&member_id)?;
72-
Some(member.get_decl_type())
71+
// let member = db.get_member_index().get_member(&member_id)?;
72+
Some(semantic_model.get_type(member_id.into()).clone())
73+
// Some(member.get_decl_type())
7374
}
7475
_ => None,
7576
};

crates/emmylua_ls/src/handlers/hover/hover_builder.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,12 @@ impl<'a> HoverBuilder<'a> {
140140
.get_member_index()
141141
.get_member(&id)
142142
{
143-
if let LuaMemberOwner::Type(ty) = &member.get_owner() {
143+
if let Some(LuaMemberOwner::Type(ty)) = self
144+
.semantic_model
145+
.get_db()
146+
.get_member_index()
147+
.get_current_owner(&id)
148+
{
144149
if is_std(self.semantic_model.get_db(), member.get_file_id()) {
145150
let std_desc = hover_std_description(
146151
ty.get_name(),

crates/emmylua_ls/src/handlers/semantic_token/build_semantic_tokens.rs

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -557,49 +557,30 @@ fn handle_name_node(
557557
}
558558

559559
let semantic_decl =
560-
semantic_model.find_decl(node.clone().into(), SemanticDeclLevel::default())?;
560+
semantic_model.find_decl(node.clone().into(), SemanticDeclLevel::Trace(50))?;
561561

562562
match semantic_decl {
563563
LuaSemanticDeclId::Member(member_id) => {
564-
let member = semantic_model
565-
.get_db()
566-
.get_member_index()
567-
.get_member(&member_id)?;
568-
if matches!(member.get_decl_type(), LuaType::Signature(_)) {
564+
let decl_type = semantic_model.get_type(member_id.into());
565+
if matches!(decl_type, LuaType::Signature(_)) {
569566
builder.push(name_token.syntax(), SemanticTokenType::FUNCTION);
570567
return Some(());
571568
}
572569
}
573570

574571
LuaSemanticDeclId::LuaDecl(decl_id) => {
575-
let decl = semantic_model
576-
.get_db()
577-
.get_decl_index()
578-
.get_decl(&decl_id)?;
579-
580-
let (token_type, modifier) = match &decl.extra {
581-
LuaDeclExtra::Local { decl_type, .. } => match decl_type {
582-
Some(LuaType::Signature(_) | LuaType::DocFunction(_)) => {
583-
builder.push(name_token.syntax(), SemanticTokenType::FUNCTION);
584-
return Some(());
585-
}
586-
_ => (SemanticTokenType::VARIABLE, None),
587-
},
588-
589-
LuaDeclExtra::Global { decl_type, .. } => match decl_type {
590-
Some(LuaType::Signature(signature)) => {
591-
let is_meta = semantic_model
592-
.get_db()
593-
.get_module_index()
594-
.is_meta_file(&signature.get_file_id());
595-
(
596-
SemanticTokenType::FUNCTION,
597-
is_meta.then_some(SemanticTokenModifier::DEFAULT_LIBRARY),
598-
)
599-
}
600-
_ => (SemanticTokenType::VARIABLE, None),
601-
},
602-
572+
let decl_type = semantic_model.get_type(decl_id.into());
573+
let (token_type, modifier) = match decl_type {
574+
LuaType::Signature(signature) => {
575+
let is_meta = semantic_model
576+
.get_db()
577+
.get_module_index()
578+
.is_meta_file(&signature.get_file_id());
579+
(
580+
SemanticTokenType::FUNCTION,
581+
is_meta.then_some(SemanticTokenModifier::DEFAULT_LIBRARY),
582+
)
583+
}
603584
_ => (SemanticTokenType::VARIABLE, None),
604585
};
605586

0 commit comments

Comments
 (0)