-
-
Notifications
You must be signed in to change notification settings - Fork 7
Navigation
The following functions are defined for instance navigation:
verilog-ext-find-module-instance-fwd
verilog-ext-find-module-instance-bwd
However, these are not bound to any key since they are called by verilog-ext-nav-down-dwim
(C-M-d) and verilog-ext-nav-up-dwim
(C-M-u) respectively, when current file has a module declaration (e.g. RTL code in most cases).
If point is inside a module instantiation, it is possible to navigate to its definition or references:
-
C-c M-.
verilog-ext-jump-to-module-at-point-def
-
C-c M-?
verilog-ext-jump-to-module-at-point-ref
This functionality requires setting up a backend for xref
and add it to xref-backend-functions
. This can be done in two ways:
- Configuring LSP (see link)
- Configuring global and
ggtags-mode
- Requires installation of
global
,ctags
(for definitions) andpython
/pygments
(for references).# For Ubuntu/Debian systems sudo apt-get install global universal-ctags python3-pygments
- Find complete installation and configuration information here
- Requires installation of
Running verilog-ext-jump-to-parent-module
(C-M-.) will run ag
or ripgrep
, depending on the value of verilog-ext-jump-to-parent-module-engine
, and will try to find instantiations of current file module definition on current project.
To install ag
and ripgrep
:
- For Ubuntu/Debian:
sudo apt-get install silversearcher-ag ripgrep
Depending on the type of file being edited, the following dwim functions perform different actions.
If current file has a module definition it will be detected as an RTL environment. Otherwise, it will be considered a Verification class-based environment.
-
verilog-ext-nav-beg-of-defun-dwim
andverilog-ext-nav-end-of-defun-dwim
- RTL: navigate through 'blocks' (module, interface, program, package, class, function, task, initial, always, generate, property, sequence and `define)
- Verification: navigate through classes and methods
-
verilog-ext-nav-down-dwim
andverilog-ext-nav-up-dwim
- RTL: navigate through instances
- Verification: navigate through classes and methods
-
verilog-ext-nav-prev-dwim
andverilog-ext-nav-next-dwim
- RTL and Verification: navigate parenthesized and begin-end expressions or move through paragraphs forward/backward