Annoying VB intellisense problem

the last EAP build drives me crazy when i declare new variables or methods. For example: i type

   private sub

until here everything is ok. The intellisense popup proposes "Sub New" which is a possible guess of what i want to type next. Then i continue typing

   private sub TestMethod

when i type the space after the method name R# replaces it with "New".

Another example (for this example you should know that we have the convention to decorate member variables with a leading "m"):

i type

   private m

R# suggests "MustInherit". I continue typing

   private mVariable as double

R# replaces this by

   private MustInherit as Double

This always occurs when i declare new items. R# intellisense always replace my declaration with it's proposal. Only thing to stop this ist to close the intellisense popup via Escape or to disable R#'s intellisense.

I'm currently working with Visual Studio 2008 but had found a similar problem with C# and Visual Studio 2010 (posted it here a few days ago).

Can anyone confirm this behavior?

Regards
Klaus

20 comments

Hello Jeremy and Klaus,

I wasn't able to reproduce this behavior. Could you please check this with
the next nightly build which should come out soon? Thank you!

Andrey Serebryansky
Senior Support Engineer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

Same here

---
Original message URL:
http://devnet.jetbrains.net/message/5292070#5292070



0

Hello Andrey,

unfortunately the problem is not fixed in build 2103. But i found when i disable "keyword completion" in R# options the probloem disappears.

Regards
Klaus

0

i have to correct me. Even disabling keyword completion did not solve my problem in every case.

Regards
Klaus

0

Klaus,

could you create a repro sample for us?
I've never seen such behaviour.

0

Hello Sergey,

can't make a repro now because i'm at home, but i have recorded a screencast with CamStudio to show the problem and attached it to this posting (fascinating how good 7zip can compress movies B-)) . Tomorrow i will try to build a repro.

Regards
Klaus



Attachment(s):
demo.7z.zip
0

i have attached a small solution in which the problem occurs. I'm not shure if it will help you because regardless which solution i open, i have the problem. I also tried a C# solution. Here i have the same problem as Jeremy Holt posted here http://devnet.jetbrains.net/thread/297903?tstart=0

Regards
Klaus

Update: I forgot to mention that i just installed the latest EAP build 2104



Attachment(s):
ExcelCom.zip
0

I cannot reproduce the problem using build 2105.9.
What and where were you typing in?
What are the completion settings you use (ReSharper | Options | Intellisense | *)?

0

I tried to type in the things you were typing in the screencast and had proper keywords suggested. Maybe you've switched keywords off or you're just using an outdated build.

0

unfortunately build 2105 is not yet released ;)

i tried to verify my problem this evening with another installation in a VM which is located at my company. In this installation i don't have problems with intellisense. The difference between the two installations is that i have installed a localized version of VS 2008 (it's german) on my current working place and in the VM the native english version. Maybe here is the problem. In former builds i also had errors only in the localized version of VS 2008. I also checked against Visual Studio 2010 SP1 and don't see the problems.

Regards
Klaus

0

Follow on from my other thread.

I've been messing around with the Completion Options.

Changing "Automatically show completion list in X seconds seems to make no difference whatsoever.
Only those that are at least X characters long also makes no difference
If I uncheck "Narrow down list on typing" I get the full list of options EXCEPT for 'null' - i.e. still wrong behaviour.

Unchecking "Letters and digits" and "Dots and other member selectors" now allows me to type :   var temp=new (then I get the list of options)

Unchecking just "Dots and other member selectors" seems to give the desired behaviour.

So it would seem that the issue is with the "Dots and other member selectors option".


This is with C#

Regards
Jeremy

0

This morning i installed build 2107. In this build the problem is partially solved. I've attached another screencast to show the problem.

In the first line i mixed VB and C# accidentially.  The keyword "friend" is not recognized but leaved when i press space. In former builds "friend" was replaced by "fun". When i enter "ByRef" and press space it will be replaced by "MarshalByRefObject". In the second line i don't mix VB and C# and here "ByRef" was recognized, but when i press Tab it will not be completed.

The behavior occurs on other keywords too (for example Select Case statements).

If i remember in R# 5.x completion will only be performed, when i press Tab and not when i press Space.

I also added screenshots of my VB and R# intellisense settings.

Regards
Klaus



Attachment(s):
Sample.7z.zip
0

1. You're using an outdated build, Friend keyword is suggested now and can be typed in without any intefrerence.
2. The first sample with Friend void Initialize(ByRef) - the word void spoils everything, as a result when you type ByRef we think it's a member body and we suggest the only suitable identifier which is completed automatically when you type space.

0

Hello Sergey,

i always install the latest build i find on the EAP page and the problem was there until build 2108. Today i installed build 2109 to see how the problem is solved and unfortunately i can't confirm completely that it is so. Intellisense shows "fun" as only suggestion but when i press space after the keyword it isn't replaced any more.

But this is not the only problem. Keyword recognition is not working in build 2109. I've attached a screen recording of what happens when i code a function. There you will see that none of the keywords i enter are recognized and intellisense always completes the wrong thing.

After verifying my completion behavior settings i found that the reason for this behavior is that i haven't checked "Include keywords in completion list".

When i enter code which is completely different from the items the completion list and end it with enter, tab, space or and open brace i except that R# respect what i type and did not assume i want to take over the highlighted item from the intellisense list. As i know that others may see that different maybe you could introduce an option to control the automatic completion behavior.

Another thing i've seen in the current build is, that you have corrected the parameter info after typing an open brace. This is also not fully working. In my completion behavior settings i have checked "Automatically insert parantheses after completion" and selected "Both opening and closing". When i use code completion for a method or function the cursor is placed within the paranthesis and no parameter info is shown. I have to delete the paranthesis and type the open brace again to see the parameter info.

Best Regards
Klaus



Attachment(s):
Intellisensedemo.7z.zip
0

Hello Klaus,

Do I understand correctly that as soon as you've turned on 'Include keywords
in completion list' option, ReSharper started to list keywords in code completion?
At the moment the behavior regarding selected items in completion list is
by-design. When you've typed something and then pressed 'Enter' or 'Tab'
or typed some completing symbol (such as space, parenthesis, comma etc) ReSharper
inserts the selected item from the list. I'm afraid there's no way ReSharper
can guess if the currently selected item should be completed or not. In order
to avoid this behavior you can hide the completion list with 'Esc' beforehand.
As to parameter info problem, we will take a look at it. Thank you!

Andrey Serebryansky
Senior Support Engineer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

Hello Sergey,

i always install the latest build i find on the EAP page and the
problem was there until build 2108. Today i installed build 2109 to
see how the problem is solved and unfortunately i can't confirm
completely that it is so. Intellisense shows "fun" as only suggestion
but when i press space after the keyword it isn't replaced any more.

But this is not the only problem. Keyword recognition is not working
in build 2109. I've attached a screen recording of what happens when i
code a function. There you will see that none of the keywords i enter
are recognized and intellisense always completes the wrong thing.

After verifying my completion behavior settings i found that the
reason for this behavior is that i haven't checked "Include keywords
in completion list".

When i enter code which is completely different from the items the
completion list and end it with enter, tab, space or and open brace i
except that R# respect what i type and did not assume i want to take
over the highlighted item from the intellisense list. As i know that
others may see that different maybe you could introduce an option to
control the automatic completion behavior.

Another thing i've seen in the current build is, that you have
corrected the parameter info after typing an open brace. This is also
not fully working. In my completion behavior settings i have checked
"Automatically insert parantheses after completion" and selected "Both
opening and closing". When i use code completion for a method or
function the cursor is placed within the paranthesis and no parameter
info is shown. I have to delete the paranthesis and type the open
brace again to see the parameter info.

Best Regards
Klaus
---
Original message URL:
http://devnet.jetbrains.net/message/5297779#5297779



0

Andrey,

Does your claim of 'working by design' apply to Javascript intellisense completion in build 2109 (and other recent builds)?

It is currently completely impossible to write Javascript inside cshtml files, because of the wild completion behaviour from R#.  I have to disable R# to get anywhere.

If this is just temporary brokeness during the EAP, that's fine, and I can live with it.  But If you're telling us that JB is not aware of problems with intellisense completion in current EAP builds, then we need to seriously kick-up more fuss.

I never really understand the various intellisense completion algorithms that all my different tools use, but I am 100% certain I did not used to need to program by typing one keystroke at a time, checking betweeen each one if I need to press escape.

I cannot currently type "if(" in Javascript, without it being converted to "ifdebugger ("  (Or various other things - it's completely unpredictable)

Like I say, I don't mind it being broken in the EAP, but I do mind if you think it's OK how it is.

0

Hello Andrey,

you understand me correct. When i activate keyword completion R# works to my satisfaction.  Normally i have checked this option. It was disabled either because i had problems with another EAP build or it was disabled while installing an EAP build.

As long as keyword completion is enabled it's no problem with the automatic completion. Quite the contrary it speeds up coding significant. But without R# thinks i type a variable or method each time it type a keyword. When i have to press Esc each time the intellisense pops up my coding speed decrease drastic. So i think you should either remove the option to disable keyword completion or hide the popup if you recognize a keyword was typed before some completion symbol. I'm not sure (because i currently don't have it installed), but i think R# 5.1 has this behavior.

Regards
Klaus

0

Klaus,

The problem might be the case in 5.1 - the completion system was significantly refactored in R# 6 as well as numerous completion scenarios in VB were supported.

0

you are doing a great job with the VB support. I'm using R# since 1.0 and as i had to switch from C# to VB at my job i always missed some functionality, specially intellisense.

But i hope you agree with me that it makes no sense to try to complete a keyword which is fully typed and change intellisense behavior as fast as possible.

Regards
Klaus

0

Hello Sergey,

i just made another screencast (now with build 2110) to show you the current intellisense experience. I hope you agree with me that typing code is far away from being fast and intuitive.

First: Keyword completion only works if i explicitly select the keyword with cursor or mouse in the popup.

Second: Automatically inserting empty braces and "As" keyword interrupts coding flow a little bit because entering an open brace after function name is not ignored.

Third: Templating parameters is not a good idea because i would prefer to work from the left to the right and enter the parameter name first and then the parameter type. Also guessing the parameter name from the type makes no real sense here mabe except for complex types.

Fourth: I have to place the cursor manually behind the "As" after finish entering the parameters.

All together it takes double the time for me with active R# intellisense than without.

Regards
Klaus



Attachment(s):
Intellisensedemo.7z.zip
0

Please sign in to leave a comment.