Skip to content

Commit 6e79de7

Browse files
committed
Migrate the chatCodeCompletionInstructions setting to chatCodeCompletionsInstructions
1 parent 0548ee4 commit 6e79de7

9 files changed

Lines changed: 93 additions & 18 deletions

File tree

packages/vscode/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -652,10 +652,10 @@
652652
"description": "Style instructions for chat responses when using diff format.",
653653
"default": "Whenever proposing a file use the markdown code block syntax. Each code block should be a diff patch."
654654
},
655-
"codeWebChat.chatCodeCompletionInstructions": {
655+
"codeWebChat.chatCodeCompletionsInstructions": {
656656
"type": "string",
657657
"scope": "resource",
658-
"description": "Instruction for code completion in chat",
658+
"description": "Instructions for code completions in chat.",
659659
"default": "Find correct replacement text for the <missing text> symbol. Correctly formatted response begins with a code block containing replacement text end then proceeds with explanation. Always refer to symbol \"<missing_text>\" as \"cursor position\" and \"replacement\" as \"completion\"."
660660
},
661661
"codeWebChat.presets": {

packages/vscode/src/commands/code-completion-in-chat-commands.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ async function handle_code_completion_in_chat_command(
7171

7272
const config = vscode.workspace.getConfiguration('codeWebChat')
7373
const chat_code_completion_instructions = config.get<string>(
74-
'chatCodeCompletionInstructions'
74+
'chatCodeCompletionsInstructions'
7575
)
7676

7777
const instructions = `${chat_code_completion_instructions}${

packages/vscode/src/commands/code-completion-to-clipboard-commands.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ async function perform_fim_completion_to_clipboard(
5959

6060
const config = vscode.workspace.getConfiguration('codeWebChat')
6161
const chat_code_completion_instructions = config.get<string>(
62-
'chatCodeCompletionInstructions'
62+
'chatCodeCompletionsInstructions'
6363
)
6464

6565
const instructions = `${chat_code_completion_instructions}${

packages/vscode/src/extension.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,18 @@ import * as vscode from 'vscode'
22
import { context_initialization } from './context/context-initialization'
33
import { ViewProvider } from './view/backend/view-provider'
44
import { WebSocketManager } from './services/websocket-manager'
5-
import { migrate_remove_copilot_presets } from './migrations/migrate-remove-copilot-presets'
6-
import { migrate_api_tool_settings } from './migrations/migrate-api-tool-settings'
7-
import { migrate_file_refactoring_to_array } from './migrations/migrate-file-refactoring-to-array'
5+
import {
6+
migrate_remove_copilot_presets,
7+
migrate_api_tool_settings,
8+
migrate_file_refactoring_to_array,
9+
migrate_settings_prefix,
10+
migrate_keybindings,
11+
migrate_api_keys_to_providers,
12+
migrate_api_tool_configs,
13+
migrate_api_providers_to_secret_storage,
14+
migrate_commit_message_prompt_to_instructions,
15+
migrate_chat_code_completion_instructions
16+
} from './migrations'
817
import {
918
apply_chat_response_command,
1019
refactor_commands,
@@ -32,12 +41,6 @@ import {
3241
open_settings_command,
3342
open_url_command
3443
} from './commands'
35-
import { migrate_settings_prefix } from './migrations/migrate-settings-prefix'
36-
import { migrate_keybindings } from './migrations/migrate-keybindings'
37-
import { migrate_api_keys_to_providers } from './migrations/migrate-api-keys-to-providers'
38-
import { migrate_api_tool_configs } from './migrations/migrate-api-tool-configs'
39-
import { migrate_api_providers_to_secret_storage } from './migrations/migrate-api-providers-to-secret-storage'
40-
import { migrate_commit_message_prompt_to_instructions } from './migrations/migrate-commit-message-prompt-to-instructions'
4144

4245
// Store WebSocketServer instance at module level
4346
let websocket_server_instance: WebSocketManager | null = null
@@ -70,6 +73,7 @@ export async function activate(context: vscode.ExtensionContext) {
7073
await migrate_file_refactoring_to_array(context)
7174
// Remove a few weeks after 25 May 2025
7275
await migrate_commit_message_prompt_to_instructions(context)
76+
await migrate_chat_code_completion_instructions(context)
7377
}
7478

7579
await migrations()
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export * from './migrate-remove-copilot-presets'
2+
export * from './migrate-api-tool-settings'
3+
export * from './migrate-file-refactoring-to-array'
4+
export * from './migrate-settings-prefix'
5+
export * from './migrate-keybindings'
6+
export * from './migrate-api-keys-to-providers'
7+
export * from './migrate-api-tool-configs'
8+
export * from './migrate-api-providers-to-secret-storage'
9+
export * from './migrate-commit-message-prompt-to-instructions'
10+
export * from './migrate-chat-code-completion-instructions'
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
import * as vscode from 'vscode'
2+
import { Logger } from '../helpers/logger'
3+
4+
const MIGRATION_ID = 'chat-code-completion-instructions-migration-20240625'
5+
const OLD_SETTING_KEY = 'codeWebChat.chatCodeCompletionInstructions'
6+
const NEW_SETTING_KEY = 'codeWebChat.chatCodeCompletionsInstructions'
7+
8+
/**
9+
* Migration to rename chatCodeCompletionInstructions setting to chatCodeCompletionsInstructions
10+
* This migration runs only once per extension installation.
11+
*/
12+
export async function migrate_chat_code_completion_instructions(
13+
context: vscode.ExtensionContext
14+
): Promise<void> {
15+
try {
16+
// Check if migration has already run
17+
if (context.globalState.get(MIGRATION_ID)) {
18+
Logger.log({
19+
function_name: 'migrate_chat_code_completion_instructions',
20+
message:
21+
'Chat code completion instructions migration already completed. Skipping.'
22+
})
23+
return
24+
}
25+
26+
const config = vscode.workspace.getConfiguration()
27+
const existing_value = config.get<string>(OLD_SETTING_KEY)
28+
29+
if (existing_value !== undefined) {
30+
// Set the new setting with the existing value
31+
await config.update(
32+
NEW_SETTING_KEY,
33+
existing_value,
34+
vscode.ConfigurationTarget.Global
35+
)
36+
37+
Logger.log({
38+
function_name: 'migrate_chat_code_completion_instructions',
39+
message:
40+
'Successfully migrated chatCodeCompletionInstructions to chatCodeCompletionsInstructions'
41+
})
42+
} else {
43+
Logger.log({
44+
function_name: 'migrate_chat_code_completion_instructions',
45+
message:
46+
'No existing chatCodeCompletionInstructions setting found to migrate.'
47+
})
48+
}
49+
50+
// Mark migration as completed
51+
await context.globalState.update(MIGRATION_ID, true)
52+
} catch (error) {
53+
Logger.error({
54+
function_name: 'migrate_chat_code_completion_instructions',
55+
message:
56+
'Error migrating chatCodeCompletionInstructions to chatCodeCompletionsInstructions',
57+
data: error instanceof Error ? error.message : String(error)
58+
})
59+
// Do NOT mark as completed if an error occurred
60+
}
61+
}

packages/vscode/src/view/backend/message-handlers/handle-copy-prompt.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ export const handle_copy_prompt = async (
3838

3939
// Use the configurable instruction for code completions copy
4040
const config = vscode.workspace.getConfiguration('codeWebChat')
41-
const chatCodeCompletionInstructions = config.get<string>(
42-
'chatCodeCompletionInstructions'
41+
const chatCodeCompletionsInstructions = config.get<string>(
42+
'chatCodeCompletionsInstructions'
4343
)
4444

45-
const instructions = `${chatCodeCompletionInstructions}${
45+
const instructions = `${chatCodeCompletionsInstructions}${
4646
current_instruction ? ` Follow suggestions: ${current_instruction}` : ''
4747
}`
4848

packages/vscode/src/view/backend/message-handlers/handle-preview-preset.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export const handle_preview_preset = async (
4444

4545
const config = vscode.workspace.getConfiguration('codeWebChat')
4646
const chat_code_completion_instructions = config.get<string>(
47-
'chatCodeCompletionInstructions'
47+
'chatCodeCompletionsInstructions'
4848
)
4949

5050
const instructions = `${chat_code_completion_instructions}${

packages/vscode/src/view/backend/message-handlers/handle-send-prompt.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export const handle_send_prompt = async (
4848

4949
const config = vscode.workspace.getConfiguration('codeWebChat')
5050
const chat_code_completion_instructions = config.get<string>(
51-
'chatCodeCompletionInstructions'
51+
'chatCodeCompletionsInstructions'
5252
)
5353

5454
const instructions = `${chat_code_completion_instructions}${

0 commit comments

Comments
 (0)