fix dot completion range

This commit is contained in:
light-ly 2024-11-02 13:20:19 +08:00
parent cdcea82947
commit dbac4132d0
2 changed files with 9 additions and 11 deletions

View File

@ -162,10 +162,8 @@ fn get_position_port_param_completion(
// 在当前文件的 fast 中寻找
for module in &hdl_file.fast.content {
for instance in &module.instances {
if let Some(param_range) = &instance.instparams {
let mut param_range = param_range.clone();
param_range.affine(-1, -1);
if param_range.contains(pos) {
if let Some(_) = &instance.instparams {
if instance.gen_dot_completion_param_range().contains(pos) {
// 补全当前 module 的所有 param
let inst_module = hdl_param.find_module_by_name(&instance.inst_type);
if inst_module.is_some() {
@ -208,10 +206,10 @@ fn get_position_port_param_completion(
..CompletionItemLabelDetails::default()
};
let param_desc = make_port_desc(&port);
let port_desc = make_port_desc(&port);
let c_item = CompletionItem {
label: port.name,
detail: Some(param_desc),
detail: Some(port_desc),
label_details: Some(label_details),
kind: Some(CompletionItemKind::PROPERTY),
..CompletionItem::default()

View File

@ -224,8 +224,8 @@ impl Instance {
new_port_range.start.line = param_range.end.line - 1;
new_port_range.start.character = param_range.end.character;
} else {
new_port_range.start.line = self.range.end.line;
new_port_range.start.character = self.range.end.character + 1;
new_port_range.start.line = self.range.start.line;
new_port_range.start.character = self.range.start.character + 1;
}
new_port_range.end.line += 1;
@ -241,8 +241,8 @@ impl Instance {
// TODO: 精心调制这个方法
if let Some(param_range) = &self.instparams {
let mut new_param_range = param_range.clone();
new_param_range.start.line = self.range.end.line;
new_param_range.start.character = self.range.end.character;
new_param_range.start.line = self.range.start.line;
new_param_range.start.character = self.range.start.character + 1;
new_param_range.end.line += 1;
return new_param_range;
}