public RazorCompletionResolveEndpointTest()
 {
     LSPTagHelperTooltipFactory   = Mock.Of <LSPTagHelperTooltipFactory>(MockBehavior.Strict);
     VSLSPTagHelperTooltipFactory = Mock.Of <VSLSPTagHelperTooltipFactory>(MockBehavior.Strict);
     CompletionListCache          = new CompletionListCache();
     CompletionCapability         = new VSInternalCompletionSetting()
     {
         CompletionItem = new CompletionItemSetting()
         {
             DocumentationFormat = new[] { MarkupKind.PlainText, MarkupKind.Markdown },
         }
     };
     DefaultClientCapability = new VSInternalClientCapabilities()
     {
         TextDocument = new TextDocumentClientCapabilities()
         {
             Completion = CompletionCapability,
         },
     };
     VSClientCapability = new VSInternalClientCapabilities()
     {
         TextDocument = new TextDocumentClientCapabilities()
         {
             Completion = CompletionCapability,
         },
         SupportsVisualStudioExtensions = true,
     };
 }
Beispiel #2
0
        public static void UseCommitCharactersFrom(
            this VSInternalCompletionItem completionItem,
            RazorCompletionItem razorCompletionItem,
            VSInternalClientCapabilities clientCapabilities)
        {
            if (razorCompletionItem.CommitCharacters == null || razorCompletionItem.CommitCharacters.Count == 0)
            {
                return;
            }

            var supportsVSExtensions = clientCapabilities?.SupportsVisualStudioExtensions ?? false;

            if (supportsVSExtensions)
            {
                var vsCommitCharacters = razorCompletionItem
                                         .CommitCharacters
                                         .Select(c => new VSInternalCommitCharacter()
                {
                    Character = c.Character, Insert = c.Insert
                })
                                         .ToArray();
                completionItem.VsCommitCharacters = vsCommitCharacters;
            }
            else
            {
                completionItem.CommitCharacters = razorCompletionItem
                                                  .CommitCharacters
                                                  .Select(c => c.Character)
                                                  .ToArray();
            }
        }
Beispiel #3
0
        public RazorCompletionEndpointTest()
        {
            // Working around strong naming restriction.
            var tagHelperFactsService      = new DefaultTagHelperFactsService();
            var tagHelperCompletionService = new LanguageServerTagHelperCompletionService(tagHelperFactsService);
            var completionProviders        = new RazorCompletionItemProvider[]
            {
                new DirectiveCompletionItemProvider(),
                new DirectiveAttributeCompletionItemProvider(tagHelperFactsService),
                new DirectiveAttributeParameterCompletionItemProvider(tagHelperFactsService),
                new TagHelperCompletionProvider(tagHelperCompletionService, new DefaultHtmlFactsService(), tagHelperFactsService)
            };

            CompletionFactsService = new DefaultRazorCompletionFactsService(completionProviders);
            CompletionListCache    = new CompletionListCache();
            ClientCapabilities     = new VSInternalClientCapabilities()
            {
                TextDocument = new TextDocumentClientCapabilities()
                {
                    Completion = new VSInternalCompletionSetting()
                    {
                        CompletionItemKind = new CompletionItemKindSetting()
                        {
                            ValueSet = new[] { CompletionItemKind.TagHelper }
                        },
                        CompletionList = new VSInternalCompletionListSetting()
                        {
                            CommitCharacters = true,
                            Data             = true,
                        }
                    }
                }
            };
        }
        public RegistrationExtensionResult GetRegistration(VSInternalClientCapabilities clientCapabilities)
        {
            const string AssociatedServerCapability = "_vs_onAutoInsertProvider";

            var registrationOptions = new OnAutoInsertRegistrationOptions()
            {
                DocumentSelector  = RazorDefaults.Selector,
                TriggerCharacters = _onAutoInsertTriggerCharacters,
            };

            return(new RegistrationExtensionResult(AssociatedServerCapability, registrationOptions));
        }
Beispiel #5
0
    public RegistrationExtensionResult?GetRegistration(VSInternalClientCapabilities clientCapabilities)
    {
        const string AssociatedServerCapability = "_vs_inlineCompletionOptions";

        var registrationOptions = new InlineCompletionOptions()
        {
            DocumentSelector = RazorDefaults.Selector,
            Pattern          = string.Join("|", s_cSharpKeywords)
        };

        return(new RegistrationExtensionResult(AssociatedServerCapability, registrationOptions));
    }
Beispiel #6
0
        public override RegistrationExtensionResult?GetRegistration(VSInternalClientCapabilities clientCapabilities)
        {
            const string AssociatedServerCapability = "_vs_uriPresentationProvider";

            return(new RegistrationExtensionResult(AssociatedServerCapability, options: true));
        }
Beispiel #7
0
 public abstract RegistrationExtensionResult?GetRegistration(VSInternalClientCapabilities clientCapabilities);