// Copyright (c) 2012-2022 Wojciech Figat. All rights reserved.
namespace FlaxEditor.Modules.SourceCodeEditing
{
///
/// Interface for source code editing plugins.
///
public interface ISourceCodeEditor
{
///
/// Gets the editor name. Used to show in the UI.
///
string Name { get; }
///
/// Gets the custom arguments for the Flax.Build tool to add when generating project files for this code editor. Can be used to pick a different project files generator. Empty by default.
///
string GenerateProjectCustomArgs { get; }
///
/// Opens the solution file (source code project file).
///
void OpenSolution();
///
/// Opens the source file.
///
/// The file path to open.
/// The line number to navigate to. Use 0 to not use it.
void OpenFile(string path, int line);
///
/// Called when source file gets added to the workspace. Can be used to automatically include new files into the project files.
///
/// The path.
void OnFileAdded(string path);
///
/// Called when editor gets selected.
///
/// The editor.
void OnSelected(Editor editor);
///
/// Called when editor gets deselected.
///
/// The editor.
void OnDeselected(Editor editor);
///
/// Called when editor gets added.
///
/// The editor.
void OnAdded(Editor editor);
///
/// Called when editor gets removed.
///
/// The editor.
void OnRemoved(Editor editor);
}
}