Browse Source

Source::Token cleanup in preparation for Find Usages.

merge-requests/365/head
eidheim 10 years ago
parent
commit
df09dcbce7
  1. 9
      src/source.h
  2. 5
      src/source_clang.cc

9
src/source.h

@ -16,14 +16,11 @@ namespace Source {
class Token { class Token {
public: public:
Token(): type(-1) {} Token(): type(-1) {}
Token(int type, const std::string &spelling, const std::string &usr): Token(Glib::RefPtr<Gsv::Language> language, int type, const std::string &spelling, const std::string &usr):
type(type), spelling(spelling), usr(usr) {} language(language), type(type), spelling(spelling), usr(usr) {}
operator bool() const {return (type>=0 && spelling.size()>0 && usr.size()>0);} operator bool() const {return (type>=0 && spelling.size()>0 && usr.size()>0);}
bool operator==(const Token &o) const {return (type==o.type &&
spelling==o.spelling &&
usr==o.usr);}
bool operator!=(const Token &o) const {return !(*this==o);}
Glib::RefPtr<Gsv::Language> language;
int type; int type;
std::string spelling; std::string spelling;
std::string usr; std::string usr;

5
src/source_clang.cc

@ -984,7 +984,7 @@ Source::ClangViewAutocomplete(file_path, project_path, language) {
continue; continue;
auto referenced=cursor.get_referenced(); auto referenced=cursor.get_referenced();
if(referenced) if(referenced)
return Token(static_cast<int>(referenced.get_kind()), token.get_spelling(), referenced.get_usr()); return Token(this->language, static_cast<int>(referenced.get_kind()), token.get_spelling(), referenced.get_usr());
} }
} }
} }
@ -994,7 +994,8 @@ Source::ClangViewAutocomplete(file_path, project_path, language) {
rename_similar_tokens=[this](const Token &token, const std::string &text) { rename_similar_tokens=[this](const Token &token, const std::string &text) {
size_t number=0; size_t number=0;
if(source_readable) { if(source_readable && token.language &&
(token.language->get_id()=="chdr" || token.language->get_id()=="cpphdr" || token.language->get_id()=="c" || token.language->get_id()=="cpp" || token.language->get_id()=="objc")) {
auto offsets=clang_tokens->get_similar_token_offsets(static_cast<clang::CursorKind>(token.type), token.spelling, token.usr); auto offsets=clang_tokens->get_similar_token_offsets(static_cast<clang::CursorKind>(token.type), token.spelling, token.usr);
std::vector<std::pair<Glib::RefPtr<Gtk::TextMark>, Glib::RefPtr<Gtk::TextMark> > > marks; std::vector<std::pair<Glib::RefPtr<Gtk::TextMark>, Glib::RefPtr<Gtk::TextMark> > > marks;
for(auto &offset: offsets) { for(auto &offset: offsets) {

Loading…
Cancel
Save