-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Terminal Emulator Task Output #2088
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Terminal Emulator Task Output #2088
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Enhances how tasks run in the terminal emulator by capturing live shell output and streamlining tests with an async helper
- Adds
waitForExpectation
utility to replaceXCTestExpectation
patterns - Refactors
TerminalEmulatorView
into distinct.shell
and.task
modes and updates shell integration to honor aninteractive
flag - Converts
CEActiveTask
to publish a terminal view for live output, updates task management, and migrates tests to the newTesting
framework
Reviewed Changes
Copilot reviewed 23 out of 23 changed files in this pull request and generated 4 comments.
File | Description |
---|---|
CodeEditTests/Utils/waitForExpectation.swift | New async helper for test predicates instead of XCTestExpectation |
CodeEdit/Features/TerminalEmulator/Views/TerminalEmulatorView.swift | Split view into shell/task modes and integrate caching |
CodeEdit/Features/TerminalEmulator/Model/ShellIntegration.swift | Added interactive parameter and history‐disable flag for both bash and zsh |
CodeEdit/Features/Tasks/Models/CEActiveTask.swift | Switched output from String to terminal view and updated process lifecycle |
Comments suppressed due to low confidence (2)
CodeEdit/Features/Tasks/TaskManager.swift:23
- Removing the default
= nil
forworkspaceURL
is a breaking change for callers that rely on omitting that argument. Consider restoring the default value (workspaceURL: URL? = nil
) or updating all call sites.
init(workspaceSettings: CEWorkspaceSettingsData, workspaceURL: URL?) {
CodeEditTests/Features/TerminalEmulator/ShellIntegrationTests.swift:20
- All existing tests pass
interactive: true
, but there’s no coverage forinteractive: false
to assert that non-interactive sessions behave correctly. Consider adding tests for the false case.
interactive: true
CodeEdit/Features/TerminalEmulator/Views/TerminalEmulatorView.swift
Outdated
Show resolved
Hide resolved
…er/CodeEdit into terminal-task-output
Description
Utilizes the terminal emulator to both run tasks and display output.
Related Issues
Checklist
Screenshots
Screen.Recording.2025-07-15.at.2.28.32.PM.mov