Skip to content

Commit 75663a3

Browse files
committed
Include saved contexts and file ranges in duplicated workspace state
1 parent eab100d commit 75663a3

3 files changed

Lines changed: 29 additions & 1 deletion

File tree

packages/vscode/src/commands/duplicate-workspace-command.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ import {
55
API_EDIT_FORMAT_STATE_KEY,
66
CHAT_EDIT_FORMAT_STATE_KEY,
77
DUPLICATE_WORKSPACE_CONTEXT_STATE_KEY,
8+
SAVED_CONTEXTS_STATE_KEY,
9+
RANGES_STATE_KEY,
810
type DuplicateWorkspaceContext
911
} from '../constants/state-keys'
12+
import { SavedContext } from '@/types/context'
1013

1114
export function duplicate_workspace_command(
1215
workspace_provider: WorkspaceProvider,
@@ -39,12 +42,19 @@ export function duplicate_workspace_command(
3942
}
4043
}
4144

45+
const ranges =
46+
context.workspaceState.get<Record<string, string>>(RANGES_STATE_KEY)
47+
const saved_contexts = context.workspaceState.get<SavedContext[]>(
48+
SAVED_CONTEXTS_STATE_KEY
49+
)
4250
const context_to_save: DuplicateWorkspaceContext = {
4351
checked_files,
4452
checked_websites,
4553
workspace_root_folders,
4654
timestamp: Date.now(),
47-
open_editors
55+
open_editors,
56+
ranges,
57+
saved_contexts
4858
}
4959

5060
const api_edit_format = context.workspaceState.get(

packages/vscode/src/constants/state-keys.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { SavedContext } from '@/types/context'
2+
13
// Note: Use kebab-case for new keys
24
export const LAST_APPLIED_CHANGES_STATE_KEY = 'last-applied-changes-state'
35
export const LAST_APPLIED_CHANGES_EDITOR_STATE_STATE_KEY =
@@ -79,6 +81,8 @@ export type DuplicateWorkspaceContext = {
7981
timestamp: number
8082
workspace_root_folders: string[]
8183
open_editors?: { path: string; view_column?: number }[]
84+
ranges?: Record<string, string>
85+
saved_contexts?: SavedContext[]
8286
}
8387

8488
export type HistoryEntry = {

packages/vscode/src/context/context-initialization.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import {
1313
CONTEXT_CHECKED_PATHS_STATE_KEY,
1414
CONTEXT_CHECKED_URLS_STATE_KEY,
1515
DUPLICATE_WORKSPACE_CONTEXT_STATE_KEY,
16+
SAVED_CONTEXTS_STATE_KEY,
17+
RANGES_STATE_KEY,
1618
type DuplicateWorkspaceContext
1719
} from '../constants/state-keys'
1820
import { ContextProvider } from './providers/context-provider'
@@ -61,6 +63,18 @@ const restore_duplicated_workspace_context = async (
6163
CONTEXT_CHECKED_URLS_STATE_KEY,
6264
duplicated_context.checked_websites
6365
)
66+
if (duplicated_context.ranges) {
67+
await context.workspaceState.update(
68+
RANGES_STATE_KEY,
69+
duplicated_context.ranges
70+
)
71+
}
72+
if (duplicated_context.saved_contexts) {
73+
await context.workspaceState.update(
74+
SAVED_CONTEXTS_STATE_KEY,
75+
duplicated_context.saved_contexts
76+
)
77+
}
6478
if (duplicated_context.open_editors) {
6579
for (const editor_info of duplicated_context.open_editors) {
6680
try {

0 commit comments

Comments
 (0)