Giter Club home page Giter Club logo

stevessystemverilogextension's Introduction

Steves System Verilog Extension

A VS Code extension bundling all the things I want in a System Verilog IDE.

The project draws from multiple projects:

Features

The language server provides a couple of features from the Verible SystemVerilog productivity suite right in the editor.

  • Linting: Checks your code against a number of lint rules and provides 'wiggly lines' with diagnostic output and even offers auto-fixes when available.
  • Configuration: Linting configuration is now sourced from an SVN repo so that teams can work from the same set of rules. @see Prerequisites below.
  • Formatting: Offers Format Document/Selection according to the Verible formatting style. The 'look' can be configured if needed.
  • Outline: Shows the high-level structure of your modules and functions in the outline tree. Labelled begin/end blocks are also included.
  • Hover: Highlight symbols related to the one under the cursor.
  • Go-To-Definition: Jump to the definition of the symbol under the cursor.
  • Go-To-References: Jump to the references of the symbol under the cursor.
  • AUTO-expansion: Features known from Emacs Verilog-mode, used for expanding various /*AUTO...*/ pragmas in Verilog and SystemVerilog code. These expansions are available as code actions.
    • AUTOARG โ€“ generates a list of non-ANSI ports in a module header,
    • [๐ŸŽ‰ New] AUTOINST with AUTO_TEMPLATE โ€“ generates connections in a module instance based on the instantiated module's ports,
    • [๐ŸŽ‰ New] AUTOINPUT, AUTOOUTPUT, AUTOINOUT โ€“ declares ports based on connections generated by AUTOINST,
    • [๐ŸŽ‰ New] AUTOWIRE โ€“ declares wires based on connections generated by AUTOINST,
    • [๐ŸŽ‰ New] AUTOREG โ€“ declares regs for outputs not connected to any module instance.

Prerequisites

  1. An SVN repo with a copy of the verible-verilog-ls.exe and .rules.verible_lint file. A copy of verible and associated rules file are included with this extension, but users will need to add these to their SVN repo.
  2. In the exteions settings, set the svn_path in stevesSystemVerilogExtension.rules_config.svn_path to point to the SVN repo.

stevessystemverilogextension's People

Contributors

sconwayaus avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.