Skip to content

Contributor Guide

kraigher edited this page Mar 2, 2021 · 17 revisions

Purpose

The purpose of this document is to help new contributors to get started on the project. We do this by providing a high level overview of the project goals, norms and architecture.

Goals

The project also aims to develop a fully featured language server based on a reusable VHDL parsing & analysis library. The VHDL parsing & analysis library is intended to be able to be re-used by other open source projects such that also need such functionally. The idea is that the investment in parsing & analyzing VHDL can be shared by many projects.

The choice of making a language server be the driving requirement behind the parsing & analysis library is the assumption that a language server is the most difficult requirement for such a library. A language server requires quick incremental re-analysis as well as robust handling of syntactically incorrect code as it is being edited. A fast and full featured language server also provides a lot of value to the users of VHDL.

The main focus is VHDL-2008 and above as it is the most practically interesting. User who wants to stick to 93 subset and get errors for use of newer VHDL features are not a priority. Such features can be added if the interest exists as a linting pass.

Sub-projects

  • vhdl_lang - VHDL parsing & analysis library
  • vhdl_ls - VHDL language server

Norms

  • Follow the VHDL LRM and aim to be 100% compliant.
    • Do not assume your mental model of VHDL is correct without reading the LRM.
  • All features must have good quality unit test proving they continue to work as intended.

Clone this wiki locally