11import * as vscode from 'vscode'
22import axios from 'axios'
33import { make_api_request } from '../utils/make-api-request'
4- import { code_completion_instructions } from '../constants/instructions'
4+ import { code_at_cursor_instructions } from '../constants/instructions'
55import { FilesCollector } from '../utils/files-collector'
66import {
77 ModelProvidersManager ,
@@ -11,8 +11,8 @@ import { Logger } from '@shared/utils/logger'
1111import he from 'he'
1212import { PROVIDERS } from '@shared/constants/providers'
1313import {
14- LAST_SELECTED_CODE_COMPLETION_CONFIG_ID_STATE_KEY ,
15- RECENTLY_USED_CODE_COMPLETION_CONFIG_IDS_STATE_KEY
14+ LAST_SELECTED_CODE_AT_CURSOR_CONFIG_ID_STATE_KEY ,
15+ RECENTLY_USED_CODE_AT_CURSOR_CONFIG_IDS_STATE_KEY
1616} from '@/constants/state-keys'
1717import { ToolConfig } from '@/services/model-providers-manager'
1818import { PanelProvider } from '@/views/panel/backend/panel-provider'
@@ -55,17 +55,17 @@ const show_inline_completion = async (params: {
5555 } , 10000 )
5656}
5757
58- const get_code_completion_config = async (
58+ const get_code_at_cursor_config = async (
5959 api_providers_manager : ModelProvidersManager ,
6060 show_quick_pick : boolean = false ,
6161 context : vscode . ExtensionContext ,
6262 config_id ?: string ,
6363 panel_provider ?: PanelProvider
6464) : Promise < { provider : any ; config : any } | undefined > => {
65- const code_completions_configs =
65+ const code_at_cursor_configs =
6666 await api_providers_manager . get_code_completions_tool_configs ( )
6767
68- if ( code_completions_configs . length == 0 ) {
68+ if ( code_at_cursor_configs . length == 0 ) {
6969 vscode . commands . executeCommand ( 'codeWebChat.settings' )
7070 vscode . window . showInformationMessage (
7171 dictionary . information_message . NO_CODE_COMPLETIONS_CONFIGURATIONS_FOUND
@@ -77,9 +77,8 @@ const get_code_completion_config = async (
7777
7878 if ( config_id !== undefined ) {
7979 selected_config =
80- code_completions_configs . find (
81- ( c ) => get_tool_config_id ( c ) === config_id
82- ) || null
80+ code_at_cursor_configs . find ( ( c ) => get_tool_config_id ( c ) === config_id ) ||
81+ null
8382 } else if ( ! show_quick_pick ) {
8483 const default_config =
8584 await api_providers_manager . get_default_code_completions_config ( )
@@ -88,16 +87,16 @@ const get_code_completion_config = async (
8887 selected_config = default_config
8988 } else {
9089 const last_selected_id = context . workspaceState . get < string > (
91- LAST_SELECTED_CODE_COMPLETION_CONFIG_ID_STATE_KEY
90+ LAST_SELECTED_CODE_AT_CURSOR_CONFIG_ID_STATE_KEY
9291 )
9392 if ( last_selected_id ) {
9493 selected_config =
95- code_completions_configs . find (
94+ code_at_cursor_configs . find (
9695 ( c ) => get_tool_config_id ( c ) === last_selected_id
9796 ) || null
9897 }
99- if ( ! selected_config && code_completions_configs . length > 0 ) {
100- selected_config = code_completions_configs [ 0 ]
98+ if ( ! selected_config && code_at_cursor_configs . length > 0 ) {
99+ selected_config = code_at_cursor_configs [ 0 ]
101100 }
102101 }
103102 }
@@ -106,13 +105,13 @@ const get_code_completion_config = async (
106105 const create_items = ( ) => {
107106 const recent_ids =
108107 context . workspaceState . get < string [ ] > (
109- RECENTLY_USED_CODE_COMPLETION_CONFIG_IDS_STATE_KEY
108+ RECENTLY_USED_CODE_AT_CURSOR_CONFIG_IDS_STATE_KEY
110109 ) || [ ]
111110
112111 const matched_recent_configs : ToolConfig [ ] = [ ]
113112 const remaining_configs : ToolConfig [ ] = [ ]
114113
115- code_completions_configs . forEach ( ( config ) => {
114+ code_at_cursor_configs . forEach ( ( config ) => {
116115 const id = get_tool_config_id ( config )
117116 if ( recent_ids . includes ( id ) ) {
118117 matched_recent_configs . push ( config )
@@ -178,11 +177,11 @@ const get_code_completion_config = async (
178177
179178 const quick_pick = vscode . window . createQuickPick ( )
180179 quick_pick . items = create_items ( )
181- quick_pick . placeholder = 'Select code completions configuration'
180+ quick_pick . placeholder = 'Select code at cursor configuration'
182181 quick_pick . matchOnDescription = true
183182
184183 const last_selected_id = context . workspaceState . get < string > (
185- LAST_SELECTED_CODE_COMPLETION_CONFIG_ID_STATE_KEY
184+ LAST_SELECTED_CODE_AT_CURSOR_CONFIG_ID_STATE_KEY
186185 )
187186
188187 const items = quick_pick . items as ( vscode . QuickPickItem & { id : string } ) [ ]
@@ -211,17 +210,17 @@ const get_code_completion_config = async (
211210 }
212211
213212 context . workspaceState . update (
214- LAST_SELECTED_CODE_COMPLETION_CONFIG_ID_STATE_KEY ,
213+ LAST_SELECTED_CODE_AT_CURSOR_CONFIG_ID_STATE_KEY ,
215214 selected . id
216215 )
217216
218217 let recents =
219218 context . workspaceState . get < string [ ] > (
220- RECENTLY_USED_CODE_COMPLETION_CONFIG_IDS_STATE_KEY
219+ RECENTLY_USED_CODE_AT_CURSOR_CONFIG_IDS_STATE_KEY
221220 ) || [ ]
222221 recents = [ selected . id , ...recents . filter ( ( id ) => id != selected . id ) ]
223222 context . workspaceState . update (
224- RECENTLY_USED_CODE_COMPLETION_CONFIG_IDS_STATE_KEY ,
223+ RECENTLY_USED_CODE_AT_CURSOR_CONFIG_IDS_STATE_KEY ,
225224 recents
226225 )
227226
@@ -269,7 +268,7 @@ const get_code_completion_config = async (
269268 dictionary . error_message . API_PROVIDER_NOT_FOUND
270269 )
271270 Logger . warn ( {
272- function_name : 'get_code_completion_config ' ,
271+ function_name : 'get_code_at_cursor_config ' ,
273272 message : 'API provider not found for Code Completions tool.'
274273 } )
275274 return
@@ -281,7 +280,7 @@ const get_code_completion_config = async (
281280 }
282281}
283282
284- const perform_code_completion = async ( params : {
283+ const perform_code_at_cursor = async ( params : {
285284 file_tree_provider : any
286285 open_editors_provider : any
287286 context : vscode . ExtensionContext
@@ -314,7 +313,7 @@ const perform_code_completion = async (params: {
314313 )
315314 }
316315
317- const config_result = await get_code_completion_config (
316+ const config_result = await get_code_at_cursor_config (
318317 api_providers_manager ,
319318 params . show_quick_pick ,
320319 params . context ,
@@ -326,23 +325,23 @@ const perform_code_completion = async (params: {
326325 return
327326 }
328327
329- const { provider, config : code_completions_config } = config_result
328+ const { provider, config : code_at_cursor_config } = config_result
330329
331- if ( ! code_completions_config . provider_name ) {
330+ if ( ! code_at_cursor_config . provider_name ) {
332331 vscode . window . showErrorMessage (
333332 dictionary . error_message . API_PROVIDER_NOT_SPECIFIED_FOR_CODE_COMPLETIONS
334333 )
335334 Logger . warn ( {
336- function_name : 'perform_code_completion ' ,
335+ function_name : 'perform_code_at_cursor ' ,
337336 message : 'API provider is not specified for Code Completions tool.'
338337 } )
339338 return
340- } else if ( ! code_completions_config . model ) {
339+ } else if ( ! code_at_cursor_config . model ) {
341340 vscode . window . showErrorMessage (
342341 dictionary . error_message . MODEL_NOT_SPECIFIED_FOR_CODE_COMPLETIONS
343342 )
344343 Logger . warn ( {
345- function_name : 'perform_code_completion ' ,
344+ function_name : 'perform_code_at_cursor ' ,
346345 message : 'Model is not specified for Code Completions tool.'
347346 } )
348347 return
@@ -356,7 +355,7 @@ const perform_code_completion = async (params: {
356355 dictionary . error_message . BUILT_IN_PROVIDER_NOT_FOUND ( provider . name )
357356 )
358357 Logger . warn ( {
359- function_name : 'perform_code_completion ' ,
358+ function_name : 'perform_code_at_cursor ' ,
360359 message : `Built-in provider "${ provider . name } " not found.`
361360 } )
362361 return
@@ -402,11 +401,11 @@ const perform_code_completion = async (params: {
402401 after : `${ text_after_cursor } \n]]>\n</file>\n</files>`
403402 }
404403
405- const content = `${ code_completion_instructions } \n${ payload . before } ${
404+ const content = `${ code_at_cursor_instructions } \n${ payload . before } ${
406405 completion_instructions
407406 ? `<missing_text>${ completion_instructions } </missing_text>`
408407 : '<missing_text>'
409- } ${ payload . after } \n${ code_completion_instructions } `
408+ } ${ payload . after } \n${ code_at_cursor_instructions } `
410409
411410 const messages = [
412411 {
@@ -417,14 +416,14 @@ const perform_code_completion = async (params: {
417416
418417 const body : { [ key : string ] : any } = {
419418 messages,
420- model : code_completions_config . model ,
421- temperature : code_completions_config . temperature
419+ model : code_at_cursor_config . model ,
420+ temperature : code_at_cursor_config . temperature
422421 }
423422
424423 apply_reasoning_effort (
425424 body ,
426425 provider ,
427- code_completions_config . reasoning_effort
426+ code_at_cursor_config . reasoning_effort
428427 )
429428
430429 const cursor_listener = vscode . window . onDidChangeTextEditorSelection ( ( ) => {
@@ -528,7 +527,7 @@ const perform_code_completion = async (params: {
528527 }
529528 } catch ( err : any ) {
530529 Logger . error ( {
531- function_name : 'perform_code_completion ' ,
530+ function_name : 'perform_code_at_cursor ' ,
532531 message : 'Completion error' ,
533532 data : err
534533 } )
@@ -538,15 +537,15 @@ const perform_code_completion = async (params: {
538537 }
539538}
540539
541- export const code_completion_commands = ( params : {
540+ export const code_at_cursor_commands = ( params : {
542541 file_tree_provider : any
543542 open_editors_provider : any
544543 context : vscode . ExtensionContext
545544 panel_provider : PanelProvider
546545} ) => {
547546 return [
548- vscode . commands . registerCommand ( 'codeWebChat.codeCompletion ' , async ( ) =>
549- perform_code_completion ( {
547+ vscode . commands . registerCommand ( 'codeWebChat.codeAtCursor ' , async ( ) =>
548+ perform_code_at_cursor ( {
550549 file_tree_provider : params . file_tree_provider ,
551550 open_editors_provider : params . open_editors_provider ,
552551 context : params . context ,
@@ -555,32 +554,30 @@ export const code_completion_commands = (params: {
555554 } )
556555 ) ,
557556 vscode . commands . registerCommand (
558- 'codeWebChat.codeCompletionWithInstructions ' ,
557+ 'codeWebChat.codeAtCursorWithInstructions ' ,
559558 async ( ) =>
560- perform_code_completion ( {
559+ perform_code_at_cursor ( {
561560 file_tree_provider : params . file_tree_provider ,
562561 open_editors_provider : params . open_editors_provider ,
563562 context : params . context ,
564563 with_completion_instructions : true ,
565564 show_quick_pick : false
566565 } )
567566 ) ,
568- vscode . commands . registerCommand (
569- 'codeWebChat.codeCompletionUsing' ,
570- async ( ) =>
571- perform_code_completion ( {
572- file_tree_provider : params . file_tree_provider ,
573- open_editors_provider : params . open_editors_provider ,
574- context : params . context ,
575- with_completion_instructions : false ,
576- show_quick_pick : true ,
577- panel_provider : params . panel_provider
578- } )
567+ vscode . commands . registerCommand ( 'codeWebChat.codeAtCursorUsing' , async ( ) =>
568+ perform_code_at_cursor ( {
569+ file_tree_provider : params . file_tree_provider ,
570+ open_editors_provider : params . open_editors_provider ,
571+ context : params . context ,
572+ with_completion_instructions : false ,
573+ show_quick_pick : true ,
574+ panel_provider : params . panel_provider
575+ } )
579576 ) ,
580577 vscode . commands . registerCommand (
581- 'codeWebChat.codeCompletionWithInstructionsUsing ' ,
578+ 'codeWebChat.codeAtCursorWithInstructionsUsing ' ,
582579 async ( ) =>
583- perform_code_completion ( {
580+ perform_code_at_cursor ( {
584581 file_tree_provider : params . file_tree_provider ,
585582 open_editors_provider : params . open_editors_provider ,
586583 context : params . context ,
0 commit comments