物流网站制作目的,企业营销推广策划,犬舍网站怎么做,零基础学计算机难吗【痛点】   传统Verilog开发中,工程师不断编码→仿真→查错的循环。本文整合AST解析与Vim编辑器,在编码阶段即实现:   ✔️ 自动标记逻辑问题   ✔️ AI+ 发现涉及多模块逻辑错误  
✔️ 强制代码风格 
【解决方案】   1️⃣ 基于AST的精准模式匹配   - 深度集成…【痛点】  传统Verilog开发中,工程师不断"编码→仿真→查错"的循环。本文整合AST解析与Vim编辑器,在编码阶段即实现:  ✔️ 自动标记逻辑问题 ✔️ AI+ 发现涉及多模块逻辑错误 
✔️ 强制代码风格 
【解决方案】  1️⃣ 基于AST的精准模式匹配  - 深度集成ast-grep与coc.nvim  - 可视化错误标注 
2️⃣ 开箱即用的开发环境  - my-language.so高性能解析器  - 支持Verilog/SystemVerilog 
【基础环境】  
1️⃣ vim + coc.nvim - 安装 
git clone https://github.com/neoclide/coc.nvim.git  ~/.vim/pack/others/start/ast-grep - ~/.vimrc 配置 :filetype on 
" https://raw.githubusercontent.com/neoclide/coc.nvim/master/doc/coc-example-config.vim“可能需要 Vim(不是 Neovim),因为 coc.nvim 通过计数计算字节偏移量
” utf-8 字节序列
set encoding=utf-8
“某些服务器的备份文件存在问题,请参阅#649
set nobackup
set nowritebackup“更新时间过长(默认为 4000 毫秒 = 4 秒)会导致明显的
”延迟和糟糕的用户体验
set updatetime=300“始终显示符号列,否则每次都会移动文本
”诊断出现/得到解决
set signcolumn=yes 
2️⃣ ast-grep - 安装 
pip install ast-grep-clisg --version 查看是否成功 
【订阅即得】  👉 文末附my-language.so下载链接(百度网盘)  
本文基于Editor Integration | ast-grep,以及coc.nvim,并基于以下verilog parser(my-language.so,文末下载链接), 可以在vim中实时显示自定义的verilog 匹配。效果图如下: 这个标记来自一个id为‘b‘的rule。它寻找always块。 rule在rules/x.yml中定义。 
当然可以定义更复杂的规则。 
除了rules,再设置sgconfig.yml以支持自定义的verilog语言。其中就要用到这个my-language.so库,库已经编好。开箱即用。 coc.nvim的设定中,也就是coc-settings.json中应该把ast-grep设置为lsp。这样vim内就可以实时的检查ast-grep定义的规则! 需要的配置如下: 大模型火了之后,有非常多的LLM 代码生成,编辑,和普通对话的开源vim/neovim插件,下面列了一下github上几乎所有的了。 
但是,并不是各个都好用。其实star多的就那么几个,为什么呢, 
从aider, cursor这些火的软件大概可以看出端倪。这两个软件都利用了AST来indexing或者map codebase。 
这也是ast重要性的体现。 
下面是aider的支持的语言列表,对verilog默认是不支持的。。 
Supported languages | aider 如何添加对其他语言的支持 Aider 应该可以很好地支持其他语言,即使那些没有 repo map 或 linter 支持的语言也是如此。在假设它需要更好地支持您的语言之前,您应该尝试使用 aider 进行编码。 
也就是说,如果 aider 已经支持对您的语言进行 linting,那么应该可以添加 repo map 支持。要构建 repo map,aider 需要给定语言的 tree-sitter 语法中的 tags.scm 文件。如果您可以在 GitHub 问题中找到并共享该文件,那么可能可以添加 repo map 支持。