Example #1
0
        public override CompletionRules GetRules()
        {
            var options = _workspace.Options;

            var enterRule   = options.GetOption(CompletionOptions.EnterKeyBehavior, LanguageNames.CSharp);
            var snippetRule = options.GetOption(CompletionOptions.SnippetsBehavior, LanguageNames.CSharp);

            // Although EnterKeyBehavior is a per-language setting, the meaning of an unset setting (Default) differs between C# and VB
            // In C# the default means Never to maintain previous behavior
            if (enterRule == EnterKeyRule.Default)
            {
                enterRule = EnterKeyRule.Never;
            }

            if (snippetRule == SnippetsRule.Default)
            {
                snippetRule = SnippetsRule.AlwaysInclude;
            }

            // use interlocked + stored rules to reduce # of times this gets created when option is different than default
            var newRules = _latestRules.WithDefaultEnterKeyRule(enterRule)
                           .WithSnippetsRule(snippetRule);

            Interlocked.Exchange(ref _latestRules, newRules);

            return(newRules);
        }
Example #2
0
        public override CompletionRules GetRules()
        {
            var options = _workspace.Options;

            var rule = options.GetOption(CSharpCompletionOptions.AddNewLineOnEnterAfterFullyTypedWord)
                ? EnterKeyRule.AfterFullyTypedWord
                : EnterKeyRule.Never;

            // use interlocked + stored rules to reduce # of times this gets created when option is different than default
            var newRules = _latestRules.WithDefaultEnterKeyRule(rule);

            Interlocked.Exchange(ref _latestRules, newRules);

            return(newRules);
        }