public CompletionListSerializationBenchmark()
        {
            var tagHelperFactsService       = new DefaultTagHelperFactsService();
            var completionService           = new DefaultTagHelperCompletionService(tagHelperFactsService);
            var htmlFactsService            = new DefaultHtmlFactsService();
            var tagHelperCompletionProvider = new TagHelperCompletionProvider(completionService, htmlFactsService, tagHelperFactsService);

            var documentContent = "<";
            var queryIndex      = 1;

            CompletionList        = GenerateCompletionList(documentContent, queryIndex, tagHelperCompletionProvider);
            _completionListBuffer = GenerateBuffer(CompletionList);

            Serializer.Instance.JsonSerializer.Converters.Add(TagHelperDescriptorJsonConverter.Instance);
        }
Esempio n. 2
0
        public CompletionListSerializationBenchmark()
        {
            var tagHelperFactsService       = new DefaultTagHelperFactsService();
            var completionService           = new DefaultTagHelperCompletionService(tagHelperFactsService);
            var htmlFactsService            = new DefaultHtmlFactsService();
            var tagHelperCompletionProvider = new TagHelperCompletionProvider(completionService, htmlFactsService, tagHelperFactsService);

            var documentContent = "<";
            var queryIndex      = 1;

            CompletionList        = GenerateCompletionList(documentContent, queryIndex, tagHelperCompletionProvider);
            _completionListBuffer = GenerateBuffer(CompletionList);

            Serializer = new LspSerializer();
            Serializer.RegisterRazorConverters();
        }
        private CompletionList GenerateCompletionList(string documentContent, int queryIndex, TagHelperCompletionProvider componentCompletionProvider)
        {
            var sourceDocument           = RazorSourceDocument.Create(documentContent, RazorSourceDocumentProperties.Default);
            var syntaxTree               = RazorSyntaxTree.Parse(sourceDocument);
            var tagHelperDocumentContext = TagHelperDocumentContext.Create(prefix: string.Empty, DefaultTagHelpers);

            var completionQueryLocation = new SourceSpan(queryIndex, length: 0);
            var razorCompletionItems    = componentCompletionProvider.GetCompletionItems(syntaxTree, tagHelperDocumentContext, completionQueryLocation);
            var completionList          = RazorCompletionEndpoint.CreateLSPCompletionList(razorCompletionItems, new CompletionListCache(), new[] { ExtendedCompletionItemKinds.TagHelper });

            return(completionList);
        }
        private CompletionList GenerateCompletionList(string documentContent, int queryIndex, TagHelperCompletionProvider componentCompletionProvider)
        {
            var sourceDocument           = RazorSourceDocument.Create(documentContent, RazorSourceDocumentProperties.Default);
            var syntaxTree               = RazorSyntaxTree.Parse(sourceDocument);
            var tagHelperDocumentContext = TagHelperDocumentContext.Create(prefix: string.Empty, DefaultTagHelpers);

            var completionQueryLocation = new SourceSpan(queryIndex, length: 0);
            var context = new RazorCompletionContext(syntaxTree, tagHelperDocumentContext);

            var razorCompletionItems = componentCompletionProvider.GetCompletionItems(context, completionQueryLocation);
            var completionList       = RazorCompletionEndpoint.CreateLSPCompletionList(
                razorCompletionItems,
                new CompletionListCache(),
                new VSInternalClientCapabilities()
            {
                TextDocument = new TextDocumentClientCapabilities()
                {
                    Completion = new VSInternalCompletionSetting()
                    {
                        CompletionItemKind = new CompletionItemKindSetting()
                        {
                            ValueSet = new[] { CompletionItemKind.TagHelper }
                        },
                        CompletionList = new VSInternalCompletionListSetting()
                        {
                            CommitCharacters = true,
                            Data             = true,
                        }
                    }
                }
            });

            return(completionList);
        }