From be244840b2df0177ad105e81c52f1a926c349a95 Mon Sep 17 00:00:00 2001 From: Myriad-Dreamin <35292584+Myriad-Dreamin@users.noreply.github.com> Date: Sat, 16 Mar 2024 04:21:10 +0800 Subject: [PATCH] feat: support rest code lens (#45) --- crates/tinymist-query/src/code_lens.rs | 2 +- editors/vscode/src/extension.ts | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/crates/tinymist-query/src/code_lens.rs b/crates/tinymist-query/src/code_lens.rs index 46446c65..8d308c43 100644 --- a/crates/tinymist-query/src/code_lens.rs +++ b/crates/tinymist-query/src/code_lens.rs @@ -39,7 +39,7 @@ impl CodeLensRequest { res.push(doc_lens("Preview", vec!["preview".into()])); res.push(doc_lens("Preview in ..", vec!["preview-in".into()])); res.push(doc_lens("Export PDF", vec!["export-pdf".into()])); - res.push(doc_lens("Export ..", vec!["export-as".into()])); + res.push(doc_lens("Export as ..", vec!["export-as".into()])); Some(res) } diff --git a/editors/vscode/src/extension.ts b/editors/vscode/src/extension.ts index df2a9d16..03b64cc5 100644 --- a/editors/vscode/src/extension.ts +++ b/editors/vscode/src/extension.ts @@ -245,9 +245,22 @@ async function commandRunCodeLens(...args: string[]): Promise { switch (args[0]) { case "preview": { + void vscode.commands.executeCommand(`typst-preview.preview`); break; } case "preview-in": { + // prompt for enum (doc, slide) with default + const mode = await vscode.window.showQuickPick(["doc", "slide"], { + title: "Preview Mode", + }); + const target = await vscode.window.showQuickPick(["tab", "browser"], { + title: "Target to preview in", + }); + + const command = + (target === "tab" ? "preview" : "browser") + (mode === "slide" ? "-slide" : ""); + + void vscode.commands.executeCommand(`typst-preview.${command}`); break; } case "export-pdf": { @@ -255,6 +268,13 @@ async function commandRunCodeLens(...args: string[]): Promise { break; } case "export-as": { + const fmt = await vscode.window.showQuickPick(["pdf"], { + title: "Format to export as", + }); + + if (fmt === "pdf") { + await commandShowPdf(); + } break; } default: {