digitalmars.D.ide - Qt Creator with D
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= (37/37) Oct 13 2010 Adding D support to the cross-platform C++ IDE for Qt, "Qt Creator":
-
Denis Koroskin
(34/71)
Oct 13 2010
On Wed, 13 Oct 2010 14:32:28 +0400, Anders F Bj=C3=B6rklund
- =?UTF-8?B?QW5kZXJzIEYgQmrDtnJrbHVuZA==?= (12/30) Oct 13 2010 ...
- Matthias Pleh (7/37) Oct 13 2010 The D-projectmanager, I was working on, is derived on the
- Gour D. (27/28) Oct 14 2010 Matthias> The D-projectmanager, I was working on, is derived on the=20
- Matthias Pleh (14/39) Oct 14 2010 That also means, you will need a Python installation, but beside that it...
- Gour D. (27/28) Oct 15 2010 Matthias> If you work windows-only I would suggest VisualD. It's
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= (34/55) Oct 15 2010 Code::Blocks support is working for the old D language,
- Gour D. (42/43) Oct 15 2010 Anders> Code::Blocks support is working for the old D language,
- =?UTF-8?B?QW5kZXJzIEYgQmrDtnJrbHVuZA==?= (11/32) Oct 15 2010 Wouldn't surprise me. The wxWidgets support is better, but that
- Gour D. (25/26) Oct 15 2010 Anders> Wouldn't surprise me. The wxWidgets support is better, but that
- =?UTF-8?B?QW5kZXJzIEYgQmrDtnJrbHVuZA==?= (8/23) Oct 17 2010 Will have to update to Qt 4.7 and Qt Creator 2.0 then...
- Gour D. (12/13) Oct 17 2010 Anders> Does Qt Creator support Waf, or does that need patching ?
- Matthias Pleh (8/81) Oct 13 2010 Qt-Creator's main application is very small and nearly everything is
- Matthias Pleh (10/47) Oct 13 2010 Syntaxhighlighting and code-folding is already working through the
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= (14/29) Oct 13 2010 Cool, don't think that was available in Qt 4.6 and Qt Creator 1.3...
- Matthias Pleh (8/37) Oct 13 2010 the generic-highlighter is based on kate an realy powerful. The
- Lutger Blijdestijn (4/4) Nov 20 2010 Has anything come out of this? If not, is it possible that you commit wh...
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...
Oct 13 2010
On Wed, 13 Oct 2010 14:32:28 +0400, Anders F Bj=C3=B6rklund <afb 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 eventuall=y)CC =3D gcc CXX =3D g++ +DMD =3D dmd CFLAGS =3D -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) CXXFLAGS =3D -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) +DFLAGS =3D .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 neede=dadditions 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 memor= y = 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 G= UI = 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.
Oct 13 2010
Denis Koroskin wrote: ......It does require C++, and it does require Make. It's no D-only solution.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.It relies on Makefiles, and is in C++ so I'm not sure if ddmd is needed. The dmdfe could be used to add a D2 parser I suppose, to avoid the JSON. But that was the big part left to implement to make it par with the C++. It *is* possible to use it as a editor only for "other build systems": http://doc.qt.nokia.com/qtcreator-1.3/creator-generic-projects.html http://doc.qt.nokia.com/qtcreator-2.0/creator-project-generic.html Though that (avoiding make) only changes the building, not the editing. But it's something to build on, if pushing QtD as the new official GUI ? --anders
Oct 13 2010
Am 13.10.2010 21:56, schrieb Anders F Björklund:Denis Koroskin wrote: ...The D-projectmanager, I was working on, is derived on the generic-projectmangaer. This way we could also use another buildsystem or a compiler direct. But it should be done in a way, to support all D-compilers (dmd,gdc,ldc,...) I've heard, someone is working on a cmakeD2, which could be easily added to Qt-Creator, but there isn't a releasy yet....It does require C++, and it does require Make. It's no D-only solution.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.It relies on Makefiles, and is in C++ so I'm not sure if ddmd is needed. The dmdfe could be used to add a D2 parser I suppose, to avoid the JSON. But that was the big part left to implement to make it par with the C++. It *is* possible to use it as a editor only for "other build systems": http://doc.qt.nokia.com/qtcreator-1.3/creator-generic-projects.html http://doc.qt.nokia.com/qtcreator-2.0/creator-project-generic.htmlThough that (avoiding make) only changes the building, not the editing. But it's something to build on, if pushing QtD as the new official GUI ? --anders
Oct 13 2010
On Wed, 13 Oct 2010 22:32:15 +0200Matthias> The D-projectmanager, I was working on, is derived on the=20 Matthias> generic-projectmangaer. This way we could also use another Matthias> buildsystem or a compiler direct. But it should be done in a Matthias> way, to support all D-compilers (dmd,gdc,ldc,...) I was thinking whether to use CMake or Waf as build system for D and decided to use the latter (http://code.google.com/p/waf/) which already has built-in support for D and it is very extensible - everything is just Python.=20 Matthias> I've heard, someone is working on a cmakeD2, which could be Matthias> easily added to Qt-Creator, but there isn't a releasy yet. So, I believe that Waf can serve very nicely. Considering that I would use Waf with CodeBlocks as well, now I'm curious what would be the best option as D IDE: a) adding support to CodeBlocks b) patching QtCreator or c) D.Dev (http://d-dev-ide.blogspot.com/) Matthias> > But it's something to build on, if pushing QtD as the new Matthias> > official GUI ? I'd say that QtD looks as the best/most_complete GUI option for D. Considering that, what would you recommend to base D-IDE on: a), b) or c) ? Sincerely, Gour --=20 Gour | Hlapicina, Croatia | GPG key: CDBF17CA ----------------------------------------------------------------"Matthias" =3D=3D Matthias Pleh <gonzo web.at> wrote:
Oct 14 2010
Am 14.10.2010 11:59, schrieb Gour D.:On Wed, 13 Oct 2010 22:32:15 +0200That also means, you will need a Python installation, but beside that it would be a considerable option.Matthias> The D-projectmanager, I was working on, is derived on the Matthias> generic-projectmangaer. This way we could also use another Matthias> buildsystem or a compiler direct. But it should be done in a Matthias> way, to support all D-compilers (dmd,gdc,ldc,...) I was thinking whether to use CMake or Waf as build system for D and decided to use the latter (http://code.google.com/p/waf/) which already has built-in support for D and it is very extensible - everything is just Python."Matthias" == Matthias Pleh<gonzo web.at> wrote:Matthias> I've heard, someone is working on a cmakeD2, which could be Matthias> easily added to Qt-Creator, but there isn't a releasy yet. So, I believe that Waf can serve very nicely. Considering that I would use Waf with CodeBlocks as well, now I'm curious what would be the best option as D IDE: a) adding support to CodeBlocks b) patching QtCreator or c) D.Dev (http://d-dev-ide.blogspot.com/) Matthias> > But it's something to build on, if pushing QtD as the new Matthias> > official GUI ? I'd say that QtD looks as the best/most_complete GUI option for D. Considering that, what would you recommend to base D-IDE on: a), b) or c) ?If you work windows-only I would suggest VisualD. It's working great, good quality and is frequently updated. If you itend to work linux or platform-independent I would suggest: - for the short term: -> CodeBlocks - already working out of the box with several D compiler - for the middle term: -> adding support to QtCreator -> it's really good piece of Code and through the plugin sytem very flexible. - for the long term: -> we will need an IDE written in D, but first we need a good working D GUI library As conclusion I would suggest b) QtCreator greets MatthiasSincerely, Gour
Oct 14 2010
On Thu, 14 Oct 2010 22:49:17 +0200Matthias> If you work windows-only I would suggest VisualD. It's Matthias> working great, good quality and is frequently updated. Although I plan to write multi-platform app, my environment is Linux-only, so VS is out. Matthias> - for the short term: -> CodeBlocks - already working out of Matthias> the box with several D compiler I'd prefer to start with some longer-term solution 'cause at the moment I'm still waiting for my TDPL copy to arrive and I'll have to spend some time learning D, but it would be nice to become familiar with the tool we'll use later. Matthias> - for the middle term: -> adding support to QtCreator -> it's Matthias> really good piece of Code and through the plugin sytem very Matthias> flexible. Do you consider that adding support for QtCreator may yield a better D-environment than adding (more) support to Code:Blocks? Matthias> - for the long term: -> we will need an IDE written in D, but Matthias> first we need a good working D GUI library I agree on that, but this it far in the future. D-dev is in the beginning and, so far, Win only. Matthias> As conclusion I would suggest b) QtCreator Is there ANY specific D-support in QtCreator at the moment? Sincerely, Gour --=20 Gour | Hlapicina, Croatia | GPG key: CDBF17CA ----------------------------------------------------------------"Matthias" =3D=3D Matthias Pleh <gonzo web.at> wrote:
Oct 15 2010
Gour D. wrote:Matthias> - for the short term: -> CodeBlocks - already working out of Matthias> the box with several D compiler I'd prefer to start with some longer-term solution 'cause at the moment I'm still waiting for my TDPL copy to arrive and I'll have to spend some time learning D, but it would be nice to become familiar with the tool we'll use later.Code::Blocks support is working for the old D language, but that is not what is in TDPL book - as it's all D2. There's support for D2 in wxD CVS and in Code::Blocks sandbox, but as there is no upstream support for them - it makes more "sense" for Code::Blocks to support the Free Software GDC compiler and the released wxWidgets. Or at least it did when D 1.0 was released back in 2007. If starting over for D 2.0 in 2011, QtD might be better ? http://wxd.sourceforge.net/ http://gdcwin.sourceforge.net/ http://gdcgnu.sourceforge.net/ http://gdcmac.sourceforge.net/Matthias> - for the middle term: -> adding support to QtCreator -> it's Matthias> really good piece of Code and through the plugin sytem very Matthias> flexible. Do you consider that adding support for QtCreator may yield a better D-environment than adding (more) support to Code:Blocks?It should make for a better *QtD* environment, at least... Since it has integration with Qt Assistant and Qt Designer. I don't think using a C++ library and C++ editor is a problem, any more than it's a problem with using a C++ compiler for D ?Matthias> - for the long term: -> we will need an IDE written in D, but Matthias> first we need a good working D GUI library I agree on that, but this it far in the future. D-dev is in the beginning and, so far, Win only."D.dev" is not open source, either*. There's also "BDE". *http://www.digitalmars.com/d/archives/digitalmars/D/announce/D.dev_development_status_update_19051.html http://d-dev-ide.blogspot.com/ http://bitprox.com/en/products_bde_index.htmlMatthias> As conclusion I would suggest b) QtCreator Is there ANY specific D-support in QtCreator at the moment?I said I would push those patches, but not upstream no. To http://gitorious.org/~afb (qmake and qtcreator hacks). Just having some minor "technical difficulties" doing so, I had used my regular Qt 4.6 / Qt Creator 1.3 installation. The patches are trivial, adding some new Makefile commands to qmake for D files and adding D files to "Sources" view. Real work is making the syntax highlighter work for D code, either by reusing an existing component or writing a new one, and make the editor work for D code as good as for C++ now: http://doc.qt.nokia.com/qtcreator-2.0/creator-editor-using.html All of that is still left as an exercise for the D2 reader. I am *not* going to be working on it, as I'm not using it... --anders
Oct 15 2010
On Fri, 15 Oct 2010 13:10:50 +0200Anders> Code::Blocks support is working for the old D language, Anders> but that is not what is in TDPL book - as it's all D2. Ahh...thanks. Anders> There's support for D2 in wxD CVS and in Code::Blocks Anders> sandbox, but as there is no upstream support for them - Anders> it makes more "sense" for Code::Blocks to support the Anders> Free Software GDC compiler and the released wxWidgets. Well, we are looking for IDE with good Qt support. Anders> Or at least it did when D 1.0 was released back in 2007. Anders> If starting over for D 2.0 in 2011, QtD might be better ? I'm still doubtful that QtD might get decent support in C:B. Even Qt C++ support is lacking, afaict. Anders> It should make for a better *QtD* environment, at least... Anders> Since it has integration with Qt Assistant and Qt Designer. Right...and we want that. Anders> I don't think using a C++ library and C++ editor is a problem, Anders> any more than it's a problem with using a C++ compiler for D ? Today one guy from Qt (andre) showed me about out-of-the-box 'support' for D: http://img259.imageshack.us/img259/9484/86764766.png I've also found the following blog post: http://labs.qt.nokia.com/2010/09/16/generic-highlighter-in-qt-creator/ It looks as inspiring start for (Qt)D programming. Anders> "D.dev" is not open source, either*.=20 Ohh, another reason not to count on it. Anders> I said I would push those patches, but not upstream no. You think they wouldn't be accepted? Anders> To http://gitorious.org/~afb (qmake and qtcreator hacks). OK. Anders> Real work is making the syntax highlighter work for D code, Anders> either by reusing an existing component or writing a new one, Anders> and make the editor work for D code as good as for C++ now: See then the above link about syntax high. via Kate's syntax files in 2.1 trunk of QtC. Anders> All of that is still left as an exercise for the D2 reader. Anders> I am *not* going to be working on it, as I'm not using it... You're not using any GUI with D or using Codeblocks or ..? Sincerely, Gour --=20 Gour | Hlapicina, Croatia | GPG key: CDBF17CA ----------------------------------------------------------------"Anders" =3D=3D Anders F Bj=C3=B6rklund <afb algonet.se> wrote:
Oct 15 2010
Gour D. wrote:Anders> Or at least it did when D 1.0 was released back in 2007. Anders> If starting over for D 2.0 in 2011, QtD might be better ? I'm still doubtful that QtD might get decent support in C:B. Even Qt C++ support is lacking, afaict.Wouldn't surprise me. The wxWidgets support is better, but that uses GTK+ not Qt. (at least until wxQt has been released, that is)Today one guy from Qt (andre) showed me about out-of-the-box 'support' for D: http://img259.imageshack.us/img259/9484/86764766.png I've also found the following blog post: http://labs.qt.nokia.com/2010/09/16/generic-highlighter-in-qt-creator/ It looks as inspiring start for (Qt)D programming.Right, that would be just such an implementation of QSyntaxHighlighter.Anders> I said I would push those patches, but not upstream no. You think they wouldn't be accepted?You asked what is in Qt Creator at the moment, and I don't think that anything specific to D had been added so far (except the "generic") ?Anders> All of that is still left as an exercise for the D2 reader. Anders> I am *not* going to be working on it, as I'm not using it... You're not using any GUI with D or using Codeblocks or ..?I'm not using D... Might try again, once D2 is available for 64-bit. I just wanted something that was better than C and faster than Java, not something that was better than C++. So I'll go with Objective-C. Most of the time it will be Python, though. With some bits of C added. --anders
Oct 15 2010
On Fri, 15 Oct 2010 16:44:49 +0200Anders> Wouldn't surprise me. The wxWidgets support is better, but that Anders> uses GTK+ not Qt. (at least until wxQt has been released, that Anders> is) Yeah...it seems that wxQt is advancing nicely. Anders> You asked what is in Qt Creator at the moment, and I don't Anders> think that anything specific to D had been added so far (except Anders> the "generic") ? Correct...and 'generic' provides something...It should be possible to use 'generic' build (with Waf). Anders> I'm not using D... Might try again, once D2 is available for Anders> 64-bit. Hopefully 64bit D2 will arrive soon. I'm in the same boat. ;) Anders> I just wanted something that was better than C and faster than Anders> Java, not something that was better than C++. So I'll go with Anders> Objective-C. Isn't Objective-C mostly just Apple & Mac OS? Anders> Most of the time it will be Python, though. With some bits of C Anders> added. I'll use Python to tweak my Waf builds. :-) Sincerely, Gour --=20 Gour | Hlapicina, Croatia | GPG key: CDBF17CA ----------------------------------------------------------------"Anders" =3D=3D Anders F Bj=C3=B6rklund <afb algonet.se> wrote:
Oct 15 2010
Gour D. wrote:Anders> You asked what is in Qt Creator at the moment, and I don't Anders> think that anything specific to D had been added so far (except Anders> the "generic") ? Correct...and 'generic' provides something...It should be possible to use 'generic' build (with Waf).Will have to update to Qt 4.7 and Qt Creator 2.0 then... Does Qt Creator support Waf, or does that need patching ?Anders> I just wanted something that was better than C and faster than Anders> Java, not something that was better than C++. So I'll go with Anders> Objective-C. Isn't Objective-C mostly just Apple & Mac OS?Right. Theoretically there is GCC and GNUstep too, but. When doing something portable, it's all in C/C++ still...Anders> Most of the time it will be Python, though. With some bits of C Anders> added. I'll use Python to tweak my Waf builds. :-)Yeah, C++ and Python are unfortunate standard solutions. I don't care much for Waf or any other Make replacements. --anders
Oct 17 2010
On Sun, 17 Oct 2010 13:30:25 +0200Anders> Does Qt Creator support Waf, or does that need patching ? No, but I believe that, according to what I heard one can just use 'generic build'. With waf, one can use 'standard': waf configure build Anders> I don't care much for Waf or any other Make replacements. Ohh, I do... ;) Sincerely, Gour --=20 Gour | Hlapicina, Croatia | GPG key: CDBF17CA ----------------------------------------------------------------"Anders" =3D=3D Anders F Bj=C3=B6rklund <afb algonet.se> wrote:
Oct 17 2010
Am 13.10.2010 13:16, schrieb Denis Koroskin:On Wed, 13 Oct 2010 14:32:28 +0400, Anders F Björklund <afb algonet.se> wrote: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 MatthiasAdding 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.
Oct 13 2010
Am 13.10.2010 12:32, schrieb Anders F Björklund: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.Syntaxhighlighting and code-folding is already working through the generichighlighter: http://www.freeimagehosting.net/image.php?efbefe290f.pngBuilding 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've also worked on a plugin with D-projectmanagment for Qt-Creator , but I've halted the work, cause lack of time. But I would be interrested, to share my work or help on an existing project. Are you still working on this D-support in Qt-Creator? greets Matthias
Oct 13 2010
Matthias Pleh wrote:Cool, don't think that was available in Qt 4.6 and Qt Creator 1.3... http://labs.qt.nokia.com/2010/09/16/generic-highlighter-in-qt-creator/ But for Qt 4.7 it could be an option, if sufficiently advanced for D2 ? There is also http://srchiliteqt.sourceforge.net/ available under GPL.I just used "dmd -X" and QJson for analyzing D, it would also need a http://doc.trolltech.com/stable/qsyntaxhighlighter.html implemented.Syntaxhighlighting and code-folding is already working through the generichighlighter: http://www.freeimagehosting.net/image.php?efbefe290f.pngYou should push it to gitorious.org, like I will do with my own hacks. I don't have the time to do it, so someone will need to pick it up...http://gitorious.org/qt-creator http://gitorious.org/qjson If someone is interested in continuing this, then please contact me...I've also worked on a plugin with D-projectmanagment for Qt-Creator , but I've halted the work, cause lack of time. But I would be interrested, to share my work or help on an existing project.Are you still working on this D-support in Qt-Creator?I just wanted to get it all started, as an alternative for using QtD. Don't think I will look at it again until DMD (or better yet GDC/LDC) supports 64-bit and D2, to avoiding needing a 32-bit chroot for it... Otherwise I could be just as well be using wxWidgets and Code::Blocks. I'm sure that neither will be "enough", since they are written in C++, but should fill the gaping hole for now... D *needs* a GUI and an IDE. --anders
Oct 13 2010
Am 13.10.2010 22:52, schrieb Anders F Björklund:Matthias Pleh wrote:the generic-highlighter is based on kate an realy powerful. The xml-definitionfile, I have used, is taken from the KatePart project and alredy mature. (for example nested comments with /++/ is already working!)Cool, don't think that was available in Qt 4.6 and Qt Creator 1.3... http://labs.qt.nokia.com/2010/09/16/generic-highlighter-in-qt-creator/ But for Qt 4.7 it could be an option, if sufficiently advanced for D2 ?I just used "dmd -X" and QJson for analyzing D, it would also need a http://doc.trolltech.com/stable/qsyntaxhighlighter.html implemented.Syntaxhighlighting and code-folding is already working through the generichighlighter: http://www.freeimagehosting.net/image.php?efbefe290f.pngThere is also http://srchiliteqt.sourceforge.net/ available under GPL.That's the reason, I've halted my project ... lack of time :(You should push it to gitorious.org, like I will do with my own hacks. I don't have the time to do it, so someone will need to pick it up...http://gitorious.org/qt-creator http://gitorious.org/qjson If someone is interested in continuing this, then please contact me...I've also worked on a plugin with D-projectmanagment for Qt-Creator , but I've halted the work, cause lack of time. But I would be interrested, to share my work or help on an existing project.I know, you're also active on the Code::Blocks forum ... (we have already discused there :) )Are you still working on this D-support in Qt-Creator?I just wanted to get it all started, as an alternative for using QtD. Don't think I will look at it again until DMD (or better yet GDC/LDC) supports 64-bit and D2, to avoiding needing a 32-bit chroot for it... Otherwise I could be just as well be using wxWidgets and Code::Blocks.I'm sure that neither will be "enough", since they are written in C++, but should fill the gaping hole for now... D *needs* a GUI and an IDE.Yep, that's my thought--anders
Oct 13 2010
Has anything come out of this? If not, is it possible that you commit what you have to a gitorious project or somewhere so that your work is not lost? I cannot take on such a project myself but am definitely interested, perhaps just making the basics work with the kate style syntax highlighting for now.
Nov 20 2010