VS templates indistinguishable

You can do something like this at the moment:

Then the listed items are using swift


The auto complete system problem is quite severe. If I want to type “String str;”, when I type the “;”, the auto complete system would replace the “str” with “String”, so that the whole statement would become “String String;”, so annoying. I suggest not selecting an auto complete item by default, and we could select one manually by pressing the key “up”. Also, prevent the auto complete list from showing while typing the name of a class/variable.

Is this now with a newer build that has the fixes from before? (you mentioned last week you’re waiting for a new stable channel build).

(bugs aside, obviously, and this was/is one) items will only be selected by default in a context where only items from the CC list are valid. This this context, indeed, not only should nothing be selected by default, “String” should not even be in the list of items.

obviously, yes. that is part of the same bug, if the context is wrong, it’s wrong both for what to show and for whether to show it ;).

That said, it isn’t for me, so I assume this was fixed since the built you were using, as part of the issue(s) referenced above. Can you retest with 2403 or later please?

This is what I mean by “not selecting an auto complete item by default”:

By the way, thank your for making such a fantastic tool as Elements.

Is is possible to add a option to disable auto selecting completely to avoid similar cases? If I meet a CC problem again, I could just simply disable auto selecting a auto complete item instead of waiting for a fix. Also, it makes the auto complete system less forcing, since programmers could choose whether to use auto complete for the current word with the option enabled.

Yes, I know. And we do that, when appropriate (again bugs aside, ofc).

Thank you! much appreciated!

The best option would be to disable auto-dropdown of CC and only invoke it as needed. Fire/Water have an option for this for sure, but I think VS has it too.

I’ll review whether to add an “never auto-accept” option, for auto-dropdown CC, in Fire/Water.


Many thanks!
In VC++, it doesn’t auto accept much. In VC#, as it is very mature, so its auto accepting is totally beneficial and causes nearly no problems. But Elements do not have such a bug develop team as VC# does. So I hope the VS Plugin to add a option to disable auto selecting or auto accept in less cases (what I mean by that is to auto accept only if the analyzer is quite sure about what to complete, not to always auto accept).

1 Like

By the way, does the VS Plugin and Water use the same code completion engine so that if a completion bug is fixed in Water means that it is also fixed in the VS Plugin? Or separated?


Also, the CC system should not always show everything. For example, things (function, variable, enum, etc) defined in the namespace/module rtl should only be included in the CC list after I type “rtl.” or imported the namespace/module rtl. Now things defined in the namespace/module rtl always appears in the list. This makes the CC list extremely long and also messy. CC list should only list names of modules/namespaces and things defined in the global module/namespace at first, not to display everything. Just like what VC# does.

There’s an option for that, I believe, to show types from unused namespaces or not. Many people, including me, find it convenient to see all types, because that way you don’t need to know the namespace, and CC can add it for you. eg, you can just complete “File” to get “System.IO.File”.

Thanx for your patience.
Option also in VS Plugin?

I believe it’s only in VS right now, Fire/Water has not hardcoded to “on”

The VS Plugin would auto append the corresponding parenthesis if I type in a parenthesis, but Water doesn’t do that.
Also, is it possible to append the corresponding brace immediately after I type a brace, like VC# does, not to append it when I press the key “Enter” to switch to a new line, cuz this doesn’t work in some cases.
For example:

var myvar:Int16{

} <- This brace would not be appended after I press “Enter”

time to start a new thread, me thinks?

I agree

Build .2405, VS 16.0.3, project templates are still tag-less.

Also, in swift, CC appears when typing XXX in “class XXX{…}”
The completion of corresponding brackets are available in C# but unavailable in Silver.

PLEASE don’t keep adding new issues to an existing, unrelated, thread. It makes it very hard to keep track of them. thanx.

That said, I’m not sure I understand what problem you are reporting here…

You need VS2019 16.1.0 Preview 3 or later for tis to work, as this is a VS2019 bug that Microsoft had to fix on their end.