using System;
using System.Runtime.CompilerServices;
using BansheeEngine;
namespace BansheeEditor
{
///
/// Contains all supported external code editors
///
public enum CodeEditorType // Note: Must match C++ CodeEditorType enum
{
VS2008,
VS2010,
VS2012,
VS2013,
VS2015
}
///
/// Handles interaction with the external application used for editing scripts.
///
public static class CodeEditor
{
///
/// Currently active code editor.
///
public static CodeEditorType ActiveEditor
{
set { Internal_SetActiveEditor(value); }
}
///
/// Returns a list of all code editors available on this machine.
///
public static CodeEditorType[] AvailableEditors
{
get { return Internal_GetAvailableEditors(); }
}
///
/// Opens a script file in the currently active code editor.
///
/// Path to the script file to open, either absolute or relative to the project folder.
/// Line in the file to focus the editor on.
public static void OpenFile(string path, UInt32 line)
{
Internal_OpenFile(path, line);
}
///
/// Generates a solution file for the active editor, which includes all scripts in the project.
///
public static void SyncSolution()
{
Internal_SyncSolution();
}
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern void Internal_SetActiveEditor(CodeEditorType type);
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern CodeEditorType[] Internal_GetAvailableEditors();
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern void Internal_OpenFile(string path, UInt32 line);
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern void Internal_SyncSolution();
}
}