Skip to content

Commit e9ec94e

Browse files
committed
feat: 特质预览器支持刷新
1 parent 27b7e42 commit e9ec94e

File tree

6 files changed

+18
-9
lines changed

6 files changed

+18
-9
lines changed

VModer.Extensions/client/extension/views/TraitsView.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import { Disposable } from "vscode-languageclient";
1313
import { WebviewHelpers } from "./WebviewHelpers";
1414
import { LanguageClient } from "vscode-languageclient/node";
1515
import type { TraitViewI18n } from "../../src/types/TraitViewI18n";
16-
import type { OpenInFileMessage } from '../../src/types/OpenInFileMessage';
17-
import type { DocumentRange } from '../../src/types/DocumentRange';
16+
import type { OpenInFileMessage } from "../../src/types/OpenInFileMessage";
17+
import type { DocumentRange } from "../../src/types/DocumentRange";
1818

1919
export class TraitView {
2020
public static currentPanel: TraitView | undefined;
@@ -54,13 +54,15 @@ export class TraitView {
5454
traitType: l10n.t("TraitsView.TraitType"),
5555
copyTraitId: l10n.t("TraitsView.CopyTraitId"),
5656
openInFile: l10n.t("TraitsView.OpenInFile"),
57+
refresh: l10n.t("TraitsView.Refresh"),
5758
};
5859

5960
panel.webview.onDidReceiveMessage(
6061
async (message: string) => {
6162
if (message == "init_complete") {
6263
panel.webview.postMessage({ type: "i18n", data: i18n });
63-
panel.webview.postMessage({
64+
} else if (message == "refreshTraits") {
65+
await panel.webview.postMessage({
6466
type: "traits",
6567
data: await client.sendRequest("getAllTrait"),
6668
});
@@ -94,10 +96,7 @@ export class TraitView {
9496

9597
const position: DocumentRange = JSON.parse(message.data.position);
9698
// 创建选择区域
97-
const selection = new Selection(
98-
position.start,
99-
position.end
100-
);
99+
const selection = new Selection(position.start, position.end);
101100

102101
// 打开文档并选中指定区域
103102
const document = await workspace.openTextDocument(fileUri);

VModer.Extensions/client/l10n/bundle.l10n.en-US.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
"TraitsView.TraitType": "Trait Type:",
1212
"TraitsView.Title": "Character Traits Query",
1313
"TraitsView.CopyTraitId": "Copy Trait ID",
14-
"TraitsView.OpenInFile": "Open in File"
14+
"TraitsView.OpenInFile": "Open in File",
15+
"TraitsView.Refresh": "Refresh"
1516
}

VModer.Extensions/client/l10n/bundle.l10n.zh-CN.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
"TraitsView.TraitType": "特质类型:",
1212
"TraitsView.Title": "人物特质查询",
1313
"TraitsView.CopyTraitId": "复制特质ID",
14-
"TraitsView.OpenInFile": "在文件中打开"
14+
"TraitsView.OpenInFile": "在文件中打开",
15+
"TraitsView.Refresh": "刷新"
1516
}

VModer.Extensions/client/src/components/TraitsView.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
}}</vscode-option>
2323
</vscode-multi-select>
2424

25+
<vscode-button @click="vscode.postMessage('refreshTraits')">{{ i18n.refresh }}</vscode-button>
2526
<label>Count: {{ viewData.length }} </label>
2627
</div>
2728

@@ -71,6 +72,7 @@ const i18n = ref<TraitViewI18n>({
7172
traitType: "Trait Type:",
7273
copyTraitId: "Copy Trait ID",
7374
openInFile: "Open in File",
75+
refresh: "Refresh"
7476
});
7577
7678
const searchValue = ref("");
@@ -86,6 +88,7 @@ let currentItem: TraitDto | null = null;
8688
8789
onMounted(() => {
8890
vscode.postMessage("init_complete");
91+
vscode.postMessage("refreshTraits");
8992
9093
contextMenu.value!.addEventListener("vsc-context-menu-select", (event) => {
9194
if (!currentItem) {
@@ -145,6 +148,9 @@ vscode.on<TraitDto[]>("traits", (receivedTraits) => {
145148
rawTraits = receivedTraits;
146149
147150
viewData.value = rawTraits;
151+
152+
// 当数据发来后,刷新列表
153+
searchTrait();
148154
});
149155
150156
vscode.on<TraitViewI18n>("i18n", (i18nData) => {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export interface OpenInFileMessage {
2+
/** DocumentRange 的 JSON 表达形式 */
23
position: string;
34
filePath: string;
45
}

VModer.Extensions/client/src/types/TraitViewI18n.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ export interface TraitViewI18n {
88
traitType: string;
99
copyTraitId: string;
1010
openInFile: string;
11+
refresh: string;
1112
}

0 commit comments

Comments
 (0)