| Commit message (Collapse) | Author | Age | Files |
| | |
|
| |\
| |
| | |
detect chat window in other tabs as well
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
First search for AI chat windows within the same tab and then within other tabs if none are found in the current tab.
It now prioritizes the reusing of an existing chat window that matches the '.aichat' filetype before considering opening a new one.
If there are no existing AI chat windows, the plugin will open a new chat window as a last resort.
diff --git a/autoload/vim_ai.vim b/autoload/vim_ai.vim:
- " reuse chat in active window or tab
+ " TODO: look for first active chat buffer. If .aichat file is used,
+ " then reuse chat in active window
- " allow .aichat files windows to be switched to, preferably on same tab
- let buffer_list_tab = tabpagebuflist(tabpagenr())
- let buffer_list_tab = filter(buffer_list_tab, 'getbufvar(v:val, "&filetype") ==# "aichat"')
-
- let buffer_list = []
- for i in range(tabpagenr('$'))
- call extend(buffer_list, tabpagebuflist(i + 1))
- endfor
- let buffer_list = filter(buffer_list, 'getbufvar(v:val, "&filetype") ==# "aichat"')
-
- if len(buffer_list_tab) > 0
- call win_gotoid(win_findbuf(buffer_list_tab[0])[0])
- elseif len(buffer_list) > 0
- call win_gotoid(win_findbuf(buffer_list[0])[0])
- else
- " open new chat window
- let l:open_conf = l:config['ui']['open_chat_command']
- call s:OpenChatWindow(l:open_conf)
- endif
+ " open new chat window
+ let l:open_conf = l:config['ui']['open_chat_command']
+ call s:OpenChatWindow(l:open_conf)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
diff --git a/autoload/vim_ai.vim b/autoload/vim_ai.vim:
-
- let l:chat_win_ids = win_findbuf(bufnr(s:scratch_buffer_name))
- if !empty(l:chat_win_ids)
- " TODO: look for first active chat buffer. If .aichat file is used,
- " then reuse chat in active window
- call win_gotoid(l:chat_win_ids[0])
+ let l:chat_win_id = bufwinid(s:scratch_buffer_name)
+ if l:chat_win_id != -1
+ " TODO: look for first active chat buffer, in case .aichat file is used
+ " reuse chat in active window
+ call win_gotoid(l:chat_win_id)
|
| |\ \
| | |
| | | |
automatically unset &paste also after failed command
|
| | | | |
|
| | |/ |
|
| | | |
|
| | | |
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Check if the start and end line of range equals that of visual
selection.
If so, take the visual selection;
otherwise the supplied range
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
These changes were necessary to fix a bug where commands were not
being executed correctly in non-visual modes, and to make the code
cleaner and more efficient. By explicitly handling the visual
selection state, it ensures that the plugin functions correctly
regardless of how the user invokes the AI features.
|
| |
|
|
| |
addresses https://github.com/madox2/vim-ai/issues/76
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|