Thread overview
No intellisense in latest VisualD
Jan 09, 2014
Frustrated
Jan 11, 2014
evilrat
Jan 11, 2014
Rainer Schuetze
Jan 11, 2014
evilrat
Jan 23, 2014
Frustrated
Jan 23, 2014
Frustrated
Jan 23, 2014
Frustrated
Jan 23, 2014
Frustrated
Jan 23, 2014
Frustrated
January 09, 2014
There is absolutely no intellisense in latest Visual D for members.

I have an interface in a module and reference it in main(). When I try to access a member from it using either ctrl-space after the . nothing shows up. If I change to show when typing the ., nothing shows up.

Is intellisense broke, or does visual D even show it.

Note that if I type ctrl-space after an identifier something does pop up but it's just the name of the id.

if I put a class in the main project then type . after it, a list of all the local variables will show up BUT not the members(seems like there is an issue with the "level" of scope.

e.g.,

class a { int x; }

void main()
{
   auto a = new a;
   auto b = new a;
   a.    // shows a and b after typing . but not x like it should
}
January 11, 2014
On Thursday, 9 January 2014 at 11:40:51 UTC, Frustrated wrote:
> There is absolutely no intellisense in latest Visual D for members.
>
> I have an interface in a module and reference it in main(). When I try to access a member from it using either ctrl-space after the . nothing shows up. If I change to show when typing the ., nothing shows up.
>
> Is intellisense broke, or does visual D even show it.
>
> Note that if I type ctrl-space after an identifier something does pop up but it's just the name of the id.
>
> if I put a class in the main project then type . after it, a list of all the local variables will show up BUT not the members(seems like there is an issue with the "level" of scope.
>
> e.g.,
>
> class a { int x; }
>
> void main()
> {
>    auto a = new a;
>    auto b = new a;
>    a.    // shows a and b after typing . but not x like it should
> }

i'm using 0.3.38beta2 and it works almost as visual studio does for C++
if it doesn't work for you try to switch to Alexander Bothe's parser in settings.

i hope x64 DLL building gets fixed as well.
January 11, 2014

On 09.01.2014 12:40, Frustrated wrote:
> There is absolutely no intellisense in latest Visual D for members.
>
> I have an interface in a module and reference it in main(). When I try
> to access a member from it using either ctrl-space after the . nothing
> shows up. If I change to show when typing the ., nothing shows up.
>
> Is intellisense broke, or does visual D even show it.
>
> Note that if I type ctrl-space after an identifier something does pop up
> but it's just the name of the id.
>
> if I put a class in the main project then type . after it, a list of all
> the local variables will show up BUT not the members(seems like there is
> an issue with the "level" of scope.
>
> e.g.,
>
> class a { int x; }
>
> void main()
> {
>     auto a = new a;
>     auto b = new a;
>     a.    // shows a and b after typing . but not x like it should
> }

I guess you are using the Visual D semantic engine. You are redefining "a" inside main, making "b = new a" invalid code. This probably confuses the semantic engine.

I also recommend switching to Alexanders engine in the intellisense options. It seems though that the latest version does not filter out UFCS calls if the option is unchecked.
January 11, 2014
On Saturday, 11 January 2014 at 08:26:59 UTC, Rainer Schuetze wrote:
>
>
> On 09.01.2014 12:40, Frustrated wrote:
>> There is absolutely no intellisense in latest Visual D for members.
>>
>> I have an interface in a module and reference it in main(). When I try
>> to access a member from it using either ctrl-space after the . nothing
>> shows up. If I change to show when typing the ., nothing shows up.
>>
>> Is intellisense broke, or does visual D even show it.
>>
>> Note that if I type ctrl-space after an identifier something does pop up
>> but it's just the name of the id.
>>
>> if I put a class in the main project then type . after it, a list of all
>> the local variables will show up BUT not the members(seems like there is
>> an issue with the "level" of scope.
>>
>> e.g.,
>>
>> class a { int x; }
>>
>> void main()
>> {
>>    auto a = new a;
>>    auto b = new a;
>>    a.    // shows a and b after typing . but not x like it should
>> }
>
> I guess you are using the Visual D semantic engine. You are redefining "a" inside main, making "b = new a" invalid code. This probably confuses the semantic engine.
>
> I also recommend switching to Alexanders engine in the intellisense options. It seems though that the latest version does not filter out UFCS calls if the option is unchecked.

can you tell us something about broken x64 dll builds? :)

January 23, 2014
On Saturday, 11 January 2014 at 08:26:59 UTC, Rainer Schuetze
wrote:
>
>
> On 09.01.2014 12:40, Frustrated wrote:
>> There is absolutely no intellisense in latest Visual D for members.
>>
>> I have an interface in a module and reference it in main(). When I try
>> to access a member from it using either ctrl-space after the . nothing
>> shows up. If I change to show when typing the ., nothing shows up.
>>
>> Is intellisense broke, or does visual D even show it.
>>
>> Note that if I type ctrl-space after an identifier something does pop up
>> but it's just the name of the id.
>>
>> if I put a class in the main project then type . after it, a list of all
>> the local variables will show up BUT not the members(seems like there is
>> an issue with the "level" of scope.
>>
>> e.g.,
>>
>> class a { int x; }
>>
>> void main()
>> {
>>    auto a = new a;
>>    auto b = new a;
>>    a.    // shows a and b after typing . but not x like it should
>> }
>
> I guess you are using the Visual D semantic engine. You are redefining "a" inside main, making "b = new a" invalid code. This probably confuses the semantic engine.
>
> I also recommend switching to Alexanders engine in the intellisense options. It seems though that the latest version does not filter out UFCS calls if the option is unchecked.


Doesn't matter, the above was just an example with a typo. I've
tried Alexanders engine and same problem but it shows templates
and some build in functions the list. None of the members I have
created work.

It is possible it is some weird issue with my setup but it does
not do what is expected.

It might be something with demangling? I had issues getting it to
build in the first place and maybe I hacked it up that makes it
work but only partially.
January 23, 2014
After reinstalling it seems to work for local classes but doesn't
seem to work for interfaces and/or classes in modules that are
heavily nested.

Basically I have a bunch of modules but I get no correct information. VisualD returns things like A and e for stuff in the class. There is nothing named A and e in the class though.

It's also possible because I'm using some mixins to generate stuff in the class. Maybe the mixins are not being expanded first.

January 23, 2014
So, when I move the class into the main module, and remove the
mixin(by hard coding) everything works as expected.

When I replace the hard code with the mixin again, same problem.

So basically generating code using mixins are not processed
properly by intellisense.

My guess is that visual D needs to expand the types before
parsing them so that mixins will be handled properly. (I have
mixin analysis enabled)
January 23, 2014
I installed Xamarin Studio and MonoD. Same problem. Looks like
it's an issue with Bothe's code.
January 23, 2014
ok, it seems that it doesn't work with ctfe's generating the mix.
I guess Bothe's analysis doesn't evaluate the ctfe. using a mixin
works by hard coding the string.


string inty(alias a)() { return "int y;"; }

class A
{
	mixin("int x;");
	mixin(inty!("...")); // does not show up in intellisense
}