Where is Visual-D C# code?

default0 via Digitalmars-d-ide digitalmars-d-ide at puremagic.com
Sat Oct 31 06:49:19 PDT 2015


On Saturday, 31 October 2015 at 08:31:54 UTC, Rainer Schuetze 
wrote:
>
>
> On 31.10.2015 00:19, Ramon wrote:
>> I use Visual-D for Visual Studio daily for writing D programs. 
>> Also I am
>> very experienced in writing Visual Studio extensions, I wrote 
>> this
>> commercial one: http://misoftware.rs/OmniCode.
>>
>> Now, looking at Visual-D source code, 85% is D code. Well, at 
>> first it
>> seems OK to write a D extension for D in D, but I wonder, how 
>> do you
>> manage to use all .NET APIs from D?
>>
>> Because for implementing every aspect of a language extension 
>> in Visual
>> Studio (Intellisense, outlining, QuickInfo, signature help, 
>> snippets),
>> in my experience, you really need to work with the .NET 
>> assemblys of the
>> Visual Studio Extensibility SDK. I guess you are doing it in a 
>> old COM
>> way, which I think is still supported by VS. But I think that 
>> is far
>> from being productive. Also I doubt you can support every new 
>> aspect of
>> VS editor experience, because since VS 2010 I think, the 
>> editor is based
>> on WPF, so it is .NET in all its glory.
>>
>> I am just worried if Visual-D is taking the right approach for
>> implementing stuff. I could definitely help in the C# area.
>
> You are right that writing Visual D in D has not been the 
> easiest way to write an extension for VS. The first attempt was 
> actually a derivation of a C# extension, but I hated it (I 
> might be more relaxed about this today). Please note that this 
> was before the release of VS2010, so VS itself was not based on 
> C# as much as today.
>
> My reasoning was this: why should I spend my spare time writing 
> code in a language I don't like? Writing it in D seemed natural 
> instead, and actually doing this meant contributing to the dmd 
> compiler/library/toolchain resulting in automatic conversion of 
> Windows and VS SDK to D, DLL support for D, precise GC and 
> numerous bug fixes.
>
> Most functionality can be accessed through COM, but WPF seems 
> to be very different. That's why there is vdextensions.csproj 
> to integrate some stuff that I didn't manage to access directly.

I seem to remember that it is possible to call into managed code 
from C++ (something like C++/CLI). Would it theoretically be 
possible to have a wrapper that allows direct access to the 
managed .NET API from D? A project like this could also help 
improve general interoperability between D and the .NET platform. 
Not sure on the specifics about these things, though, and just 
thinking about it this seems like a stupid amount of work to get 
right.

Maybe I'm actually gonna give this a try, since I have way too 
many things to do anyways it seems to be very reasonable to start 
yet another (possibly gigantic) thing!


More information about the Digitalmars-d-ide mailing list