Browse Source

Cleanup of autocomplete buffer creation.

merge-requests/365/head
eidheim 10 years ago
parent
commit
1858cc2311
  1. 21
      src/source.cc

21
src/source.cc

@ -1206,24 +1206,17 @@ void Source::ClangViewAutocomplete::autocomplete() {
}); });
std::shared_ptr<std::map<std::string, std::string> > buffer_map=std::make_shared<std::map<std::string, std::string> >(); std::shared_ptr<std::map<std::string, std::string> > buffer_map=std::make_shared<std::map<std::string, std::string> >();
auto& buffer=(*buffer_map)[this->file_path.string()]; auto ustr=get_buffer()->get_text();
auto iter=get_buffer()->get_insert()->get_iter(); auto iter=get_buffer()->get_insert()->get_iter();
buffer=get_buffer()->get_text(get_buffer()->begin(), iter);
auto line_nr=iter.get_line()+1; auto line_nr=iter.get_line()+1;
auto column_nr=iter.get_line_offset()+1; auto column_nr=iter.get_line_offset()+1;
unsigned c=1; auto pos=iter.get_offset()-1;
if(c<=buffer.size()) { while(pos>=0 && ((ustr[pos]>='a' && ustr[pos]<='z') || (ustr[pos]>='A' && ustr[pos]<='Z') || (ustr[pos]>='0' && ustr[pos]<='9') || ustr[pos]=='_')) {
char *chr=&buffer[buffer.size()-c]; ustr.replace(pos, 1, " ");
while((*chr>='a' && *chr<='z') || (*chr>='A' && *chr<='Z') || (*chr>='0' && *chr<='9') || *chr=='_') { column_nr--;
*chr=' '; pos--;
column_nr--;
c++;
if(c>buffer.size())
break;
chr--;
}
} }
buffer+=get_buffer()->get_text(iter, get_buffer()->end()); (*buffer_map)[this->file_path.string()]=std::move(ustr); //TODO: does this work?
set_status("autocomplete..."); set_status("autocomplete...");
if(autocomplete_thread.joinable()) if(autocomplete_thread.joinable())
autocomplete_thread.join(); autocomplete_thread.join();

Loading…
Cancel
Save