www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - looking for an IDE

reply "Phil Deets" <pjdeets2 gmail.com> writes:
Hi, I'm new to D and am mostly interested in D2. Is there a Windows IDE  
with support for D2 debugging, building, and basic code navigation (such  
as go to definition)? I've been trying a couple different IDEs, but most  
seem to be focused towards D1. Another nice to have "feature" would be  
support for keeping everything in a directory with spaces. I put feature  
in quotes because I consider it a bug if it does not support that.

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Sep 29 2009
next sibling parent reply Jeremie Pelletier <jeremiep gmail.com> writes:
Phil Deets wrote:
 Hi, I'm new to D and am mostly interested in D2. Is there a Windows IDE 
 with support for D2 debugging, building, and basic code navigation (such 
 as go to definition)? I've been trying a couple different IDEs, but most 
 seem to be focused towards D1. Another nice to have "feature" would be 
 support for keeping everything in a directory with spaces. I put feature 
 in quotes because I consider it a bug if it does not support that.
 
I have yet to find such an IDE on windows, I use poseidon for its simple project manager and syntax highlighting (I had to add the latest D2 keywords manually), but it has no semantics analysis and the ddbg support is half broken so I debug with windbg, however its very light and very fast. I hear Descent for Eclipse is getting support for D2 so you might want to start looking there, it does semantics analysis but Eclipse is too heavy an IDE for my tastes. I can't tell if it has jump to definition. Jeremie
Sep 29 2009
parent reply "Phil Deets" <pjdeets2 gmail.com> writes:
On Tue, 29 Sep 2009 20:09:44 -0500, Jeremie Pelletier <jeremiep gmail.com>  
wrote:

 Phil Deets wrote:
 Hi, I'm new to D and am mostly interested in D2. Is there a Windows IDE  
 with support for D2 debugging, building, and basic code navigation  
 (such as go to definition)? I've been trying a couple different IDEs,  
 but most seem to be focused towards D1. Another nice to have "feature"  
 would be support for keeping everything in a directory with spaces. I  
 put feature in quotes because I consider it a bug if it does not  
 support that.
I have yet to find such an IDE on windows, I use poseidon for its simple project manager and syntax highlighting (I had to add the latest D2 keywords manually), but it has no semantics analysis and the ddbg support is half broken so I debug with windbg, however its very light and very fast. I hear Descent for Eclipse is getting support for D2 so you might want to start looking there, it does semantics analysis but Eclipse is too heavy an IDE for my tastes. I can't tell if it has jump to definition. Jeremie
I tried Descent, but it didn't work well at all with my D2 program. It also didn't support building. I'll look into Poseidon. Thanks. -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Sep 29 2009
next sibling parent reply "Saaa" <empty needmail.com> writes:
Phil Deets wrote
 I tried Descent, but it didn't work well at all with my D2 program. It 
 also didn't support building. I'll look into Poseidon. Thanks.
What exactly do you expect from supporting building? I use descent to build my project by using the external tool setup shown here: http://www.dsource.org/projects/descent/wiki/CompilingPrograms
Sep 30 2009
parent "Phil Deets" <pjdeets2 gmail.com> writes:
On Wed, 30 Sep 2009 02:46:12 -0500, Saaa <empty needmail.com> wrote:

 Phil Deets wrote
 I tried Descent, but it didn't work well at all with my D2 program. It
 also didn't support building. I'll look into Poseidon. Thanks.
What exactly do you expect from supporting building? I use descent to build my project by using the external tool setup shown here: http://www.dsource.org/projects/descent/wiki/CompilingPrograms
Well, I would like to just give it my dmd path and have it just work. I haven't managed to get rebuild to work yet. I think it has major problems with directories with spaces, and I do all my work in a folder within my user profile on Windows XP. This directory has spaces in it. -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Sep 30 2009
prev sibling parent reply Trass3r <mrmocool gmx.de> writes:
Phil Deets schrieb:
 I tried Descent, but it didn't work well at all with my D2 program. It 
 also didn't support building. I'll look into Poseidon. Thanks.
 
D2 support isn't that good in Descent yet. Building is supported by using the external tools feature, though you should really use xfBuild, dsss totally fails for me when it comes to D2.
Sep 30 2009
next sibling parent Ary Borenszweig <ary esperanto.org.ar> writes:
Trass3r wrote:
 Phil Deets schrieb:
 I tried Descent, but it didn't work well at all with my D2 program. It 
 also didn't support building. I'll look into Poseidon. Thanks.
D2 support isn't that good in Descent yet.
Exactly. I think the parser is ported up to 2.030 but I didn't test it a lot and now I don't think I'll touch descent for at least three months.
Sep 30 2009
prev sibling parent reply "Phil Deets" <pjdeets2 gmail.com> writes:
On Wed, 30 Sep 2009 09:01:04 -0500, Trass3r <mrmocool gmx.de> wrote:

 Phil Deets schrieb:
 I tried Descent, but it didn't work well at all with my D2 program. It  
 also didn't support building. I'll look into Poseidon. Thanks.
D2 support isn't that good in Descent yet. Building is supported by using the external tools feature, though you should really use xfBuild, dsss totally fails for me when it comes to D2.
I had never heard of xfBuild. I'll look into it. It looks good based on a brief look at their website. -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Sep 30 2009
next sibling parent Trass3r <mrmocool gmx.de> writes:
Phil Deets schrieb:
 I had never heard of xfBuild. I'll look into it. It looks good based on 
 a brief look at their website.
 
Give it a try. It's much better than rebuild. Though not yet as easily configurable as dsss.
Sep 30 2009
prev sibling parent reply "Phil Deets" <pjdeets2 gmail.com> writes:
On Wed, 30 Sep 2009 15:49:33 -0500, Phil Deets <pjdeets2 gmail.com> wrote:

 On Wed, 30 Sep 2009 09:01:04 -0500, Trass3r <mrmocool gmx.de> wrote:

 Phil Deets schrieb:
 I tried Descent, but it didn't work well at all with my D2 program. It  
 also didn't support building. I'll look into Poseidon. Thanks.
D2 support isn't that good in Descent yet. Building is supported by using the external tools feature, though you should really use xfBuild, dsss totally fails for me when it comes to D2.
I had never heard of xfBuild. I'll look into it. It looks good based on a brief look at their website.
Wow, my first impressions of using xfBuild aren't good. I gave my thoughts and my cmd session below. First, I couldn't find any documentation so I tried a -? switch. ======== C:\Documents and Settings\Phil Deets\My Documents\Tech\Projects\D\D Test>xfbuild -? object.Exception: At least one MODULE needs to be specified, see +help ---------------- [ 429045] 0+0 tango.core.stacktrace.WinStackTrace.winAddrBacktrace 0+87413 :0 [ 424c39] 0+0 tango.core.stacktrace.StackTrace.defaultAddrBacktrace 0+69993 :0 [ 406c9d] 0+0 xf.utils.Profiler.__T7profileVG4aa4_6d61696eZ.profile!(vo id).profile 0+9 ..\utils\Profiler.d:121 [ 4022aa] 0+0 __Dmain 0+9 Main.d:107 [ 42ba67] 0+0 _main 0+98199 :0 [ 4374e0] 0+0 _mainCRTStartup 0+145936 :0 [7c817074] 0+0 ??? 0+2084582820 :0 ======== Seems strange that caused an exceptions, but OK, so it mentions +help. I'll try that. ======== C:\Documents and Settings\Phil Deets\My Documents\Tech\Projects\D\D Test>xfbuild +help tango.core.Exception.IOException: .deps :: The volume for a file has been extern ally altered so that the opened file is no longer valid. ---------------- [ 429045] 0+0 tango.core.stacktrace.WinStackTrace.winAddrBacktrace 0+87413 :0 [ 424c39] 0+0 tango.core.stacktrace.StackTrace.defaultAddrBacktrace 0+69993 :0 [ 40cdb0] 0+0 xfbuild.BuildTask.BuildTask._ctor 0+5 BuildTask.d:44 [ 40dbbd] 0+0 xf.utils.Profiler.__T7profileVG18aa18_4275696c645461736b2 e7265616444657073Z.profile!(void).profile 0+9 ..\utils\Profiler.d:121 [ 40cd94] 0+0 xfbuild.BuildTask.BuildTask._ctor 0+10 BuildTask.d:43 [ 402c24] 0+0 xfbuild.Main.main.__dgliteral1 0+35 Main.d:262 [ 406c9d] 0+0 xf.utils.Profiler.__T7profileVG4aa4_6d61696eZ.profile!(vo id).profile 0+9 ..\utils\Profiler.d:121 [ 4022aa] 0+0 __Dmain 0+9 Main.d:107 [ 42ba67] 0+0 _main 0+98199 :0 [ 4374e0] 0+0 _mainCRTStartup 0+145936 :0 [7c817074] 0+0 ??? 0+2084582820 :0 ======== Another exception. Maybe I should just not use a switch. ======== C:\Documents and Settings\Phil Deets\My Documents\Tech\Projects\D\D Test>xfbuild xfBuild 0.4 :: Copyright (C) 2009 Team0xf Usage: xfbuild [--help] xfbuild [ROOT | OPTION | COMPILER OPTION]... Track dependencies and their changes of one or more modules, compile the m with COMPILER OPTION(s) and link all objects into OUTPUT [see OPTION(s)] . ROOT: String ended with either ".d" or "/" indicating a module or a directory of modules to be compiled, respectively. OPTION(s) are prefixed by "+". COMPILER OPTION(s) are anything that is not OPTION(s) or ROOT(s). Recognized OPTION(s): +xPACKAGE Don't compile any modules within the package +full Perform a full build +clean Remove object files +redep Remove the dependency file +v Print the compilation commands +h Manage headers for faster compilation +profile Dump profiling info at the end +modLimitNUM Compile max NUM modules at a time +DDEPS Put the resulting dependencies into DEPS [default: .deps] +OOBJS Put compiled objects into OBJS [default: .objs] +q Use -oq when compiling (only supported by ldc) +noop Don't use -op when compiling +nolink Don't link +oOUTPUT Link objects into the resulting binary OUTPUT +cCOMPILER Use the D Compiler COMPILER [default: dmd] +rmo Reverse Module Order (when compiling - might uncrash OPTLIN K) Environment Variables: XFBUILDFLAGS You can put any option from above into that variable Note: Keep in mind that command line options override those D_COMPILER The D Compiler to use [default: dmd] Note: XFBUILDFLAGS and command line options override this ======== That worked. Now I want everything in the pd directory to be compiled. It looks like xfbuild pd/ should do the trick according to what I just read. ======== C:\Documents and Settings\Phil Deets\My Documents\Tech\Projects\D\D Test>xfbuild pd/ tango.core.Exception.IOException: .deps :: The volume for a file has been extern ally altered so that the opened file is no longer valid. ---------------- [ 429045] 0+0 tango.core.stacktrace.WinStackTrace.winAddrBacktrace 0+87413 :0 [ 424c39] 0+0 tango.core.stacktrace.StackTrace.defaultAddrBacktrace 0+69993 :0 [ 40cdb0] 0+0 xfbuild.BuildTask.BuildTask._ctor 0+5 BuildTask.d:44 [ 40dbbd] 0+0 xf.utils.Profiler.__T7profileVG18aa18_4275696c645461736b2 e7265616444657073Z.profile!(void).profile 0+9 ..\utils\Profiler.d:121 [ 40cd94] 0+0 xfbuild.BuildTask.BuildTask._ctor 0+10 BuildTask.d:43 [ 402c24] 0+0 xfbuild.Main.main.__dgliteral1 0+35 Main.d:262 [ 406c9d] 0+0 xf.utils.Profiler.__T7profileVG4aa4_6d61696eZ.profile!(vo id).profile 0+9 ..\utils\Profiler.d:121 [ 4022aa] 0+0 __Dmain 0+9 Main.d:107 [ 42ba67] 0+0 _main 0+98199 :0 [ 4374e0] 0+0 _mainCRTStartup 0+145936 :0 [7c817074] 0+0 ??? 0+2084582820 :0 ======== What's with the exceptions? Am I doing something wrong? I am using D 2.032
Sep 30 2009
next sibling parent Trass3r <mrmocool gmx.de> writes:
Some documentation is at the official site:
http://wiki.team0xf.com/index.php?n=Tools.XfBuild

Well it's still a WIP.
Guess that directory thing isn't implemented properly yet.
Using a single module works fine for me, it tracks all dependencies and 
compiles them.
Sep 30 2009
prev sibling parent Tom S <h3r3tic remove.mat.uni.torun.pl> writes:
Phil Deets wrote:
 What's with the exceptions? Am I doing something wrong? I am using D 2.032
Looks like running with "-?" caused it to create an empty ".deps" file and later trying to access it yields this exception. I'll look into it in a spare moment. Deleting the ".deps" file fixes the issue. There's a basic info page at http://bitbucket.org/h3r3tic/xfbuild/wiki/Home and it mentions to delete the ".deps" file when something goes wrong :P That and I think you need to specify +o for the output name. -- Tomasz Stachowiak http://h3.team0xf.com/ h3/h3r3tic on #D freenode
Sep 30 2009
prev sibling next sibling parent reply A Bothe <info alexanderbothe.com> writes:
Hi, I think I've got what you want...

http://www.alexanderbothe.com/?id=27 - the D-IDE
Sep 30 2009
next sibling parent reply Jeremie Pelletier <jeremiep gmail.com> writes:
A Bothe wrote:
 Hi, I think I've got what you want...
 
 http://www.alexanderbothe.com/?id=27 - the D-IDE
I just tried it (1.0.3.2) and it's still buggy: when I added files to the project manager it also added as many directories, the manager wouldn't let me scroll down either, and I've had some unhandled exceptions while opening my project after a restart. But it looks good, keep working on it, I'm definitely gonna keep an eye out for this IDE! Jeremie
Sep 30 2009
parent reply A Bothe <info alexanderbothe.com> writes:
Jeremie Pelletier Wrote:
 I just tried it (1.0.3.2) and it's still buggy: when I added files to 
 the project manager it also added as many directories, the manager 
 wouldn't let me scroll down either, and I've had some unhandled 
 exceptions while opening my project after a restart.
 
 But it looks good, keep working on it, I'm definitely gonna keep an eye 
 out for this IDE!
 
 Jeremie
At first I want to thank you for your response! I can't understand your error descriptions - You created a project, then created a new file within that project, saved everything via Ctrl+S - and then there is an exception thrown after restart? Could you give me a screenshot or the exception message, please? That would help a lot...
Sep 30 2009
parent Jeremie Pelletier <jeremiep gmail.com> writes:
A Bothe wrote:
 Jeremie Pelletier Wrote:
 I just tried it (1.0.3.2) and it's still buggy: when I added files to 
 the project manager it also added as many directories, the manager 
 wouldn't let me scroll down either, and I've had some unhandled 
 exceptions while opening my project after a restart.

 But it looks good, keep working on it, I'm definitely gonna keep an eye 
 out for this IDE!

 Jeremie
At first I want to thank you for your response! I can't understand your error descriptions - You created a project, then created a new file within that project, saved everything via Ctrl+S - and then there is an exception thrown after restart? Could you give me a screenshot or the exception message, please? That would help a lot...
I created a project, then added only existing files, I didn't create any from within the IDE. That didn't work well with the project manager since I ended up with one folder per file in the treeview. I then closed the IDE and reopened the project to get this: System.NullReferenceException: Object reference not set to an instance of an object. at D_Parser.DParser.ParseTypeIdent(Boolean identifierOnly, Boolean& hasClampMod) at D_Parser.DParser.ParseTypeIdent() at D_Parser.DParser.ParseExpression() at D_Parser.DParser.ParseBlock(DataType& ret, Boolean isFunctionBody) at D_Parser.DParser.Parse(String moduleName, List`1& imports) at D_Parser.DParser.ParseFile(String moduleName, String fn, List`1& imports) at D_IDE.DModule.Parse(String file) at D_IDE.DProject.ParseAll() at D_IDE.Form1.Open(String file, DProject owner) at D_IDE.Form1.OpenFile(Object sender, EventArgs e) at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ToolStrip.WndProc(Message& m) at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) Also I believe clicking the "Open Selected" button on the start page when there are no last opened projects result in a crash too. The status bar initializes to "line 999999" along with "parsing invariant". By the way is that IDE opensource?
Sep 30 2009
prev sibling parent "Phil Deets" <pjdeets2 gmail.com> writes:
On Wed, 30 Sep 2009 09:05:37 -0500, A Bothe <info alexanderbothe.com>  
wrote:

 Hi, I think I've got what you want...

 http://www.alexanderbothe.com/?id=27 - the D-IDE
I tried that. It has potential, but here is a list of problems I had: * Unpinned panels don't collapse until you unpin a second panel. * When I right-clicked a project and click add folder, I got an unhandled exception message: System.InvalidOperationException: BeginEdit did not succeed because LabelEdit property is false. at System.Windows.Forms.TreeNode.BeginEdit() at D_IDE.ProjectExplorer.createNewDirectoryToolStripMenuItem_Click(Object sender, EventArgs e) at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ToolStrip.WndProc(Message& m) at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) * After trying repeatedly to get a context menu on this new folder that didn't properly get added, it would not come up. Then suddenly, the folder disappeared and another file mysteriously opened. * After adding a folder again and getting the same error, then repeatedly right clicking on the folder again, and right clicking on other items in Project Files, I got a message box that asked if I really wanted to create a new project. This was very strange as I didn't left click anywhere to make this happen. I was just right-clicking stuff outside of context menus. After this, I quit out of fear the program was corrupted in memory and it might go wacky and mess up my files. -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Sep 30 2009
prev sibling parent Jussi Jumppanen <jussij zeusedit.com> writes:
Phil Deets Wrote:

 Is there a Windows IDE with support for D2 debugging, 
 building, 
The Zeus IDE can be easily configured to run the D compiler or any of the build tools: http://www.zeusedit.com/forum/viewtopic.php?t=2465
 and basic code navigation (such as go to definition)? 
Zeus comes with a modified version of ctags meaning it can generate tag information for the D language. This tag information is used to drive the code navigation, class browsing and intelisensing features. I made these ctags changes quite some time ago changes when there was no D2 so I am not sure if this tagger stil works for D2. For any one that is inerested her are my ctags code changes: htp://www.zeusedit.com/z300/ctags_src.zip NOTE: Zeus is shareware Jussi Jumppanen Author: Zeus IDE
Oct 02 2009