BsVSCodeEditor.h 996 B

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