" Add response
put = l:response
" call append('$', 'Claude: ' . l:response)
- put = repeat('-', 80) . '\n'
+ put = repeat('-', 80)
+ put = ''
" Move cursor to new line
normal! G
startinsert!
endfunction
+function! ClaudyWhat() range
+ let l:start_line = line("'<")
+ let l:end_line = line("'>")
+ let l:selected_text = join(getline(l:start_line, l:end_line))
+
+ let l:json_data = {
+ \ 'model': 'claude-3-5-sonnet-20241022',
+ \ 'max_tokens': 1024,
+ \ 'messages': [
+ \ {
+ \ 'role': 'user',
+ \ 'content': "What is this code doing? explain with a one-liner: " . l:selected_text
+ \ }
+ \ ]
+ \ }
+
+ let l:response = ClaudyRequest(l:json_data)
+
+ " Create popup window
+ let l:popup_opts = {
+ \ 'line': 'cursor+1',
+ \ 'col': 'cursor',
+ \ 'pos': 'topleft',
+ \ 'padding': [0,1,0,1],
+ \ 'border': [],
+ \ 'close': 'click',
+ \ 'moved': 'any',
+ \ 'maxwidth': 50,
+ \ 'minwidth': 50,
+ \ 'wrap': 1
+ \ }
+
+ call popup_create(l:response, l:popup_opts)
+endfunction
+
vnoremap <leader>c :<c-u>call ClaudyRefactor()
vnoremap <leader>i :<c-u>call ClaudyImplement()
+vnoremap <leader>w :<c-u>call ClaudyWhat()<CR>
vnoremap <leader>b :<c-u>call ClaudyTest()