Working on the next EdiSyn Version (0.50). The main new feature will be userdefined programs with capturing and parsing the output that you can jump into the source to the error/warning.
The mainproblems are the capturing of hte output, because there is no way to route the Output of an AROS program directly into memory. The only way is to let the Output write to a temporary file in RAM and read this at the same time. It works very nice, just if something happen the files stays in RAM: and uses up some memory.
The other Problem is again a very bad Amiga-style problem. When started from Workbench/Wanderer its nearly impossible to get the shell path, so the compiler is not able to find the linker and so on.
There are several ways to obtain the path, but seems als does not work on AROS. For example:
- WorkbenchControl(nil, [WBCTRLA_DuplicateSearchPath, @path, TAG_DONE]); does simply nothing, the Path stays on nil.
- PProcess(WBStartup^.sm_Message.mn_ReplyPort^.mp_SigTask)^.pr_CLI^.cli_CommandDir the problem is that the pr_CLI is nil, so not set.
- cli := AllocDosObject(DOS_CLI, nil); results in a CLI but the path is also empty there.
The only way I found was to trace through all Processes and search for the main process (e.g. Wanderer, Shell, DirectoryOpus, such things, rather unsafe way to do it… but better than nothing).
The Output from GCC and Freepascal is parsed now so you get colored output and click to jump to the related position.
EdiSyn with Freepascal Output (compiles EdiSyn):