Browse Source

Language protocol: fixes cursor position after style format and rename

merge-requests/365/head
eidheim 8 years ago
parent
commit
cb09fd6b8f
  1. 16
      src/source_language_protocol.cc

16
src/source_language_protocol.cc

@ -414,6 +414,9 @@ void Source::LanguageProtocolView::setup_navigation_and_refactoring() {
result_processed.get_future().get();
get_buffer()->begin_user_action();
auto iter=get_buffer()->get_insert()->get_iter();
auto line=iter.get_line();
auto offset=iter.get_line_offset();
for(auto it=replaces.rbegin();it!=replaces.rend();++it) {
auto start=get_iter_at_line_pos(it->start.line, it->start.index);
auto end=get_iter_at_line_pos(it->end.line, it->end.index);
@ -422,6 +425,11 @@ void Source::LanguageProtocolView::setup_navigation_and_refactoring() {
unescape_text(it->text);
get_buffer()->insert(start, it->text);
}
if(get_buffer()->get_insert()->get_iter().is_end()) {
place_cursor_at_line_offset(line, offset);
hide_tooltips();
scroll_to_cursor_delayed(this, true, false);
}
get_buffer()->end_user_action();
};
}
@ -668,6 +676,9 @@ void Source::LanguageProtocolView::setup_navigation_and_refactoring() {
}
if(view_it!=views.end()) {
(*view_it)->get_buffer()->begin_user_action();
auto iter=get_buffer()->get_insert()->get_iter();
auto line=iter.get_line();
auto offset=iter.get_line_offset();
for(auto offset_it=usage.offsets.rbegin();offset_it!=usage.offsets.rend();++offset_it) {
auto start_iter=(*view_it)->get_iter_at_line_pos(offset_it->first.line, offset_it->first.index);
auto end_iter=(*view_it)->get_iter_at_line_pos(offset_it->second.line, offset_it->second.index);
@ -678,6 +689,11 @@ void Source::LanguageProtocolView::setup_navigation_and_refactoring() {
else
(*view_it)->get_buffer()->insert(start_iter, text);
}
if(usage.new_text && get_buffer()->get_insert()->get_iter().is_end()) {
place_cursor_at_line_offset(line, offset);
hide_tooltips();
scroll_to_cursor_delayed(this, true, false);
}
(*view_it)->get_buffer()->end_user_action();
(*view_it)->save();
usages_renamed.emplace_back(&usage);

Loading…
Cancel
Save