diff --git a/src/SharpIDE.Godot/Features/CodeEditor/CodeEditorPanel.cs b/src/SharpIDE.Godot/Features/CodeEditor/CodeEditorPanel.cs index a9657df..cd0db1b 100644 --- a/src/SharpIDE.Godot/Features/CodeEditor/CodeEditorPanel.cs +++ b/src/SharpIDE.Godot/Features/CodeEditor/CodeEditorPanel.cs @@ -8,6 +8,7 @@ using SharpIDE.Application.Features.Run; using SharpIDE.Application.Features.SolutionDiscovery; using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence; using SharpIDE.Godot.Features.IdeSettings; +using SharpIDE.Godot.Features.SolutionExplorer; namespace SharpIDE.Godot.Features.CodeEditor; @@ -98,7 +99,7 @@ public partial class CodeEditorPanel : MarginContainer { _tabContainer.AddChild(newTab); var newTabIndex = _tabContainer.GetTabCount() - 1; - _tabContainer.SetTabIcon(newTabIndex, CsFileTexture); + _tabContainer.SetIconsForFileExtension(file, newTabIndex); _tabContainer.SetTabTitle(newTabIndex, file.Name); _tabContainer.SetTabTooltip(newTabIndex, file.Path); _tabContainer.CurrentTab = newTabIndex; @@ -155,4 +156,19 @@ public partial class CodeEditorPanel : MarginContainer await _runService.SendDebuggerStepOver(threadId); }); } +} + +file static class TabContainerExtensions +{ + extension(TabContainer tabContainer) + { + public void SetIconsForFileExtension(SharpIdeFile file, int newTabIndex) + { + var (icon, overlayIcon) = FileIconHelper.GetIconForFileExtension(file.Extension); + tabContainer.SetTabIcon(newTabIndex, icon); + + // Unfortunately TabContainer doesn't have a SetTabIconOverlay method + //tabContainer.SetIconOverlay(0, overlayIcon); + } + } } \ No newline at end of file