Skip to content
Cayetano Santos edited this page Sep 29, 2017 · 22 revisions

This project provides support under Emacs in terms of navigation of VHDL sources.

Table of Contents

About

VHDL-tools originates as a collection of missing, necessary functionalities to my workflow. It provides an extra layer in the form of two derived major modes, vhdl-tools-mode which completes the default emacs vhdl-mode. and vhdl-tools-vorg-mode which lies on top of the powerful org-mode. It adds vhdl-specific functionality based on packages as ggtags, projectile, imenu and outshine to ease navigating vhdl sources.

VHDL-tools expects a working setup of ggtags, completing it with

  • Jumping into instances
  • Jump to upper level
  • Searching for references
  • Link and headings management
  • Custom use of imenu
  • Custom smartscan
  • Org / vhdl coupling

Source code: https://github.com/csantosb/vhdl-tools

tar: https://github.com/csantosb/vhdl-tools/tarball/master

zip: https://github.com/csantosb/vhdl-tools/zipball/master

Related utilities

Some additional emacs packages useful in this context

smart scan
Jumps between other symbols found at point in Emacs
beacon
A light that follows your cursor around so you don’t lose it!
aggressive-indent-mode
Emacs minor mode that keeps your code always indented. More reliable than electric-indent-mode
VDHL capf
emacs completion at point function (capf) backend for use with company
toc-org
up-to-date table of contents in org files

Coding

Sparse list of projects intended at improving coding

VHDLHandbook

Example configuration

For an example configuration, see my personal here. Basically, I just update the load path and then declare vhd files to be open in vhdl-tools-mode. In order to load the library only when first calling the major modes, I autoload them.

Finally, when the libray is loaded, I customize it with this setup, where I include not only vhdl-tools related features but additional useful code.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Clone this wiki locally