From 5cdaafc6de7b08ec8ae22e37a2be0df5ecdc786b Mon Sep 17 00:00:00 2001 From: wrongway88 Date: Sat, 5 Mar 2016 18:18:54 +0100 Subject: [PATCH] logic: vs plugin fixes Can now deal with single projects and solutions with non-c/c++ projects bug id = 32 --- bin/test/data/log/test_log.txt | 170 ++++++++++++++++++ ide_plugins/vs/coati_plugin_vs_2015.vsix | Bin 68575 -> 68834 bytes .../vs/vs2012/CoatiPlugin/CoatiPlugin.v11.suo | Bin 103936 -> 103936 bytes .../CoatiPlugin/CoatiPluginPackage.cs | 52 ++++-- .../CoatiPlugin/SolutionUtility.cs | 29 ++- .../solution/SolutionParserVisualStudio.cpp | 10 ++ src/lib_gui/platform_includes/deploy.h | 2 +- src/test/CxxParserTestSuite.h | 2 +- 8 files changed, 247 insertions(+), 18 deletions(-) diff --git a/bin/test/data/log/test_log.txt b/bin/test/data/log/test_log.txt index 5a5ba0f6..b9610a0e 100644 --- a/bin/test/data/log/test_log.txt +++ b/bin/test/data/log/test_log.txt @@ -1,188 +1,357 @@ ConfigManager.cpp WARNING: value path/to/nowhere is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:11 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:13 CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:7:15 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:5:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:48 CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:7:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:3:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. Token.cpp ERROR: Location Id was not referenced by this Token. Node.cpp WARNING: Cannot change NodeType after it was already set from namespace to class @@ -196,6 +365,7 @@ Edge.cpp ERROR: Nodes are not plain copies. INFO: send TestMessage2 INFO: handle TestMessage2 INFO: send TestMessage + INFO: handle TestMessage INFO: send TestMessage2 INFO: handle TestMessage2 INFO: send TestMessage diff --git a/ide_plugins/vs/coati_plugin_vs_2015.vsix b/ide_plugins/vs/coati_plugin_vs_2015.vsix index 365ae2700cb09a0be3e9e6fd53134f887ad80867..85a19d45dc72759f83f26f703d6914f7a3ae7d62 100644 GIT binary patch delta 15148 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 delta 14898 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 diff --git a/ide_plugins/vs/vs2012/CoatiPlugin/CoatiPlugin.v11.suo b/ide_plugins/vs/vs2012/CoatiPlugin/CoatiPlugin.v11.suo index 5aea8f32e6712831ff15c1b44158315259520ff3..6cafd2106d3ca9e52ea34251d5cc1d52310e52b2 100644 GIT binary patch delta 2662 zcmb`JZETa*6~~|dgYDR{NsJwmV3Odx5Eyt#ijtKA8RoSR=#(ZQ<0YdFA%&Cx35l6$ z8|)SeEeQ(ot#YY0t!W0yV5|#yrn>Jn9aFQdY%p!>muh8NHEE+_Y$6h^w0Zw)>?*1{ zi4VKd&*$88&wV-fTpv4p!4ke;IaN`pYsu!+w0Tsgk^jWwab;EdeHR~|t=q;<9>i$i z8txYXJ%o$Kq;3bi0;Zf$S#kpB#4Xgbh|)7D|E(0Z%hW50i_9f6$!tZ&FPzdpO8o({ge)b? zNHzH;Sx)?91zAZ}k=0}kS*yZ$kjgr;p45;HWFy%sE|t0mI!dtPuHrDa(7Ic7Y;DvY zC;L@zbqBRha)5LZb>sl$LGoP^B!|coGGTrLGdD#&aouPX1TIl#ju2n`kzb1(X>{J(UZ!Mk*ibY%g=XihRwuW*x;Qarhy;t`c!sufPQnaMha@b3bvlbiQ%h<$$NK3rTZrU!|+?(o6ct3nUSA@?(Jg2pLS;U**~3GphzVYS%|;dX2nJ z-XL!hwZ+?%9`Y`UkxL|xq?Y{!^@%C{bWzyyab!_9@{Pcv5bQtXn5qP9V#du);`HAu zjpw{U+u#eZ2$>qBBd{(6vwEqG#%I-O>5-b-7&azr>=>@qhc}ucb@Ox8(bcv}s<*4Y8|u9Z ze_chMGAdMMQnHXzRkC8`&{y~S+LXgK8k$I|{|NO*Ni*3&TF6e)N**J-$Zn$iRdLuu z+KCveKWbFgeSk>gZEO{jjd7bQYz;&coqOHFxpgO|i@?^n`3y}yacJA9;oW>4<4wV7 z@EM1;{T3#la#k;`JF`JdxP0c{(eN+v*&|QFYXlzc#qeW#WJjO*BF$&TKz6xR9b;V0 zn#gWIy2#J@%lOV7=pSoFsPk!k{PCVNoHq`4zJHqU^F-@G(f|1jc_kfd-5rdug{N<3 zM6FsG^)8ubN8_{#twM(E__mDMktNUDkv-yo$?jvxna+(I+9&do2S1Xhnouo&;KmJn zDhmTRC(o84FM4$&{;11&IXD;f*5RB9Q@l+MZS|*W@z3L|1>KlHymBogr%+|E%J09df{&PR>$WOLo zCjOjA!C*b3;hdsqW;5nai{96bj}V;*;tr&LH)7G)PWT~XMJSR*MJTYV@_)DW$$<^1 zlKx^`kiH(|iW1!^Ty4InzXW}{bd;hp>MuhKa)t|gW&c8S-s6#9y1T)>9a#(?&x-nk z+$SxSqO_W1ibREOlCc^-O7+2>RfXm;$zg_)mJCI{Uqp9*55suRiY!1B>Ta>pPhp5^MUo9*J}ZifsW#X9Ld0&l`qU$uYadFayHk0Isj#cBRJEEjb* zDrMyfd?3Sp7@gI&uc@)Vwz*|b^RCvi1Fc;_byJpQ`vNl7i4tmpFW0MbE7J=a`j2PHQ0x+wY^>aG13w%yp-^e%TK~A^LtS& Ncb&wG2Apvq{$EEzd;$Of delta 2058 zcmcIle{54#6n@{M-MY0ak8O0Fu(^#oMk#Bzbub7@7d8Qd35?MNwz;iz1C)ufm5lMD zZO}0hGu9h-O-P7N-2nNyXLyDf(rBV+5Fruc9|WfSYjh^e2+`GZyUt7!H8FaVujk%- zzI*Ta?z!(YbUG|@19)m7xjUWpo5!p=mjrs<%GYL+@9Ky#0HzA$y7-2RcjZi=!dQ2so!&(d(FtQST z#+suvwh`tNvIv5cnXr1Yjzr&@u)BMH5m)Tn|eb2J13eAAgtJQ@1YcNgAIby!X)jIU1iQ zTp)}jd>@GWRYz0LH|2KrAG3EOaAA~%7aU|df3N->S~0@< z{Z4~WBUH01{#vB4oYuP$a{(*J9MV;gM;yxTWnMQBBepCtVGK~mEMBuD@e4($F>M`N zHI5;5e61|ERl%*IK6yb(t2vVt6Nr3rU5uLT`CO!7GKiphPu9$Db39Seu%!py@K z9N?F&Sj@+KuxKahuoxE|sJ3EkdT=gw?dN6j;P??E+&pB2SF@OK3d5diKnt1CjpPMV zgY>in9`43U9$kaXhkn>#*ugzr&~cp~zZ%_Cv_$PQN#6@8CwRRb)!Jw2I4l31p6TRs z8=-?XT94V#R4?Z0wDAU{fy>Q_>)>=9rEzVuM2Vbg`J$suG@@9ix!Z6R1FeW^(KdL% zYYNcCD++L()$Yt=o^4j{nTM}tNKz}GS%`dtBhTBqt7H34&11t6nXfIT`|uRwBmQ|JIJZJkLVu`LPKZ@g4a@Gw3ge!;cjj zU1k&)_u)JF^%3MIi!w@$g)NWr!XQ4$^tsB~%G;K-m6Z6)T`grTCXz8=!)$)jhJ~6Z zL;_@qav#Bbn>+|hcB>whu>N1a+UFQJ#Y=Z3Yk~F1S=2rp@=uXhGst6i##6fLv)}I z!;{Vx40>MGj}M2A(9U#3G)~~rUU+y@F{=6T9{Bjyeq=-9;eM languages = SolutionUtility.GetSolutionLanguages(dte); - - bool enable = true; - foreach (String language in languages) + try { - if(language != CodeModelLanguageConstants.vsCMLanguageVC - && language != CodeModelLanguageConstants.vsCMLanguageMC) + DTE dte = (DTE)GetService(typeof(DTE)); + List languages = SolutionUtility.GetSolutionLanguages(dte); + + bool enable = false; + foreach (String language in languages) { - enable = false; + if (language == CodeModelLanguageConstants.vsCMLanguageVC + || language == CodeModelLanguageConstants.vsCMLanguageMC) + { + enable = true; + } + } + + if (enable) + { + _menuItemSetActiveToken.Enabled = true; + _menuItemCreateProject.Enabled = true; } } - - if(enable) + catch(Exception e) { - _menuItemSetActiveToken.Enabled = true; - _menuItemCreateProject.Enabled = true; + DisplayMessage("Error", e.Message); } } @@ -208,9 +215,26 @@ namespace CoatiSoftware.CoatiPlugin { string solutionName = SolutionUtility.GetSolutionPath(dte); - string message = NetworkProtocolUtility.createCreateProjectMessage(solutionName); + if(solutionName == "") + { + List items = SolutionUtility.GetSolutionProjectsFullNames(dte); - AsynchronousClient.Send(message); + if(items.Count > 0) + { + solutionName = items[0]; + } + } + + if(solutionName.Length > 0) + { + string message = NetworkProtocolUtility.createCreateProjectMessage(solutionName); + + AsynchronousClient.Send(message); + } + else + { + DisplayMessage("Coati", "Can not create a Coati Project. Please check whether your VS solution is a valid C or C++ solution and is saved."); + } } } } diff --git a/ide_plugins/vs/vs2012/CoatiPlugin/CoatiPlugin/SolutionUtility.cs b/ide_plugins/vs/vs2012/CoatiPlugin/CoatiPlugin/SolutionUtility.cs index e16c4987..4bbb7b59 100644 --- a/ide_plugins/vs/vs2012/CoatiPlugin/CoatiPlugin/SolutionUtility.cs +++ b/ide_plugins/vs/vs2012/CoatiPlugin/CoatiPlugin/SolutionUtility.cs @@ -31,6 +31,21 @@ namespace CoatiSoftware.CoatiPlugin return projectNames; } + public static List GetSolutionProjectsFullNames(DTE dte) + { + List projectNames = new List(); + + EnvDTE.Solution solution = dte.Solution; + EnvDTE.Projects projects = solution.Projects; + + foreach (EnvDTE.Project project in projects) + { + projectNames.Add(project.FullName); + } + + return projectNames; + } + public static List> GetSolutionProjectItems(DTE dte) { List> projectItems = new List>(); @@ -67,13 +82,23 @@ namespace CoatiSoftware.CoatiPlugin foreach (EnvDTE.Project project in projects) { - string language = project.CodeModel.Language; - languages.Add(language); + if (project.CodeModel != null) + { + string language = project.CodeModel.Language; + languages.Add(language); + } } languages = languages.Distinct().ToList(); return languages; } + + public static bool GetSolutionIsSaved(DTE dte) + { + EnvDTE.Solution solution = dte.Solution; + + return solution.Saved; + } } } diff --git a/src/lib/utility/solution/SolutionParserVisualStudio.cpp b/src/lib/utility/solution/SolutionParserVisualStudio.cpp index 7ea6d5c8..d099be7a 100644 --- a/src/lib/utility/solution/SolutionParserVisualStudio.cpp +++ b/src/lib/utility/solution/SolutionParserVisualStudio.cpp @@ -26,6 +26,10 @@ std::string SolutionParserVisualStudio::getSolutionName() if (m_solutionName.size() > 0) { size_t pos = m_solutionName.find(".sln"); + if (pos == std::string::npos) + { + pos = m_solutionName.find(".vcxproj"); + } if (pos != std::string::npos) { @@ -44,6 +48,12 @@ std::vector SolutionParserVisualStudio::getProjects() { std::vector projectFiles; + if (m_solutionName.size() > 0 && m_solutionName.find(".vcxproj") != std::string::npos) + { + projectFiles.push_back(m_solutionName); + return projectFiles; + } + if (m_solution.size() > 0) { std::vector blocks = getProjectBlocks(m_solution); diff --git a/src/lib_gui/platform_includes/deploy.h b/src/lib_gui/platform_includes/deploy.h index 8b8c4369..9e18fa37 100644 --- a/src/lib_gui/platform_includes/deploy.h +++ b/src/lib_gui/platform_includes/deploy.h @@ -1 +1 @@ -// #define DEPLOY +#define DEPLOY diff --git a/src/test/CxxParserTestSuite.h b/src/test/CxxParserTestSuite.h index afdbb733..2c940401 100644 --- a/src/test/CxxParserTestSuite.h +++ b/src/test/CxxParserTestSuite.h @@ -2741,7 +2741,7 @@ public: TS_ASSERT_EQUALS(client.inheritances.size(), 1); TS_ASSERT_EQUALS(client.calls.size(), 1); TS_ASSERT_EQUALS(client.usages.size(), 3); - TS_ASSERT_EQUALS(client.typeUses.size(), 19); + TS_ASSERT_EQUALS(client.typeUses.size(), 19); // TODO: this test fails?! TS_ASSERT_EQUALS(client.files.size(), 3); TS_ASSERT_EQUALS(client.includes.size(), 1);