Jump to page: 1 24  
Page
Thread overview
Eclipse plugin
Oct 30, 2006
Ary Manzana
Oct 30, 2006
Walter Bright
Oct 31, 2006
Bill Baxter
Oct 31, 2006
Chad J
Nov 01, 2006
Chad J
Nov 01, 2006
Lars Ivar Igesund
Oct 31, 2006
Ary Manzana
Oct 31, 2006
Walter Bright
Oct 31, 2006
jcc7
Oct 31, 2006
Ary Manzana
Nov 01, 2006
Walter Bright
Nov 01, 2006
Charlie
Nov 01, 2006
Charlie
Nov 01, 2006
Ary Manzana
Nov 01, 2006
Charlie
Nov 01, 2006
Bruno Medeiros
Nov 01, 2006
Ary Manzana
Nov 01, 2006
Walter Bright
Nov 01, 2006
Ary Manzana
Nov 01, 2006
Walter Bright
Nov 01, 2006
Sean Kelly
Nov 01, 2006
Walter Bright
Nov 05, 2006
Bruno Medeiros
Nov 07, 2006
Ary Manzana
Nov 07, 2006
Jesse Phillips
Nov 07, 2006
Kyle Furlong
Nov 07, 2006
Lars Ivar Igesund
Nov 08, 2006
Bruno Medeiros
Nov 02, 2006
Walter Bright
Nov 05, 2006
Bruno Medeiros
October 30, 2006
Hello!

Is anyone interested in making a *great* eclipse plugin? A plugin similar to JDT.

I know some IDEs out there exist, but none of them is really powerful. For example I think DDT is dead, or out of date.

My intentions are:

- To use Walter's code to make the parsing and build a model, since it's the only safe way to guarantee compliance with the current DMD compiler. Then diffing changes in the source should make changes in the plugin quite simple. (not to use ANTLR, for instance)
- To document every public class, so that other people can join the project "easily". I took a look at the DDT code and I found just a little bit of comment... :-(
- To use an architecture similar to the one JDT uses. DDT tried this, but I don't know what happened (most of the classes are empty!)... For example PHPEclipse uses many of JDT classes and interfaces (redefining them)... even keeping the same names! (i.e. IJavaElement)
- To make things with patience. First do the parsing (port the parser), build a model and have an outline. Second singal syntax errors. Third signal simple semantic errors (I believe method "semantic" of Dsymbol... maybe "semantic2" and "semantic3" uses relationships between modules). Fourth, copy JDT architecture. Fifth, add renaming, refactoring, autocomplete, quick fixes, etc. ... In the middle of those points be able to compile everything :-P

With patience I mean: take a deep look at how JDT is done, then put yourself to program.

Fourtunately, I've already ported most of the parser (for D 0.168) to Java, I already build a model, have an outline view and singal simple syntax errors. Not just the line number, but the exact positions where the error is present. Also the plugin compiles automatically your code, but I still don't know how to link everything automatically (I'm missing some rule, I guess). And nothing more: I'm currently reading a lot of code from the JDT core plugin, and some Walter's code.

I think a D plugin for eclipse would be of big utility to the D community. Since I started programing in Java with Eclipse I totally forgot about compiling, getting errors, fixing them, having to "find/search" to do refactoring, etc. And programming like that is so, so fast you only have to focus on your code, really.

I know, Walter, you think an IDE is something non-essential. But for big projects it is *really* helpful.

A good IDE, and some good core libraries, is what missing here (IMHO).

Is anyone interested?
October 30, 2006
Ary Manzana wrote:
> I know, Walter, you think an IDE is something non-essential. But for big projects it is *really* helpful.
> 
> A good IDE, and some good core libraries, is what missing here (IMHO).
> 
> Is anyone interested?

I don't use IDEs. But their usefulness to others is immense, and getting an Eclipse plugin for D to work would be a big contribution to the D community. So yes, I'm interested.
October 31, 2006
Walter Bright wrote:
> Ary Manzana wrote:
>> I know, Walter, you think an IDE is something non-essential. But for big projects it is *really* helpful.
>>
>> A good IDE, and some good core libraries, is what missing here (IMHO).
>>
>> Is anyone interested?
> 
> I don't use IDEs. But their usefulness to others is immense, and getting an Eclipse plugin for D to work would be a big contribution to the D community. So yes, I'm interested.

I've played with Eclipse a little bit, and though I wasn't blown away by it when compared with Visual Studio, it is *far* better than no IDE at all.
But I didn't see on your list the thing I would find most useful: debugger support.

Actually I could do without a full-blown IDE if there were just a decent visual debugger.  For writing code I'm fine with emacs, but debugging via printfs is annoying.  And don't go telling me about that crashy WinDbg thing -- it's just not up to snuff.

Regardless of my personal preferences, I agree that an Eclipse plugin is probably the fastest and best way to get a full-fledged D IDE up and running in the short term.

--bb
October 31, 2006
> Actually I could do without a full-blown IDE if there were just a decent visual debugger.  For writing code I'm fine with emacs, but debugging via printfs is annoying.  And don't go telling me about that crashy WinDbg thing -- it's just not up to snuff.

Oh yes. A working debugger would be so great. Showing variable values in gdb/ddd. And a working backtrace.
October 31, 2006
Bill Baxter escribió:
 > Actually I could do without a full-blown IDE if there were just a decent
> visual debugger.  For writing code I'm fine with emacs, but debugging via printfs is annoying.  And don't go telling me about that crashy WinDbg thing -- it's just not up to snuff.

I agree. Well, making the debug thing is the most difficult part, but it would be very nice to have it, although right now I'm not feeling capable of doing that (I know little about compilers, debuggers, etc.). Eclipse provides a framework to hook some debug stuff, so I guess it won't be (that) hard to do it.

Well, I've cleaned up a bit the code and here it is:

http://www.esperanto.org.ar/d/descent.ui.zip

Umm... Uncompress everything in the eclipse directory, and everything should work. In the plugins directory there are three jars (core, ui and tests... I forgot to mention I made a lot of tests), source code included, so you can take a look and not feel that scared (the most important is descent.core).

Before starting you should know the plugin compiles with "dmd" only, and it searches it in the environment path (I only tried it in Windows). I put an option in a property page to change it, but I couldn't get to get it working :-(

Go to File -> New -> Project -> D -> D project, enter a location and hit it. You should see a "src" folder in the project. There you must create the d files (File -> New -> File -> foo.d). While you write the file, if you stop typing you should see error markers appearing, as well as the outline view being updated. If you save the file you should see *all* the errors, since I parse dmd output (I will drop these once the plugin gets all the errors by itself). Also, obj and di files are created when saving, so compiling is faster.

Well... that's all for now. I know it's less (maybe?) than what DDT has, but maybe it's a bit more organized, and it uses incremental building (just for single files, not for projects yet).

The next step would be to understand the semantic routines and add them to the code. I guess I won't have to copy all the source code since I only need to get errors, not to compile anything... I wonder if making a visitor would be easier to get the semantics done...? Any ideas...?
October 31, 2006
Ary Manzana wrote:
> Well, I've cleaned up a bit the code and here it is:
> 
> http://www.esperanto.org.ar/d/descent.ui.zip

It'd be nice if you could put together a web page about it explaining what it is, how to use it, basically what your post said. A web page would make it much more findable and popular, and perhaps can help attract developers to help expand it.
October 31, 2006
Frank Benoit (keinfarbton) wrote:
>>Actually I could do without a full-blown IDE if there were just a decent
>>visual debugger.  For writing code I'm fine with emacs, but debugging
>>via printfs is annoying.  And don't go telling me about that crashy
>>WinDbg thing -- it's just not up to snuff.
> 
> 
> Oh yes. A working debugger would be so great. Showing variable values in
> gdb/ddd. And a working backtrace.

I have seen posts on here from people who have written and posted backtrace implementations.  shinichiro.h wrote one that I tried out, even seems maintained since it's at v0.169 compatability (good job shinichiro!).  Here is a link to that post:

http://www.digitalmars.com/d/archives/digitalmars/D/32313.html

I installed it and within about 10 mins had working backtrace.  Works with exceptions, access violations, asserts, and I dunno what else.  The only thing it hasn't worked for me on so far was when I created an error in a second thread - it couldn't backtrace that for whatever reason.

Apparently Maxime Larose also made a working backtrace implementation, though I couldn't find the download link.
http://www.digitalmars.com/d/archives/digitalmars/D/22967.html

It really bugs me that this exists and seems so trivial to install, yet it is not included in phobos.  This could have saved me many many hours of debugging time.  Yet it isn't in by default.  wth??
October 31, 2006
== Quote from Walter Bright (newshound@digitalmars.com)'s article
> Ary Manzana wrote:
> > Well, I've cleaned up a bit the code and here it is:
> >
> > http://www.esperanto.org.ar/d/descent.ui.zip
> It'd be nice if you could put together a web page about it explaining what it is, how to use it, basically what your post said. A web page would make it much more findable and popular, and perhaps can help attract developers to help expand it.

That's a good idea. A proper web page is a good way to show how serious of an effort this project is. (Not to say that I don't believe it's a serious project, but that a good web page can be a great means of advertisement.)

Speaking of advertisement, I created a wiki page for it based on a couple of Ary's newsgroup posts since it sounds like such a cool project. I'm not what the name of this new Eclipe project is, but I set up the wiki page as: http://www.prowiki.org/wiki4d/wiki.cgi?DescentUI
October 31, 2006
jcc7 wrote:
> == Quote from Walter Bright (newshound@digitalmars.com)'s article
>> Ary Manzana wrote:
>>> Well, I've cleaned up a bit the code and here it is:
>>>
>>> http://www.esperanto.org.ar/d/descent.ui.zip
>> It'd be nice if you could put together a web page about it explaining
>> what it is, how to use it, basically what your post said. A web page
>> would make it much more findable and popular, and perhaps can help
>> attract developers to help expand it.
> 
> That's a good idea. A proper web page is a good way to show how serious of an
> effort this project is. (Not to say that I don't believe it's a serious project,
> but that a good web page can be a great means of advertisement.)
> 
> Speaking of advertisement, I created a wiki page for it based on a couple of Ary's
> newsgroup posts since it sounds like such a cool project. I'm not what the name of
> this new Eclipe project is, but I set up the wiki page as:
> http://www.prowiki.org/wiki4d/wiki.cgi?DescentUI

Thanks a lot!!

I'm considering putting the code into dsource. I'm going on a trip for the weekend so next week I'll do this. Also I'll make a list of things done and (a short list of) things to be done, similar to the "future" page on digitalmars.

As anyone tried the plugin? I'm looking for some feedback...
November 01, 2006
Ary Manzana wrote:
> Hello!
> 
> Is anyone interested in making a *great* eclipse plugin? A plugin similar to JDT.
> 
> I know some IDEs out there exist, but none of them is really powerful. For example I think DDT is dead, or out of date.
> 
> My intentions are:
> 
> - To use Walter's code to make the parsing and build a model, since it's the only safe way to guarantee compliance with the current DMD compiler. Then diffing changes in the source should make changes in the plugin quite simple. (not to use ANTLR, for instance)
> - To document every public class, so that other people can join the project "easily". I took a look at the DDT code and I found just a little bit of comment... :-(
> - To use an architecture similar to the one JDT uses. DDT tried this, but I don't know what happened (most of the classes are empty!)... For example PHPEclipse uses many of JDT classes and interfaces (redefining them)... even keeping the same names! (i.e. IJavaElement)
> - To make things with patience. First do the parsing (port the parser), build a model and have an outline. Second singal syntax errors. Third signal simple semantic errors (I believe method "semantic" of Dsymbol... maybe "semantic2" and "semantic3" uses relationships between modules). Fourth, copy JDT architecture. Fifth, add renaming, refactoring, autocomplete, quick fixes, etc. ... In the middle of those points be able to compile everything :-P
> 
> With patience I mean: take a deep look at how JDT is done, then put yourself to program.
> 
> Fourtunately, I've already ported most of the parser (for D 0.168) to Java, I already build a model, have an outline view and singal simple syntax errors. Not just the line number, but the exact positions where the error is present. Also the plugin compiles automatically your code, but I still don't know how to link everything automatically (I'm missing some rule, I guess). And nothing more: I'm currently reading a lot of code from the JDT core plugin, and some Walter's code.
> 
> I think a D plugin for eclipse would be of big utility to the D community. Since I started programing in Java with Eclipse I totally forgot about compiling, getting errors, fixing them, having to "find/search" to do refactoring, etc. And programming like that is so, so fast you only have to focus on your code, really.
> 
> I know, Walter, you think an IDE is something non-essential. But for big projects it is *really* helpful.
> 
> A good IDE, and some good core libraries, is what missing here (IMHO).
> 
> Is anyone interested?

Hi, yes, I'm working on an Eclipse plugin too. I've started very recently (about two weeks ago), so I don't have anything significant to show yet, but I'm doing this as my degree final project, so I will be working on it during all school year.

We definitely should talk and see if we can combine efforts, but the approach I was thinking was to build a parser using ANTLR, similar to what the previous eclipse plugins did (Blackbird, DDT). However, you seem to be far ahead of I've done. You say you've converted the whole D frontend to Java? (to descent\internal\core\dom\Parser.java I presume) That must have been a lot of work. I'd actually like to know how long it took for you to do that, and if it's working correctly. I'm gonna take a better look at your code.


-- 
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
« First   ‹ Prev
1 2 3 4