fix dot completion range
This commit is contained in:
parent
cdcea82947
commit
dbac4132d0
@ -162,10 +162,8 @@ fn get_position_port_param_completion(
|
|||||||
// 在当前文件的 fast 中寻找
|
// 在当前文件的 fast 中寻找
|
||||||
for module in &hdl_file.fast.content {
|
for module in &hdl_file.fast.content {
|
||||||
for instance in &module.instances {
|
for instance in &module.instances {
|
||||||
if let Some(param_range) = &instance.instparams {
|
if let Some(_) = &instance.instparams {
|
||||||
let mut param_range = param_range.clone();
|
if instance.gen_dot_completion_param_range().contains(pos) {
|
||||||
param_range.affine(-1, -1);
|
|
||||||
if param_range.contains(pos) {
|
|
||||||
// 补全当前 module 的所有 param
|
// 补全当前 module 的所有 param
|
||||||
let inst_module = hdl_param.find_module_by_name(&instance.inst_type);
|
let inst_module = hdl_param.find_module_by_name(&instance.inst_type);
|
||||||
if inst_module.is_some() {
|
if inst_module.is_some() {
|
||||||
@ -208,10 +206,10 @@ fn get_position_port_param_completion(
|
|||||||
..CompletionItemLabelDetails::default()
|
..CompletionItemLabelDetails::default()
|
||||||
};
|
};
|
||||||
|
|
||||||
let param_desc = make_port_desc(&port);
|
let port_desc = make_port_desc(&port);
|
||||||
let c_item = CompletionItem {
|
let c_item = CompletionItem {
|
||||||
label: port.name,
|
label: port.name,
|
||||||
detail: Some(param_desc),
|
detail: Some(port_desc),
|
||||||
label_details: Some(label_details),
|
label_details: Some(label_details),
|
||||||
kind: Some(CompletionItemKind::PROPERTY),
|
kind: Some(CompletionItemKind::PROPERTY),
|
||||||
..CompletionItem::default()
|
..CompletionItem::default()
|
||||||
|
@ -224,8 +224,8 @@ impl Instance {
|
|||||||
new_port_range.start.line = param_range.end.line - 1;
|
new_port_range.start.line = param_range.end.line - 1;
|
||||||
new_port_range.start.character = param_range.end.character;
|
new_port_range.start.character = param_range.end.character;
|
||||||
} else {
|
} else {
|
||||||
new_port_range.start.line = self.range.end.line;
|
new_port_range.start.line = self.range.start.line;
|
||||||
new_port_range.start.character = self.range.end.character + 1;
|
new_port_range.start.character = self.range.start.character + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
new_port_range.end.line += 1;
|
new_port_range.end.line += 1;
|
||||||
@ -241,8 +241,8 @@ impl Instance {
|
|||||||
// TODO: 精心调制这个方法
|
// TODO: 精心调制这个方法
|
||||||
if let Some(param_range) = &self.instparams {
|
if let Some(param_range) = &self.instparams {
|
||||||
let mut new_param_range = param_range.clone();
|
let mut new_param_range = param_range.clone();
|
||||||
new_param_range.start.line = self.range.end.line;
|
new_param_range.start.line = self.range.start.line;
|
||||||
new_param_range.start.character = self.range.end.character;
|
new_param_range.start.character = self.range.start.character + 1;
|
||||||
new_param_range.end.line += 1;
|
new_param_range.end.line += 1;
|
||||||
return new_param_range;
|
return new_param_range;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user