-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Comparing changes
Open a pull request
base repository: CodeEditApp/CodeEdit
base: v0.2.1
head repository: CodeEditApp/CodeEdit
compare: v0.3.0
- 7 commits
- 181 files changed
- 3 contributors
Commits on Jul 27, 2024
-
### Description This PR introduces the ability to run tasks within CodeEdit, utilizing a `.codeedit` folder to store task configurations. The goal is to enable users to create and manage tasks quickly and easily. #### Simple Tasks Example: ```json { "tasks" : [ { "command" : "go build", "name" : "build", } ] } ``` #### Tasks with Environment Variables: ```json "tasks" : [ { "environmentVariables" : { "database" : "maps" }, "target" : "Docker", "name" : "build", "command" : "go build", "workingDirectory" : "\/Users\/tommyludwig\/ScratchFolder\/task-tests" } ], ``` #### Key Structures Introduced: - `CETask`: Configuration for executing a task, including command and environment settings. - `CEActiveTask`: Represents a running task with output and status (running, stopped, failed, succeeded). CETask is injected into CEActiveTask with essential information such as full command and environment variables. - `CETaskManager`: Handles active tasks (run, renew, suspend, resume, terminate, interrupt). - `CEWorkspaceSettings`: Holds workspace-specific settings data. Distinct from CEWorkspaceSettingsManager, which handles workspace settings management (e.g., saving, loading). #### Active Task States: An active task can be: - `notRunning`: The task hasn't been interacted with yet. - `stopped`: The task is currently suspended(paused). - `running`: The task is actively running. - `failed`: The task finished with an error code. - `finished`: The task successfully completed. #### Task Shell Options: TaskShell provides various shells (e.g., bash, zsh, csh) for executing commands. Currently defaults to bash; future updates may include user settings for shell preference. Tasks are executed using `executeCommandWithShell`, utilizing a Swift `Process` to run commands within the user's environment plus additional variables from `CETask`. Output (`stdout` and stderr`) is captured using a `Pipe`. > [!IMPORTANT] > Reviewers, please pay close attention to the usage of classes vs. structs, as well as the naming conventions for classes, functions, and variables. Clear naming decisions now will save significant effort later. ### Related Issues * closes #262 * closes #699 ### Checklist - [x] I read and understood the [contributing guide](https://github.com/CodeEditApp/CodeEdit/blob/main/CONTRIBUTING.md) as well as the [code of conduct](https://github.com/CodeEditApp/CodeEdit/blob/main/CODE_OF_CONDUCT.md) - [x] The issues this PR addresses are related to each other - [x] My changes generate no new warnings - [x] My code builds and runs on my machine - [x] My changes are all related to the related issue above - [x] I documented my code ### Screenshots <img width="1581" alt="Screenshot 2024-07-05 at 4 00 06 PM" src="https://github.com/CodeEditApp/CodeEdit/assets/83090745/8d303d9a-8d59-427e-979c-49a77471dc87"> <img width="1183" alt="Screenshot 2024-07-05 at 3 59 49 PM" src="https://github.com/CodeEditApp/CodeEdit/assets/83090745/a28e9ebd-3e07-4d15-a1fa-076808dcfd03"> <img width="1181" alt="Screenshot 2024-07-05 at 3 59 19 PM" src="https://github.com/CodeEditApp/CodeEdit/assets/83090745/52e49fc0-8907-4ed8-a875-cbf6b5239b07"> <img width="277" alt="Screenshot 2024-07-05 at 3 59 04 PM" src="https://github.com/CodeEditApp/CodeEdit/assets/83090745/2da86c33-180c-4f8a-8a64-ed80abd6deec">Configuration menu - View commit details
-
Copy full SHA for b2b4909 - Browse repository at this point
Copy the full SHA b2b4909View commit details
Commits on Aug 6, 2024
-
Tasks and Activity Viewer UI Improvements (#1831)
### Description This PR refines the UI around Tasks and the Activity Viewer. ### Screenshots https://github.com/user-attachments/assets/2edbd761-b09b-4a06-ad74-45825d1effa3 <img width="309" alt="image" src="https://github.com/user-attachments/assets/dfa6cd2b-3191-4a6c-80a3-28e16e654283"> <br /> <img width="303" alt="image" src="https://github.com/user-attachments/assets/8d77d592-7cbf-46b5-a9c2-c155bd3d0eda"> https://github.com/user-attachments/assets/6fae003d-244c-42eb-8ec1-22c27b6b9e9c ### Commits * Made a few minor adjustments to the activity bar UI. * Cleaned up activity viewer menus * Gave spacers a minLength * Unified TaskView duplication. Refined workspace settings and add and edit task sheet design * Displaying workspace settings in a sheet instead of a window. Added minimum width to workspace settings bottons. * Improved the activity viewer notification details popover design * Conditional display and animation of stop toolbar button * Added activity viewer notification animations. * Fix Task Renew Race Condition, Stop Button Listeners * Fixed SwiftLint error and reorganized Task folder structure * Resolved PR issues. When running a task, the task output appears in the utility area and drawer opens if closed. * Fixed SwiftLint errors * PR issues * Removed statusSubject and statusPublisher * Fixed bug where you could not rerun a task that was finished --------- Co-authored-by: Khan Winter <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5eba707 - Browse repository at this point
Copy the full SHA 5eba707View commit details
Commits on Aug 8, 2024
-
Additional Source Control Functionality (#1785)
### Description We are improving upon existing source control functionality by doing the following... - Added push functionality and sheet. - Added pull functionality and sheet. - Added manual fetch functionality and fetching sheet. - Reorganized source control files in project - Renamed Features/Git to Features/SourceControl - Moved sheet views into it from the Source Control Navigator - Moved models out of Client - Moved the sync view above commit form in source control changes navigator. - Refreshing remotes cache after adding a remote. - Moved push and pull state variables into the source control manager. - Added a confirm branch switch sheet. - Stashing changes if changes exist when attempting to pull or switch branches. - Setting remote for push and pull after adding a remote. - Added warning alerts if uncommitted changes are not present - It is now possible to switch to a remote branch and create a new branch from a remote branch. - Disabling rename branch for remote branches. ### Testing Note to reviewers... Please pull down and test this in addition to reviewing the code. Once you have this pulled down... In a terminal run... ``` mkdir test.git cd test.git git init --bare ``` Then add the remote in CodeEdit by 1. going to the Source Control Navigator 2. If not already click Initiate to start a git repo 3. go to the Repositories tab 4. Right click Remotes and click Add existing remote... 5. Give the remote a name like "test" (the first remote will be "origin") and enter the path to test.git 7. You can now make changes, commit, and push via the Changes tab in the Source Control Navigator 6. You can set up additional projects by repeating steps 1-5 so you can make changes elsewhere and test pull functionality. 7. You can create additional remotes as well to test managing a project with multiple remotes, pushing and pulling from them, etc. ### Checklist - [x] Add push logic - [x] Add pull logic - [x] Add push sheet - [x] Add pull sheet - [x] Add centralized sheets view - [x] Rename Features/Git to Features/SourceControl - [x] Move sheet views into Features/SourceControl - [x] Add "Source Control" menu - [x] Add remote from push and pull sheets - [x] Set new remote in push or pull sheet after one is added - [x] Stash changes if attempting to pull or switch branches and changes exist - [x] Add fetch to the menu and display fetching sheet while fetching - [x] Add confirm branch switch sheet - [x] Add warning alerts if uncommitted changes are not present --- - [x] I read and understood the [contributing guide](https://github.com/CodeEditApp/CodeEdit/blob/main/CONTRIBUTING.md) as well as the [code of conduct](https://github.com/CodeEditApp/CodeEdit/blob/main/CODE_OF_CONDUCT.md) - [x] The issues this PR addresses are related to each other - [x] My changes generate no new warnings - [x] My code builds and runs on my machine - [x] My changes are all related to the related issue above - [x] I documented my code ### Screenshots <img width="598" alt="image" src="https://github.com/CodeEditApp/CodeEdit/assets/806104/e599cb12-0772-4a6e-abca-b5f9af7fa74a"> <img width="598" alt="image" src="https://github.com/CodeEditApp/CodeEdit/assets/806104/eca3d546-d38c-4787-89ed-9930220fd4e4"> <img width="598" alt="image" src="https://github.com/CodeEditApp/CodeEdit/assets/806104/20a5c002-5fff-4920-8211-8333fce56f6b"> <img width="598" alt="image" src="https://github.com/CodeEditApp/CodeEdit/assets/806104/6e80c67b-5356-4cf7-82b7-1ad95a13e05b"> <img width="342" alt="image" src="https://github.com/CodeEditApp/CodeEdit/assets/806104/0e55f5f8-f71b-4e30-bc05-d80a5796360e"> <img width="712" alt="image" src="https://github.com/CodeEditApp/CodeEdit/assets/806104/00c61863-5cb4-409b-b2d6-40098db5c57e"> ### Todos discovered - Reload source editor contents when file is changed externally - Handle source control errors better and show necessary errors to user - Handle rebase and merge conflict flow in UI - ~~Display loading indicator when pushing or pulling~~ Be able to cancel push or pull while in progress - Display loading indicator when pulling from stash sheet - Write tests for source control features ### Commits * Getting tracked branch and changing source control navigator UI if there is not a tracked branch. * Added push and pull sheet. Renamed Features/Git to Features/SourceControl and moved sheet views into it from the Source Control Navigator. * Fixed dismiss on submit. Changed sheet width * Changed navigator tab label * Removed print statement * Fixed commit branch and tag design in history tab * `SourceControlCommands` Impl * Now that we can access source control features outside the navigator, we need to refresh git data right away rather than on navigator view init. * Added the ability to add existing remotes from the push or pull sheet and source control menu. * Added the ability to add existing remotes from the push or pull sheet and source control menu. * Added ability to fetch changes from the menu * Split up source control manager file to resolve SwiftLint error * SwiftLint fixes * Resolved PR issues * Moved the sync view above commit form in source control changes navigator. Refereshing remotes cache after adding a remote. Moved push and pull state variables into the source control manager. Stashing changes if changes exist when attempting a pull. Setting remote for push and pull after adding a remote. Renamed scm variables to sourceControlManager for clarity. * SwiftLint error fixes * Separated "Apply stash after operation" field into it's own section in stash sheet * Reset remote and branch after stash * Moved functions below body in source control views * Recfactored pull function arguments * Added more detailed comment for SourceControlManager. Moved Git models. * Made setUpstream default to false in the push function * When switching branches, we now have the user confirm. We also check for changes and if there are changes we prompt the user to stash changes before switching branches. * Added warning alerts if uncommited changes are not present * Added minimum width to buttons in source control sheets * Not showing sync view if there are no remotes. * Formatting branch and remote names in the add sheet. * Fixed push PR issue * It is now possible to switch to a remote branch and create a new branch from a remote branch. We are now disabling rename branch for remote branches. * Removed redundant nil * Added loading indicators in push and pull sheets * Fixed SwiftLint errors * Fixed SwiftLint error * Added documentation to submit functions in push and pull views * Renamed a few files that were previously moved and added documentation to new branch and rename branch views --------- Co-authored-by: Khan Winter <[email protected]>Configuration menu - View commit details
-
Copy full SHA for a231637 - Browse repository at this point
Copy the full SHA a231637View commit details
Commits on Aug 14, 2024
-
Enabled git push force and tags options (#1846)
* Enabled git push force and tags.
Configuration menu - View commit details
-
Copy full SHA for be21f9d - Browse repository at this point
Copy the full SHA be21f9dView commit details
Commits on Aug 16, 2024
-
Update Task to Use Relative Working Path (#1844)
CETask now saves the relative working path instead of the absolute path to accommodate variations between users’ environments. The working directory field will remain empty by default, eliminating the need for user input. This change simplifies task configuration via the JSON file, as only the task name and command are now required.
Configuration menu - View commit details
-
Copy full SHA for bf99e7d - Browse repository at this point
Copy the full SHA bf99e7dView commit details -
Fixed terminal resize and scroll layout issues, improved utility area…
… toggle animation (#1845) When the terminal was resized, it displayed partial lines at the bottom due to a remainder in the line height multiple. This caused two things: 1. Resizing the Utility Area drawer caused a visual stutter in the terminal. 2. Partial lines at the bottom created an unsightly visual artifact. The terminal height must now be a multiple of a single line’s height to resolve these issues. Utility area drawer now has a push/pull animation rather than a reveal. ### Screenshots Before https://github.com/user-attachments/assets/f092611e-fe28-4aeb-b4dd-408611f0229e https://github.com/user-attachments/assets/4c365d3d-e051-4bc4-86ef-7121e4b8a5a5 After https://github.com/user-attachments/assets/7fb1a8d0-1aac-42f2-8a0a-22c02a7511b0 VS Code handles this in a similar way https://github.com/user-attachments/assets/67507c80-e39e-45f4-8432-5e132df5116a Improved utility area animation https://github.com/user-attachments/assets/36825fd0-caa0-463e-a367-5c17cde7dce2 > [!NOTE] > I removed the maximize drawer toggle in favor of simply dragging to resize up. This simplifies things greatly. Co-authored-by: Tom Ludwig <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6719995 - Browse repository at this point
Copy the full SHA 6719995View commit details
Commits on Aug 17, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 55a00a0 - Browse repository at this point
Copy the full SHA 55a00a0View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.2.1...v0.3.0