Skip to content

Releases: intitni/CopilotForXcode

0.8.2

04 Mar 17:52
Compare
Choose a tag to compare
  • Fix that the app may just freeze.

To quickly fix the bug, I need to disable the feature to generate real-time suggestions when the Xcode completion panel is displayed. I will bring a better fix soon. For now, if Input Monitoring is turned on, you can hit ESC to close the panel and at the same time trigger real-time suggestion.

  • Add automatically check for update, you can turn in on in the host app.

The 0.8 update:

  • I have added a new presentation mode called 'Floating Widget', which can be turned on from the host app. In this mode, suggestions will be presented in a floating window next to a floating widget.

    The floating widget will stay at the bottom of the editor area and will automatically move left or right if there is not enough space for the suggestion window.

    If a suggestion is presented, you can click on the widget to hide/show it.

Screenshot 2023-03-04 at 00 21 23

  • Real-time suggestions have been improved with the following tweaks:
    • It can now be triggered without requiring Input Monitoring permissions. However, if you want to enable the cancellation feature using esc or mouse click, Input Monitoring is still necessary.
    • The likelihood of the editor being blocked has been significantly reduced. Blocking will only occur at most once for each file after each restart of the extension. Once a command has been executed and some information is cached, the extension will be able to trigger real-time suggestion using a different method that doesn't cause any blocking.
  • Replace the display link with AXObserver for better performance.
  • Fix that the settings in the host app were not reflecting the real settings.
  • And maybe something else I don't remember.

I personally find the floating widget mode to be quite good, and I'm starting to feel like the real-time suggestion mode is finally usable. If you have any suggestions about the floating widget mode, please reply to this issue.

0.8.1

03 Mar 16:04
Compare
Choose a tag to compare

Known issue: The app may freeze when getting suggestions! Looking into it now!

  • I have added a new presentation mode called 'Floating Widget', which can be turned on from the host app. In this mode, suggestions will be presented in a floating window next to a floating widget.

    The floating widget will stay at the bottom of the editor area and will automatically move left or right if there is not enough space for the suggestion window.

    If a suggestion is presented, you can click on the widget to hide/show it.

Screenshot 2023-03-04 at 00 21 23

  • Real-time suggestions have been improved with the following tweaks:
    • It can now be triggered without requiring Input Monitoring permissions. However, if you want to enable the cancellation feature using esc or mouse click, Input Monitoring is still necessary.
    • The likelihood of the editor being blocked has been significantly reduced. Blocking will only occur at most once for each file after each restart of the extension. Once a command has been executed and some information is cached, the extension will be able to trigger real-time suggestion using a different method that doesn't cause any blocking.
  • Replace the display link with AXObserver for better performance.
  • Fix that the settings in the host app were not reflecting the real settings.
  • And maybe something else I don't remember.

I personally find the floating widget mode to be quite good, and I'm starting to feel like the real-time suggestion mode is finally usable. If you have any suggestions about the floating widget mode, please reply to this issue.

The next thing I want to do is to integrate ChatGPT to this extension.

0.7.0

09 Feb 16:20
Compare
Choose a tag to compare

There are some breaking changes in this release. The very first change is that the XPC service is now an accessory app target located in a different location. So if you are upgrading to this version, please open the app once to let it set up the new launch agent for you. The permissions should now be granted to the accessory app, please see the readme for details.

I need to make these changes because the accessory app is taking on more responsibilities like presenting GUI elements. And the old CLI was placed in a wrong directory and caused a lot of problems.

Here are the other changes:

  • The real-time suggestion toggle is now universal, not workspace specific.
  • Added a menu bar item for the accessory app. The icon looks like a steering wheel.
  • The accessory app now launches on demand. You can set it to also quit automatically in the host app.
  • A breathing dot will appear next to the mouse pointer or text cursor when real-time suggestion is turned on. It will have a different animation when prefetch occurs.
  • Bump copilot.vim to 1.8.2

And some bugfixes:

  • Remove warnings from the language server protocol. It may have sped up the Copilot a little bit. But the real-time suggestion still feels very slow.
  • Fix that real-time suggestion not working when the Xcode autocomplete panel is displayed. (Oh, I mean it's now a feature, not a bug any more.)
  • Fix that running command triggers real-time suggestion.

I would like to implement the feature to present suggestions in windows in the next release (no ETA). But I am not sure where to place the window. Snap it to the display corners? To the window corners? If you have an idea, please feel free to let me know.

0.6.0

25 Jan 16:07
Compare
Choose a tag to compare
  • Ignore empty suggestions and fix wrong suggestion comment positions. #17 fixes #15
  • Tapping escape will now cancel in-flight real-time suggestion fetches. #18
  • Starting with the next update, the XPC service will be able to restart itself on update. But for this update, please restart manually. #19

The app can now be installed via Homebrew:

brew install --cask copilot-for-xcode

0.5.0

12 Jan 15:36
Compare
Choose a tag to compare
  • Add a "Prefetch Suggestions" command that returns immediately to avoid the editor blocking issue, the debounce threshold is lowered, too. But when the suggestion is ready, and you are not typing, it will call "Real-time Suggestions" to present the suggestions, this command can still block the editor.
  • Real-time suggestions will be triggered only by key-up, similar to VSCode. Key-down, mouse-up, and mouse-down will cancel the in-flight prefetches.
  • The state of real-time suggestions is now persisted, so if you turn it on for a workspace/project, it will still be on after the XPC Service restarts.
  • There will be a warning in the app if the version number of the XPC Service and the app don't match.
  • Updated Copilot.vim to 1.8.0.

Don't forget to restart XPC Service in the app after updates.