BsVSCodeEditor.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. #include "BsEditorPrerequisites.h"
  3. #include "BsCodeEditor.h"
  4. namespace BansheeEngine
  5. {
  6. enum class VisualStudioVersion
  7. {
  8. VS2008,
  9. VS2010,
  10. VS2012,
  11. VS2013,
  12. VS2015
  13. };
  14. class BS_ED_EXPORT VSCodeEditor : public CodeEditor
  15. {
  16. public:
  17. VSCodeEditor(VisualStudioVersion version, const Path& execPath, const WString& CLSID);
  18. void openFile(const Path& solutionPath, const Path& filePath, UINT32 lineNumber) const override;
  19. void syncSolution(const CodeSolutionData& data, const Path& outputPath) const override;
  20. private:
  21. VisualStudioVersion mVersion;
  22. Path mExecPath;
  23. WString mCLSID;
  24. };
  25. class BS_ED_EXPORT VSCodeEditorFactory : public CodeEditorFactory
  26. {
  27. public:
  28. VSCodeEditorFactory();
  29. const Vector<CodeEditorType>& getAvailableEditors() const override { return mAvailableEditors; }
  30. CodeEditor* create(CodeEditorType editor) const override;
  31. private:
  32. struct VSVersionInfo
  33. {
  34. WString name;
  35. Path execPath;
  36. WString CLSID;
  37. VisualStudioVersion version;
  38. };
  39. Map<CodeEditorType, VSVersionInfo> getAvailableVersions() const;
  40. Map<CodeEditorType, VSVersionInfo> mAvailableVersions;
  41. Vector<CodeEditorType> mAvailableEditors;
  42. };
  43. }