Browse Source

Slight change to Tokens::get_similar_token_offsets.

merge-requests/37/head
eidheim 11 years ago
parent
commit
573a759b33
  1. 14
      src/Tokens.cc
  2. 2
      src/Tokens.h

14
src/Tokens.cc

@ -20,15 +20,13 @@ clang::Tokens::~Tokens() {
//This works across TranslationUnits! However, to get rename refactoring to work, //This works across TranslationUnits! However, to get rename refactoring to work,
//one have to open all the files that might include a similar token //one have to open all the files that might include a similar token
//Similar tokens defined as tokens with equal referenced cursors. //Similar tokens defined as tokens with equal referenced cursors.
std::vector<std::pair<unsigned, unsigned> > clang::Tokens::get_similar_token_offsets(clang::Token& token) { std::vector<std::pair<unsigned, unsigned> > clang::Tokens::get_similar_token_offsets(const std::string &usr) {
std::vector<std::pair<unsigned, unsigned> > offsets; std::vector<std::pair<unsigned, unsigned> > offsets;
auto referenced=token.get_cursor().get_referenced(); for(auto &token: *this) {
if(referenced) { if(token.get_kind()==clang::Token_Identifier) {
auto referenced_usr=referenced.get_usr(); auto referenced=token.get_cursor().get_referenced();
for(auto &a_token: *this) { if(referenced && usr==referenced.get_usr()) {
auto a_referenced=a_token.get_cursor().get_referenced(); offsets.emplace_back(token.offsets);
if(a_referenced && referenced_usr==a_referenced.get_usr() && token.get_spelling()==a_token.get_spelling()) {
offsets.emplace_back(a_token.offsets);
} }
} }
} }

2
src/Tokens.h

@ -13,7 +13,7 @@ namespace clang {
Tokens(CXTranslationUnit &cx_tu, const SourceRange &range); Tokens(CXTranslationUnit &cx_tu, const SourceRange &range);
public: public:
~Tokens(); ~Tokens();
std::vector<std::pair<unsigned, unsigned> > get_similar_token_offsets(clang::Token& token); std::vector<std::pair<unsigned, unsigned> > get_similar_token_offsets(const std::string &usr);
std::vector<std::pair<std::string, unsigned> > get_cxx_methods(); std::vector<std::pair<std::string, unsigned> > get_cxx_methods();
private: private:
CXToken *cx_tokens; CXToken *cx_tokens;

Loading…
Cancel
Save