MATLAB Answers

Does checkcode return the status of the "Message indicator box", i.e. red/orange/green ?

3 views (last 30 days)
I search for an automatic way to find out if a file has a syntax error. That is, to find the same piece of information that the Code Analyzer indicates with red in the "Message indicator box" of the editor.
I took for granted that checkcode provides the information corresponding to the colors of the "Message indicator box".
Doc (R2012a) says:
[...] checkcode('filename') displays messages, sometimes referred to as
Code Analyzer messages, [...]
thus, I tried
info = checkcode( filespec );
and
info = checkcode( filespec, '-id' );
However, I cannot find the piece of information I need. isempty(info) equal to true indicates green, but, I cannot figure out how to find an indicator for red. (Not empty indicates red or orange.)
One way would be to have a list of the ID, which stands for errors.
  5 Comments

Sign in to comment.

Accepted Answer

Yair Altman
Yair Altman on 1 Dec 2012
Edited: Yair Altman on 8 Dec 2012
I must admit that I have it on my articles TODO list for quite some time...
Here's something to get you started: http://www.mathworks.com/matlabcentral/newsreader/view_thread/255839#755939 (continue reading down the thread)
Related: http://www.mathworks.com/matlabcentral/newsreader/view_thread/145245 (oddly enough, you were part of that thread, Per...)
In summary, you could simply do:
errMsgs = mlint('-m2',srcFileNames); % m2 = errors only
m1Msgs = mlint('-m1',srcFileNames); % m1 = errors and severe warnings only
allMsgs = mlint('-m0',srcFileNames); % m0 = all errors and warnings
Note that mlint returns the data in struct format, while mlintmex returns a string that you must parse.
Yair Altman

More Answers (1)

Sean de Wolski
Sean de Wolski on 30 Nov 2012
It looks like you could use try/catch and do an isempty check on the ME.stack:
%checkcodetest.m
X = [pi
for ii = 1:3
disp('hi')
end
And:
try;
checkcodetest;
catch ME;
end
Now to test:
isempty(ME.stack)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!