Quantcast
Channel: Visual Studio Integrate forum
Viewing all articles
Browse latest Browse all 4410

VS2013: How is the "Automatic brace completion" option enabled on the settings page for a custom language package?

$
0
0

I have a custom language service that's been successfully integrated in the Visual Studio 2013 shell. I'm currently working on the settings pages, but I came across a built-in setting that's difficult to enable:

In Visual Studio 2013, there's a new setting on the Text Editor -> [Language] -> General options page called "Automatic brace completion". For my custom language, the General page shows this option, but it is permanently disabled. It also seems that implementing the various new Microsoft.VisualStudio.Text.BraceCompletion interfaces does nothing unless this option is enabled.

Other settings on the General page, such as the "Hide advanced members" option, can be enabled/disabled via properties (e.g. "EnableAdvancedMembersOption") on the ProvideLanguageServiceAttribute of the language service package, but there is no corresponding property for the "Automatic brace completion" option.

It seems that the registry key that controls whether this option is available or not is "HKCU\Software\[Company]\[Product]\[Version]_Config\Languages\Language Services\[CustomLanguage]\ShowBraceCompletion". If that registry key is missing or set to 0, the option is disabled on the settings page for my language. I can set this key to true manually in a pkgdef, but is there any way to enable this option through normal channels?

How are brace completion extensions supposed to work for custom languages if they are only called when the option is enabled, but there's no way to enable it (except for hacks like the above manual modification of the registry)? There must be a way to enable this option in order to get the new brace completion extensibility working -- what am I missing?

Any insights would be appreciated. Thanks!


Viewing all articles
Browse latest Browse all 4410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>