Browse Source

Fixed autocomplete again, now should work in all cases.

merge-requests/365/head
eidheim 10 years ago
parent
commit
946134d7fe
  1. 18
      src/source.cc

18
src/source.cc

@ -1207,15 +1207,23 @@ void Source::ClangViewAutocomplete::autocomplete() {
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()];
buffer=get_buffer()->get_text();
auto iter = get_source_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 column_nr=iter.get_line_offset()+1;
while((buffer.back()>='a' && buffer.back()<='z') || (buffer.back()>='A' && buffer.back()<='Z') || (buffer.back()>='0' && buffer.back()<='9') || buffer.back()=='_') {
buffer.pop_back();
unsigned c=1;
if(c<=buffer.size()) {
char *chr=&buffer[buffer.size()-c];
while((*chr>='a' && *chr<='z') || (*chr>='A' && *chr<='Z') || (*chr>='0' && *chr<='9') || *chr=='_') {
*chr=' ';
column_nr--;
c++;
if(c>buffer.size())
break;
chr--;
}
}
buffer+="\n";
buffer+=get_buffer()->get_text(iter, get_buffer()->end());
set_status("autocomplete...");
if(autocomplete_thread.joinable())
autocomplete_thread.join();

Loading…
Cancel
Save