Skip to content

Releases: intitni/CopilotForXcode

0.11.1

10 Apr 11:18
Compare
Choose a tag to compare

New in 0.11.1

Don't update to this version if you don't have the problem.

  • Remove the cache of file information each time a file is opened, which appears will disable the source extension sometimes(?). We will use the good old way to trigger real-time suggestion via Apple Scripts, but this time it will not dismiss the Xcode completion panel.

New in 0.11.0

  • The widget is now taller.
  • The UI of the chat panel has been updated, and now you can switch to a global chat that can be accessed for all files.
  • Chat with Selection and Explain Selection will no longer start a new conversation.
  • Enhance the suggestion feature by allowing the hiding of preceding spaces when suggesting heavily nested code. This can be enabled by right-clicking on the circular widget, which now opens a menu.
  • Added a new chat plugin, /airun. You can use this plugin to generate and run a terminal command using natural language. Don't expect it to always work, and it may require a slightly higher number of tokens.

  • Added /exit to help you exit a chat plugin.
  • The run plugin will now inherit all environment variables from your login shell, allowing you to utilize any software installed through brew or other means.
  • The language server will inherit all environment variables from your login shell, which allows the app to search for node in a wider range of locations.

  • Fix a widget position issue. I misunderstood what NSScreen.main is.
  • The continuous spaces in the selected code sent to the chat panel will now remain as they are and won't be replaced by a single space.

Pull Requests

Full Changelog: 0.11.0...0.11.1

0.11.0

08 Apr 15:56
Compare
Choose a tag to compare
  • The widget is now taller.
  • The UI of the chat panel has been updated, and now you can switch to a global chat that can be accessed for all files.
  • Chat with Selection and Explain Selection will no longer start a new conversation.
  • Enhance the suggestion feature by allowing the hiding of preceding spaces when suggesting heavily nested code. This can be enabled by right-clicking on the circular widget, which now opens a menu.
  • Added a new chat plugin, /airun. You can use this plugin to generate and run a terminal command using natural language. Don't expect it to always work, and it may require a slightly higher number of tokens.

  • Added /exit to help you exit a chat plugin.
  • The run plugin will now inherit all environment variables from your login shell, allowing you to utilize any software installed through brew or other means.
  • The language server will inherit all environment variables from your login shell, which allows the app to search for node in a wider range of locations.

  • Fix a widget position issue. I misunderstood what NSScreen.main is.
  • The continuous spaces in the selected code sent to the chat panel will now remain as they are and won't be replaced by a single space.

WWDC is coming.

Pull Requests

New Contributors

  • @ss18 made their first contribution in #121

Full Changelog: 0.10.0...0.11.0

0.10.0

01 Apr 05:19
Compare
Choose a tag to compare
  • You can now run terminal commands directly from the chat panel by using the /run command followed by your command, such as /run echo hello. Note that environment variables are currently inherited from the app, so any items installed with brew may not be discoverable.
  • The OpenAI account settings have been improved for better user-friendliness.
  • GitHub Copilot now supports more file types.
  • Server errors will no longer appear in the widget but can be viewed in the log using Console.app.
  • Real-time suggestions no longer require Apple Script involvement. So that it will never block the editor or dismiss the Xcode completion panel.
  • For users experiencing issue #70, there is now a workaround to accept suggestions without using Apple Script to click the menu. However, the experience may not be optimal. You can turn it on in the host app.
  • The text field in the chat panel will now be automatically activated when opened.
  • Code blocks within chats are now syntax highlighted, and a copy button has been added to the top right corner of the code block.
  • Prompts are improved to make prompt to edit code easier in the chat panel.

This release includes bug fixes that may have resolved issues #95 and #92, but as I cannot reproduce them on their own machine, I cannot confirm that they are fixed. Additionally, for Monterey users, the chat panel has been tweaked to support multiline input and correctly display the wipe history button.

Help wanted: #122 The helper app stutters when launched by launch agent

Pull Requests

New Contributors

Full Changelog: 0.9.1...0.10.0

0.9.1

25 Mar 16:56
Compare
Choose a tag to compare

New commands:

  • Chat with Selection: Open a chat window, if there is a selection, the selected code will be added to the prompt.
  • Explain Selection: Open a chat window and explain the selected code.

To use these 2 commands, you will need to provide a valid OpenAI API key. Check the new account settings for details. The chat is currently limited to 5 conversations. Exceeding token limit is not handled.

Other updates:

  • Present errors in widget.
  • Add Sparkle for auto update. #60
  • May have fixed #59
  • May have fixed #70

I've spent too much time on this this month and it's making me very tired. I think I need to take a break, so please note that I may not be instantly responding to issues or pull requests for a while. Good night.

0.8.6

17 Mar 14:41
Compare
Choose a tag to compare
  • Fix that the widget was not showing when Xcode was in fullscreen mode.
  • Add light mode support. You can set it up in the host app.
  • Add a linear gradient below the host app status bar.

Full Changelog: 0.8.5...0.8.6

Let's just pretend that there is no more bug in 0.8.x.

0.8.5-Update-1

15 Mar 06:45
Compare
Choose a tag to compare

Update 1: Fix syntax highlighting for Objective-C #48


  • May fix #43 that the app is freezing for some users by changing LazyVGrid to VStack (Why?). Big thanks to @timwredwards and @cr2s367067 for helping me locate the bug. I wasn't able to reproduce the bug on 2 of my machines, so I'm not completely certain that it's fixed or that it won't resurface in the future.
  • Done some cleanup in the suspicious areas that look relevant to the bug.
  • Updated copilot.vim to 1.8.3

If the app still freezes, please reply to issue #43, and give 0.8.4 a try. Maybe I made some mistakes again, sigh.

0.8.5

15 Mar 04:01
Compare
Choose a tag to compare
  • May fix #43 that the app is freezing for some users by changing LazyVGrid to VStack (Why?). Big thanks to @timwredwards and @cr2s367067 for helping me locate the bug. I wasn't able to reproduce the bug on 2 of my machines, so I'm not completely certain that it's fixed or that it won't resurface in the future.
  • Done some cleanup in the suspicious areas that look relevant to the bug.
  • Updated copilot.vim to 1.8.3

If the app still freezes, please reply to issue #43, and give 0.8.4 a try. Maybe I made some mistakes again, sigh.

0.8.4-pre-release

13 Mar 15:41
Compare
Choose a tag to compare

Update 1: Remove an unused preference key

This is a quick fix to #43. I am not sure if it's the real fix, so it will stay as a pre-release for a while.

If you have encountered this issue and find that the update fixes it, please give this release an emoji. If it's still not working, please reply to issue #43

Big thanks to @timwredwards and @cr2s367067 for helping me locate the bug.

Good night everyone.

0.8.3

10 Mar 07:48
Compare
Choose a tag to compare

If the app is freezing for you, please check the 0.8.4 pre-release

  1. Add a new toggle to enable the floating widget to align with the text cursor for a more obvious suggestion display.
  2. Remove the requirement for Input Monitoring. Accessibility API permissions can already achieve input monitoring. The Input Monitoring was used because I wanted to use listenOnly instead of defaultTap. But the term was scary to some users.
  3. Bring back real-time suggestion when the completion panel is shown.
  4. Support syntax highlighting, and display spaces as middle dots. Fix line break mode of suggestion (by accident).
  5. Hide the real-time suggestion indicator for floating widget mode.
  6. Fix that if you switch to another file during the fetch of a suggestion, the suggestion from the previous file will still be presented.
  7. Lower the widget's z level, which is currently set too high.
  8. Fix that real-time suggestion cancellation fails after switching to another app and back to Xcode.
  9. Update to use release rss to check for update

The next update will focus on some ChatGPT-powered features because my free credits are expiring soon! We will start with some simple commands like "Explain Selected Code".

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.