public async Task <Hover> Handle(HoverParams request, CancellationToken cancellationToken)
        {
            var hoverRanges = _languageServer.LastParse?.ScriptFromUri(request.TextDocument.Uri.ToUri())?.GetHoverRanges();

            if (hoverRanges == null || hoverRanges.Length == 0)
            {
                return(new Hover());
            }

            HoverRange chosen = hoverRanges
                                .Where(hoverRange => hoverRange.Range.IsInside(request.Position))
                                .OrderBy(hoverRange => hoverRange.Range)
                                .FirstOrDefault();

            if (chosen == null)
            {
                return(new Hover());
            }

            return(new Hover()
            {
                Range = chosen.Range,
                Contents = new MarkedStringsOrMarkupContent(new MarkupContent()
                {
                    Kind = MarkupKind.Markdown,
                    Value = chosen.Content
                })
            });
        }
        public async Task <Hover> Handle(HoverParams request, CancellationToken cancellationToken)
        {
            return(await Task.Run(() =>
            {
                var hoverRanges = _languageServer.LastParse?.ScriptFromUri(request.TextDocument.Uri.ToUri())?.GetHoverRanges();
                if (hoverRanges == null || hoverRanges.Length == 0)
                {
                    return new Hover();
                }

                HoverRange chosen = hoverRanges
                                    .Where(hoverRange => hoverRange.Range.IsInside(request.Position))
                                    .OrderBy(hoverRange => hoverRange.Range)
                                    .FirstOrDefault();

                if (chosen == null)
                {
                    return new Hover();
                }

                return new Hover()
                {
                    Range = chosen.Range,
                    Contents = chosen.Content
                };
            }));
        }