Since PR #3859 (2d1b3d5), specifically since baaed02, which merges 
[ctags#3471](universal-ctags/ctags#3471) and 
[#3473](universal-ctags/ctags#3473) (among others), Geany's tagmanager adds a 
"module" tag for *instances* of a module (in addition to the "instance" tag for 
the instance itself, which Geany didn't show in the tree view until #4039).

Example code:
```verilog
module outer_module (input D, output Q);
    inner_module inst (D, Q);
endmodule
```

| Before baaed02: | After baaed02: |
|-----------------|----------------|
| 
![Geany_before_baaed02](https://github.com/user-attachments/assets/4bb53785-1444-46b7-b552-8e65cf3802df)
 | 
![Geany_after_baaed02](https://github.com/user-attachments/assets/6fa05358-c66d-4757-af37-0f2ad0eed4ba)
 |

For an analogy, this is like having the C code `struct inner_struct foo;` tag 
*both* `inner_struct` and `foo` as struct/variable declarations (but it's *not* 
defining a struct type, just using it).

This seems to be caused by ctags now creating a *reference tag* whenever it 
declares an instance, referencing the corresponding module, and Geany 
erroneously(?) interpreting that reference tag as a normal tag.  But I don't 
know enough about ctags to know what's going on for sure, nor what's the proper 
way to handle it (other than refraining from creating a reference tag).

Is there a way to fix this?  It looks like #3102 might be related to this kind 
of issue.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/4072
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany/issues/[email protected]>

Reply via email to