diff --git a/platformio/ide/projectgenerator.py b/platformio/ide/projectgenerator.py
index 3ee2b1e9..c97b8bbd 100644
--- a/platformio/ide/projectgenerator.py
+++ b/platformio/ide/projectgenerator.py
@@ -4,7 +4,7 @@
import json
from glob import glob
from os import listdir, walk
-from os.path import basename, isdir, join
+from os.path import abspath, basename, expanduser, isdir, join, relpath
import bottle
@@ -67,12 +67,12 @@ class ProjectGenerator(object):
def get_project_name(self):
return basename(self.project_dir)
- @staticmethod
- def get_srcfiles():
+ def get_srcfiles(self):
result = []
- for root, _, files in walk(util.get_projectsrc_dir()):
- for f in files:
- result.append(join(root, f))
+ with util.cd(self.project_dir):
+ for root, _, files in walk(util.get_projectsrc_dir()):
+ for f in files:
+ result.append(relpath(join(root, f)))
return result
def get_tpls(self):
diff --git a/platformio/ide/tpls/visualstudio/platformio.vcxproj.filters.tpl b/platformio/ide/tpls/visualstudio/platformio.vcxproj.filters.tpl
index 1b4a764e..716218f9 100644
--- a/platformio/ide/tpls/visualstudio/platformio.vcxproj.filters.tpl
+++ b/platformio/ide/tpls/visualstudio/platformio.vcxproj.filters.tpl
@@ -3,27 +3,27 @@
{4FC737F1-C7A5-4376-A066-2A32D752A2FF}
- cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;ino;pde
{93995380-89BD-4b04-88EB-625FBE52EBFB}
h;hh;hpp;hxx;hm;inl;inc;xsd
-
- {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
- rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
-
-
- {cad450ef-1a84-42d4-a5b5-a1736b8833d3}
-
-
-
-
-
- Source Files\src
-
+ % for file in srcfiles:
+
+ % if any([file.endswith(".%s" % e) for e in ("h", "hh", "hpp", "inc")]):
+
+ Header Files
+
+ % else:
+
+ Source Files
+
+ %end
+
+ % end
diff --git a/platformio/ide/tpls/visualstudio/platformio.vcxproj.tpl b/platformio/ide/tpls/visualstudio/platformio.vcxproj.tpl
index 2b3aa1f9..031cef8d 100644
--- a/platformio/ide/tpls/visualstudio/platformio.vcxproj.tpl
+++ b/platformio/ide/tpls/visualstudio/platformio.vcxproj.tpl
@@ -49,16 +49,23 @@
-
-
-
-
-
- % for file in srcfiles:
-
- % end
-
+
+
+
+ % for file in srcfiles:
+
+ % if any([file.endswith(".%s" % e) for e in ("h", "hh", "hpp", "inc")]):
+
+ Header Files
+
+ % else:
+
+ Source Files
+
+ %end
+
+ % end