Files
Test/Library/PackageCache/com.unity.collab-proxy@4628d2ba6ea4/Editor/Diff/Text/SyntaxHighlightMenu.cs
T
2026-11-01 23:39:55 +02:00

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;
}
}