Am Tue, 10 Apr 2012 08:46:05 +0200 schrieb Jacob Carlborg <d...@me.com>:
> Descent can handle: > > * Syntax highlighting > * Semantic highlighting > * Show lex, parse and semantic errors > * Compile time debugging > * Compile time view > * Formatting > * Show the actual type of an inferred or aliased type > * Smart autocompletion > * Many other things as well > > Note that in addition to (most of) the above, JDT can handle a lot more. > The compiler is the only tool that can properly handle this. It's also > the only sane approach, to have the compiler usable as a library. > > Just take a look how it used to be (and in some cases are) in the C/C++ > world before Clang and LLVM came a long: > > * You have the compiler > * An IDE with a "parser/compiler" > * The debugger with an (expression) "compiler" > > All these "compilers" are different and need to stay in synch. That's > not how you do good software development. You build a compiler library > that can be used in all the above tools. BTW, it's only the real > compiler that can handle everything properly. I think you are right. So clearly to make bindings possible this library would export a set of C functions. (I should think of export(C) as the "least common denominator" here.) DMD is no where close to look like a library and IDEs/debuggers need a different set of features. I think we can start a new thread to discuss this and maybe a Wiki page to collect ideas and brainstorm, unless there are better tools for that available. It would be nice if the developers of DDT, Descent, Mono-D and VisualD could share their insights there to get the requirements straight. -- Marco