diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 52aa189a..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,54 +0,0 @@ -cmake_minimum_required (VERSION 3.3.1) - -# -# Project configuration -# -project (SuperClangIndex) -set(CMAKE_CXX_STANDARD 11) -file(GLOB SOURCE_FILES *.cc *.cpp libclangmm/*.cc) -find_program(llvm_config llvm-config-3.8) - - -# -# Find clang library and include directories -# -execute_process( - COMMAND ${llvm_config} --includedir - OUTPUT_VARIABLE LIBCLANG_INCLUDEDIR) -string(STRIP "${LIBCLANG_INCLUDEDIR}" LIBCLANG_INCLUDEDIR) - -execute_process( - COMMAND ${llvm_config} --libdir - OUTPUT_VARIABLE LIBCLANG_LIBDIR) -string(STRIP "${LIBCLANG_LIBDIR}" LIBCLANG_LIBDIR) - -find_library(LIBCLANG_LIBRARIES NAMES libclang clang - PATHS ${LIBCLANG_LIBDIR}) - - - - -set(LIBCLANG_INCLUDEDIR "/usr/local/google/home/jdufault/super-clang-index/clang+llvm-3.9.1-x86_64-linux-gnu-ubuntu-16.04/include") -set(LIBCLANG_LIBDIR "/usr/local/google/home/jdufault/super-clang-index/clang+llvm-3.9.1-x86_64-linux-gnu-ubuntu-16.04/lib") -set(LIBCLANG_LIBRARIES "/usr/local/google/home/jdufault/super-clang-index/clang+llvm-3.9.1-x86_64-linux-gnu-ubuntu-16.04/lib/libclang.so") - - -# -# Debugging -# -#message("SOURCE_FILES: " ${SOURCE_FILES} ) -message("LIBCLANG_INCLUDEDIR: " ${LIBCLANG_INCLUDEDIR}) -message("LIBCLANG_LIBDIR: " ${LIBCLANG_LIBDIR}) -message("LIBCLANG_LIBRARIES: " ${LIBCLANG_LIBRARIES}) -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") -set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall") - - -# -# Setup output binary. -# -include_directories("${PROJECT_SOURCE_DIR}/third_party/rapidjson/include") -include_directories("${LIBCLANG_INCLUDEDIR}") - -add_executable (indexer ${SOURCE_FILES}) -target_link_libraries(indexer ${LIBCLANG_LIBRARIES}) diff --git a/src/command_line.cc b/src/command_line.cc index 7ab3eea6..7abb14bb 100644 --- a/src/command_line.cc +++ b/src/command_line.cc @@ -57,16 +57,18 @@ const int kExpectedClientVersion = 1; +#if false std::string FormatMicroseconds(long long microseconds) { -long long milliseconds = microseconds / 1000; -long long remaining = microseconds - milliseconds; + long long milliseconds = microseconds / 1000; + long long remaining = microseconds - milliseconds; -// Only show two digits after the dot. -while (remaining >= 100) - remaining /= 10; + // Only show two digits after the dot. + while (remaining >= 100) + remaining /= 10; -return std::to_string(milliseconds) + "." + std::to_string(remaining) + "ms"; + return std::to_string(milliseconds) + "." + std::to_string(remaining) + "ms"; } +#endif @@ -86,15 +88,15 @@ return std::to_string(milliseconds) + "." + std::to_string(remaining) + "ms"; // the user erases a character. vscode will resend the completion request if // that happens. struct CodeCompleteCache { -optional cached_path; -optional cached_completion_position; -NonElidedVector cached_results; -NonElidedVector cached_diagnostics; + optional cached_path; + optional cached_completion_position; + NonElidedVector cached_results; + NonElidedVector cached_diagnostics; -bool IsCacheValid(lsTextDocumentPositionParams position) const { - return cached_path == position.textDocument.uri.GetPath() && - cached_completion_position == position.position; -} + bool IsCacheValid(lsTextDocumentPositionParams position) const { + return cached_path == position.textDocument.uri.GetPath() && + cached_completion_position == position.position; + } }; @@ -467,6 +469,8 @@ std::vector GetDeclarationsOfSymbolForGotoDefinition(QueryDatabas } break; } + default: + break; } return {}; diff --git a/src/include_completion.cc b/src/include_completion.cc index 183c98d0..361dfff3 100644 --- a/src/include_completion.cc +++ b/src/include_completion.cc @@ -1,5 +1,3 @@ -#pragma once - #include "include_completion.h" #include "match.h" @@ -8,6 +6,8 @@ #include "standard_includes.h" #include "timer.h" +#include + namespace { std::string ElideLongPath(Config* config, const std::string& path) { @@ -96,7 +96,7 @@ lsCompletionItem BuildCompletionItem(Config* config, std::string path, bool use_ } // namespace IncludeCompletion::IncludeCompletion(Config* config, Project* project) - : config_(config), project_(project), is_scanning(false) {} + : is_scanning(false), config_(config), project_(project) {} void IncludeCompletion::Rescan() { if (is_scanning) diff --git a/src/indexer.cc b/src/indexer.cc index 29264e39..6eeb081c 100644 --- a/src/indexer.cc +++ b/src/indexer.cc @@ -412,6 +412,8 @@ clang::VisiterResult FindTypeVisitor(clang::Cursor cursor, case CXCursor_TemplateRef: *result = cursor; return clang::VisiterResult::Break; + default: + break; } return clang::VisiterResult::Recurse; @@ -485,7 +487,7 @@ clang::VisiterResult VisitDeclForTypeUsageVisitor( } param->previous_cursor = cursor; - break; + return clang::VisiterResult::Continue; // We do not want to recurse for everything, since if we do that we will end // up visiting method definition bodies/etc. Instead, we only recurse for @@ -501,6 +503,9 @@ clang::VisiterResult VisitDeclForTypeUsageVisitor( case CXCursor_CXXStaticCastExpr: case CXCursor_CXXReinterpretCastExpr: return clang::VisiterResult::Recurse; + + default: + return clang::VisiterResult::Continue; } return clang::VisiterResult::Continue; @@ -684,7 +689,7 @@ clang::VisiterResult AddDeclInitializerUsagesVisitor(clang::Cursor cursor, */ switch (cursor.get_kind()) { - case CXCursor_DeclRefExpr: + case CXCursor_DeclRefExpr: { if (cursor.get_referenced().get_kind() != CXCursor_VarDecl) break; @@ -710,6 +715,10 @@ clang::VisiterResult AddDeclInitializerUsagesVisitor(clang::Cursor cursor, IndexVar* ref_def = db->Resolve(ref_id); UniqueAdd(ref_def->uses, loc); break; + } + + default: + break; } return clang::VisiterResult::Recurse; @@ -735,7 +744,7 @@ bool AreEqualLocations(CXIdxLoc loc, CXCursor cursor) { clang::VisiterResult VisitMacroDefinitionAndExpansions(clang::Cursor cursor, clang::Cursor parent, IndexParam* param) { switch (cursor.get_kind()) { case CXCursor_MacroDefinition: - case CXCursor_MacroExpansion: + case CXCursor_MacroExpansion: { // Resolve location, find IndexFile instance. CXSourceRange cx_source_range = clang_Cursor_getSpellingNameRange(cursor.cx_cursor, 0, 0); CXSourceLocation start = clang_getRangeStart(cx_source_range); @@ -769,6 +778,9 @@ clang::VisiterResult VisitMacroDefinitionAndExpansions(clang::Cursor cursor, cla var_def->def.definition_extent = ResolveExtent(cursor.cx_cursor);; } + break; + } + default: break; } @@ -1052,6 +1064,8 @@ void indexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) { // AddInterestingUsageToType(db, arg_type, // FindLocationOfTypeSpecifier(arg)); break; + default: + break; } } @@ -1222,6 +1236,9 @@ bool IsFunctionCallContext(CXCursorKind kind) { // TODO: we need to test lambdas case CXCursor_LambdaExpr: return true; + + default: + break; } return false; diff --git a/src/libclangmm/Cursor.cc b/src/libclangmm/Cursor.cc index 2690296f..2d1dd7c6 100644 --- a/src/libclangmm/Cursor.cc +++ b/src/libclangmm/Cursor.cc @@ -44,6 +44,8 @@ Type Type::strip_qualifiers() const { case CXType_LValueReference: case CXType_Pointer: return clang_getPointeeType(cx_type); + default: + break; } return cx_type; @@ -118,7 +120,7 @@ CXCursorKind Cursor::get_kind() const { Cursor Cursor::get_declaration() const { Type type = get_type(); - + // auto x = new Foo() will not be deduced to |Foo| if we do not use the // canonical type. However, a canonical type will look past typedefs so we // will not accurately report variables on typedefs if we always do this. diff --git a/src/libclangmm/Utility.cc b/src/libclangmm/Utility.cc index 4024a850..db4ca2f3 100644 --- a/src/libclangmm/Utility.cc +++ b/src/libclangmm/Utility.cc @@ -326,6 +326,8 @@ std::string clang::ToString(CXCursorKind kind) { // case CXCursor_FirstExtraDecl: return "FirstExtraDecl"; case CXCursor_LastExtraDecl: return "LastExtraDecl"; + default: + break; } return ""; } diff --git a/src/query.cc b/src/query.cc index 6e1d94a0..5cf89869 100644 --- a/src/query.cc +++ b/src/query.cc @@ -625,6 +625,8 @@ void QueryDatabase::RemoveUsrs(SymbolKind usr_kind, const std::vector& to_r vars[usr_to_var[usr].id] = nullopt; break; } + case SymbolKind::Invalid: + break; } }