Jump to page: 1 2
Thread overview
What are we missing, in terms of tool support?
Jan 13, 2011
Andrej Mitrovic
Jan 13, 2011
Andrej Mitrovic
Jan 13, 2011
Jim
Jan 13, 2011
Dmitry Olshansky
Jan 13, 2011
Andrew Wiley
Jan 13, 2011
Ary Borenszweig
Jan 13, 2011
Andrej Mitrovic
Jan 14, 2011
%fil
Jan 14, 2011
Jacob Carlborg
Feb 01, 2011
Bruno Medeiros
Jan 13, 2011
spir
Jan 13, 2011
Andrej Mitrovic
Jan 13, 2011
spir
Jan 13, 2011
Daniel Gibson
January 13, 2011
Currently I'm using Vim (after the last 10 attempts I've finally made the switch and now I'm sticking with it), and it does provide quite a bit of functionality right in the get-go.

I have just written a guide 2 days ago on how to set up Cscope to use it with Vim and D (it's a bit Windows specific but easily adaptable to Linux): http://prowiki.org/wiki4d/wiki.cgi?ReferenceForTools/Cscope

I'm pretty sure Cscope can be used with Emacs and other editors as well. (Etags, right? :p) You can also download a prebuilt binary for Ctags on Windows: http://prowiki.org/wiki4d/wiki.cgi?ReferenceForTools/ExuberantCtags

They both work pretty good for D, even though they were never designed for it. Ctags does need a tiny patch though. So for jumping around source code we're all set (in Vim land at least).

I don't want to make this Vim-specific, so I'm wondering what features are we missing in today's D editors/IDE's that other languages already have in their editors/IDE's?

As for any Vimmers: has anyone set up a debugging system that they use with D? I was just about to go look into that, but if someone has already looked into it any info you could give me would be great!
January 13, 2011
Oh, I forgot to mentioned I made a ctags guide as well (for Vim):
http://prowiki.org/wiki4d/wiki.cgi?EditorSupport/VimEditor
So give it a spin if you're in Vim.
January 13, 2011
> I don't want to make this Vim-specific, so I'm wondering what features are we missing in today's D editors/IDE's that other languages already have in their editors/IDE's?


IDE with incremental compiler.

Non-windows IDEs.

Ddoc integration.

Refactoring utilities.

Template- and conditional-compilation-aware editing.

Inline error and warning messages.

...
January 13, 2011
On 01/13/2011 01:56 AM, Andrej Mitrovic wrote:
> I don't want to make this Vim-specific, so I'm wondering what features are we missing in today's D editors/IDE's that other languages already have in their editors/IDE's?

For what it's worth, Geany works very nicely with D out of the box (it's based on scintilla, which knows about D ;-) (*).
	http://www.geany.org/Main/HomePage
	http://en.wikipedia.org/wiki/Geany

May share my settings for D if anyone interested.

Denis

(*) For a while, it did not fold D multi-line comments, which was _very_ annoying (comment eating most vertical space on screen) especially because of ddoc's requirement of doc beeing placed before what it comments, instead of inside. (Thus an overview of a properly folded module would show mostly comments. Great!)
_________________
vita es estrany
spir.wikidot.com

January 13, 2011
On 1/13/11, spir <denis.spir@gmail.com> wrote:
> May share my settings for D if anyone interested.

Well if you do, share them here: http://prowiki.org/wiki4d/wiki.cgi?EditorSupport/Geany so everyone can find it.
January 13, 2011
On 13.01.2011 10:40, Jim wrote:
>> I don't want to make this Vim-specific, so I'm wondering what features are we missing in today's D editors/IDE's that other languages already have in their editors/IDE's?
>
> IDE with incremental compiler.
IDE has nothing to do with incremental linking. And besides the only advantage of  incremental linking is slightly faster link time (which is pretty fast ATM).
> Non-windows IDEs.
Last time on  linux I used Code::Blocks, there are also Descent and DDT.
> Ddoc integration.
Not sure what you mean here.
> Refactoring utilities.
>
Yup, useful, but hardly critical.
> Template- and conditional-compilation-aware editing.
>
VisualD has it. Not used code paths in static conditional statements is slightly lighter, etc.
> Inline error and warning messages.
>
> ....
Do You mean exact line and _column_ of error or what?

-- 
Dmitry Olshansky

January 13, 2011
On 01/13/2011 04:24 PM, Andrej Mitrovic wrote:
> On 1/13/11, spir<denis.spir@gmail.com>  wrote:
>> May share my settings for D if anyone interested.
>
> Well if you do, share them here:
> http://prowiki.org/wiki4d/wiki.cgi?EditorSupport/Geany so everyone can
> find it.

Well, I don't mind sharing them, but geany settings are moderately big files... so, copy-paste them on a wiki page? Unless wiki markup supports block folding?

Denis
_________________
vita es estrany
spir.wikidot.com

January 13, 2011
Am 13.01.2011 20:01, schrieb spir:
> On 01/13/2011 04:24 PM, Andrej Mitrovic wrote:
>> On 1/13/11, spir<denis.spir@gmail.com> wrote:
>>> May share my settings for D if anyone interested.
>>
>> Well if you do, share them here:
>> http://prowiki.org/wiki4d/wiki.cgi?EditorSupport/Geany so everyone can
>> find it.
>
> Well, I don't mind sharing them, but geany settings are moderately big
> files... so, copy-paste them on a wiki page? Unless wiki markup supports
> block folding?
>
> Denis
> _________________
> vita es estrany
> spir.wikidot.com
>

you could put them in an online pastebin and link them in the wiki
January 13, 2011
On Thu, Jan 13, 2011 at 11:54 AM, Dmitry Olshansky <dmitry.olsh@gmail.com>wrote:

> On 13.01.2011 10:40, Jim wrote:
>
>> I don't want to make this Vim-specific, so I'm wondering what features are
>>> we missing in today's D editors/IDE's that other languages already have in their editors/IDE's?
>>>
>>
>> IDE with incremental compiler.
>>
> IDE has nothing to do with incremental linking. And besides the only advantage of  incremental linking is slightly faster link time (which is pretty fast ATM).
>
>> Non-windows IDEs.
>>
> Last time on  linux I used Code::Blocks, there are also Descent and DDT.
>
>> Ddoc integration.
>>
> Not sure what you mean here.
>
>> Refactoring utilities.
>>
>>  Yup, useful, but hardly critical.
>
>  Template- and conditional-compilation-aware editing.
>>
>>  VisualD has it. Not used code paths in static conditional statements is
> slightly lighter, etc.
>
>> Inline error and warning messages.
>>
>> ....
>>
> Do You mean exact line and _column_ of error or what?
>
>
I'm pretty sure what Jim was getting at here is that unlike the world of
C++, D seems like it could be made as IDE-friendly as so many of the VM
languages are. When you're programming C++, the IDE is generally a somewhat
advanced text editor, possibly with some autocompletion if it can parse your
code. With Java and other VM languages, the IDE is parsing your code as you
type, and rather than the code-compile-fix cycle of C++, the VM languages
get constant as-you-type compilation (actually, it's when-you-stop-typing,
but close enough).
Having the IDE able to parse your code that rapidly means you get instant
error feedback, and it means that things like type inference become much
more transparent. Unexpected compiler errors make more sense because you can
dismantle exactly why the error occurred more rapidly, and the programmer
becomes more free to think about why something happens rather than focusing
on how to fix it. It also opens the door to advanced refactoring, code
analysis, and more advanced project management features. Autocompletion can
automatically display documentation.
The bottom line is that an IDE that knows as much about your code as the
compiler can improve programmer productivity dramatically. With D, it's more
challenging because of CTFE and full templates, but when Descent could
handle those back in the day, it was hailed as a breakthrough.
Unfortunately, the way Descent did that isn't really sustainable.


January 13, 2011
The problem I faced with Descent is that in order to get those nice features you want the semantic must be 100% accurate. Imagine refactoring something and it is left half-way through it. So in order to do that I needed to implement the semantics of the language. Cool, the lexer and parser are totally separated, but the semantic is so huge and complicated that it is practically impossible to do another front end for D if you want to be compatible with D (that currently means: compatible with DMD). Just take a look at CallExp::semantic. It's a huge function.

Another thing is that applying refactoring and other things to templates is nearly impossible because those are just syntax-checked and only semantic checked on instantiations.

Sorry, I have to go now, I wanted to write more about this...

I think DMD's source code should be re-written from scratch. It's overly complicated by now.
« First   ‹ Prev
1 2