Thread overview | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
October 30, 2006 Eclipse plugin | ||||
---|---|---|---|---|
| ||||
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 Re: Eclipse plugin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ary Manzana | 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 Re: Eclipse plugin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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 Re: Eclipse plugin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bill Baxter | > 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 Re: Eclipse plugin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bill Baxter | 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 Re: Eclipse plugin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ary Manzana | 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 Re: Eclipse plugin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Frank Benoit (keinfarbton) | 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 Re: Eclipse plugin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | == 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 Re: Eclipse plugin | ||||
---|---|---|---|---|
| ||||
Posted in reply to jcc7 | 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 Re: Eclipse plugin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ary Manzana | 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 |
Copyright © 1999-2021 by the D Language Foundation