Qt Creator with D

Matthias Pleh gonzo at web.at
Wed Oct 13 13:23:15 PDT 2010


Am 13.10.2010 13:16, schrieb Denis Koroskin:
> On Wed, 13 Oct 2010 14:32:28 +0400, Anders F Björklund <afb at algonet.se>
> wrote:
>
>>
>> Adding D support to the cross-platform C++ IDE for Qt, "Qt Creator":
>>
>> http://qt.nokia.com/products/developer-tools
>> http://qt.nokia.com/products/library
>>
>>
>> It uses the "CPlusPlus" Open Source front-end for C++ (license MIT),
>> enhanced for use in Qt Creator, to do C/C++ completion / highlighting.
>> For QML/JavaScript parsing there is a custom qscript parser included.
>> Like Qt SDK all is available under both Qt Commercial License and LGPL.
>>
>> For doing the actual building, it calls qmake to generate Makefiles.
>> (generic support for CMake and make is also available, if needed...)
>> For debugging it calls out to gdb, there is also version control and
>> interface/resource handlers - all integrated in the form of plugins.
>>
>>
>> It does require C++, and it does require Make. It's no D-only solution.
>>
>> Makefile snippet: (where "dmd" could be "gdmd" or "ldmd" too eventually)
>> CC = gcc
>> CXX = g++
>> +DMD = dmd
>>
>> CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
>> CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
>> +DFLAGS =
>>
>> .cpp.o:
>> $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
>>
>> .c.o:
>> $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
>>
>> +.d.o:
>> + $(DMD) -c $(DFLAGS) -of"$@" "$<"
>> +
>>
>>
>> So the first thing needed was to patch in D support to qmake/qtcreator,
>> and the second thing is writing the actual new "deditor" editor plugin.
>> The basic "texteditor" does most of the editing, so the two main needed
>> additions are code completion and syntax highlighting (i.e. parsing D).
>>
>> I just used "dmd -X" and QJson for analyzing D, it would also need a
>> http://doc.trolltech.com/stable/qsyntaxhighlighter.html implemented.
>> Building requires Qt 4.5 or later, but Qt Creator can build itself.
>> Screenshot at: http://www.algonet.se/~afb/d/qt-creator-d.png (1.3.1)
>>
>>
>> http://gitorious.org/qt-creator
>> http://gitorious.org/qjson
>>
>> If someone is interested in continuing this, then please contact me...
>>
>
> I'm currently working on making ddmd usable in IDE (fixing various
> memory leaks, allowing many instances co-exist in memory etc) so that
> same compiler instance could be used for both compilation (which is now
> even faster because most of the stuff is still in memory) and
> auto-completion. Most of the work I did so far, I'd call it an IDE
> backend because it's GUI agnostic.
>
> I will hopefully turn it into a full-featured IDE, but I didn't decide
> what should it be based on (if anything), and Qt Creator is certainly an
> option.
>
> I'm not familiar with Qt Creator building process, but I hope it can be
> managed manually and doesn't rely on (C/Q)makefiles only because ddmd
> builds stuff itself (well, the whole "building" is actually writing out
> stuff which is already pre-built in memory in most cases). All it needs
> is a set of source files in text form, and a notification once any of
> those have changed.

Qt-Creator's main application is very small and nearly everything is 
implemented through plugins. So customization or adding new feature 
isn't that hard.
Is your 'IDE-backend' already working? Implementing this to Qt-Creator 
would be really cool.  :)

greets
Matthias


More information about the Digitalmars-d-ide mailing list