【问题标题】:emacs verilog-mode local variables not parsedemacs verilog-mode 局部变量未解析
【发布时间】:2022-01-06 07:13:32
【问题描述】:

我正在尝试在 SystemVerilog 文件本身中设置一些 Verilog 模式的局部变量,例如:

// Local Variables:
// verilog-library-flags:("-y ../../../ip_lib/")
// verilog-typedef-regexp: ".*_t$"
// verilog-auto-reg-input-assigned-ignore-regexp: ".*")
// End:

然后我在命令行中调用emacs来生成代码:

emacs --batch ./test.sv    -f verilog-batch-auto

但这告诉我它找不到应该在 ../../../ip_lib/ 中的模块

但是如果我使用:

emacs -q   --eval='(progn (setq-default verilog-library-flags "-y ../../../ip_lib") (setq-default verilog-typedef-regexp ".*_t$"))' --batch ./test.sv    -f verilog-batch-auto

它有效。什么问题?

【问题讨论】:

  • 您使用的是哪个版本的 Emacs?

标签: variables emacs verilog


【解决方案1】:

我不使用verilog,但是看了你的例子我可以看到

(setq-default verilog-library-flags "-y ../../../ip_lib")

// verilog-library-flags:("-y ../../../ip_lib/")

正在设置不同的类型。前者是一个字符串值,而后者是一个list值(包含单个项目,是一个字符串)。

所以这大概就是问题所在。

【讨论】:

  • 我试过 //verilog-library-flags:"-y ../../../ip_lib/" 但它也没有用。是你建议的吗?
  • 看起来verilog-library-flags 应该是一个列表,所以非列表值似乎有效,但我没有深入研究。
  • emacs --batch ./test.sv --eval "(message \"%S\" (list verilog-library-flags verilog-typedef-regexp verilog-auto-reg-input-assigned-ignore-regexp))" 输出什么?
  • 恭喜@phils - 你在 Emacs 中占据了榜首。
  • 干杯,@TreyJackson。我花了几分钟才弄清楚这意味着什么,但我现在明白了。我没有意识到这是迫在眉睫。只用了 12 年才赶上你 :) 我记得当我开始使用该网站时,你对 Emacs 的所有问题都很关心,你的回答帮助我学习并鼓舞人心,所以感谢你出色的社区工作。为我们俩干杯,我猜!
猜你喜欢
  • 1970-01-01
  • 2021-05-12
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
相关资源
最近更新 更多