Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: CodeEditApp/CodeEdit
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.2.1
Choose a base ref
...
head repository: CodeEditApp/CodeEdit
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.3.0
Choose a head ref
  • 7 commits
  • 181 files changed
  • 3 contributors

Commits on Jul 27, 2024

  1. Run Tasks (#1798)

    ### 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">
    tom-ludwig authored Jul 27, 2024
    Configuration menu
    Copy the full SHA
    b2b4909 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2024

  1. 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]>
    austincondiff and thecoolwinter authored Aug 6, 2024
    Configuration menu
    Copy the full SHA
    5eba707 View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2024

  1. 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]>
    austincondiff and thecoolwinter authored Aug 8, 2024
    Configuration menu
    Copy the full SHA
    a231637 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2024

  1. Enabled git push force and tags options (#1846)

    * Enabled git push force and tags.
    austincondiff authored Aug 14, 2024
    Configuration menu
    Copy the full SHA
    be21f9d View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2024

  1. 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.
    tom-ludwig authored Aug 16, 2024
    Configuration menu
    Copy the full SHA
    bf99e7d View commit details
    Browse the repository at this point in the history
  2. 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]>
    austincondiff and tom-ludwig authored Aug 16, 2024
    Configuration menu
    Copy the full SHA
    6719995 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2024

  1. Configuration menu
    Copy the full SHA
    55a00a0 View commit details
    Browse the repository at this point in the history
Loading