Skip to content

Commit 0c25256

Browse files
authored
fix(vscode): project tree commands (#2025)
1 parent ad1034d commit 0c25256

File tree

6 files changed

+28
-45
lines changed

6 files changed

+28
-45
lines changed

packages/vscode/package.json

+4-16
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@
194194
"command": "slidev.stop-dev",
195195
"category": "Slidev",
196196
"title": "Stop the dev server",
197-
"icon": "$(debug-stop)"
197+
"icon": "$(stop-circle)"
198198
},
199199
{
200200
"command": "slidev.open-in-browser",
@@ -239,11 +239,6 @@
239239
"title": "Unsync preview window with editor cursor",
240240
"icon": "$(lock)",
241241
"enablement": "slidev:preview:sync"
242-
},
243-
{
244-
"command": "slidev.remove-slide",
245-
"category": "Slidev",
246-
"title": "Remove this slide"
247242
}
248243
],
249244
"menus": {
@@ -255,10 +250,6 @@
255250
{
256251
"command": "slidev.set-as-active",
257252
"when": "false"
258-
},
259-
{
260-
"command": "slidev.remove-slide",
261-
"when": "false"
262253
}
263254
],
264255
"editor/title": [
@@ -338,16 +329,13 @@
338329
},
339330
{
340331
"command": "slidev.remove-entry",
341-
"when": "view == slidev-projects-tree&& viewItem =~ /<project>/",
332+
"when": "view == slidev-projects-tree && viewItem =~ /<project>/",
342333
"group": "inline@2"
343334
},
344335
{
345336
"command": "slidev.stop-dev",
346-
"when": "view == slidev-projects-tree && viewItem =~ /<up>/"
347-
},
348-
{
349-
"command": "slidev.remove-slide",
350-
"when": "view == slidev-slides-tree"
337+
"when": "view == slidev-projects-tree && viewItem =~ /<up>/",
338+
"group": "inline"
351339
}
352340
]
353341
},

packages/vscode/src/commands.ts

+11-15
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
import type { SlidevProject } from './projects'
2-
import type { SlidesTreeNode } from './views/slidesTree'
31
import { relative } from 'node:path'
42
import { slash } from '@antfu/utils'
5-
import { save as saveSlidevMarkdown } from '@slidev/parser/fs'
63
import { useCommand } from 'reactive-vscode'
74
import { Position, Range, Selection, TextEditorRevealType, Uri, window, workspace } from 'vscode'
85
import { useDevServer } from './composables/useDevServer'
@@ -45,19 +42,24 @@ export function useCommands() {
4542
}
4643
})
4744

48-
useCommand('slidev.remove-entry', async (project: SlidevProject) => {
49-
const entry = project.entry
45+
useCommand('slidev.remove-entry', async (node: any) => {
46+
const entry = slash(node.treeItem.resourceUri.fsPath)
5047
if (activeEntry.value === entry)
5148
activeEntry.value = null
5249
projects.delete(entry)
5350
})
5451

55-
useCommand('slidev.set-as-active', async (project: SlidevProject) => {
56-
activeEntry.value = project.entry
52+
useCommand('slidev.set-as-active', async (node: any) => {
53+
const entry = slash(node.treeItem.resourceUri.fsPath)
54+
activeEntry.value = entry
5755
})
5856

59-
useCommand('slidev.stop-dev', async (project: SlidevProject) => {
60-
const { stop } = useDevServer(project)
57+
useCommand('slidev.stop-dev', async (node: any) => {
58+
const entry = node ? slash(node.treeItem.resourceUri.fsPath) : activeEntry.value
59+
if (!entry)
60+
return
61+
const project = projects.get(entry)
62+
const { stop } = useDevServer(project!)
6163
stop()
6264
})
6365

@@ -153,10 +155,4 @@ export function useCommands() {
153155

154156
useCommand('slidev.enable-preview-sync', () => (previewSync.value = true))
155157
useCommand('slidev.disable-preview-sync', () => (previewSync.value = false))
156-
157-
useCommand('slidev.remove-slide', async ({ slide }: SlidesTreeNode) => {
158-
const md = activeSlidevData.value!.markdownFiles[slide.filepath]
159-
md.slides.splice(md.slides.indexOf(slide), 1)
160-
await saveSlidevMarkdown(md)
161-
})
162158
}

packages/vscode/src/views/slidesTree.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ const layoutIconMap = {
2626
'image-left': 'layout-sidebar-left',
2727
'image-right': 'layout-sidebar-right',
2828
'image': 'file-media', // TODO: a better icon
29-
'intro': 'go-to-file',
29+
'intro': 'debug-step-into',
30+
'outro': 'debug-step-out',
3031
'none': 'layout-statusbar',
3132
'quote': 'quote',
3233
'section': 'symbol-module', // TODO: a better icon

pnpm-lock.yaml

+10-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ catalog:
102102
prettier-plugin-slidev: ^1.0.5
103103
prompts: ^2.4.2
104104
public-ip: ^7.0.1
105-
reactive-vscode: 0.2.0
105+
reactive-vscode: ^0.2.10
106106
recordrtc: ^5.6.2
107107
resolve-from: ^5.0.0
108108
resolve-global: ^2.0.0

taze.config.ts

-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,5 @@ export default defineConfig({
66
'typeit': 'ignore',
77
// `engines.vscode` must be updated when bumping `@types/vscode` version
88
'@types/vscode': 'ignore',
9-
// reactive-vscode is not stable yet
10-
'reactive-vscode': 'ignore',
119
},
1210
})

0 commit comments

Comments
 (0)