Skip to content

Commit fb4a3aa

Browse files
committed
✨ disable workspace trust and git popups on session start
1 parent 118dea9 commit fb4a3aa

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ addons:
4646
<Editor session="demo" />
4747
```
4848

49-
That's it. When you navigate to the slide, a VS Code instance starts automatically and loads inside the slide.
49+
That's it. When you navigate to the slide, a VS Code instance starts automatically and loads inside the slide. Each session starts with workspace trust disabled and git repository detection turned off so no setup popups.
5050

5151
## 📂 Open a specific workspace
5252

plugin/sessionManager.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ type SessionEntry = {
1717
close: () => Promise<void>
1818
port: number
1919
url: string
20-
userDataDir?: string
20+
userDataDir: string
2121
}
2222

2323
type SendEvent = (session: string, url: string, state: 'running' | 'error', error?: string) => void
@@ -55,19 +55,19 @@ export class SessionManager {
5555
const absoluteFolder = defaultFolder ? resolve(root, defaultFolder) : root
5656
const resolvedFolder = existsSync(absoluteFolder) ? absoluteFolder : root
5757

58-
const settings: Record<string, unknown> = {}
58+
const settings: Record<string, unknown> = {
59+
'git.openRepositoryInParentFolders': 'never',
60+
'security.workspace.trust.enabled': false,
61+
}
5962
if (colorScheme) settings['workbench.colorTheme'] = COLOR_THEMES[colorScheme]
6063
if (fontSize) settings['editor.fontSize'] = fontSize
6164
if (hideMinimap) settings['editor.minimap.enabled'] = false
6265
if (hideActivityBar) settings['workbench.activityBar.location'] = 'hidden'
6366
if (hideStatusBar) settings['workbench.statusBar.visible'] = false
6467

65-
let userDataDir: string | undefined
66-
if (Object.keys(settings).length > 0) {
67-
userDataDir = mkdtempSync(join(tmpdir(), 'livecode-'))
68-
mkdirSync(join(userDataDir, 'User'), { recursive: true })
69-
writeFileSync(join(userDataDir, 'User', 'settings.json'), JSON.stringify(settings))
70-
}
68+
const userDataDir = mkdtempSync(join(tmpdir(), 'livecode-'))
69+
mkdirSync(join(userDataDir, 'User'), { recursive: true })
70+
writeFileSync(join(userDataDir, 'User', 'settings.json'), JSON.stringify(settings))
7171

7272
const handle = await Promise.race([
7373
startCodeServer({
@@ -101,7 +101,7 @@ export class SessionManager {
101101
const entry = this.sessions.get(session)
102102
if (!entry) return
103103
entry.close().catch(() => {})
104-
if (entry.userDataDir) rmSync(entry.userDataDir, { recursive: true, force: true })
104+
rmSync(entry.userDataDir, { recursive: true, force: true })
105105
this.sessions.delete(session)
106106
this.usedPorts.delete(entry.port)
107107
console.log(`[livecode] Session "${session}" stopped`)
@@ -110,7 +110,7 @@ export class SessionManager {
110110
cleanup(): void {
111111
for (const [, entry] of this.sessions) {
112112
entry.close().catch(() => {})
113-
if (entry.userDataDir) rmSync(entry.userDataDir, { recursive: true, force: true })
113+
rmSync(entry.userDataDir, { recursive: true, force: true })
114114
}
115115
this.sessions.clear()
116116
this.usedPorts.clear()

0 commit comments

Comments
 (0)