Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > VHDL > Emacs VHDL-mode Next-Error, Previous-Error, and First-Error are not working...?

Reply
Thread Tools

Emacs VHDL-mode Next-Error, Previous-Error, and First-Error are not working...?

 
 
BlackHelicopter BlackHelicopter is offline
Junior Member
Join Date: Jun 2010
Posts: 11
 
      02-11-2013
Hi guys.

I'm currently using EmacsW32 23.1 and vhdl-mode 3.34.2 and am encountering the following issue.

I am able to compile my design using altera-modelsim within emacs however when I try to click on an error from the compilation results in emacs, it doesn't take me to the line in my vhdl code?

I almost feel like its ignoring the Regexp information in vhdl-mode. And the funny part is when I add the follow to my .emacs file:
'(vhdl-compile-use-local-error-regexp t)
(add-to-list 'compilation-error-regexp-alist '("** Error: \\(.+\\)(\\([0-9]*\\)):" 1 2))

the error highlights just fine and I can go to the line number.

There are a number of questions that pop into my head like: could it be due to Windows, something with Regexp, a configuration or makefile issue? I can't figure this out.
 

Last edited by BlackHelicopter; 02-11-2013 at 04:49 AM..
Reply With Quote
 
 
 
 
BlackHelicopter BlackHelicopter is offline
Junior Member
Join Date: Jun 2010
Posts: 11
 
      02-11-2013
I've now tried this on a couple different versions of emacs and still get the same results.

Does anyone actually have this functionality working? If so, would you mind telling me what versions of emacs and vhdl-mode you are using?
 
Reply With Quote
 
 
 
 
BlackHelicopter BlackHelicopter is offline
Junior Member
Join Date: Jun 2010
Posts: 11
 
      02-12-2013
Wow.. finally got the damn thing working. It only took an entire day. :

It appears there's a bug/typo in the ModelSim Compile Regexp in vhdl-mode v3.34.2 (and previous versions).

Here's the default:
\(ERROR\|WARNING\|\*\* Error\|\*\* Warning\)[^:]*:\( *[[0-9]+]\)? \([^ \t\n]+\)(\([0-9]+\)):
and from that..
File subexp index: 3 = \([^ \t\n]+\)
Line subexp index: 4 = \([0-9]+\)

The File subexp part appears incorrect so I changed it to \(.+\) which I found in this thread: http://www.velocityreviews.com/forum...oto-error.html

So I go on to hit 'set for current session'.. oh great it works! Then I hit 'save for future sessions' and re-open emacs to double-check that it worked, and.. nothing?!

Long story short, it appears there's some kind of intermittent issue where 'set for current session' makes it work (sometimes) and 'save for future sessions' doesn't work at all, for me.

I then find the 'Vhdl Compile' group shortcut at the bottom of the Customize Options page and I run across "Vhdl Compile Use Local Error Regexp", I toggle the setting to 'Off'. And now it works.. perfect.

So, to recap, here are the settings I used to get it working:
Regexp: \(ERROR\|WARNING\|\*\* Error\|\*\* Warning\)[^:]*:\( *[[0-9]+]\)? \(.+\)(\([0-9]+\)):
File subexp index: 3
Line subexp index: 4
Vhdl Compile Use Local Error Regexp (under Vhdl Compile group): Off

Enjoy!
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Emacs, VHDL Mode - Upper Case Enum Values & Upper Case Constants (not working)? BlackHelicopter VHDL 0 01-31-2013 04:12 AM
Python mode: make emacs use existing *Python* frame, and not opena new one Lars Bungum Python 0 06-16-2011 02:57 PM
Pyflakes and IPython does not work for Emacs on Windows? Dsrt Egle Python 5 09-30-2010 09:06 PM
GNU Emacs + Ruby (not RoR) arcadiorubiogarcia@gmail.com Ruby 6 02-22-2008 09:04 AM
Trouble running Emacs-EPL (to run perl in emacs). Adam Funk Perl Misc 4 01-29-2007 10:42 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57