nielsie95
2008-08-23 06:58:45

Hey,
Quite some time ago I started to work on a function parser (you might have seen the list(s) of functions from SRL). At that time it could only parse functions. Now, Azula can parse Includes, vars, constants, types, functions and procedures.
It isn't finished and I do not have plans to finish it in this state. I am planning to start all over again. Partly to clean up the code and partly to - this time - use legal components only. Even though not everything is finished, a lot of it actually works. Including a clipboard viewer, code navigating, calltips, codefolding, themes and regex search.
Things that are not finished, but have a base are: File Searching, New File, function list saving and class completion.
The feature I am the most proud of (and probably the reason for this post) is code navigating. It is a feature from Delphi which I tried to copy. You activate it by holding down the control button and hovering over a word. You should see a blue line under the word. If you see a blue line, click the word and, if it works, you shall be taken to the place where this word is declared.

Another few things:
- Double click a word and all the same words will be hilighted.
- File drag+drop works.
- Export to HTML works.
- Code navigating and CallTips should work in with statements.
- Most settings are saved in the .ini file. You can there change the theme (colors).
- Regex syntax is the same as the Perl regex.
- Function Description Box should hilight the current Parameter in the calltip.
- I have included a dump of a non-modified Pascal Engine (similar to the one SCAR uses), so class function parameters will also work (TBitmap.Canvas.FillRect()).
If your SCAR Includes folder is somewhere else than C:\Program Files\SCAR 3.14\includes\ or C:\Program Files\SCAR 3.15\includes\ you should open up your .ini, go to [Misc] > IncludeDirs and enter your directory there (make sure it ends with a \).
You can give a procedure a description (visible in Description Box), like this:
program New;
var
i: Integer;
procedure Test(a: Integer);
{description:
This is a test function to demonstrate the description tags.
/description}
var
i: Integer;
begin
Inc(i);
end;
begin
Test(i);
end.
I think this is all. Please tell me how well it works/ what to improve / what to add. I can send code at request. I will not send everything (at once), so please tell me what you want to see.
Cheers,
Nielsie95