fix sticky cursor problem
							parent
							
								
									28af8c92cc
								
							
						
					
					
						commit
						2076676156
					
				
							
								
								
									
										15
									
								
								4ed.cpp
								
								
								
								
							
							
						
						
									
										15
									
								
								4ed.cpp
								
								
								
								
							| 
						 | 
					@ -1641,16 +1641,13 @@ update_cli_handle_with_file(System_Functions *system, Models *models,
 | 
				
			||||||
        result = -1;
 | 
					        result = -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    i32 new_cursor = 0;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    if (cursor_at_end){
 | 
					    if (cursor_at_end){
 | 
				
			||||||
        new_cursor = buffer_size(&file->state.buffer);
 | 
					        i32 new_cursor = buffer_size(&file->state.buffer);
 | 
				
			||||||
    }
 | 
					        for (View_Iter iter = file_view_iter_init(&models->layout, file, 0);
 | 
				
			||||||
    
 | 
					             file_view_iter_good(iter);
 | 
				
			||||||
    for (View_Iter iter = file_view_iter_init(&models->layout, file, 0);
 | 
					             iter = file_view_iter_next(iter)){
 | 
				
			||||||
         file_view_iter_good(iter);
 | 
					            view_cursor_move(iter.view, new_cursor);
 | 
				
			||||||
         iter = file_view_iter_next(iter)){
 | 
					        }
 | 
				
			||||||
        view_cursor_move(iter.view, new_cursor);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    return(result);
 | 
					    return(result);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,6 +59,41 @@ pad_buffer_line(Application_Links *app, Partition *part,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					NOTE(allen):  Things I learned from this experiment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					First of all the batch edits aren't too bad, but I think
 | 
				
			||||||
 | 
					there could be a single system that I run that through that
 | 
				
			||||||
 | 
					knows how to build the batch edit from slightly higher level
 | 
				
			||||||
 | 
					information. For instance the idea in point 2.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Secondly I definitely believe I need some sort of "mini-buffer"
 | 
				
			||||||
 | 
					concept where a view sends commands so that things like
 | 
				
			||||||
 | 
					pasting still work.  Then the contents of the "mini-buffer"
 | 
				
			||||||
 | 
					can be used to complete the edits at all cursor points.
 | 
				
			||||||
 | 
					This doesn't answer all questions, because somehow backspace
 | 
				
			||||||
 | 
					still wants to work for multi-lines even when the "mini-buffer"
 | 
				
			||||||
 | 
					is emtpy.  Such a system would also make it possible to send
 | 
				
			||||||
 | 
					paste commands and cursor navigation to interactive bars.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Thirdly any system like this will probably not want to
 | 
				
			||||||
 | 
					operate through the co-routine system, because that makes
 | 
				
			||||||
 | 
					sending these commands to the "mini-buffer" much more
 | 
				
			||||||
 | 
					difficult.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fourthly I desperately need some way to do multi-highlighting
 | 
				
			||||||
 | 
					multi-cursor showing but it is unclear to me how to do that
 | 
				
			||||||
 | 
					conveniently.  Since this won't exist inside a coroutine
 | 
				
			||||||
 | 
					what does such an API even look like??? It's clear to me now
 | 
				
			||||||
 | 
					that I may need to start pushing for the view routine before
 | 
				
			||||||
 | 
					I am even able to support the GUI. Because that will the
 | 
				
			||||||
 | 
					system up to allow me to think about the problem in more ways.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Finally I have decided not to pursue this direction any more,
 | 
				
			||||||
 | 
					it just seems like the wrong way to do it, so I'll stop without
 | 
				
			||||||
 | 
					doing multi-cursor for now.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CUSTOM_COMMAND_SIG(multi_line_edit){
 | 
					CUSTOM_COMMAND_SIG(multi_line_edit){
 | 
				
			||||||
    Partition *part = &global_part;
 | 
					    Partition *part = &global_part;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue