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

Discussion in 'VHDL' started by BlackHelicopter, Feb 11, 2013.

  1. BlackHelicopter

    BlackHelicopter

    Joined:
    Jun 3, 2010
    Messages:
    14
    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: Feb 11, 2013
    BlackHelicopter, Feb 11, 2013
    #1
    1. Advertising

  2. BlackHelicopter

    BlackHelicopter

    Joined:
    Jun 3, 2010
    Messages:
    14
    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?
    BlackHelicopter, Feb 11, 2013
    #2
    1. Advertising

  3. BlackHelicopter

    BlackHelicopter

    Joined:
    Jun 3, 2010
    Messages:
    14
    Wow.. finally got the damn thing working. It only took an entire day. ::banghead:

    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/forums/t365482-xemacs-vhdl-mode-goto-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.:adore:

    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!
    BlackHelicopter, Feb 12, 2013
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Deniz Bahar
    Replies:
    2
    Views:
    451
    Andrey Tarasevich
    Mar 9, 2005
  2. omara007
    Replies:
    0
    Views:
    1,463
    omara007
    Jan 6, 2010
  3. Jeffrey Moss

    eruby mode emacs with mmm-mode

    Jeffrey Moss, Jul 6, 2005, in forum: Ruby
    Replies:
    1
    Views:
    138
    Alan Chen
    Jul 6, 2005
  4. PerlFAQ Server
    Replies:
    1
    Views:
    183
    Marc Girod
    Jan 8, 2011
  5. BlackHelicopter
    Replies:
    0
    Views:
    500
    BlackHelicopter
    Jan 31, 2013
Loading...

Share This Page