Development environment (WAS: generative programming and debugging)

Marco Leise Marco.Leise at gmx.de
Wed Oct 19 12:35:00 PDT 2011


Am 19.10.2011, 13:40 Uhr, schrieb Gor Gyolchanyan  
<gor.f.gyolchanyan at gmail.com>:

> I've yet to see a single worthwhile IDE for D.
> I think it would be a great idea to have a standard reference IDE
> (just as DMD is the standard reference compiler).
> These things would be so useful:
> Inline compile-time ddoc and mixin views would make development
> process so much easier.
> Inline compile-time non-ctfe-able code highliting.
> Automatic import detector, based on visible import paths.

Seems like I'm not the only one who thought of an IDE recently that is  
fast and can give hints on functions. Except I thought of highlighting  
pureness, safeness and the like by changing the background color slightly.
The next thing is all the features of Eclipse that have to do with the  
code you write or running / debugging. Like regex search and replace,  
finding references to methods/fields, refactoring, code templates, class  
outlines, type search, jump to declaration etc.
A difficulty for IDEs seems to be the complexity of D's CTFE and return  
type inference. DDT for example cannot give auto-completion hints on auto  
variables. That needs to be addressed.
I'd also like very much a way to set up multiple targets for a project:
- typical debug build
- typical release build
- unit test build
- external launcher (i.e. dump MySQL table structure and generate D import)
- run another program that uses my program (through IPC, as a debuggee)
- run a DLL host using my library (also debuggable)
- cross-compiling (currently x86-32/-64 for DMD)

Especially a D frontend written in D would be a good start for a  
cross-platform IDE and other derived work. Ideally I think it should not  
be an external program or parse everything in one step. It could be a lot  
faster if it worked closely together with the editor itself and only  
updated the syntax tree where the user edited code. Changes in  
templates/functions/classes have to be propagated to the users of that  
code.


More information about the Digitalmars-d mailing list