diff --git a/CodeEdit.xcodeproj/project.pbxproj b/CodeEdit.xcodeproj/project.pbxproj index 20abc969c..af6af95d0 100644 --- a/CodeEdit.xcodeproj/project.pbxproj +++ b/CodeEdit.xcodeproj/project.pbxproj @@ -91,9 +91,9 @@ 5878DAA6291AE76700DD95A3 /* QuickOpenPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5878DAA2291AE76700DD95A3 /* QuickOpenPreviewView.swift */; }; 5878DAA7291AE76700DD95A3 /* QuickOpenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5878DAA3291AE76700DD95A3 /* QuickOpenViewModel.swift */; }; 5878DAA8291AE76700DD95A3 /* QuickOpenItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5878DAA4291AE76700DD95A3 /* QuickOpenItem.swift */; }; - 5878DAB0291D627C00DD95A3 /* PathBarMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5878DAAD291D627C00DD95A3 /* PathBarMenu.swift */; }; - 5878DAB1291D627C00DD95A3 /* PathBarComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5878DAAE291D627C00DD95A3 /* PathBarComponent.swift */; }; - 5878DAB2291D627C00DD95A3 /* PathBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5878DAAF291D627C00DD95A3 /* PathBarView.swift */; }; + 5878DAB0291D627C00DD95A3 /* EditorPathBarMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5878DAAD291D627C00DD95A3 /* EditorPathBarMenu.swift */; }; + 5878DAB1291D627C00DD95A3 /* EditorPathBarComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5878DAAE291D627C00DD95A3 /* EditorPathBarComponent.swift */; }; + 5878DAB2291D627C00DD95A3 /* EditorPathBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5878DAAF291D627C00DD95A3 /* EditorPathBarView.swift */; }; 58798218292D92370085B254 /* String+SafeOffset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58798213292D92370085B254 /* String+SafeOffset.swift */; }; 58798219292D92370085B254 /* SearchModeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58798215292D92370085B254 /* SearchModeModel.swift */; }; 5879821A292D92370085B254 /* SearchResultModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58798216292D92370085B254 /* SearchResultModel.swift */; }; @@ -188,7 +188,7 @@ 587B9E9829301D8F00AC7927 /* GitCommit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 587B9E5329301D8F00AC7927 /* GitCommit.swift */; }; 587B9E9929301D8F00AC7927 /* GitChangedFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 587B9E5429301D8F00AC7927 /* GitChangedFile.swift */; }; 587B9E9A29301D8F00AC7927 /* GitType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 587B9E5529301D8F00AC7927 /* GitType.swift */; }; - 587FB99029C1246400B519DD /* TabBarTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 587FB98F29C1246400B519DD /* TabBarTabView.swift */; }; + 587FB99029C1246400B519DD /* EditorTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 587FB98F29C1246400B519DD /* EditorTabView.swift */; }; 58822524292C280D00E83CDE /* StatusBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58822509292C280D00E83CDE /* StatusBarView.swift */; }; 58822525292C280D00E83CDE /* StatusBarMenuStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5882250B292C280D00E83CDE /* StatusBarMenuStyle.swift */; }; 58822526292C280D00E83CDE /* StatusBarBreakpointButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5882250C292C280D00E83CDE /* StatusBarBreakpointButton.swift */; }; @@ -203,7 +203,7 @@ 5882252F292C280D00E83CDE /* StatusBarClearButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58822517292C280D00E83CDE /* StatusBarClearButton.swift */; }; 58822530292C280D00E83CDE /* FilterTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58822518292C280D00E83CDE /* FilterTextField.swift */; }; 58822531292C280D00E83CDE /* View+isHovering.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5882251A292C280D00E83CDE /* View+isHovering.swift */; }; - 58822532292C280D00E83CDE /* DebugAreaViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5882251C292C280D00E83CDE /* DebugAreaViewModel.swift */; }; + 58822532292C280D00E83CDE /* UtilityAreaViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5882251C292C280D00E83CDE /* UtilityAreaViewModel.swift */; }; 58822534292C280D00E83CDE /* CursorLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5882251E292C280D00E83CDE /* CursorLocation.swift */; }; 588847632992A2A200996D95 /* CEWorkspaceFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 588847622992A2A200996D95 /* CEWorkspaceFile.swift */; }; 588847692992ABCA00996D95 /* Array+CEWorkspaceFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 588847682992ABCA00996D95 /* Array+CEWorkspaceFile.swift */; }; @@ -214,8 +214,8 @@ 58A5DFA229339F6400D1BD5D /* KeybindingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58A5DF9E29339F6400D1BD5D /* KeybindingManager.swift */; }; 58A5DFA329339F6400D1BD5D /* CommandManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58A5DF9F29339F6400D1BD5D /* CommandManager.swift */; }; 58A5DFA529339F6400D1BD5D /* default_keybindings.json in Resources */ = {isa = PBXBuildFile; fileRef = 58A5DFA129339F6400D1BD5D /* default_keybindings.json */; }; - 58AFAA2E2933C69E00482B53 /* TabBarTabRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58AFAA2C2933C69E00482B53 /* TabBarTabRepresentable.swift */; }; - 58AFAA2F2933C69E00482B53 /* TabBarItemID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58AFAA2D2933C69E00482B53 /* TabBarItemID.swift */; }; + 58AFAA2E2933C69E00482B53 /* EditorTabRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58AFAA2C2933C69E00482B53 /* EditorTabRepresentable.swift */; }; + 58AFAA2F2933C69E00482B53 /* EditorItemID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58AFAA2D2933C69E00482B53 /* EditorItemID.swift */; }; 58D01C94293167DC00C5B6B4 /* Color+HEX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D01C88293167DC00C5B6B4 /* Color+HEX.swift */; }; 58D01C95293167DC00C5B6B4 /* Bundle+Info.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D01C89293167DC00C5B6B4 /* Bundle+Info.swift */; }; 58D01C96293167DC00C5B6B4 /* Date+Formatted.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D01C8A293167DC00C5B6B4 /* Date+Formatted.swift */; }; @@ -346,7 +346,7 @@ B62AEDC92A2704F3009A9F52 /* UtilityAreaTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B62AEDC82A2704F3009A9F52 /* UtilityAreaTabView.swift */; }; B62AEDD12A27B264009A9F52 /* View+paneToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B62AEDD02A27B264009A9F52 /* View+paneToolbar.swift */; }; B62AEDD42A27B29F009A9F52 /* PaneToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B62AEDD32A27B29F009A9F52 /* PaneToolbar.swift */; }; - B62AEDD72A27B3D0009A9F52 /* DebugAreaTabViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B62AEDD62A27B3D0009A9F52 /* DebugAreaTabViewModel.swift */; }; + B62AEDD72A27B3D0009A9F52 /* UtilityAreaTabViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B62AEDD62A27B3D0009A9F52 /* UtilityAreaTabViewModel.swift */; }; B62AEDDC2A27C1B3009A9F52 /* OSLogType+Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = B62AEDDA2A27C1B3009A9F52 /* OSLogType+Color.swift */; }; B640A99E29E2184700715F20 /* SettingsForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = B640A99D29E2184700715F20 /* SettingsForm.swift */; }; B640A9A129E2188F00715F20 /* View+NavigationBarBackButtonVisible.swift in Sources */ = {isa = PBXBuildFile; fileRef = B640A9A029E2188F00715F20 /* View+NavigationBarBackButtonVisible.swift */; }; @@ -362,9 +362,9 @@ B68C7C212A01DEFE004EA6D6 /* GitHubComment.swift in Sources */ = {isa = PBXBuildFile; fileRef = B68C7C202A01DEFE004EA6D6 /* GitHubComment.swift */; }; B697937A29FF5668002027EC /* AccountsSettingsAccountLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = B697937929FF5668002027EC /* AccountsSettingsAccountLink.swift */; }; B6A43C5D29FC4AF00027E0E0 /* CreateSSHKeyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6A43C5C29FC4AF00027E0E0 /* CreateSSHKeyView.swift */; }; - B6C6A42A297716A500A3D28F /* TabBarTabCloseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6C6A429297716A500A3D28F /* TabBarTabCloseButton.swift */; }; - B6C6A42E29771A8D00A3D28F /* TabBarTabButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6C6A42D29771A8D00A3D28F /* TabBarTabButtonStyle.swift */; }; - B6C6A43029771F7100A3D28F /* TabBarTabBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6C6A42F29771F7100A3D28F /* TabBarTabBackground.swift */; }; + B6C6A42A297716A500A3D28F /* EditorTabCloseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6C6A429297716A500A3D28F /* EditorTabCloseButton.swift */; }; + B6C6A42E29771A8D00A3D28F /* EditorTabButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6C6A42D29771A8D00A3D28F /* EditorTabButtonStyle.swift */; }; + B6C6A43029771F7100A3D28F /* EditorTabBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6C6A42F29771F7100A3D28F /* EditorTabBackground.swift */; }; B6D7EA592971078500301FAC /* InspectorSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6D7EA582971078500301FAC /* InspectorSection.swift */; }; B6D7EA5C297107DD00301FAC /* InspectorField.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6D7EA5B297107DD00301FAC /* InspectorField.swift */; }; B6E41C7029DD157F0088F9F4 /* AccountsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6E41C6F29DD157F0088F9F4 /* AccountsSettingsView.swift */; }; @@ -552,9 +552,9 @@ 5878DAA2291AE76700DD95A3 /* QuickOpenPreviewView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickOpenPreviewView.swift; sourceTree = ""; }; 5878DAA3291AE76700DD95A3 /* QuickOpenViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickOpenViewModel.swift; sourceTree = ""; }; 5878DAA4291AE76700DD95A3 /* QuickOpenItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickOpenItem.swift; sourceTree = ""; }; - 5878DAAD291D627C00DD95A3 /* PathBarMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PathBarMenu.swift; sourceTree = ""; }; - 5878DAAE291D627C00DD95A3 /* PathBarComponent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PathBarComponent.swift; sourceTree = ""; }; - 5878DAAF291D627C00DD95A3 /* PathBarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PathBarView.swift; sourceTree = ""; }; + 5878DAAD291D627C00DD95A3 /* EditorPathBarMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditorPathBarMenu.swift; sourceTree = ""; }; + 5878DAAE291D627C00DD95A3 /* EditorPathBarComponent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditorPathBarComponent.swift; sourceTree = ""; }; + 5878DAAF291D627C00DD95A3 /* EditorPathBarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditorPathBarView.swift; sourceTree = ""; }; 58798213292D92370085B254 /* String+SafeOffset.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+SafeOffset.swift"; sourceTree = ""; }; 58798215292D92370085B254 /* SearchModeModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchModeModel.swift; sourceTree = ""; }; 58798216292D92370085B254 /* SearchResultModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchResultModel.swift; sourceTree = ""; }; @@ -649,7 +649,7 @@ 587B9E5329301D8F00AC7927 /* GitCommit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitCommit.swift; sourceTree = ""; }; 587B9E5429301D8F00AC7927 /* GitChangedFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitChangedFile.swift; sourceTree = ""; }; 587B9E5529301D8F00AC7927 /* GitType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitType.swift; sourceTree = ""; }; - 587FB98F29C1246400B519DD /* TabBarTabView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarTabView.swift; sourceTree = ""; }; + 587FB98F29C1246400B519DD /* EditorTabView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditorTabView.swift; sourceTree = ""; }; 58822509292C280D00E83CDE /* StatusBarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusBarView.swift; sourceTree = ""; }; 5882250B292C280D00E83CDE /* StatusBarMenuStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusBarMenuStyle.swift; sourceTree = ""; }; 5882250C292C280D00E83CDE /* StatusBarBreakpointButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusBarBreakpointButton.swift; sourceTree = ""; }; @@ -664,7 +664,7 @@ 58822517292C280D00E83CDE /* StatusBarClearButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusBarClearButton.swift; sourceTree = ""; }; 58822518292C280D00E83CDE /* FilterTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterTextField.swift; sourceTree = ""; }; 5882251A292C280D00E83CDE /* View+isHovering.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "View+isHovering.swift"; sourceTree = ""; }; - 5882251C292C280D00E83CDE /* DebugAreaViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugAreaViewModel.swift; sourceTree = ""; }; + 5882251C292C280D00E83CDE /* UtilityAreaViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UtilityAreaViewModel.swift; sourceTree = ""; }; 5882251E292C280D00E83CDE /* CursorLocation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CursorLocation.swift; sourceTree = ""; }; 588847622992A2A200996D95 /* CEWorkspaceFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CEWorkspaceFile.swift; sourceTree = ""; }; 588847682992ABCA00996D95 /* Array+CEWorkspaceFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+CEWorkspaceFile.swift"; sourceTree = ""; }; @@ -676,8 +676,8 @@ 58A5DF9E29339F6400D1BD5D /* KeybindingManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeybindingManager.swift; sourceTree = ""; }; 58A5DF9F29339F6400D1BD5D /* CommandManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandManager.swift; sourceTree = ""; }; 58A5DFA129339F6400D1BD5D /* default_keybindings.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = default_keybindings.json; sourceTree = ""; }; - 58AFAA2C2933C69E00482B53 /* TabBarTabRepresentable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarTabRepresentable.swift; sourceTree = ""; }; - 58AFAA2D2933C69E00482B53 /* TabBarItemID.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarItemID.swift; sourceTree = ""; }; + 58AFAA2C2933C69E00482B53 /* EditorTabRepresentable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditorTabRepresentable.swift; sourceTree = ""; }; + 58AFAA2D2933C69E00482B53 /* EditorItemID.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditorItemID.swift; sourceTree = ""; }; 58D01C88293167DC00C5B6B4 /* Color+HEX.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Color+HEX.swift"; sourceTree = ""; }; 58D01C89293167DC00C5B6B4 /* Bundle+Info.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Bundle+Info.swift"; sourceTree = ""; }; 58D01C8A293167DC00C5B6B4 /* Date+Formatted.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Date+Formatted.swift"; sourceTree = ""; }; @@ -790,7 +790,7 @@ B62AEDC82A2704F3009A9F52 /* UtilityAreaTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UtilityAreaTabView.swift; sourceTree = ""; }; B62AEDD02A27B264009A9F52 /* View+paneToolbar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+paneToolbar.swift"; sourceTree = ""; }; B62AEDD32A27B29F009A9F52 /* PaneToolbar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaneToolbar.swift; sourceTree = ""; }; - B62AEDD62A27B3D0009A9F52 /* DebugAreaTabViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugAreaTabViewModel.swift; sourceTree = ""; }; + B62AEDD62A27B3D0009A9F52 /* UtilityAreaTabViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UtilityAreaTabViewModel.swift; sourceTree = ""; }; B62AEDDA2A27C1B3009A9F52 /* OSLogType+Color.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OSLogType+Color.swift"; sourceTree = ""; }; B640A99D29E2184700715F20 /* SettingsForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsForm.swift; sourceTree = ""; }; B640A9A029E2188F00715F20 /* View+NavigationBarBackButtonVisible.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+NavigationBarBackButtonVisible.swift"; sourceTree = ""; }; @@ -811,9 +811,9 @@ B68C7C202A01DEFE004EA6D6 /* GitHubComment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GitHubComment.swift; sourceTree = ""; }; B697937929FF5668002027EC /* AccountsSettingsAccountLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountsSettingsAccountLink.swift; sourceTree = ""; }; B6A43C5C29FC4AF00027E0E0 /* CreateSSHKeyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSSHKeyView.swift; sourceTree = ""; }; - B6C6A429297716A500A3D28F /* TabBarTabCloseButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarTabCloseButton.swift; sourceTree = ""; }; - B6C6A42D29771A8D00A3D28F /* TabBarTabButtonStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarTabButtonStyle.swift; sourceTree = ""; }; - B6C6A42F29771F7100A3D28F /* TabBarTabBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarTabBackground.swift; sourceTree = ""; }; + B6C6A429297716A500A3D28F /* EditorTabCloseButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditorTabCloseButton.swift; sourceTree = ""; }; + B6C6A42D29771A8D00A3D28F /* EditorTabButtonStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditorTabButtonStyle.swift; sourceTree = ""; }; + B6C6A42F29771F7100A3D28F /* EditorTabBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditorTabBackground.swift; sourceTree = ""; }; B6D7EA582971078500301FAC /* InspectorSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InspectorSection.swift; sourceTree = ""; }; B6D7EA5B297107DD00301FAC /* InspectorField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InspectorField.swift; sourceTree = ""; }; B6E41C6F29DD157F0088F9F4 /* AccountsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountsSettingsView.swift; sourceTree = ""; }; @@ -959,22 +959,12 @@ path = Repositories; sourceTree = ""; }; - 20D839AC280E0C9400B27357 /* Popover */ = { - isa = PBXGroup; - children = ( - 20D839AD280E0CA700B27357 /* HistoryPopoverView.swift */, - ); - path = Popover; - sourceTree = ""; - }; 20EBB4FF280C325000F3A5DA /* Views */ = { isa = PBXGroup; children = ( - 20D839AC280E0C9400B27357 /* Popover */, - 20EBB500280C325D00F3A5DA /* FileInspectorView.swift */, - 20EBB502280C327C00F3A5DA /* HistoryInspectorView.swift */, - 20EBB504280C329800F3A5DA /* HistoryInspectorItemView.swift */, - 200412EE280F3EAC00BCAF5C /* HistoryInspectorNoHistoryView.swift */, + B6EE988F27E8879A00CDD8AB /* InspectorAreaView.swift */, + B6D7EA582971078500301FAC /* InspectorSection.swift */, + B6D7EA5B297107DD00301FAC /* InspectorField.swift */, 20D839AA280DEB2900B27357 /* NoSelectionInspectorView.swift */, ); path = Views; @@ -983,7 +973,7 @@ 20EBB50B280C382800F3A5DA /* Models */ = { isa = PBXGroup; children = ( - 2072FA12280D74ED00C7F8D4 /* HistoryInspectorModel.swift */, + 6CE622682A2A174A0013085C /* InspectorTab.swift */, ); path = Models; sourceTree = ""; @@ -1069,8 +1059,8 @@ 581550CB29FBD30400684881 /* OutlineView */, 286471AC27ED52950039369D /* ProjectNavigator */, 201169D52837B29600F92B46 /* SourceControlNavigator */, - 287776E627E3413200D46668 /* NavigatorAreaView.swift */, - 6CE6226D2A2A1CDE0013085C /* NavigatorTab.swift */, + B67660682AA972D400CD56B0 /* Models */, + B67660692AA972DC00CD56B0 /* Views */, ); path = NavigatorArea; sourceTree = ""; @@ -1078,7 +1068,6 @@ 287776EB27E350BA00D46668 /* TabBar */ = { isa = PBXGroup; children = ( - 58AFAA272933C65C00482B53 /* Models */, 58AFAA262933C65000482B53 /* Views */, ); path = TabBar; @@ -1190,13 +1179,11 @@ B6EE988E27E8877C00CDD8AB /* InspectorArea */, 58A5DF9D29339F6400D1BD5D /* Keybindings */, 287776EA27E350A100D46668 /* NavigatorArea */, - 5878DAAB291D627C00DD95A3 /* PathBar */, 5878DAA0291AE76700DD95A3 /* QuickOpen */, 58798210292D92370085B254 /* Search */, B67B270029D7868000FB9301 /* Settings */, 6C147C4729A329E50089B630 /* SplitView */, 588224FF292C280D00E83CDE /* StatusBar */, - 287776EB27E350BA00D46668 /* TabBar */, 5879827E292ED0FB0085B254 /* TerminalEmulator */, 58822512292C280D00E83CDE /* UtilityArea */, 581BFB4B2926431000D251EC /* Welcome */, @@ -1401,9 +1388,9 @@ 5878DAAC291D627C00DD95A3 /* Views */ = { isa = PBXGroup; children = ( - 5878DAAD291D627C00DD95A3 /* PathBarMenu.swift */, - 5878DAAE291D627C00DD95A3 /* PathBarComponent.swift */, - 5878DAAF291D627C00DD95A3 /* PathBarView.swift */, + 5878DAAD291D627C00DD95A3 /* EditorPathBarMenu.swift */, + 5878DAAE291D627C00DD95A3 /* EditorPathBarComponent.swift */, + 5878DAAF291D627C00DD95A3 /* EditorPathBarView.swift */, ); path = Views; sourceTree = ""; @@ -1811,12 +1798,13 @@ 58822512292C280D00E83CDE /* UtilityArea */ = { isa = PBXGroup; children = ( + B676606A2AA973A500CD56B0 /* TerminalUtility */, + B676606B2AA973B200CD56B0 /* DebugUtility */, + B676606C2AA973C000CD56B0 /* OutputUtility */, + 58822514292C280D00E83CDE /* Toolbar */, + B676606D2AA9741900CD56B0 /* Models */, 58822539292C333600E83CDE /* ViewModels */, B62AEDB12A1FD7F0009A9F52 /* Views */, - 58822513292C280D00E83CDE /* UtilityAreaView.swift */, - 6CE6226A2A2A1C730013085C /* UtilityAreaTab.swift */, - B62AEDD02A27B264009A9F52 /* View+paneToolbar.swift */, - B62AEDD32A27B29F009A9F52 /* PaneToolbar.swift */, ); path = UtilityArea; sourceTree = ""; @@ -1843,8 +1831,8 @@ 58822539292C333600E83CDE /* ViewModels */ = { isa = PBXGroup; children = ( - 5882251C292C280D00E83CDE /* DebugAreaViewModel.swift */, - B62AEDD62A27B3D0009A9F52 /* DebugAreaTabViewModel.swift */, + 5882251C292C280D00E83CDE /* UtilityAreaViewModel.swift */, + B62AEDD62A27B3D0009A9F52 /* UtilityAreaTabViewModel.swift */, ); path = ViewModels; sourceTree = ""; @@ -1904,10 +1892,6 @@ DE6F77862813625500D00A76 /* TabBarDivider.swift */, DE6405A52817734700881FDF /* TabBarNative.swift */, B6E55C3A2A95368E003ECC7D /* TabBarShadow.swift */, - B6C6A42F29771F7100A3D28F /* TabBarTabBackground.swift */, - B6C6A42D29771A8D00A3D28F /* TabBarTabButtonStyle.swift */, - B6C6A429297716A500A3D28F /* TabBarTabCloseButton.swift */, - 587FB98F29C1246400B519DD /* TabBarTabView.swift */, 287776E827E34BC700D46668 /* TabBarView.swift */, DE513F53281DE5D0002260B9 /* TabBarXcode.swift */, ); @@ -1917,8 +1901,8 @@ 58AFAA272933C65C00482B53 /* Models */ = { isa = PBXGroup; children = ( - 58AFAA2D2933C69E00482B53 /* TabBarItemID.swift */, - 58AFAA2C2933C69E00482B53 /* TabBarTabRepresentable.swift */, + 58AFAA2D2933C69E00482B53 /* EditorItemID.swift */, + 58AFAA2C2933C69E00482B53 /* EditorTabRepresentable.swift */, ); path = Models; sourceTree = ""; @@ -2057,13 +2041,11 @@ 6C147C3C29A328020089B630 /* Editor */ = { isa = PBXGroup; children = ( - 6C147C4C29A32AA30089B630 /* EditorView.swift */, - 6C147C4829A32A080089B630 /* EditorLayoutView.swift */, - 6C91D57129B176FF0059A90D /* EditorManager.swift */, - 6C147C3E29A3281D0089B630 /* EditorLayout.swift */, - 6C147C3D29A3281D0089B630 /* Editor.swift */, - 6CC9E4B129B5669900C97388 /* Environment+ActiveEditor.swift */, - 6C092ED92A53A58600489202 /* EditorLayout+StateRestoration.swift */, + 5878DAAB291D627C00DD95A3 /* PathBar */, + 287776EB27E350BA00D46668 /* TabBar */, + B67660622AA961E900CD56B0 /* Tab */, + B67660642AA970ED00CD56B0 /* Models */, + B67660632AA970E300CD56B0 /* Views */, ); path = Editor; sourceTree = ""; @@ -2200,13 +2182,11 @@ B62AEDB12A1FD7F0009A9F52 /* Views */ = { isa = PBXGroup; children = ( - 58822514292C280D00E83CDE /* Toolbar */, + B62AEDD32A27B29F009A9F52 /* PaneToolbar.swift */, + 58822513292C280D00E83CDE /* UtilityAreaView.swift */, B62AEDC82A2704F3009A9F52 /* UtilityAreaTabView.swift */, - B62AEDB22A1FD95B009A9F52 /* UtilityAreaTerminalView.swift */, - B62AEDBB2A210DBB009A9F52 /* UtilityAreaTerminalTab.swift */, - B62AEDB42A1FE295009A9F52 /* UtilityAreaDebugView.swift */, - B62AEDB72A1FE2DC009A9F52 /* UtilityAreaOutputView.swift */, B62AEDDA2A27C1B3009A9F52 /* OSLogType+Color.swift */, + B62AEDD02A27B264009A9F52 /* View+paneToolbar.swift */, ); path = Views; sourceTree = ""; @@ -2283,6 +2263,108 @@ path = "Preview Content"; sourceTree = ""; }; + B67660622AA961E900CD56B0 /* Tab */ = { + isa = PBXGroup; + children = ( + 58AFAA272933C65C00482B53 /* Models */, + B6C6A42F29771F7100A3D28F /* EditorTabBackground.swift */, + B6C6A42D29771A8D00A3D28F /* EditorTabButtonStyle.swift */, + B6C6A429297716A500A3D28F /* EditorTabCloseButton.swift */, + 587FB98F29C1246400B519DD /* EditorTabView.swift */, + ); + path = Tab; + sourceTree = ""; + }; + B67660632AA970E300CD56B0 /* Views */ = { + isa = PBXGroup; + children = ( + 6C147C4C29A32AA30089B630 /* EditorView.swift */, + 6C147C4829A32A080089B630 /* EditorLayoutView.swift */, + ); + path = Views; + sourceTree = ""; + }; + B67660642AA970ED00CD56B0 /* Models */ = { + isa = PBXGroup; + children = ( + 6C91D57129B176FF0059A90D /* EditorManager.swift */, + 6C147C3E29A3281D0089B630 /* EditorLayout.swift */, + 6C147C3D29A3281D0089B630 /* Editor.swift */, + 6CC9E4B129B5669900C97388 /* Environment+ActiveEditor.swift */, + 6C092ED92A53A58600489202 /* EditorLayout+StateRestoration.swift */, + ); + path = Models; + sourceTree = ""; + }; + B67660662AA9726F00CD56B0 /* HistoryInspector */ = { + isa = PBXGroup; + children = ( + 2072FA12280D74ED00C7F8D4 /* HistoryInspectorModel.swift */, + 20D839AD280E0CA700B27357 /* HistoryPopoverView.swift */, + 20EBB502280C327C00F3A5DA /* HistoryInspectorView.swift */, + 20EBB504280C329800F3A5DA /* HistoryInspectorItemView.swift */, + 200412EE280F3EAC00BCAF5C /* HistoryInspectorNoHistoryView.swift */, + ); + path = HistoryInspector; + sourceTree = ""; + }; + B67660672AA972B000CD56B0 /* FileInspector */ = { + isa = PBXGroup; + children = ( + 20EBB500280C325D00F3A5DA /* FileInspectorView.swift */, + ); + path = FileInspector; + sourceTree = ""; + }; + B67660682AA972D400CD56B0 /* Models */ = { + isa = PBXGroup; + children = ( + 6CE6226D2A2A1CDE0013085C /* NavigatorTab.swift */, + ); + path = Models; + sourceTree = ""; + }; + B67660692AA972DC00CD56B0 /* Views */ = { + isa = PBXGroup; + children = ( + 287776E627E3413200D46668 /* NavigatorAreaView.swift */, + ); + path = Views; + sourceTree = ""; + }; + B676606A2AA973A500CD56B0 /* TerminalUtility */ = { + isa = PBXGroup; + children = ( + B62AEDB22A1FD95B009A9F52 /* UtilityAreaTerminalView.swift */, + B62AEDBB2A210DBB009A9F52 /* UtilityAreaTerminalTab.swift */, + ); + path = TerminalUtility; + sourceTree = ""; + }; + B676606B2AA973B200CD56B0 /* DebugUtility */ = { + isa = PBXGroup; + children = ( + B62AEDB42A1FE295009A9F52 /* UtilityAreaDebugView.swift */, + ); + path = DebugUtility; + sourceTree = ""; + }; + B676606C2AA973C000CD56B0 /* OutputUtility */ = { + isa = PBXGroup; + children = ( + B62AEDB72A1FE2DC009A9F52 /* UtilityAreaOutputView.swift */, + ); + path = OutputUtility; + sourceTree = ""; + }; + B676606D2AA9741900CD56B0 /* Models */ = { + isa = PBXGroup; + children = ( + 6CE6226A2A2A1C730013085C /* UtilityAreaTab.swift */, + ); + path = Models; + sourceTree = ""; + }; B67B270029D7868000FB9301 /* Settings */ = { isa = PBXGroup; children = ( @@ -2387,12 +2469,10 @@ B6EE988E27E8877C00CDD8AB /* InspectorArea */ = { isa = PBXGroup; children = ( + B67660672AA972B000CD56B0 /* FileInspector */, + B67660662AA9726F00CD56B0 /* HistoryInspector */, 20EBB50B280C382800F3A5DA /* Models */, 20EBB4FF280C325000F3A5DA /* Views */, - B6EE988F27E8879A00CDD8AB /* InspectorAreaView.swift */, - B6D7EA582971078500301FAC /* InspectorSection.swift */, - B6D7EA5B297107DD00301FAC /* InspectorField.swift */, - 6CE622682A2A174A0013085C /* InspectorTab.swift */, ); path = InspectorArea; sourceTree = ""; @@ -2803,7 +2883,7 @@ 58D01C9B293167DC00C5B6B4 /* CodeEditKeychainConstants.swift in Sources */, B640A99E29E2184700715F20 /* SettingsForm.swift in Sources */, B62AEDD12A27B264009A9F52 /* View+paneToolbar.swift in Sources */, - 5878DAB1291D627C00DD95A3 /* PathBarComponent.swift in Sources */, + 5878DAB1291D627C00DD95A3 /* EditorPathBarComponent.swift in Sources */, 587B9E6E29301D8F00AC7927 /* GitLabProject.swift in Sources */, 58798234292E30B90085B254 /* FeedbackIssueArea.swift in Sources */, 587B9E5F29301D8F00AC7927 /* GitLabProjectRouter.swift in Sources */, @@ -2826,7 +2906,7 @@ 201169E72837B5CA00F92B46 /* SourceControlModel.swift in Sources */, 58822528292C280D00E83CDE /* StatusBarEncodingSelector.swift in Sources */, 6C7F37FE2A3EA6FA00217B83 /* View+focusedValue.swift in Sources */, - B6C6A43029771F7100A3D28F /* TabBarTabBackground.swift in Sources */, + B6C6A43029771F7100A3D28F /* EditorTabBackground.swift in Sources */, 6C578D8129CD294800DC73B2 /* ExtensionActivatorView.swift in Sources */, B6F0517D29D9E4B100D72287 /* TerminalSettingsView.swift in Sources */, 587B9E8C29301D8F00AC7927 /* GitHubOpenness.swift in Sources */, @@ -2854,7 +2934,7 @@ 587B9E7529301D8F00AC7927 /* String+QueryParameters.swift in Sources */, 58798219292D92370085B254 /* SearchModeModel.swift in Sources */, 6C5C891B2A3F736500A94FE1 /* FocusedValues.swift in Sources */, - B62AEDD72A27B3D0009A9F52 /* DebugAreaTabViewModel.swift in Sources */, + B62AEDD72A27B3D0009A9F52 /* UtilityAreaTabViewModel.swift in Sources */, B66A4E4F29C917B8004573B4 /* WelcomeWindow.swift in Sources */, 58D01C9D293167DC00C5B6B4 /* KeychainSwiftAccessOptions.swift in Sources */, B6E41C8B29DE7AE80088F9F4 /* AccountsSettingsSigninView.swift in Sources */, @@ -2885,7 +2965,7 @@ B6E55C3B2A95368E003ECC7D /* TabBarShadow.swift in Sources */, 58A5DFA229339F6400D1BD5D /* KeybindingManager.swift in Sources */, B62AEDB32A1FD95B009A9F52 /* UtilityAreaTerminalView.swift in Sources */, - 58AFAA2E2933C69E00482B53 /* TabBarTabRepresentable.swift in Sources */, + 58AFAA2E2933C69E00482B53 /* EditorTabRepresentable.swift in Sources */, 6C4104E6297C884F00F472BA /* AboutDetailView.swift in Sources */, 6C6BD6F129CD13FA00235D17 /* ExtensionDiscovery.swift in Sources */, 587B9E7A29301D8F00AC7927 /* GitHubReviewsRouter.swift in Sources */, @@ -2926,10 +3006,10 @@ 587B9E7429301D8F00AC7927 /* URL+URLParameters.swift in Sources */, 6C5BE51C2A3D542B002DA0FC /* FeatureFlagsSettingsView.swift in Sources */, 581BFB6B2926431000D251EC /* RecentProjectItem.swift in Sources */, - 587FB99029C1246400B519DD /* TabBarTabView.swift in Sources */, + 587FB99029C1246400B519DD /* EditorTabView.swift in Sources */, 587B9DA429300ABD00AC7927 /* OverlayPanel.swift in Sources */, 58D01C95293167DC00C5B6B4 /* Bundle+Info.swift in Sources */, - B6C6A42A297716A500A3D28F /* TabBarTabCloseButton.swift in Sources */, + B6C6A42A297716A500A3D28F /* EditorTabCloseButton.swift in Sources */, 58A5DF7D2931787A00D1BD5D /* ShellClient.swift in Sources */, 5879821A292D92370085B254 /* SearchResultModel.swift in Sources */, B6F0517729D9E3AD00D72287 /* SourceControlGeneralView.swift in Sources */, @@ -3034,7 +3114,7 @@ 587B9E5A29301D8F00AC7927 /* GitCloneView.swift in Sources */, 58D01C99293167DC00C5B6B4 /* String+MD5.swift in Sources */, 20EBB505280C329800F3A5DA /* HistoryInspectorItemView.swift in Sources */, - 5878DAB2291D627C00DD95A3 /* PathBarView.swift in Sources */, + 5878DAB2291D627C00DD95A3 /* EditorPathBarView.swift in Sources */, 6C6BD70129CD172700235D17 /* ExtensionsListView.swift in Sources */, 043C321627E3201F006AE443 /* WorkspaceDocument.swift in Sources */, 58F2EAEC292FB2B0004A9BDE /* IgnoredFiles.swift in Sources */, @@ -3043,7 +3123,7 @@ 587B9E6D29301D8F00AC7927 /* GitLabEventNote.swift in Sources */, 587B9E9129301D8F00AC7927 /* BitBucketOAuthRouter.swift in Sources */, B6E41C7429DD40010088F9F4 /* View+HideSidebarToggle.swift in Sources */, - 58822532292C280D00E83CDE /* DebugAreaViewModel.swift in Sources */, + 58822532292C280D00E83CDE /* UtilityAreaViewModel.swift in Sources */, 043BCF03281DA18A000AC47C /* WorkspaceDocument+Search.swift in Sources */, 58822527292C280D00E83CDE /* StatusBarIndentSelector.swift in Sources */, 587B9E9629301D8F00AC7927 /* BitBucketRepositories.swift in Sources */, @@ -3051,11 +3131,11 @@ 58798286292ED0FB0085B254 /* SwiftTerm+Color+Init.swift in Sources */, 6CFF967C29BEBD5200182D6F /* WindowCommands.swift in Sources */, 587B9E7229301D8F00AC7927 /* GitJSONPostRouter.swift in Sources */, - 5878DAB0291D627C00DD95A3 /* PathBarMenu.swift in Sources */, + 5878DAB0291D627C00DD95A3 /* EditorPathBarMenu.swift in Sources */, 587B9DA529300ABD00AC7927 /* PressActionsModifier.swift in Sources */, 6C147C4029A328BC0089B630 /* SplitViewData.swift in Sources */, 587B9E9029301D8F00AC7927 /* BitBucketTokenRouter.swift in Sources */, - B6C6A42E29771A8D00A3D28F /* TabBarTabButtonStyle.swift in Sources */, + B6C6A42E29771A8D00A3D28F /* EditorTabButtonStyle.swift in Sources */, 58822525292C280D00E83CDE /* StatusBarMenuStyle.swift in Sources */, 6C147C4229A328C10089B630 /* Editor.swift in Sources */, 6C2C155829B4F49100EA60A5 /* SplitViewItem.swift in Sources */, @@ -3069,7 +3149,7 @@ 6C05A8AF284D0CA3007F4EAA /* WorkspaceDocument+Listeners.swift in Sources */, 588847632992A2A200996D95 /* CEWorkspaceFile.swift in Sources */, 6C2C155D29B4F4E500EA60A5 /* SplitViewReader.swift in Sources */, - 58AFAA2F2933C69E00482B53 /* TabBarItemID.swift in Sources */, + 58AFAA2F2933C69E00482B53 /* EditorItemID.swift in Sources */, 6C4104E3297C87A000F472BA /* BlurButtonStyle.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/CodeEdit/Features/CEWorkspace/Models/CEWorkspaceFile.swift b/CodeEdit/Features/CEWorkspace/Models/CEWorkspaceFile.swift index cb669a455..cf252f759 100644 --- a/CodeEdit/Features/CEWorkspace/Models/CEWorkspaceFile.swift +++ b/CodeEdit/Features/CEWorkspace/Models/CEWorkspaceFile.swift @@ -17,7 +17,7 @@ enum FileItemCodingKeys: String, CodingKey { } /// An object containing all necessary information and actions for a specific file in the workspace -final class CEWorkspaceFile: Codable, Comparable, Hashable, Identifiable, TabBarTabRepresentable { +final class CEWorkspaceFile: Codable, Comparable, Hashable, Identifiable, EditorTabRepresentable { /// The id of the ``FileSystemClient/FileSystemClient/FileItem``. /// @@ -54,8 +54,8 @@ final class CEWorkspaceFile: Codable, Comparable, Hashable, Identifiable, TabBar /// Returns the Git status of a file as ``GitType`` var gitStatus: GitType? - /// Returns the `id` in ``TabBarTabID`` enum form - var tabID: TabBarTabID { .codeEditor(id) } + /// Returns the `id` in ``EditorTabID`` enum form + var tabID: EditorTabID { .codeEditor(id) } /// Returns a boolean that is true if ``children`` is not `nil` var isFolder: Bool { url.hasDirectoryPath } diff --git a/CodeEdit/Features/Editor/Editor.swift b/CodeEdit/Features/Editor/Models/Editor.swift similarity index 100% rename from CodeEdit/Features/Editor/Editor.swift rename to CodeEdit/Features/Editor/Models/Editor.swift diff --git a/CodeEdit/Features/Editor/EditorLayout+StateRestoration.swift b/CodeEdit/Features/Editor/Models/EditorLayout+StateRestoration.swift similarity index 100% rename from CodeEdit/Features/Editor/EditorLayout+StateRestoration.swift rename to CodeEdit/Features/Editor/Models/EditorLayout+StateRestoration.swift diff --git a/CodeEdit/Features/Editor/EditorLayout.swift b/CodeEdit/Features/Editor/Models/EditorLayout.swift similarity index 100% rename from CodeEdit/Features/Editor/EditorLayout.swift rename to CodeEdit/Features/Editor/Models/EditorLayout.swift diff --git a/CodeEdit/Features/Editor/EditorManager.swift b/CodeEdit/Features/Editor/Models/EditorManager.swift similarity index 100% rename from CodeEdit/Features/Editor/EditorManager.swift rename to CodeEdit/Features/Editor/Models/EditorManager.swift diff --git a/CodeEdit/Features/Editor/Environment+ActiveEditor.swift b/CodeEdit/Features/Editor/Models/Environment+ActiveEditor.swift similarity index 100% rename from CodeEdit/Features/Editor/Environment+ActiveEditor.swift rename to CodeEdit/Features/Editor/Models/Environment+ActiveEditor.swift diff --git a/CodeEdit/Features/PathBar/Views/PathBarComponent.swift b/CodeEdit/Features/Editor/PathBar/Views/EditorPathBarComponent.swift similarity index 96% rename from CodeEdit/Features/PathBar/Views/PathBarComponent.swift rename to CodeEdit/Features/Editor/PathBar/Views/EditorPathBarComponent.swift index 525e2b6fa..a1e2977d3 100644 --- a/CodeEdit/Features/PathBar/Views/PathBarComponent.swift +++ b/CodeEdit/Features/Editor/PathBar/Views/EditorPathBarComponent.swift @@ -8,7 +8,7 @@ import SwiftUI import Combine -struct PathBarComponent: View { +struct EditorPathBarComponent: View { private let fileItem: CEWorkspaceFile private let tappedOpenFile: (CEWorkspaceFile) -> Void @@ -43,7 +43,7 @@ struct PathBarComponent: View { var body: some View { NSPopUpButtonView(selection: $selection) { let button = NSPopUpButton() - button.menu = PathBarMenu(fileItems: siblings, tappedOpenFile: tappedOpenFile) + button.menu = EditorPathBarMenu(fileItems: siblings, tappedOpenFile: tappedOpenFile) button.font = .systemFont(ofSize: NSFont.systemFontSize(for: .small)) button.isBordered = false (button.cell as? NSPopUpButtonCell)?.arrowPosition = .noArrow diff --git a/CodeEdit/Features/PathBar/Views/PathBarMenu.swift b/CodeEdit/Features/Editor/PathBar/Views/EditorPathBarMenu.swift similarity index 95% rename from CodeEdit/Features/PathBar/Views/PathBarMenu.swift rename to CodeEdit/Features/Editor/PathBar/Views/EditorPathBarMenu.swift index 1452283d4..7793dad07 100644 --- a/CodeEdit/Features/PathBar/Views/PathBarMenu.swift +++ b/CodeEdit/Features/Editor/PathBar/Views/EditorPathBarMenu.swift @@ -1,5 +1,5 @@ // -// PathBarMenu.swift +// EditorPathBarMenu.swift // CodeEditModules/PathBar // // Created by Ziyuan Zhao on 2022/3/29. @@ -7,7 +7,7 @@ import AppKit -final class PathBarMenu: NSMenu, NSMenuDelegate { +final class EditorPathBarMenu: NSMenu, NSMenuDelegate { private let fileItems: [CEWorkspaceFile] private let tappedOpenFile: (CEWorkspaceFile) -> Void @@ -44,9 +44,9 @@ final class PathBarMenu: NSMenu, NSMenuDelegate { } } - private func generateSubmenu(_ fileItem: CEWorkspaceFile) -> PathBarMenu? { + private func generateSubmenu(_ fileItem: CEWorkspaceFile) -> EditorPathBarMenu? { if let children = fileItem.children { - let menu = PathBarMenu( + let menu = EditorPathBarMenu( fileItems: children, tappedOpenFile: tappedOpenFile ) diff --git a/CodeEdit/Features/PathBar/Views/PathBarView.swift b/CodeEdit/Features/Editor/PathBar/Views/EditorPathBarView.swift similarity index 92% rename from CodeEdit/Features/PathBar/Views/PathBarView.swift rename to CodeEdit/Features/Editor/PathBar/Views/EditorPathBarView.swift index a43371d4e..046758b1d 100644 --- a/CodeEdit/Features/PathBar/Views/PathBarView.swift +++ b/CodeEdit/Features/Editor/PathBar/Views/EditorPathBarView.swift @@ -1,5 +1,5 @@ // -// PathBarView.swift +// EditorPathBarView.swift // CodeEditModules/PathBar // // Created by Lukas Pistrol on 17.03.22. @@ -7,7 +7,7 @@ import SwiftUI -struct PathBarView: View { +struct EditorPathBarView: View { private let file: CEWorkspaceFile private let tappedOpenFile: (CEWorkspaceFile) -> Void @@ -50,7 +50,7 @@ struct PathBarView: View { if fileItem.parent != nil { chevron } - PathBarComponent(fileItem: fileItem, tappedOpenFile: tappedOpenFile) + EditorPathBarComponent(fileItem: fileItem, tappedOpenFile: tappedOpenFile) .padding(.leading, 2.5) } } diff --git a/CodeEdit/Features/TabBar/Views/TabBarTabBackground.swift b/CodeEdit/Features/Editor/Tab/EditorTabBackground.swift similarity index 90% rename from CodeEdit/Features/TabBar/Views/TabBarTabBackground.swift rename to CodeEdit/Features/Editor/Tab/EditorTabBackground.swift index 2caf6a1da..7e922db1a 100644 --- a/CodeEdit/Features/TabBar/Views/TabBarTabBackground.swift +++ b/CodeEdit/Features/Editor/Tab/EditorTabBackground.swift @@ -1,5 +1,5 @@ // -// TabBarTabBackground.swift +// EditorTabBackground.swift // CodeEdit // // Created by Austin Condiff on 1/17/23. @@ -7,7 +7,7 @@ import SwiftUI -struct TabBarTabBackground: View { +struct EditorTabBackground: View { var isActive: Bool var isPressing: Bool var isDragging: Bool @@ -61,8 +61,8 @@ struct TabBarTabBackground: View { } } -struct TabBarTabBackground_Previews: PreviewProvider { +struct EditorTabBackground_Previews: PreviewProvider { static var previews: some View { - TabBarTabBackground(isActive: false, isPressing: false, isDragging: false) + EditorTabBackground(isActive: false, isPressing: false, isDragging: false) } } diff --git a/CodeEdit/Features/TabBar/Views/TabBarTabButtonStyle.swift b/CodeEdit/Features/Editor/Tab/EditorTabButtonStyle.swift similarity index 86% rename from CodeEdit/Features/TabBar/Views/TabBarTabButtonStyle.swift rename to CodeEdit/Features/Editor/Tab/EditorTabButtonStyle.swift index 8ac3089ce..6ecd2a964 100644 --- a/CodeEdit/Features/TabBar/Views/TabBarTabButtonStyle.swift +++ b/CodeEdit/Features/Editor/Tab/EditorTabButtonStyle.swift @@ -1,5 +1,5 @@ // -// TabBarTabButtonStyle.swift +// EditorTabButtonStyle.swift // CodeEdit // // Created by Khan Winter on 6/4/22. @@ -7,7 +7,7 @@ import SwiftUI -struct TabBarTabButtonStyle: ButtonStyle { +struct EditorTabButtonStyle: ButtonStyle { @Environment(\.colorScheme) var colorScheme diff --git a/CodeEdit/Features/TabBar/Views/TabBarTabCloseButton.swift b/CodeEdit/Features/Editor/Tab/EditorTabCloseButton.swift similarity index 95% rename from CodeEdit/Features/TabBar/Views/TabBarTabCloseButton.swift rename to CodeEdit/Features/Editor/Tab/EditorTabCloseButton.swift index d876c4be3..5a99312b5 100644 --- a/CodeEdit/Features/TabBar/Views/TabBarTabCloseButton.swift +++ b/CodeEdit/Features/Editor/Tab/EditorTabCloseButton.swift @@ -1,5 +1,5 @@ // -// TabBarTabCloseButton.swift +// EditorTabCloseButton.swift // CodeEdit // // Created by Austin Condiff on 1/17/23. @@ -7,7 +7,7 @@ import SwiftUI -struct TabBarTabCloseButton: View { +struct EditorTabCloseButton: View { var isActive: Bool var isHoveringTab: Bool var isDragging: Bool @@ -91,11 +91,11 @@ struct TabBarTabCloseButton: View { } } -struct TabBarTabCloseButton_Previews: PreviewProvider { +struct EditorTabCloseButton_Previews: PreviewProvider { @State static var closeButtonGestureActive = true static var previews: some View { - TabBarTabCloseButton( + EditorTabCloseButton( isActive: false, isHoveringTab: false, isDragging: false, diff --git a/CodeEdit/Features/TabBar/Views/TabBarTabView.swift b/CodeEdit/Features/Editor/Tab/EditorTabView.swift similarity index 97% rename from CodeEdit/Features/TabBar/Views/TabBarTabView.swift rename to CodeEdit/Features/Editor/Tab/EditorTabView.swift index c70a0717b..01a3567f6 100644 --- a/CodeEdit/Features/TabBar/Views/TabBarTabView.swift +++ b/CodeEdit/Features/Editor/Tab/EditorTabView.swift @@ -1,5 +1,5 @@ // -// TabBarTabView.swift +// EditorTabView.swift // CodeEdit // // Created by Lukas Pistrol on 17.03.22. @@ -7,7 +7,7 @@ import SwiftUI -struct TabBarTabView: View { +struct EditorTabView: View { @Environment(\.colorScheme) private var colorScheme @@ -176,7 +176,7 @@ struct TabBarTabView: View { .hidden() } // Close Button - TabBarTabCloseButton( + EditorTabCloseButton( isActive: isActive, isHoveringTab: isHovering, isDragging: draggingTabId != nil || onDragTabId != nil, @@ -242,7 +242,7 @@ struct TabBarTabView: View { } .background { if tabBarStyle == .xcode { - TabBarTabBackground(isActive: isActive, isPressing: isPressing, isDragging: isDragging) + EditorTabBackground(isActive: isActive, isPressing: isPressing, isDragging: isDragging) .animation(.easeInOut(duration: 0.08), value: isHovering) } else { if isFullscreen && isActive { @@ -269,7 +269,7 @@ struct TabBarTabView: View { // return .init(object: NSString(string: "\(item.tabID)")) // }) } - .buttonStyle(TabBarTabButtonStyle(isPressing: $isPressing)) + .buttonStyle(EditorTabButtonStyle(isPressing: $isPressing)) .simultaneousGesture( TapGesture(count: 2) .onEnded { _ in diff --git a/CodeEdit/Features/TabBar/Models/TabBarItemID.swift b/CodeEdit/Features/Editor/Tab/Models/EditorItemID.swift similarity index 87% rename from CodeEdit/Features/TabBar/Models/TabBarItemID.swift rename to CodeEdit/Features/Editor/Tab/Models/EditorItemID.swift index f496538e4..27cff3694 100644 --- a/CodeEdit/Features/TabBar/Models/TabBarItemID.swift +++ b/CodeEdit/Features/Editor/Tab/Models/EditorItemID.swift @@ -1,5 +1,5 @@ // -// TabBarTabID.swift +// EditorTabID.swift // // // Created by Pavel Kasila on 30.04.22. @@ -8,7 +8,7 @@ import Foundation /// Enum to represent item's ID to tab bar -enum TabBarTabID: Codable, Identifiable, Hashable { +enum EditorTabID: Codable, Identifiable, Hashable { var id: String { switch self { case .codeEditor(let path): diff --git a/CodeEdit/Features/TabBar/Models/TabBarTabRepresentable.swift b/CodeEdit/Features/Editor/Tab/Models/EditorTabRepresentable.swift similarity index 65% rename from CodeEdit/Features/TabBar/Models/TabBarTabRepresentable.swift rename to CodeEdit/Features/Editor/Tab/Models/EditorTabRepresentable.swift index 227ee7098..771de2067 100644 --- a/CodeEdit/Features/TabBar/Models/TabBarTabRepresentable.swift +++ b/CodeEdit/Features/Editor/Tab/Models/EditorTabRepresentable.swift @@ -1,5 +1,5 @@ // -// TabBarTabRepresentable.swift +// EditorTabRepresentable.swift // // // Created by Pavel Kasila on 30.04.22. @@ -7,10 +7,10 @@ import SwiftUI -/// Protocol for data passed to TabBarTabView to conform to -protocol TabBarTabRepresentable { +/// Protocol for data passed to EditorTabView to conform to +protocol EditorTabRepresentable { /// Unique tab identifier - var tabID: TabBarTabID { get } + var tabID: EditorTabID { get } /// String to be shown as tab's title var name: String { get } /// Image to be shown as tab's icon diff --git a/CodeEdit/Features/TabBar/Views/TabBarAccessory.swift b/CodeEdit/Features/Editor/TabBar/Views/TabBarAccessory.swift similarity index 100% rename from CodeEdit/Features/TabBar/Views/TabBarAccessory.swift rename to CodeEdit/Features/Editor/TabBar/Views/TabBarAccessory.swift diff --git a/CodeEdit/Features/TabBar/Views/TabBarContextMenu.swift b/CodeEdit/Features/Editor/TabBar/Views/TabBarContextMenu.swift similarity index 100% rename from CodeEdit/Features/TabBar/Views/TabBarContextMenu.swift rename to CodeEdit/Features/Editor/TabBar/Views/TabBarContextMenu.swift diff --git a/CodeEdit/Features/TabBar/Views/TabBarDivider.swift b/CodeEdit/Features/Editor/TabBar/Views/TabBarDivider.swift similarity index 100% rename from CodeEdit/Features/TabBar/Views/TabBarDivider.swift rename to CodeEdit/Features/Editor/TabBar/Views/TabBarDivider.swift diff --git a/CodeEdit/Features/TabBar/Views/TabBarNative.swift b/CodeEdit/Features/Editor/TabBar/Views/TabBarNative.swift similarity index 100% rename from CodeEdit/Features/TabBar/Views/TabBarNative.swift rename to CodeEdit/Features/Editor/TabBar/Views/TabBarNative.swift diff --git a/CodeEdit/Features/TabBar/Views/TabBarShadow.swift b/CodeEdit/Features/Editor/TabBar/Views/TabBarShadow.swift similarity index 100% rename from CodeEdit/Features/TabBar/Views/TabBarShadow.swift rename to CodeEdit/Features/Editor/TabBar/Views/TabBarShadow.swift diff --git a/CodeEdit/Features/TabBar/Views/TabBarView.swift b/CodeEdit/Features/Editor/TabBar/Views/TabBarView.swift similarity index 99% rename from CodeEdit/Features/TabBar/Views/TabBarView.swift rename to CodeEdit/Features/Editor/TabBar/Views/TabBarView.swift index 80e11e702..b840bf309 100644 --- a/CodeEdit/Features/TabBar/Views/TabBarView.swift +++ b/CodeEdit/Features/Editor/TabBar/Views/TabBarView.swift @@ -11,7 +11,7 @@ import SwiftUI // It has the gesture implementation and its animations. // I am now also disabling `file_length` rule because the dragging algorithm (with UX) is complex. // swiftlint:disable file_length type_body_length -// - TODO: TabBarTabView drop-outside event handler. +// - TODO: EditorTabView drop-outside event handler. struct TabBarView: View { typealias TabID = CEWorkspaceFile.ID @@ -320,7 +320,7 @@ struct TabBarView: View { ) { ForEach(Array(openedTabs.enumerated()), id: \.element) { index, id in if let item = editor.tabs.first(where: { $0.id == id }) { - TabBarTabView( + EditorTabView( expectedWidth: expectedTabWidth, item: item, index: index, @@ -345,7 +345,7 @@ struct TabBarView: View { // Detect the drop action of each tab. .onDrop( of: [.utf8PlainText], // TODO: Make a unique type for it. - delegate: TabBarTabOnDropDelegate( + delegate: EditorTabOnDropDelegate( currentTabId: id, openedTabs: $openedTabs, onDragTabId: $onDragTabId, @@ -632,7 +632,7 @@ struct TabBarView: View { editorManager.activeEditor = newEditor } - private struct TabBarTabOnDropDelegate: DropDelegate { + private struct EditorTabOnDropDelegate: DropDelegate { private let currentTabId: TabID @Binding private var openedTabs: [TabID] @Binding private var onDragTabId: TabID? diff --git a/CodeEdit/Features/TabBar/Views/TabBarXcode.swift b/CodeEdit/Features/Editor/TabBar/Views/TabBarXcode.swift similarity index 100% rename from CodeEdit/Features/TabBar/Views/TabBarXcode.swift rename to CodeEdit/Features/Editor/TabBar/Views/TabBarXcode.swift diff --git a/CodeEdit/Features/Editor/EditorLayoutView.swift b/CodeEdit/Features/Editor/Views/EditorLayoutView.swift similarity index 100% rename from CodeEdit/Features/Editor/EditorLayoutView.swift rename to CodeEdit/Features/Editor/Views/EditorLayoutView.swift diff --git a/CodeEdit/Features/Editor/EditorView.swift b/CodeEdit/Features/Editor/Views/EditorView.swift similarity index 92% rename from CodeEdit/Features/Editor/EditorView.swift rename to CodeEdit/Features/Editor/Views/EditorView.swift index 14f165aba..3a977c643 100644 --- a/CodeEdit/Features/Editor/EditorView.swift +++ b/CodeEdit/Features/Editor/Views/EditorView.swift @@ -20,7 +20,7 @@ struct EditorView: View { WorkspaceCodeFileView(file: selected) .focusedObject(editor) .transformEnvironment(\.edgeInsets) { insets in - insets.top += TabBarView.height + PathBarView.height + 1 + 1 + insets.top += TabBarView.height + EditorPathBarView.height + 1 + 1 } } else { VStack { @@ -49,7 +49,7 @@ struct EditorView: View { Divider() if let file = editor.selectedTab { - PathBarView(file: file) { [weak editor] newFile in + EditorPathBarView(file: file) { [weak editor] newFile in if let index = editor?.tabs.firstIndex(of: file) { editor?.openTab(item: newFile, at: index) } diff --git a/CodeEdit/Features/InspectorArea/Views/FileInspectorView.swift b/CodeEdit/Features/InspectorArea/FileInspector/FileInspectorView.swift similarity index 100% rename from CodeEdit/Features/InspectorArea/Views/FileInspectorView.swift rename to CodeEdit/Features/InspectorArea/FileInspector/FileInspectorView.swift diff --git a/CodeEdit/Features/InspectorArea/Views/HistoryInspectorItemView.swift b/CodeEdit/Features/InspectorArea/HistoryInspector/HistoryInspectorItemView.swift similarity index 100% rename from CodeEdit/Features/InspectorArea/Views/HistoryInspectorItemView.swift rename to CodeEdit/Features/InspectorArea/HistoryInspector/HistoryInspectorItemView.swift diff --git a/CodeEdit/Features/InspectorArea/Models/HistoryInspectorModel.swift b/CodeEdit/Features/InspectorArea/HistoryInspector/HistoryInspectorModel.swift similarity index 100% rename from CodeEdit/Features/InspectorArea/Models/HistoryInspectorModel.swift rename to CodeEdit/Features/InspectorArea/HistoryInspector/HistoryInspectorModel.swift diff --git a/CodeEdit/Features/InspectorArea/Views/HistoryInspectorNoHistoryView.swift b/CodeEdit/Features/InspectorArea/HistoryInspector/HistoryInspectorNoHistoryView.swift similarity index 100% rename from CodeEdit/Features/InspectorArea/Views/HistoryInspectorNoHistoryView.swift rename to CodeEdit/Features/InspectorArea/HistoryInspector/HistoryInspectorNoHistoryView.swift diff --git a/CodeEdit/Features/InspectorArea/Views/HistoryInspectorView.swift b/CodeEdit/Features/InspectorArea/HistoryInspector/HistoryInspectorView.swift similarity index 100% rename from CodeEdit/Features/InspectorArea/Views/HistoryInspectorView.swift rename to CodeEdit/Features/InspectorArea/HistoryInspector/HistoryInspectorView.swift diff --git a/CodeEdit/Features/InspectorArea/Views/Popover/HistoryPopoverView.swift b/CodeEdit/Features/InspectorArea/HistoryInspector/HistoryPopoverView.swift similarity index 100% rename from CodeEdit/Features/InspectorArea/Views/Popover/HistoryPopoverView.swift rename to CodeEdit/Features/InspectorArea/HistoryInspector/HistoryPopoverView.swift diff --git a/CodeEdit/Features/InspectorArea/InspectorTab.swift b/CodeEdit/Features/InspectorArea/Models/InspectorTab.swift similarity index 100% rename from CodeEdit/Features/InspectorArea/InspectorTab.swift rename to CodeEdit/Features/InspectorArea/Models/InspectorTab.swift diff --git a/CodeEdit/Features/InspectorArea/InspectorAreaView.swift b/CodeEdit/Features/InspectorArea/Views/InspectorAreaView.swift similarity index 100% rename from CodeEdit/Features/InspectorArea/InspectorAreaView.swift rename to CodeEdit/Features/InspectorArea/Views/InspectorAreaView.swift diff --git a/CodeEdit/Features/InspectorArea/InspectorField.swift b/CodeEdit/Features/InspectorArea/Views/InspectorField.swift similarity index 100% rename from CodeEdit/Features/InspectorArea/InspectorField.swift rename to CodeEdit/Features/InspectorArea/Views/InspectorField.swift diff --git a/CodeEdit/Features/InspectorArea/InspectorSection.swift b/CodeEdit/Features/InspectorArea/Views/InspectorSection.swift similarity index 100% rename from CodeEdit/Features/InspectorArea/InspectorSection.swift rename to CodeEdit/Features/InspectorArea/Views/InspectorSection.swift diff --git a/CodeEdit/Features/NavigatorArea/NavigatorTab.swift b/CodeEdit/Features/NavigatorArea/Models/NavigatorTab.swift similarity index 100% rename from CodeEdit/Features/NavigatorArea/NavigatorTab.swift rename to CodeEdit/Features/NavigatorArea/Models/NavigatorTab.swift diff --git a/CodeEdit/Features/NavigatorArea/ProjectNavigator/OutlineView/ProjectNavigatorViewController.swift b/CodeEdit/Features/NavigatorArea/ProjectNavigator/OutlineView/ProjectNavigatorViewController.swift index 6a1de6535..bb23f8283 100644 --- a/CodeEdit/Features/NavigatorArea/ProjectNavigator/OutlineView/ProjectNavigatorViewController.swift +++ b/CodeEdit/Features/NavigatorArea/ProjectNavigator/OutlineView/ProjectNavigatorViewController.swift @@ -325,7 +325,7 @@ extension ProjectNavigatorViewController: NSOutlineViewDelegate { /// - id: the id of the item item /// - collection: the array to search for /// - forcesReveal: The boolean to indicates whether or not it should force to reveal the selected file. - private func select(by id: TabBarTabID, from collection: [CEWorkspaceFile], forcesReveal: Bool) { + private func select(by id: EditorTabID, from collection: [CEWorkspaceFile], forcesReveal: Bool) { guard let item = collection.find(by: id) else { return } diff --git a/CodeEdit/Features/NavigatorArea/NavigatorAreaView.swift b/CodeEdit/Features/NavigatorArea/Views/NavigatorAreaView.swift similarity index 100% rename from CodeEdit/Features/NavigatorArea/NavigatorAreaView.swift rename to CodeEdit/Features/NavigatorArea/Views/NavigatorAreaView.swift diff --git a/CodeEdit/Features/UtilityArea/Views/UtilityAreaDebugView.swift b/CodeEdit/Features/UtilityArea/DebugUtility/UtilityAreaDebugView.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/Views/UtilityAreaDebugView.swift rename to CodeEdit/Features/UtilityArea/DebugUtility/UtilityAreaDebugView.swift diff --git a/CodeEdit/Features/UtilityArea/UtilityAreaTab.swift b/CodeEdit/Features/UtilityArea/Models/UtilityAreaTab.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/UtilityAreaTab.swift rename to CodeEdit/Features/UtilityArea/Models/UtilityAreaTab.swift diff --git a/CodeEdit/Features/UtilityArea/Views/UtilityAreaOutputView.swift b/CodeEdit/Features/UtilityArea/OutputUtility/UtilityAreaOutputView.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/Views/UtilityAreaOutputView.swift rename to CodeEdit/Features/UtilityArea/OutputUtility/UtilityAreaOutputView.swift diff --git a/CodeEdit/Features/UtilityArea/Views/UtilityAreaTerminalTab.swift b/CodeEdit/Features/UtilityArea/TerminalUtility/UtilityAreaTerminalTab.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/Views/UtilityAreaTerminalTab.swift rename to CodeEdit/Features/UtilityArea/TerminalUtility/UtilityAreaTerminalTab.swift diff --git a/CodeEdit/Features/UtilityArea/Views/UtilityAreaTerminalView.swift b/CodeEdit/Features/UtilityArea/TerminalUtility/UtilityAreaTerminalView.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/Views/UtilityAreaTerminalView.swift rename to CodeEdit/Features/UtilityArea/TerminalUtility/UtilityAreaTerminalView.swift diff --git a/CodeEdit/Features/UtilityArea/Views/Toolbar/FilterTextField.swift b/CodeEdit/Features/UtilityArea/Toolbar/FilterTextField.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/Views/Toolbar/FilterTextField.swift rename to CodeEdit/Features/UtilityArea/Toolbar/FilterTextField.swift diff --git a/CodeEdit/Features/UtilityArea/Views/Toolbar/StatusBarClearButton.swift b/CodeEdit/Features/UtilityArea/Toolbar/StatusBarClearButton.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/Views/Toolbar/StatusBarClearButton.swift rename to CodeEdit/Features/UtilityArea/Toolbar/StatusBarClearButton.swift diff --git a/CodeEdit/Features/UtilityArea/Views/Toolbar/StatusBarMaximizeButton.swift b/CodeEdit/Features/UtilityArea/Toolbar/StatusBarMaximizeButton.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/Views/Toolbar/StatusBarMaximizeButton.swift rename to CodeEdit/Features/UtilityArea/Toolbar/StatusBarMaximizeButton.swift diff --git a/CodeEdit/Features/UtilityArea/Views/Toolbar/StatusBarSplitTerminalButton.swift b/CodeEdit/Features/UtilityArea/Toolbar/StatusBarSplitTerminalButton.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/Views/Toolbar/StatusBarSplitTerminalButton.swift rename to CodeEdit/Features/UtilityArea/Toolbar/StatusBarSplitTerminalButton.swift diff --git a/CodeEdit/Features/UtilityArea/ViewModels/DebugAreaTabViewModel.swift b/CodeEdit/Features/UtilityArea/ViewModels/UtilityAreaTabViewModel.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/ViewModels/DebugAreaTabViewModel.swift rename to CodeEdit/Features/UtilityArea/ViewModels/UtilityAreaTabViewModel.swift diff --git a/CodeEdit/Features/UtilityArea/ViewModels/DebugAreaViewModel.swift b/CodeEdit/Features/UtilityArea/ViewModels/UtilityAreaViewModel.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/ViewModels/DebugAreaViewModel.swift rename to CodeEdit/Features/UtilityArea/ViewModels/UtilityAreaViewModel.swift diff --git a/CodeEdit/Features/UtilityArea/PaneToolbar.swift b/CodeEdit/Features/UtilityArea/Views/PaneToolbar.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/PaneToolbar.swift rename to CodeEdit/Features/UtilityArea/Views/PaneToolbar.swift diff --git a/CodeEdit/Features/UtilityArea/UtilityAreaView.swift b/CodeEdit/Features/UtilityArea/Views/UtilityAreaView.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/UtilityAreaView.swift rename to CodeEdit/Features/UtilityArea/Views/UtilityAreaView.swift diff --git a/CodeEdit/Features/UtilityArea/View+paneToolbar.swift b/CodeEdit/Features/UtilityArea/Views/View+paneToolbar.swift similarity index 100% rename from CodeEdit/Features/UtilityArea/View+paneToolbar.swift rename to CodeEdit/Features/UtilityArea/Views/View+paneToolbar.swift diff --git a/CodeEdit/Utils/Extensions/Array/Array+CEWorkspaceFile.swift b/CodeEdit/Utils/Extensions/Array/Array+CEWorkspaceFile.swift index 2766bf6b0..777c78eeb 100644 --- a/CodeEdit/Utils/Extensions/Array/Array+CEWorkspaceFile.swift +++ b/CodeEdit/Utils/Extensions/Array/Array+CEWorkspaceFile.swift @@ -30,7 +30,7 @@ extension Array where Element == CEWorkspaceFile { /// Search for the `CEWorkspaceFile` element that matches the specified `tabID`. /// - Parameter tabID: A `tabID` to search for. /// - Returns: The `CEWorkspaceFile` element with a matching `tabID` if available. - func find(by tabID: TabBarTabID) -> CEWorkspaceFile? { + func find(by tabID: EditorTabID) -> CEWorkspaceFile? { guard let item = first(where: { $0.tabID == tabID }) else { for element in self { if let item = element.children?.find(by: tabID) { diff --git a/Documentation.docc/App Window/Adding New Tab Type.md b/Documentation.docc/App Window/Adding New Tab Type.md index 62658ba6c..6541ddc17 100644 --- a/Documentation.docc/App Window/Adding New Tab Type.md +++ b/Documentation.docc/App Window/Adding New Tab Type.md @@ -5,12 +5,12 @@ This article is about how to add a new tab type to `TabBar` ## Overview First of all, each data type to be represented as tab in the UI should conform to -``TabBarTabRepresentable`` protocol. For example, this is how it is done for +``EditorTabRepresentable`` protocol. For example, this is how it is done for `FileItem`: ```swift -final class FileItem: Identifiable, Codable, TabBarTabRepresentable { - public var tabID: TabBarTabID { +final class FileItem: Identifiable, Codable, EditorTabRepresentable { + public var tabID: EditorTabID { .codeEditor(id) } @@ -34,7 +34,7 @@ final class FileItem: Identifiable, Codable, TabBarTabRepresentable { Each new tab type must have new identifier case, for example: ```swift -public enum TabBarTabID: Codable, Identifiable, Hashable { +public enum EditorTabID: Codable, Identifiable, Hashable { public var id: String { switch self { ... @@ -51,8 +51,8 @@ public enum TabBarTabID: Codable, Identifiable, Hashable { ### Opening and closing new tab types Tabs are opened using ``WorkspaceDocument/openTab(item:)`` method. It does a set of common -things for all tabs. But also it calls a private method based on the ``TabBarTabID`` of the -item. The private method for your ``TabBarTabRepresentable`` MUST persist this item +things for all tabs. But also it calls a private method based on the ``EditorTabID`` of the +item. The private method for your ``EditorTabRepresentable`` MUST persist this item somewhere (I recommend persisting them in ``WorkspaceSelectionState``). The same is for closing tabs using ``WorkspaceDocument/closeTab(item:)`` method. diff --git a/Documentation.docc/App Window/TabBarView.md b/Documentation.docc/App Window/TabBarView.md index 64cd64206..52825ceba 100644 --- a/Documentation.docc/App Window/TabBarView.md +++ b/Documentation.docc/App Window/TabBarView.md @@ -8,14 +8,14 @@ ### Model -- ``TabBarTabID`` -- ``TabBarTabRepresentable`` +- ``EditorTabID`` +- ``EditorTabRepresentable`` ### Components -- ``TabBarTabView`` +- ``EditorTabView`` - ``TabBarContextMenu`` -- ``TabBarTabButtonStyle`` +- ``EditorTabButtonStyle`` - ``TabDivider`` - ``TabBarTopDivider`` - ``TabBarBottomDivider``