Skip to content

Commit 296b366

Browse files
committed
Extract webview message handling logic into dedicated handler files
1 parent 7cf4c3c commit 296b366

14 files changed

Lines changed: 206 additions & 91 deletions
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { ViewProvider } from '@/view/backend/view-provider'
2+
import { ExtensionMessage } from '@/view/types/messages'
3+
4+
export const handle_get_code_completion_suggestions = (
5+
provider: ViewProvider
6+
): void => {
7+
provider.send_message<ExtensionMessage>({
8+
command: 'CODE_COMPLETION_SUGGESTIONS',
9+
value: provider.code_completion_suggestions
10+
})
11+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { ViewProvider } from '@/view/backend/view-provider'
2+
import { ExtensionMessage } from '@/view/types/messages'
3+
4+
export const handle_get_code_completions_history = (
5+
provider: ViewProvider
6+
): void => {
7+
const history = provider.context.workspaceState.get<string[]>(
8+
'code-completions-history',
9+
[]
10+
)
11+
provider.send_message<ExtensionMessage>({
12+
command: 'FIM_CHAT_HISTORY',
13+
messages: history
14+
})
15+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import * as vscode from 'vscode'
2+
import { ViewProvider } from '@/view/backend/view-provider'
3+
import { ExtensionMessage } from '@/view/types/messages'
4+
5+
export const handle_get_code_completions_mode = (
6+
provider: ViewProvider
7+
): void => {
8+
const has_active_editor = !!vscode.window.activeTextEditor
9+
10+
if (provider.is_code_completions_mode && !has_active_editor) {
11+
provider.is_code_completions_mode = false
12+
provider.send_message<ExtensionMessage>({
13+
command: 'CODE_COMPLETIONS_MODE',
14+
enabled: false
15+
})
16+
} else {
17+
provider.send_message<ExtensionMessage>({
18+
command: 'CODE_COMPLETIONS_MODE',
19+
enabled: provider.is_code_completions_mode
20+
})
21+
}
22+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { ViewProvider } from '@/view/backend/view-provider'
2+
import { ExtensionMessage } from '@/view/types/messages'
3+
4+
export const handle_get_history = (provider: ViewProvider): void => {
5+
const history = provider.context.workspaceState.get<string[]>('history', [])
6+
provider.send_message<ExtensionMessage>({
7+
command: 'CHAT_HISTORY',
8+
messages: history
9+
})
10+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { ViewProvider } from '@/view/backend/view-provider'
2+
import { ExtensionMessage } from '@/view/types/messages'
3+
4+
export const handle_get_instructions = (provider: ViewProvider): void => {
5+
provider.send_message<ExtensionMessage>({
6+
command: 'INSTRUCTIONS',
7+
value: provider.instructions
8+
})
9+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { ViewProvider } from '@/view/backend/view-provider'
2+
import { ExtensionMessage } from '@/view/types/messages'
3+
4+
export const handle_get_open_router_api_key = (
5+
provider: ViewProvider
6+
): void => {
7+
const api_key = provider.api_tools_settings_manager.get_open_router_api_key()
8+
provider.send_message<ExtensionMessage>({
9+
command: 'OPEN_ROUTER_API_KEY',
10+
api_key
11+
})
12+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { ViewProvider } from '@/view/backend/view-provider'
2+
import { ExtensionMessage } from '@/view/types/messages'
3+
4+
export const handle_request_editor_selection_state = (
5+
provider: ViewProvider
6+
): void => {
7+
provider.send_message<ExtensionMessage>({
8+
command: 'EDITOR_SELECTION_CHANGED',
9+
has_selection: provider.has_active_selection
10+
})
11+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { ViewProvider } from '@/view/backend/view-provider'
2+
import { ExtensionMessage } from '@/view/types/messages'
3+
4+
export const handle_request_editor_state = (provider: ViewProvider): void => {
5+
provider.send_message<ExtensionMessage>({
6+
command: 'EDITOR_STATE_CHANGED',
7+
has_active_editor: provider.has_active_editor
8+
})
9+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { ViewProvider } from '@/view/backend/view-provider'
2+
import { SaveCodeCompletionSuggestionsMessage } from '@/view/types/messages'
3+
4+
export const handle_save_code_completion_suggestions = async (
5+
provider: ViewProvider,
6+
message: SaveCodeCompletionSuggestionsMessage
7+
): Promise<void> => {
8+
provider.code_completion_suggestions = message.instruction
9+
await provider.context.workspaceState.update(
10+
'code-completion-suggestions',
11+
message.instruction
12+
)
13+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { ViewProvider } from '@/view/backend/view-provider'
2+
import { SaveCodeCompletionsModeMessage } from '@/view/types/messages'
3+
4+
export const handle_save_code_completions_mode = async (
5+
provider: ViewProvider,
6+
message: SaveCodeCompletionsModeMessage
7+
): Promise<void> => {
8+
provider.is_code_completions_mode = message.enabled
9+
provider.calculate_token_count()
10+
provider.send_message({
11+
command: 'CODE_COMPLETIONS_MODE',
12+
enabled: message.enabled
13+
})
14+
}

0 commit comments

Comments
 (0)