Skip to content

Commit 36cccdb

Browse files
committed
update
1 parent 4ab3085 commit 36cccdb

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

crates/emmylua_code_analysis/src/semantic/member/find_members.rs

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,17 @@ use crate::{
1414

1515
use super::{get_buildin_type_map_type_id, FindMembersResult, LuaMemberInfo};
1616

17-
/// 搜索成员的过滤条件
1817
#[derive(Debug, Clone)]
1918
pub enum FindMemberFilter {
2019
/// 寻找所有成员
2120
All,
22-
/// 根据指定的key寻找成员, 是否寻找所有成员
23-
ByKey(LuaMemberKey, bool),
21+
/// 根据指定的key寻找成员
22+
ByKey {
23+
/// 要搜索的成员key
24+
member_key: LuaMemberKey,
25+
/// 是否寻找所有匹配的成员,为`false`时,找到第一个匹配的成员后停止
26+
find_all: bool,
27+
},
2428
}
2529

2630
pub fn find_members(db: &DbIndex, prefix_type: &LuaType) -> FindMembersResult {
@@ -42,7 +46,10 @@ pub fn find_members_with_key(
4246
db,
4347
prefix_type,
4448
&mut InferGuard::new(),
45-
&FindMemberFilter::ByKey(member_key, find_all),
49+
&FindMemberFilter::ByKey {
50+
member_key,
51+
find_all,
52+
},
4653
)
4754
}
4855

@@ -86,18 +93,18 @@ fn find_members_guard(
8693
}
8794

8895
/// 检查成员是否应该被包含
89-
fn should_include_member(member_key: &LuaMemberKey, filter: &FindMemberFilter) -> bool {
96+
fn should_include_member(key: &LuaMemberKey, filter: &FindMemberFilter) -> bool {
9097
match filter {
9198
FindMemberFilter::All => true,
92-
FindMemberFilter::ByKey(target_key, _) => member_key == target_key,
99+
FindMemberFilter::ByKey { member_key, .. } => member_key == key,
93100
}
94101
}
95102

96103
/// 检查是否应该停止收集更多成员
97104
fn should_stop_collecting(current_count: usize, filter: &FindMemberFilter) -> bool {
98105
match filter {
99-
FindMemberFilter::All => false,
100-
FindMemberFilter::ByKey(_, find_all) => !find_all && current_count > 0,
106+
FindMemberFilter::ByKey { find_all, .. } => !find_all && current_count > 0,
107+
_ => false,
101108
}
102109
}
103110

0 commit comments

Comments
 (0)