Skip to content

Commit 3ff7636

Browse files
committed
update @export
1 parent 38884d1 commit 3ff7636

File tree

4 files changed

+33
-2
lines changed

4 files changed

+33
-2
lines changed

crates/emmylua_code_analysis/resources/schema.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,11 @@
384384
"description": "cast-type-mismatch",
385385
"type": "string",
386386
"const": "cast-type-mismatch"
387+
},
388+
{
389+
"description": "require-module-not-visible",
390+
"type": "string",
391+
"const": "require-module-not-visible"
387392
}
388393
]
389394
},

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ pub fn add_completion(builder: &mut CompletionBuilder) -> Option<()> {
3838
DocCompletionExpected::Using => {
3939
add_tag_using_completion(builder);
4040
}
41+
DocCompletionExpected::Export => {
42+
add_tag_export_completion(builder);
43+
}
4144
}
4245

4346
builder.stop_here();
@@ -74,6 +77,7 @@ fn get_doc_completion_expected(trigger_token: &LuaSyntaxToken) -> Option<DocComp
7477
}
7578
LuaTokenKind::TkTagNamespace => Some(DocCompletionExpected::Namespace),
7679
LuaTokenKind::TkTagUsing => Some(DocCompletionExpected::Using),
80+
LuaTokenKind::TkTagExport => Some(DocCompletionExpected::Export),
7781
LuaTokenKind::TkComma => {
7882
let parent = left_token.parent()?;
7983
match parent.kind().into() {
@@ -122,6 +126,7 @@ enum DocCompletionExpected {
122126
ClassAttr,
123127
Namespace,
124128
Using,
129+
Export,
125130
}
126131

127132
fn add_tag_param_name_completion(builder: &mut CompletionBuilder) -> Option<()> {
@@ -306,3 +311,16 @@ fn add_tag_using_completion(builder: &mut CompletionBuilder) {
306311
builder.add_completion_item(completion_item);
307312
}
308313
}
314+
315+
fn add_tag_export_completion(builder: &mut CompletionBuilder) {
316+
let key = vec!["namespace", "global"];
317+
for (sorted_index, key) in key.iter().enumerate() {
318+
let completion_item = CompletionItem {
319+
label: key.to_string(),
320+
kind: Some(lsp_types::CompletionItemKind::ENUM_MEMBER),
321+
sort_text: Some(format!("{:03}", sorted_index)),
322+
..Default::default()
323+
};
324+
builder.add_completion_item(completion_item);
325+
}
326+
}

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,13 @@ fn check_can_add_completion(builder: &CompletionBuilder) -> Option<()> {
5959
} else if builder.trigger_kind == CompletionTriggerKind::INVOKED {
6060
let parent = builder.trigger_token.parent()?;
6161
let prev_token = builder.trigger_token.prev_token()?;
62-
if prev_token.kind() == LuaTokenKind::TkTagUsing.into() {
63-
return None;
62+
match prev_token.kind().into() {
63+
LuaTokenKind::TkTagUsing | LuaTokenKind::TkTagExport | LuaTokenKind::TkTagNamespace => {
64+
return None;
65+
}
66+
_ => {}
6467
}
68+
6569
// 即时是主动触发, 也不允许在函数定义的参数列表中添加
6670
if trigger_text == "(" {
6771
if LuaParamList::can_cast(parent.kind().into()) {

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,10 @@ fn build_node_semantic_token(
312312
let name = doc_using.get_name_token()?;
313313
builder.push(name.syntax(), SemanticTokenType::NAMESPACE);
314314
}
315+
LuaAst::LuaDocTagExport(doc_export) => {
316+
let name = doc_export.get_name_token()?;
317+
builder.push(name.syntax(), SemanticTokenType::NAMESPACE);
318+
}
315319
LuaAst::LuaParamName(param_name) => {
316320
let name = param_name.get_name_token()?;
317321
if name.get_name_text() == "self" {

0 commit comments

Comments
 (0)