// -*- mode: c++; c-file-style: "linux"; c-basic-offset: 2; indent-tabs-mode: nil -*- // // Copyright (C) 2009-2015 Andrej Vodopivec // Copyright (C) 2015 Gunter Königsmann // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // /*! \file This file declares the class AutoComplete. AutoComplete creates the list of autocompletions for a string and allows dynamically appending maxima commands to this list as soon as they are defined. */ #ifndef AUTOCOMPLETE_H #define AUTOCOMPLETE_H #include #include #include class AutoComplete { WX_DECLARE_STRING_HASH_MAP(int,WorksheetWords); public: //! All types of things we can autocomplete enum autoCompletionType { command, //! Command names. \attention Must be the first entry in this enum tmplte, //! Function templates unit //! Unit names. \attention Must be the last entry in this enum }; AutoComplete(); bool LoadSymbols(wxString file); void AddSymbol(wxString fun, autoCompletionType type=command); //! Add words to the list of words that appear in the workSheet's code cells void AddWorksheetWords(wxArrayString wordlist); //! Clear the list of words that appear in the workSheet's code cells void ClearWorksheetWords(); wxArrayString CompleteSymbol(wxString partial, autoCompletionType type=command); wxString FixTemplate(wxString templ); private: wxArrayString m_wordList[3]; wxRegEx m_args; WorksheetWords m_worksheetWords; }; #endif // AUTOCOMPLETE_H