This package provides the following services:
ncvlog-linter package
SystemVerilog linter using 'ncvlog' (Cadence Incisive)
Only compiles the file being linted which keeps run time super speedy, so can work in-line during editing (you might want https://atom.io/packages/autosave-onchange)
This downside to this approach, is that project-wide dependencies such as 'include filepaths , and module instantiations may give false positives / false negatives.
forked from : https://github.com/KoenGoe/atom-vcs-linter)
Dependencies :
- 'ncvlog' available in your path
- https://atom.io/packages/linter
Under the hood
atom-ncvlog-linter runs the following command line each time the current file is saved (i.e. lint_test.v)
ncvlog -sv +incdir+. -logfile /tmp/logfile lint_test.v
Each of the error messages are then parsed , and reformatted before being passed back to the linter package. I.e. :
- Output from ncvlog
ncvlog: 15.20-s060: (c) Copyright 1995-2018 Cadence Design Systems, Inc.
endmodule
|
ncvlog: *E,EXPLPA (lint_test.v,6|8): expecting a left parenthesis ('(') [12.1.2][7.1(IEEE)].
- input to Atom linter
lint_test.sv:6:Error:expecting a left parenthesis ('(') [12.1.2][7.1(IEEE)].
- linter message in Atom
ToDo
- refactor to be single "init.coffee file, simplier solution and will clean up temp file issue. i.e. fork from https://atom.io/packages/linter-verilator
- Add menu item so that additional command line options can be passed to ncvlog, such as additional files or include directories.
Done
- Clean up INCA_libs
- System level alert if ncvlog not found on command line