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