emacs中用flycheck来实时检查语法
专栏:ExASIC May 7, 2025, 7:08 p.m. 312 阅读
本文介绍emacs中如何用flycheck来实时检查语法,支持verilog/systemverilog、VHDL、python、tcl、perl等。

flycheck支持40多种语言的实时语法检查,包括verilog/systemverilog、VHDL、python、tcl、perl等常用的芯片编程语言。

一、安装

https://mirrors.ustc.edu.cn/elpa/nongnu/flycheck.html下载flycheck的tar安装包。

image.png

把tar包解压到emacs插件目录,并配置~/.emacs,如下:

(add-to-list 'load-path "~/.emacs.d/flycheck-35.0")
(require 'flycheck)
(global-flycheck-mode)

二、使用

1、python

安装后flycheck后,我们编辑python时就会实时显示和提示语法错误了。比如下图,可以看行号左侧有>>符号、下划线等标记。第40行提示分号不是必须的(Unnecessary semicolon [unnecessary-semicolon])。

image.png

2、verilog/systemverilog

在安装verilator,并把verilator/bin加到PATH之后,verilogsystemverilog语法也可以实时报错了,如下图:

image.png

image.png

3、tcl

tcl语言需要安装nagelfar(一个静态检查tcl语法的工具)。检查综合脚本的效果如下:

image.png

默认nagelfar只能识别tcl语言自带的命令,而无法识别每家eda自定义的命令。所以我们需要从icc2/innovus里自动提取tcl语法database。以innovus为例:

innovus> source syntaxbuild.tcl
innovus> buildFile syntaxdbinn.tcl

其中,syntaxbuild.tcl是nagelfar源码包(可以从本文末尾下载)自带的工具。

在进行语法检查时需要指定syntaxdb:

nagelfar -s syntaxdbinn.tcl innovus_flow.tcl

4、Perl

perl语言本身就支持语法检查,加-c option。所以安装了flycheck后,不需要额外工具就可以实时检查perl脚本的语法问题。

三、gvim里的类似插件

gvim里可以安装ale(https://github.com/dense-analysis/ale)来实现类似功能。

附相关工具的离线安装包下载:

 

感谢阅读,更多文章点击这里:【专栏:ExASIC】
最新20篇 开设专栏