@@ -102,12 +102,8 @@ local function append_to_main(opts)
102
102
local lines = vim .split (opts .text , ' \n ' , {})
103
103
if # lines == 0 then return end
104
104
105
- local top_line = vim .api .nvim_buf_line_count (main_area .bufnr ) + 1 ;
106
-
107
- if opts .scrolltop then
108
- require (' magenta.util.scroll_buffer' ).scroll_buffer (main_area .bufnr , top_line )
109
- end
110
105
106
+ local top_line = vim .api .nvim_buf_line_count (main_area .bufnr );
111
107
local last_line = vim .api .nvim_buf_get_lines (main_area .bufnr , - 2 , - 1 , false )[1 ] or " "
112
108
113
109
vim .api .nvim_buf_set_option (main_area .bufnr , ' modifiable' , true )
@@ -119,9 +115,13 @@ local function append_to_main(opts)
119
115
120
116
vim .api .nvim_buf_set_option (main_area .bufnr , ' modifiable' , false )
121
117
122
- -- Scroll to bottom
123
- local final_line = vim .api .nvim_buf_line_count (main_area .bufnr )
124
- vim .api .nvim_win_set_cursor (main_area .winid , { final_line , 0 })
118
+ if opts .scrolltop then
119
+ local offset = # lines > 1 and 1 or 0
120
+ require (' magenta.util.scroll_buffer' ).scroll_buffer (main_area .bufnr , top_line + offset )
121
+ else
122
+ local final_line = vim .api .nvim_buf_line_count (main_area .bufnr )
123
+ vim .api .nvim_win_set_cursor (main_area .winid , { final_line , 0 })
124
+ end
125
125
end
126
126
127
127
-- Function to send message to Anthropic
0 commit comments