No Navigation from Project Make Window

If reporting a bug with the Zeus IDE please post the details here. Please do not post questions here.
Post Reply
Jack
Posts: 27
Joined: Tue Jul 09, 2019 2:06 pm

No Navigation from Project Make Window

Post by Jack »

Hi Jussi,
I recently upgraded from an old Zeus. In the old version, after a make, I used to be able to double click on warnings and Zeus would switch to the line and window of the warning. Warning were treated like errors. This no longer works. Here are 2 examples

EXAMPLE #1
Here's a warning line from the compiler
.\i_mail.cpp(1325) : warning C4552: '!=' : operator has no effect; expected operator with side-effect
Double clicking does nothing

A similar line that is an error works correctly on a double click
.\i_mail.cpp(1343) : error C2065: 'dfld' : undeclared identifier

EXAMPLE #2
This warning line was generated from adding #pragma message(WARNING_STRING "DEBUG-") to the code. WARNING_STRING is a macro
#define Stringize( L ) #L
#define MakeString( M, L ) M(L)
#define $Line MakeString( Stringize, __LINE__ )
#define WARNING_STRING "Warning: "__FILE__ "(" $Line ")"

The compiler outputs this in response
Warning: .\i_mail.cpp(1327)DEBUG-
Double clicking opens a new tool window call dir *.* /OGN. Previously, it would have taken me to line 1327 of i_mail.cpp
jussij
Site Admin
Posts: 2650
Joined: Fri Aug 13, 2004 5:10 pm

Re: No Navigation from Project Make Window

Post by jussij »

This Zeus behaviour is controlled by a set of default regular expressions that are built into Zeus and these default expressions try to understand compiler output.

As you can imagine, compiler build output has changed over the years and that means these default expressions have changed to suit.

What you are seeing is these new versions of those expressions no longer understand your compiler output.

To fix this you need to provide you own expressions and this can be done by editing the document type, selecting the compiler section and adding in new expressions.

In your case you would be editing the C/C++ document type and add in Compiler section adding in these new expressions:

Warnings Regexp

Code: Select all

(.*\.[a-z]+\([0-9]+\) : warn)|(Warning: .*\.[a-z]+\([0-9]+\))
Errors Regexp

Code: Select all

.*\.[a-z]+\([0-9]+\) : error
Line Number Regexp

Code: Select all

\(([0-9]+\)) :
NOTE: To test an expression just do a regular expression search inside the compiler output window using each expression in turn, and they should only locate the error, warning and line number information. You may need to tweak these expressions to suit.

Cheers Jussi
Jack
Posts: 27
Joined: Tue Jul 09, 2019 2:06 pm

Re: No Navigation from Project Make Window

Post by Jack »

Hi Jussi,

With a variation of your reply, I was able to get it working. I had to edit the default doc type, not the C++. I changed my macro that formats the warning to generate the exact same format as an error, except saying warning instead of error. Then I copied your error regular expression string to warning field, changing the word error in the regular expression string to warning. Now it works as expected. Thanks for the help and providing the regular expression strings. I have no experience with regular expressions and it would have taken much longer to figure that out.
jussij
Site Admin
Posts: 2650
Joined: Fri Aug 13, 2004 5:10 pm

Re: No Navigation from Project Make Window

Post by jussij »

I have no experience with regular expressions and it would have taken much longer to figure that out.
FWI the Zeus help file has some basic instructions on using regular expressions.

You can find these by opening the Zeus help file and then using the Index and searching for Regular Expressions.

While they might look a lot like Voodoo Magic, with some practice they are actually fairly easy to write and to understand.

And better still, they do come in handy every once in a while.

Cheers Jussi
Post Reply