Skip to content

Releases: intitni/CopilotForXcode

0.19.0

24 Jun 03:10
Compare
Choose a tag to compare

Please restart Xcode to finish the update.

  • Add new suggestion presentation mode: nearby text cursor. It 's recommended to set the real-time suggestion debounce to 0.1 if you are using this mode. Remove comment mode.
    Xcode
  • Update Codeium to 1.2.40.
  • Accepting suggestion in widget will automatically fallback to use Accessibility API when the command menu is not available.
  • Fix #269
  • Fix #266

Pull Requests

  • Read xcode version from inspector by @intitni in #268
  • New suggestion presentation mode: nearby text cursor by @intitni in #270
  • Update launch agent template by @intitni in #272
  • Fix that the widget will be brought to front when switching spaces by @intitni in #273
  • Bump Codeium version to 1.2.40 by @intitni in #274
  • Make full screen detector transient so it won't show up in Mission Control by @intitni in #275

Full Changelog: 0.18.2...0.19.0

0.18.2

14 Jun 11:02
Compare
Choose a tag to compare

Please restart Xcode to finish the update.

  • Add support for the new 16K model and 0613 models.
  • Search chat plugin now replies in the preferred language.
  • Add chat plugin \shortcutInput(shortcut name) to generate and send a user message to the bot.

The new function calling feature in ChatGPT is remarkable, we will be able to integrate some of the plugins and scopes into the bot without having to write an agent!

What's New in 0.18.1

  • May have fixed #172 (again!)
  • Support setting up a proxy for GitHub Copilot.
  • Fix that undoing in chat text view may crash the app.
  • Support new chat plugin: /shortcut(shortcut name): It will run a shortcut from the Shortcuts.app with your message (or the previous message if the new message is empty) as input, and reply with it's output. It may not have the permission to do everything like accessing your photo library.

For example, if you have a shortcut like this one:

Screenshot 2023-06-10 at 19 10 03

You can send /shortcut(translate) Hello world! to get "你好世界!" in reply, or, send /shortcut(translate) to let it translate the previous message. (Stop and output is not needed here.)

What's New in 0.18.0

  • We now support 2 new chat plugins:

    • /math: This plugin allows you to solve a simple math problem in natural language.
    • /search: This plugin can search on Bing and get an answer to your question. We chose Bing because it has a good enough free tier. To use this plugin, you will need to provide a subscription key in the host app. (Disclaimer: It's not as good as Bing Chat.)

    Both of these plugins currently lack the knowledge of the chat history.

  • You can now personalize the bot by setting the default system prompt.

  • For custom commands of open chat and custom chat, they now support the following template arguments:

    Argument Description
    {{selected_code}} The currently selected code in the editor.
    {{active_editor_language}} The programming language of the active editor.
    {{active_editor_file_url}} The URL of the active file in the editor.
    {{active_editor_file_name}} The name of the active file in the editor.

    If you prefer the old behavior of chat with selection, you can build your own command to send the code into the extra system prompt.

  • May have fixed #172 (If you still experience the crash, please help me debug it)

I have been experimenting with LangChain over the past few days and found it possible to embed the Python version of LangChain and use it with PythonKit. However, the experience was not optimal and it made the code sign take more time. Therefore, I decided to implement part of the chain and agent functionality in Swift and built the search plugin with it. Having a natively implemented chain and agent allows me to have better control over their behavior, and makes it easier to integrate native tools. I am still considering embedding LangChain (Python or Javascript, decision not yet made) in future versions to utilize their well-implemented and tested chains.

Pull Requests

Full Changelog: 0.17.1...0.18.0

0.18.1

10 Jun 11:13
Compare
Choose a tag to compare

Please restart Xcode to finish the update.

  • May have fixed #172 (again!)
  • Support setting up a proxy for GitHub Copilot.
  • Fix that undoing in chat text view may crash the app.
  • Support new chat plugin: /shortcut(shortcut name): It will run a shortcut from the Shortcuts.app with your message (or the previous message if the new message is empty) as input, and reply with it's output. It may not have the permission to do everything like accessing your photo library.

For example, if you have a shortcut like this one:

Screenshot 2023-06-10 at 19 10 03

You can send /shortcut(translate) Hello world! to get "你好世界!" in reply, or, send /shortcut(translate) to let it translate the previous message. (Stop and output is not needed here.)

What's New in 0.18.0

  • We now support 2 new chat plugins:

    • /math: This plugin allows you to solve a simple math problem in natural language.
    • /search: This plugin can search on Bing and get an answer to your question. We chose Bing because it has a good enough free tier. To use this plugin, you will need to provide a subscription key in the host app. (Disclaimer: It's not as good as Bing Chat.)

    Both of these plugins currently lack the knowledge of the chat history.

  • You can now personalize the bot by setting the default system prompt.

  • For custom commands of open chat and custom chat, they now support the following template arguments:

    Argument Description
    {{selected_code}} The currently selected code in the editor.
    {{active_editor_language}} The programming language of the active editor.
    {{active_editor_file_url}} The URL of the active file in the editor.
    {{active_editor_file_name}} The name of the active file in the editor.

    If you prefer the old behavior of chat with selection, you can build your own command to send the code into the extra system prompt.

  • May have fixed #172 (If you still experience the crash, please help me debug it)

I have been experimenting with LangChain over the past few days and found it possible to embed the Python version of LangChain and use it with PythonKit. However, the experience was not optimal and it made the code sign take more time. Therefore, I decided to implement part of the chain and agent functionality in Swift and built the search plugin with it. Having a natively implemented chain and agent allows me to have better control over their behavior, and makes it easier to integrate native tools. I am still considering embedding LangChain (Python or Javascript, decision not yet made) in future versions to utilize their well-implemented and tested chains.

Pull Requests

Full Changelog: 0.17.1...0.18.0

0.18.0

08 Jun 07:04
Compare
Choose a tag to compare

Please restart Xcode to finish the update.

Looks like we will have to stay together for a longer while.

  • We now support 2 new chat plugins:

    • /math: This plugin allows you to solve a simple math problem in natural language.
    • /search: This plugin can search on Bing and get an answer to your question. We chose Bing because it has a good enough free tier. To use this plugin, you will need to provide a subscription key in the host app. (Disclaimer: It's not as good as Bing Chat.)

    Both of these plugins currently lack the knowledge of the chat history.

  • You can now personalize the bot by setting the default system prompt.

  • For custom commands of open chat and custom chat, they now support the following template arguments:

    Argument Description
    {{selected_code}} The currently selected code in the editor.
    {{active_editor_language}} The programming language of the active editor.
    {{active_editor_file_url}} The URL of the active file in the editor.
    {{active_editor_file_name}} The name of the active file in the editor.

    If you prefer the old behavior of chat with selection, you can build your own command to send the code into the extra system prompt.

  • May have fixed #172 (If you still experience the crash, please help me debug it)

I have been experimenting with LangChain over the past few days and found it possible to embed the Python version of LangChain and use it with PythonKit. However, the experience was not optimal and it made the code sign take more time. Therefore, I decided to implement part of the chain and agent functionality in Swift and built the search plugin with it. Having a natively implemented chain and agent allows me to have better control over their behavior, and makes it easier to integrate native tools. I am still considering embedding LangChain (Python or Javascript, decision not yet made) in future versions to utilize their well-implemented and tested chains.

Pull Requests

Full Changelog: 0.17.1...0.18.0

0.17.1

31 May 05:50
Compare
Choose a tag to compare

Please restart Xcode to finish the update.

  • Stop displaying the cancellation errors from Codeium in UI. Fixes #237

What's New in 0.17.0

  • Copilot.vim is no longer embedded within the app. New users will need to click the install button to download it. If you are updating to this version, the language server was already moved to the appropriate location.
  • The keychain group is now correctly being used to store the Codeium auth key. However, it's uncertain whether the migration was implemented correctly, so you may need to sign in again after upgrading.
  • Codeium has been bumped up to version 1.2.25.
  • Azure OpenAI is now supported and it is lightning fast.
  • Certain settings have been moved from OpenAI settings to Chat settings.
  • The app will now attempt to notify suggestion services about the previously opened files on launch so that they will know which files are already open.
  • Suggestions will now be invalidated when you move the cursor to another line.
  • If you are simply typing what the suggestion offers, the app will not request new suggestions.
  • Suggestions will no longer be cancelled by mouse clicking or arrow keys.
  • In 0.16 the chat gained the ability to read your selected code. If you don't want it to do it automatically, you can now turn it off in the host app. You can still prepend the message with @selection to let it read the selected code.
  • Some fixes.

0.17.0

27 May 07:51
Compare
Choose a tag to compare

Please restart Xcode to finish the update.

  • Copilot.vim is no longer embedded within the app. New users will need to click the install button to download it. If you are updating to this version, the language server was already moved to the appropriate location.
  • The keychain group is now correctly being used to store the Codeium auth key. However, it's uncertain whether the migration was implemented correctly, so you may need to sign in again after upgrading.
  • Codeium has been bumped up to version 1.2.25.
  • Azure OpenAI is now supported and it is lightning fast.
  • Certain settings have been moved from OpenAI settings to Chat settings.
  • The app will now attempt to notify suggestion services about the previously opened files on launch so that they will know which files are already open.
  • Suggestions will now be invalidated when you move the cursor to another line.
  • If you are simply typing what the suggestion offers, the app will not request new suggestions.
  • Suggestions will no longer be cancelled by mouse clicking or arrow keys.
  • In 0.16 the chat gained the ability to read your selected code. If you don't want it to do it automatically, you can now turn it off in the host app. You can still prepend the message with @selection to let it read the selected code.
  • Some fixes.

Pull Requests

Full Changelog: 0.16.1...0.17.0

0.16.1

23 May 03:12
Compare
Choose a tag to compare

Please restart Xcode to finish the update

  • Fix that Objective-C code was not highlighted in chat.
  • Fix that widgets were not displaying when Xcode was moved to another space.

What's New in 0.16.0

  • The cancel request feature for GitHub Copilot has been implemented. For both GitHub Copilot and Codeium users, it is now recommended to set the real-time suggestion debounce to ZERO.
  • The "Chat with Selection" feature has been removed. However, the chat will now look at your active editor for the selected code. It can now identify:
    • The selected code in the active editor.
    • The relative path of the file.
    • The error and warning labels in the active editor.
    • Your text cursor location.
  • If you want the chat to read the whole file, you can prepend the message with @file. But please note that you may not have enough tokens to put large files into the context.
  • The bottom bar of the chat now has a context menu where you can check the current system prompt, reset system prompt, and run any chat-based custom commands.
  • You can now ask the custom prompt to code command to not generate a description.
    If you, like me, are using a custom command to polish documentation that is not in your preferred language, you may find that it sometimes translates the documentation into your language. This is because there is a line in the prompt that asks for a description of what it did in your preferred language. Now you can turn it off.

0.16.0

18 May 11:13
Compare
Choose a tag to compare
  • The cancel request feature for GitHub Copilot has been implemented. For both GitHub Copilot and Codeium users, it is now recommended to set the real-time suggestion debounce to ZERO.
  • The "Chat with Selection" feature has been removed. However, the chat will now look at your active editor for the selected code. It can now identify:
    • The selected code in the active editor.
    • The relative path of the file.
    • The error and warning labels in the active editor.
    • Your text cursor location.
  • If you want the chat to read the whole file, you can prepend the message with @file. But please note that you may not have enough tokens to put large files into the context.
  • The bottom bar of the chat now has a context menu where you can check the current system prompt, reset system prompt, and run any chat-based custom commands.
  • You can now ask the custom prompt to code command to not generate a description.
    If you, like me, are using a custom command to polish documentation that is not in your preferred language, you may find that it sometimes translates the documentation into your language. This is because there is a line in the prompt that asks for a description of what it did in your preferred language. Now you can turn it off.

Pull Request

Full Changelog: 0.15.4...0.16.0

0.15.4

15 May 11:00
Compare
Choose a tag to compare

This guy is writing a lot of bug...

What's New

  • Fixed that launch agent was not installed at launch.
  • Addressed an issue where the chat was not displaying in certain Xcode windows.
  • Resolved a problem where widgets were not disappearing after minimizing Xcode.
  • Implemented a default system prompt for the chat to when the chat is not opened with a command.
  • Added an install/uninstall button for GitHub Copilot language server.

What's New in 0.15.0

  • Support Codeium as a provider for the Suggestion feature.
  • New host app UI that is better structured.
  • Closed files will be cleaned up more frequently, hope that it can make the suggestions more accurate.
  • Improve the prompt of the Prompt to Code feature.
  • Updated both Chat and Prompt to Code to use a dynamic height scrollable text editor with better performance.
  • Support disabling languages from the Suggestion feature.
  • Rename global chat and file chat to "Shared Conversation" and "Local Conversation" to avoid misunderstanding.
  • Support opening chat from the menu bar item, it will open a shared-conversation detached chat even if Xcode is not launched.
  • Support opening the host app from the menu bar item.
  • Closing chat or prompt to code panel will reactivate Xcode if Xcode was the previously active application.
  • Change the menu bar icon to a tentacle.
  • Update Copilot.vim to 1.8.4.
  • Remove an order front hack that keeps calling NSWindow.orderFront to make the widgets displayed when Xcode is in fullscreen mode. It will now call orderFront only when Xcode enters fullscreen.

0.15.2

14 May 13:03
Compare
Choose a tag to compare

What's New

  • Fix that the menu bar icon was not visible in dark background.
  • Fix that the sign in process of Codeium was not cancellable.
  • Fix that sign out button for Codeium was not working.

What's New in 0.15.0

  • Support Codeium as a provider for the Suggestion feature.
  • New host app UI that is better structured.
  • Closed files will be cleaned up more frequently, hope that it can make the suggestions more accurate.
  • Improve the prompt of the Prompt to Code feature.
  • Updated both Chat and Prompt to Code to use a dynamic height scrollable text editor with better performance.
  • Support disabling languages from the Suggestion feature.
  • Rename global chat and file chat to "Shared Conversation" and "Local Conversation" to avoid misunderstanding.
  • Support opening chat from the menu bar item, it will open a shared-conversation detached chat even if Xcode is not launched.
  • Support opening the host app from the menu bar item.
  • Closing chat or prompt to code panel will reactivate Xcode if Xcode was the previously active application.
  • Change the menu bar icon to a tentacle.
  • Update Copilot.vim to 1.8.4.
  • Remove an order front hack that keeps calling NSWindow.orderFront to make the widgets displayed when Xcode is in fullscreen mode. It will now call orderFront only when Xcode enters fullscreen.

Pull Requests

Full Changelog: 0.14.1...0.15.0