TerosTechnology / vscode-terosHDL

VHDL and Verilog/SV IDE: state machine viewer, linter, documentation, snippets... and more!
https://terostechnology.github.io/terosHDLdoc/
524 stars 42 forks source link

Don't work Go To Definition with Verilog and SystemVerilog #320

Open WTFive opened 2 years ago

WTFive commented 2 years ago

Go To Definition work great with VHDL, but don't work with Verilog and SystemVerilog files

изображение

изображение

The second screenshot shows that this function seems to work, but it does not work correctly. If I have confused something or do not understand and everything is in order, then I apologize in advance

qarlosalberto commented 2 years ago

Does it work fine the "outline"?

qarlosalberto commented 2 years ago

Ok, I see the problem. I will fix it.

ufktmr commented 1 year ago

im having the same problem in win10 vscode version 1.73.1 and terosHDL version v2.0.7

qarlosalberto commented 1 year ago

@ufktmr could you send me an email? carlosruiznaranjo@gmail.com

alpetrovsky774 commented 3 months ago

This is still happening in version 5.0 and the pre-release version 6.0. The impact is that autocomplete, go-to definition, hover, and evaluate features do not work for most elements in the Verilog/SV files as those features depend on identification of element names in the file. It does however seem to work fine with VHDL.

For example: input wire [7:0] input_a; // parsed incorrectly, the keyword "wire" is identified as the element name output reg [7:0] output_a; // parsed incorrectly, the keyword "reg" is identified as the element name ... reg [1:0] unsigned_reg; // parsed correctly and name "unsigned_reg" is properly identified reg signed [1:0] signed_reg; // parsed incorrectly, the keyword "signed" is identified as the element name

Based on the above examples it seems that the word following reg/wire or input/output keywords is used as the element name regardless of where the given name is actually located within the line. This prevents autocomplete, go-to definition, hover, and evaluate features from working on most input/output definitions and signed reg/wire definitions.