* changed description text of Visual Studio plugin * changed plugin install targets to include VS 2017 * add license file with MIT license * updated vsix for deployment * implement wrapper for all used classes of VCProjectEngine.dll since you cannot just use the oldest version of this assembly (see https://stackoverflow.com/questions/44288050/typecast-fails-when-visual-studio-extension-uses-reference-to-older-assembly). * improved serialization and deserialization of compile commands and compilation databases. * updated used JSON package * rename CommandObject to CompileCommand * changed implementation to keep non-existent file paths in cdb * made methods of SolutionParser non-static * replace spaces with tabs * added IntegrationTests project * configured tests to simulate a new instance of VisualStudio * added cinder as test project for integration tests * remove all absolute paths from expected output of integration tests fortune cookie message = A stranger will bring great meaning to your life.
91 lines
1.7 KiB
C#
91 lines
1.7 KiB
C#
using Microsoft.VisualStudio.VCProjectEngine;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace VCProjectEngineWrapper
|
|
{
|
|
public class
|
|
#if (VS2012)
|
|
VCFileWrapperVs2012
|
|
#elif (VS2013)
|
|
VCFileWrapperVs2013
|
|
#elif (VS2015)
|
|
VCFileWrapperVs2015
|
|
#elif (VS2017)
|
|
VCFileWrapperVs2017
|
|
#endif
|
|
: IVCFileWrapper
|
|
{
|
|
private VCFile _wrapped = null;
|
|
|
|
public
|
|
#if (VS2012)
|
|
VCFileWrapperVs2012
|
|
#elif (VS2013)
|
|
VCFileWrapperVs2013
|
|
#elif (VS2015)
|
|
VCFileWrapperVs2015
|
|
#elif (VS2017)
|
|
VCFileWrapperVs2017
|
|
#endif
|
|
(object wrapped)
|
|
{
|
|
_wrapped = wrapped as VCFile;
|
|
}
|
|
|
|
public bool isValid()
|
|
{
|
|
return (_wrapped != null);
|
|
}
|
|
|
|
public string GetWrappedVersion()
|
|
{
|
|
return Utility.GetWrappedVersion();
|
|
}
|
|
|
|
public string GetSubType()
|
|
{
|
|
return _wrapped.SubType;
|
|
}
|
|
|
|
public IVCProjectWrapper GetProject()
|
|
{
|
|
return new
|
|
#if (VS2012)
|
|
VCProjectWrapperVs2012
|
|
#elif (VS2013)
|
|
VCProjectWrapperVs2013
|
|
#elif (VS2015)
|
|
VCProjectWrapperVs2015
|
|
#elif (VS2017)
|
|
VCProjectWrapperVs2017
|
|
#endif
|
|
(_wrapped.project);
|
|
}
|
|
|
|
public List<IVCFileConfigurationWrapper> GetFileConfigurations()
|
|
{
|
|
List<IVCFileConfigurationWrapper> fileConfigurations = new List<IVCFileConfigurationWrapper>();
|
|
foreach (Object configuration in _wrapped.FileConfigurations)
|
|
{
|
|
IVCFileConfigurationWrapper vcFileConfig = new
|
|
#if (VS2012)
|
|
VCFileConfigurationWrapperVs2012
|
|
#elif (VS2013)
|
|
VCFileConfigurationWrapperVs2013
|
|
#elif (VS2015)
|
|
VCFileConfigurationWrapperVs2015
|
|
#elif (VS2017)
|
|
VCFileConfigurationWrapperVs2017
|
|
#endif
|
|
(configuration);
|
|
if (vcFileConfig.isValid())
|
|
{
|
|
fileConfigurations.Add(vcFileConfig);
|
|
}
|
|
}
|
|
return fileConfigurations;
|
|
}
|
|
}
|
|
}
|