From bcbe4f69d1f55864e358fe9d33c74b82f8d8b63e Mon Sep 17 00:00:00 2001 From: Alexey Raga Date: Fri, 27 Oct 2017 09:36:38 +1100 Subject: [PATCH 1/2] Show docs in a tab --- package.json | 4 ++-- src/docsBrowser.ts | 60 ++++++++++++++++++++++++++++++++++++++++++++++ src/extension.ts | 8 +++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 src/docsBrowser.ts diff --git a/package.json b/package.json index c345cdc0..7da23b79 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "MIT", "publisher": "alanz", "engines": { - "vscode": "^1.15.0" + "vscode": "^1.17.2" }, "keywords": [ "language", @@ -161,6 +161,6 @@ "justusadam.language-haskell" ], "dependencies": { - "vscode-languageclient": ">3.2.0" + "vscode-languageclient": ">=3.4.5" } } diff --git a/src/docsBrowser.ts b/src/docsBrowser.ts new file mode 100644 index 00000000..eb4f68a0 --- /dev/null +++ b/src/docsBrowser.ts @@ -0,0 +1,60 @@ +import * as vscode from 'vscode'; +import { ProvideHoverSignature } from 'vscode-languageclient'; +import { workspace, Disposable, ExtensionContext, languages, commands, + MarkedString, MarkdownString, TextDocument, CancellationToken, + Position as VPosition, ProviderResult, Hover as VHover } from 'vscode'; + + +export namespace DocsBrowser { + 'use strict'; + + //registers the browser in VSCode infrastructure + export function registerDocsBrowser(): Disposable { + class DocumentationContentProvider implements vscode.TextDocumentContentProvider { + provideTextDocumentContent(uri: vscode.Uri, token: vscode.CancellationToken): string { + let fsUri = uri.with({scheme: "file"}); + return `