Emacs VHDL перейти к ошибке - PullRequest
       14

Emacs VHDL перейти к ошибке

3 голосов
/ 02 февраля 2012

Я не могу заставить emacs перейти к следующей ошибке, предыдущей ошибке, первой ошибке в режиме vhdl.

Я использую FSF Emacs 23.3.1 с последним vhdl-mode 3.33.28 под Ubuntu. Я могу скомпилировать с Modelsim, и я получаю список ошибок компилятора:

-- Loading package standard
-- ...
-- Compiling entity foo
** Error: path/foo.vhd(22): (vcom-1136) Unknown identifier "std_olgic".

Я пытался адаптировать regexp ошибки (в настройке компилятора) к простейшему:

 \*\* Error: \([a-zA-Z\/_.]*\)(\([0-9]*\)).*

Когда я использую его таким образом, я вижу, что он правильно анализирует ошибки:

 sed "s/\*\* Error: \([a-zA-Z\/_.]*\)(\([0-9]*\)).*/\1 \2/"  ...
 path/foo.vhd 22

Я изменил «Индекс вложенного выражения файла» и «Индекс вспомогательного выражения строки» соответственно на 1 и 2, но все равно не могу перейти к ошибкам.

Ответы [ 3 ]

2 голосов
/ 03 сентября 2012

Следующая конфигурация устраняет эту ошибку для меня

'(vhdl-compile-use-local-error-regexp t)
(add-to-list 'compilation-error-regexp-alist '("** Error: \\(.+\\)(\\([0-9]*\\)):" 1 2))
1 голос
/ 02 февраля 2012

В регулярных выражениях Emacs вам нужно дважды экранировать парены в строке ( объяснение ).Попробуйте что-то вроде этого: \*\* Error: \\([a-zA-Z0-9/_.]+\\)(\\([0-9]+\\)).*

0 голосов
/ 12 февраля 2013

Извините, что поднял старую тему, но я только столкнулся с этой проблемой и заставил меня работать с ней.

Вот настройки, которые я использовал, чтобы заставить его работать:

Регулярное выражение:

\(ERROR\|WARNING\|\*\* Error\|\*\* Warning\)[^:]*:\( *[[0-9]+]\)? \(.+\)(\([0-9]+\)): 

Индекс подэкспорта файла: 3

Индекс подвыражения строки: 4

Регулярное выражение локальной ошибки компиляции Vhdl (в группе Vhdl Compile): Выкл.

А вот мой рассказ об этом: http://www.velocityreviews.com/forums/t957495-emacs-vhdl-mode-next-error-previous-error-and-first-error-are-not-working.html

: P

Надеюсь, это поможет!

...