ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Smart VHDL

by TheClams ST3

Syntax Highlighting, Snippets, code navigation and more for VHDL

Details

Installs

  • Total 11K
  • Win 7K
  • Mac 912
  • Linux 3K
Dec 30 Dec 29 Dec 28 Dec 27 Dec 26 Dec 25 Dec 24 Dec 23 Dec 22 Dec 21 Dec 20 Dec 19 Dec 18 Dec 17 Dec 16 Dec 15 Dec 14 Dec 13 Dec 12 Dec 11 Dec 10 Dec 9 Dec 8 Dec 7 Dec 6 Dec 5 Dec 4 Dec 3 Dec 2 Dec 1 Nov 30 Nov 29 Nov 28 Nov 27 Nov 26 Nov 25 Nov 24 Nov 23 Nov 22 Nov 21 Nov 20 Nov 19 Nov 18 Nov 17 Nov 16 Nov 15
Windows 0 1 0 3 1 1 2 0 1 0 3 0 2 2 4 1 1 0 2 4 4 1 1 0 4 1 1 2 0 1 2 0 2 0 0 0 0 2 2 3 1 0 2 1 0 3
Mac 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 2 0 0 1 4 0 0 0 2 0 0 1 0 0 0 1 1 0 3 0 2 1 0 2 2 0 1 2 0 0 0 0 0 0 1 2 2 0 0 0 0 1 2

Readme

Source
raw.​githubusercontent.​com

Sublime Text 'Smart' VHDL Package

General

The goal of this plugin is to provide IDE-like features for VHDL (similar to my other plugin for SystemVerilog) :

Compare to the basic VHDL plugin it already proposes:

  • a proper symbol definition for easy code navigation
  • Some basic indentation definition
  • A complete set of snippets written by https://github.com/ccornish
  • Tooltip to get signal definition on mouse hover
  • Generate a design hierarchy (list of every sub-block) (available in the command panel)
  • Navigation side-bar:
    • Display instances/procedure/functions inside the current module/package
    • Double click on instance/type to jump to it

Future features includes code completion (for record, enum, …), code alignement, block instantiation, …

Description

Syntax Highlighting:

Syntax highlighting is based on the VHDL bundle for Textmate, with a rework of scope to be aligned with the SystemVerilog plugin and some support of VHDL2008 features

Note: the default color scheme (Monokai) is missing a lot of scope, and might not give the best results. You can try my personal variation of Sunburst : https://bitbucket.org/Clams/sublimesystemverilog/downloads/Sunburst2.tmTheme

Code Navigation:

  • Show signal declaration in tooltip or status bar
  • Show hierarchy of a block (all its sub-block and their sub-block)
  • Find Instances: find all instance of a module inside a project

Module Instance helper:

  • Instantiation: Select a module from a list and create instantiation and connection

Code Alignement:

  • Align module instantiation

Configuration

To see all existing configuration option, go to Preferences->Package Settings->SmartVHDL->Settings (Default).

To edit settings open the Settings (User), and add parameter with the value you want.

Keymapping example

To map key to the different feature, simply add the following to your user .sublime-keymap file:

{
        "keys": ["ctrl+f10"], "command": "vhdl_module_inst",
        "context":
        [
            { "key": "num_selections", "operator": "equal", "operand": 1 },
            { "key": "selector", "operator": "equal", "operand": "source.vhdl"}
        ]
    },
    {
        "keys": ["ctrl+shift+a"], "command": "vhdl_align",
        "context":
        [
            { "key": "selector", "operator": "equal", "operand": "source.vhdl"}
        ]
    },
    {
        "keys": ["ctrl+alt+f"], "command": "vhdl_find_instance",
        "context":
        [
            { "key": "selector", "operator": "equal", "operand": "source.vhdl"}
        ]
    },
    {
        "keys": ["f12"], "command": "vhdl_hierarchy_goto_definition",
        "context":[
            { "key": "selector", "operator": "equal", "operand": "text.result-vhdl"}
        ]
    },
    { "keys": ["f1"], "command": "vhdl_toggle_navbar", "args":{"cmd":"toggle"}},
    { "keys": ["ctrl+f1"], "command": "vhdl_toggle_lock_navbar"},
    {
      "keys": ["alt+f1"], "command": "vhdl_show_navbar",
      "context":[{ "key": "selector", "operator": "equal", "operand": "source.vhdl"}]
    }