#ifndef TRANSLATIONUNIT_H_ #define TRANSLATIONUNIT_H_ #include #include #include #include #include #include "Index.h" #include "Diagnostic.h" #include "Tokens.h" #include "CodeCompleteResults.h" #include "Cursor.h" namespace clang { class TranslationUnit { public: TranslationUnit(Index &index, const std::string &filepath, const std::vector &command_line_args); TranslationUnit(Index &index, const std::string &filepath, const std::vector &command_line_args, const std::map &buffers, unsigned flags=DefaultFlags()); TranslationUnit(Index &index, const std::string &filepath); ~TranslationUnit(); int ReparseTranslationUnit(const std::map &buffers, unsigned flags=DefaultFlags()); static unsigned DefaultFlags(); void parse(Index &index, const std::string &filepath, const std::vector &command_line_args, const std::map &buffers, unsigned flags=DefaultFlags()); clang::CodeCompleteResults get_code_completions(const std::map &buffers, unsigned line_number, unsigned column); std::vector get_diagnostics(); std::unique_ptr get_tokens(unsigned start_offset, unsigned end_offset); clang::Cursor get_cursor(std::string path, unsigned offset); CXTranslationUnit cx_tu; }; } // namespace clang #endif // TRANSLATIONUNIT_H_