Skip to content

Commit d38f2e1

Browse files
committed
feat: add markdown documentation to compeletionItem
1 parent e692903 commit d38f2e1

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

src/extension.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import * as vscode from "vscode";
44
import getDesignToken from "antd-token-previewer/es/utils/getDesignToken";
55
import rgbHex from "rgb-hex";
6-
import { getMarkdownString } from "./utils";
6+
import { genMarkdownString } from "./utils";
77

88
// this method is called when your extension is activated
99
// your extension is activated the very first time the command is executed
@@ -12,8 +12,6 @@ export function activate(context: vscode.ExtensionContext) {
1212
// This line of code will only be executed once when your extension is activated
1313
const fullToken = getDesignToken();
1414

15-
// vscode hover widget only support color style in <span></span>
16-
// https://github.com/microsoft/vscode/blob/6d2920473c6f13759c978dd89104c4270a83422d/src/vs/base/browser/markdownRenderer.ts#L296
1715
vscode.languages.registerHoverProvider(
1816
[
1917
"javascript",
@@ -31,7 +29,7 @@ export function activate(context: vscode.ExtensionContext) {
3129

3230
if (fullToken.hasOwnProperty(word as string)) {
3331
const value = String(fullToken[word as keyof typeof fullToken]);
34-
const colorSpan = getMarkdownString(value);
32+
const colorSpan = genMarkdownString(value);
3533

3634
const markDownString = new vscode.MarkdownString(
3735
`<h3>antd design token: ${word}</h3>${colorSpan}<code>${value}</code><br></br>`
@@ -51,20 +49,21 @@ export function activate(context: vscode.ExtensionContext) {
5149
const items: any[] | undefined = [];
5250

5351
for (let key in fullToken) {
54-
const value = fullToken[key as keyof typeof fullToken];
52+
const value = String(fullToken[key as keyof typeof fullToken]);
5553
const item = new vscode.CompletionItem(`${key}: ${value}`, 11);
5654
item.insertText = key;
5755
item.filterText = key;
5856
item.sortText = key;
5957

60-
const colorSpan = getMarkdownString(value);
61-
const markDownString = new vscode.MarkdownString(
58+
const colorSpan = genMarkdownString(value);
59+
let documentContent: vscode.MarkdownString | string = "";
60+
61+
documentContent = new vscode.MarkdownString(
6262
`<h3>antd design token: ${key}</h3>${colorSpan}<code>${value}</code><br></br>`
6363
);
64+
documentContent.supportHtml = true;
6465

65-
markDownString.supportHtml = true;
66-
markDownString.isTrusted = true;
67-
item.documentation = markDownString;
66+
item.documentation = documentContent;
6867

6968
items.push(item);
7069
}

src/utils/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
import rgbHex from "rgb-hex";
22

33
/**
4-
* Get the MarkdownString for vscode.MarkdownString function
4+
* Generate the MarkdownString for vscode.MarkdownString function
55
* Note: should convert rgb color to hex
6+
*
7+
* vscode hover widget only support color style in <span></span>
8+
* https://github.com/microsoft/vscode/blob/6d2920473c6f13759c978dd89104c4270a83422d/src/vs/base/browser/markdownRenderer.ts#L296
69
* @param value string
710
* @returns MarkdownString | string
811
*/
9-
export function getMarkdownString(value: string) {
12+
export function genMarkdownString(value: string): string {
1013
let hexColor = "";
1114
if (/#[0-9a-fA-F]+/.test(value)) {
1215
hexColor = value;

0 commit comments

Comments
 (0)