Here's some profiling on the codecompletion plugin. Results are interesting...
Flat profile:
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls  ms/call  ms/call  name    
 15.79      0.12     0.12 32143644     0.00     0.00  wxStringBase::at(unsigned int) const
 13.16      0.22     0.10 32143644     0.00     0.00  wxString::GetChar(unsigned int) const
  7.89      0.28     0.06  7299941     0.00     0.00  Tokenizer::IsEOF() const
  6.58      0.33     0.05    66867     0.00     0.00  Tokenizer::CompactSpaces(wxString&) const
  5.26      0.37     0.04 25016299     0.00     0.00  Tokenizer::CurrentChar() const
  5.26      0.41     0.04    69053     0.00     0.00  Tokenizer::SkipBlock(char const&)
  3.95      0.44     0.03  6016913     0.00     0.00  Tokenizer::MoveToNextChar(unsigned int)
  2.63      0.46     0.02  1454827     0.00     0.00  wxString::append(unsigned int, char)
  2.63      0.48     0.02  1060893     0.00     0.00  wxStringBase::empty() const
  2.63      0.50     0.02   818659     0.00     0.00  wxString::operator char const*() const
  2.63      0.52     0.02   444750     0.00     0.00  Tokenizer::DoGetToken()
  2.63      0.54     0.02   108887     0.00     0.00  SearchTreeNode::GetDeepestMatchingPosition(BasicSearchTree*, wxString const&, unsigned int)
  1.32      0.55     0.01  6489068     0.00     0.00  wxStringBase::size() const
  1.32      0.56     0.01  2880137     0.00     0.00  wxStringBase::at(unsigned int)
  1.32      0.57     0.01  2880137     0.00     0.00  wxString::operator[](unsigned int)
  1.32      0.58     0.01  2809196     0.00     0.00  Tokenizer::NotEOF() const
  1.32      0.59     0.01  1520388     0.00     0.00  wxString::~wxString()
  1.32      0.60     0.01  1454827     0.00     0.00  wxString::operator<<(char)
  1.32      0.61     0.01   687707     0.00     0.00  wxBaseArrayPtrVoid::operator[](unsigned int) const
  1.32      0.62     0.01   669131     0.00     0.00  TokensArray::operator[](unsigned int) const
  1.32      0.63     0.01   460889     0.00     0.00  wxStringData::Lock()
  1.32      0.64     0.01   423075     0.00     0.00  std::_Rb_tree<char, std::pair<char const, unsigned int>, std::_Select1st<std::pair<char const, unsigned int> >, std::less<char>, std::allocator<std::pair<char const, unsigned int> > >::_S_key(std::_Rb_tree_node<std::pair<char const, unsigned int> > const*)
  1.32      0.65     0.01   368749     0.00     0.00  __gnu_cxx::__normal_iterator<SearchTreeNode**, std::vector<SearchTreeNode*, std::allocator<SearchTreeNode*> > >::operator+(int const&) const
  1.32      0.66     0.01   245572     0.00     0.00  std::_Rb_tree<char, std::pair<char const, unsigned int>, std::_Select1st<std::pair<char const, unsigned int> >, std::less<char>, std::allocator<std::pair<char const, unsigned int> > >::end()
  1.32      0.67     0.01   122763     0.00     0.00  std::vector<SearchTreeNode*, std::allocator<SearchTreeNode*> >::size() const
  1.32      0.68     0.01   116830     0.00     0.00  BasicSearchTree::GetNode(unsigned int, bool)
  1.32      0.69     0.01    97276     0.00     0.00  operator==(wxString const&, char const*)
  1.32      0.70     0.01    76280     0.00     0.00  wxString::append(wxString const&)
  1.32      0.71     0.01    25307     0.00     0.00  BasicSearchTree::FindNode(wxString const&, unsigned int, SearchTreePoint*)
  1.32      0.72     0.01    25185     0.00     0.00  SearchTree<TokensArray>::GetItemAtPos(unsigned int)
  1.32      0.73     0.01    14523     0.00     0.00  std::_Rb_tree<unsigned int, std::pair<unsigned int const, unsigned int>, std::_Select1st<std::pair<unsigned int const, unsigned int> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int> > >::_M_get_node()
  1.32      0.74     0.01    10563     0.00     0.00  void std::_Construct<std::pair<char const, unsigned int>, std::pair<char const, unsigned int> >(std::pair<char const, unsigned int>*, std::pair<char const, unsigned int> const&)
  1.32      0.75     0.01       11     0.91     2.34  Parser::AddTreeNamespace(wxTreeCtrl&, wxTreeItemId const&, Token*)
  1.32      0.76     0.01        1    10.00    10.29  BasicSearchTree::~BasicSearchTree()
  0.00      0.76     0.00  8478747     0.00     0.00  wxStringBase::GetStringData() const
The rest of the functions and methods give zero time.