summaryrefslogtreecommitdiff
path: root/autoload/vim_ai.vim
blob: bfe4f3ec62008d7985f8c7eac460f985cc3cfafc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
" Configures ai-chat scratch window.
" - scratch_buffer_keep_open = 0
"   - opens new ai-chat every time
" - scratch_buffer_keep_open = 1
"   - opens last ai-chat buffer
"   - keeps the buffer in the buffer list
function! vim_ai#MakeScratchWindow()
  let l:keep_open = g:vim_ai_chat['ui']['scratch_buffer_keep_open']
  if l:keep_open && bufexists("[AI chat]")
    " reuse chat buffer
    buffer \[AI chat\]
    return
  endif
  setlocal buftype=nofile
  setlocal noswapfile
  setlocal ft=aichat
  if l:keep_open
    setlocal bufhidden=hide
  else
    setlocal bufhidden=wipe
  endif
  if bufexists("[AI chat]")
    " spawn another window if chat already exist
    let l:index = 2
    while bufexists("[AI chat " . l:index . "]")
      let l:index += 1
    endwhile
    execute "file [AI chat ". l:index . "]"
  else
    file [AI chat]
  endif
endfunction