logic: vs solution parsing fix
Fixed vs solution parsing to be able to handle some more variations of vs solution layouts...
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -56,6 +56,7 @@
|
|||||||
</Strings>
|
</Strings>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
<!--
|
||||||
<Button guid="guidCoatiPluginCmdSet" id="cmdidCoatiCreateProject" priority="0x0100" type="Button">
|
<Button guid="guidCoatiPluginCmdSet" id="cmdidCoatiCreateProject" priority="0x0100" type="Button">
|
||||||
<Parent guid="guidCoatiPluginCmdSet" id="MyMenuGroup" />
|
<Parent guid="guidCoatiPluginCmdSet" id="MyMenuGroup" />
|
||||||
<Icon guid="icon" id="icon0" />
|
<Icon guid="icon" id="icon0" />
|
||||||
@@ -63,6 +64,7 @@
|
|||||||
<ButtonText>Create Coati Project</ButtonText>
|
<ButtonText>Create Coati Project</ButtonText>
|
||||||
</Strings>
|
</Strings>
|
||||||
</Button>
|
</Button>
|
||||||
|
-->
|
||||||
|
|
||||||
<Button guid="guidCoatiPluginCmdSet" id="cmdidCoatiCreateProject" priority="0x0100" type="Button">
|
<Button guid="guidCoatiPluginCmdSet" id="cmdidCoatiCreateProject" priority="0x0100" type="Button">
|
||||||
<Parent guid="guidCoatiPluginCmdSet" id="SubMenu" />
|
<Parent guid="guidCoatiPluginCmdSet" id="SubMenu" />
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
|
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
|
||||||
<Metadata>
|
<Metadata>
|
||||||
<Identity Id="acf15780-03b5-440e-a41e-db79b7043fc2" Version="0.4.1" Language="en-US" Publisher="Coati Software" />
|
<Identity Id="acf15780-03b5-440e-a41e-db79b7043fc2" Version="0.5.0" Language="en-US" Publisher="Coati Software OG" />
|
||||||
<DisplayName>CoatiPlugin</DisplayName>
|
<DisplayName>CoatiPlugin</DisplayName>
|
||||||
<Description xml:space="preserve">This package allows Coati to communicate with Visual Studio and vice versa.</Description>
|
<Description xml:space="preserve">This package allows Coati to communicate with Visual Studio and vice versa.
|
||||||
|
More infos at www.coati.io</Description>
|
||||||
<Icon>coati.ico</Icon>
|
<Icon>coati.ico</Icon>
|
||||||
</Metadata>
|
</Metadata>
|
||||||
<Installation InstalledByMsi="false">
|
<Installation InstalledByMsi="false">
|
||||||
|
|||||||
@@ -147,6 +147,7 @@ std::vector<std::string> SolutionParserVisualStudio::findProjectItems()
|
|||||||
}
|
}
|
||||||
|
|
||||||
TiXmlElement* root = getFirstTagByNameWithAttribute(doc.RootElement(), "ClCompile", "Include");
|
TiXmlElement* root = getFirstTagByNameWithAttribute(doc.RootElement(), "ClCompile", "Include");
|
||||||
|
TiXmlElement* headerRoot = getFirstTagByNameWithAttribute(doc.RootElement(), "ClInclude", "Include");
|
||||||
if (root != NULL)
|
if (root != NULL)
|
||||||
{
|
{
|
||||||
// std::string text(root->GetText());
|
// std::string text(root->GetText());
|
||||||
@@ -157,7 +158,7 @@ std::vector<std::string> SolutionParserVisualStudio::findProjectItems()
|
|||||||
text = root->Attribute("Include");
|
text = root->Attribute("Include");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (text.find(".cpp") == std::string::npos)
|
if (text.find(".cpp") == std::string::npos && text.find(".c") == std::string::npos)
|
||||||
{
|
{
|
||||||
root = NULL;
|
root = NULL;
|
||||||
}
|
}
|
||||||
@@ -167,7 +168,26 @@ std::vector<std::string> SolutionParserVisualStudio::findProjectItems()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (root == NULL)
|
if (headerRoot != NULL)
|
||||||
|
{
|
||||||
|
std::string tag = headerRoot->Value();
|
||||||
|
std::string text = "";
|
||||||
|
if (headerRoot->Attribute("Include") != NULL)
|
||||||
|
{
|
||||||
|
text = headerRoot->Attribute("Include");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (text.find(".h") == std::string::npos && text.find(".hpp") == std::string::npos)
|
||||||
|
{
|
||||||
|
headerRoot = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
headerRoot = headerRoot->Parent()->ToElement();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*if (root == NULL)
|
||||||
{
|
{
|
||||||
TiXmlElement* root = getFirstTagByNameWithAttribute(doc.RootElement(), "ClInclude", "Include");
|
TiXmlElement* root = getFirstTagByNameWithAttribute(doc.RootElement(), "ClInclude", "Include");
|
||||||
if (root != NULL)
|
if (root != NULL)
|
||||||
@@ -178,7 +198,9 @@ std::vector<std::string> SolutionParserVisualStudio::findProjectItems()
|
|||||||
{
|
{
|
||||||
root = NULL;
|
root = NULL;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (root != NULL)
|
if (root != NULL)
|
||||||
{
|
{
|
||||||
@@ -197,6 +219,24 @@ std::vector<std::string> SolutionParserVisualStudio::findProjectItems()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (headerRoot != NULL)
|
||||||
|
{
|
||||||
|
for (TiXmlElement* child = headerRoot->FirstChildElement(); child != NULL; child = child->NextSiblingElement())
|
||||||
|
{
|
||||||
|
std::string filePath = child->Attribute("Include");
|
||||||
|
|
||||||
|
if (relativeProjectPaths[i].size() > 0)
|
||||||
|
{
|
||||||
|
filePath = relativeProjectPaths[i] + "/" + filePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (checkValidFileExtension(filePath, validFileExtensions))
|
||||||
|
{
|
||||||
|
projectItems.push_back(filePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::set<std::string> s(projectItems.begin(), projectItems.end());
|
std::set<std::string> s(projectItems.begin(), projectItems.end());
|
||||||
|
|||||||
Reference in New Issue
Block a user