48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using MergetoolGui;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using XDiffGui.Options;
|
|
|
|
namespace Unity.PlasticSCM.Editor.Diff.Text
|
|
{
|
|
internal class SyntaxHighlightMenu
|
|
{
|
|
internal SyntaxHighlightMenu(ISyntaxHighlightListener syntaxHighlightListener)
|
|
{
|
|
mSyntaxHighlightListener = syntaxHighlightListener;
|
|
}
|
|
|
|
internal void SetSyntaxHighlight(Language targetLanguage)
|
|
{
|
|
mCurrentLanguage = targetLanguage;
|
|
}
|
|
|
|
internal void BuildMenuItems(GenericMenu menu, string submenuPath)
|
|
{
|
|
foreach (Language language in TextMateSupportedLanguages.Get())
|
|
{
|
|
string label = LanguageString.FromLanguage(language);
|
|
bool isSelected = language == mCurrentLanguage;
|
|
Language capturedLanguage = language;
|
|
|
|
menu.AddItem(
|
|
new GUIContent(submenuPath + label.Replace("/", "\u2215")),
|
|
isSelected,
|
|
() => LanguageEntry_Click(capturedLanguage));
|
|
}
|
|
}
|
|
|
|
void LanguageEntry_Click(Language language)
|
|
{
|
|
mCurrentLanguage = language;
|
|
|
|
mSyntaxHighlightListener.OnSyntaxHighlightChanged(
|
|
LanguageString.FromLanguage(language));
|
|
}
|
|
|
|
Language mCurrentLanguage = Language.PlainText;
|
|
|
|
readonly ISyntaxHighlightListener mSyntaxHighlightListener;
|
|
}
|
|
}
|