Releases: intitni/CopilotForXcode
0.13.3
(If you some how find that the buttons in the host app are not clickable, please give it some time. I honestly don't know what is wrong and will just blame SwiftUI.)
(The bug is found!, please wait for next release!)
What's New
- Add ids to custom command so changing the name of them won't create new custom commands in Key Binding settings.
- Make "Run node with interactive logged-in bash" a picker below path to node text field.
- Fix that changing ChatGPT model will reset server.
- Fix that resending a command with plugins won't trigger plugin.
- Fix that switching between files in Xcode won't update the position of widget immediately.
- Some other tweaks
0.14.0 beta 1: Detachable Chat
https://github.com/intitni/CopilotForXcode/releases/tag/0.14.0.beta.1
0.13.2
The development of this project will slow down until we know what Apple will do to Xcode during WWDC.
What's New
- Fix that duplicated custom commands were created #168
Please click into the issue to learn how to remove the duplicated command from Keybindings settings page.
What's New in 0.13.1
- Support setting extra system prompt for prompt-to-code custom commands. I found it quite useful when I use it as a smart template. You can set the code template in the extra system prompt field and leave the prompt field blank, then when you run this command, you will be able to generate code from this template with natural language. The panel will now show the custom command name.
- Prompt to code now has the knowledge of the editing file path.
- The text fields are now
TextEditor
with monospaced font. - Messages displayed when running custom chat commands are updated to also show the command name.
What's New in 0.13.0
- Bad news, the command "Explain Selection" is removed. Good news, It's now re-added as a custom command. You can now create custom commands to extend the "Prompt to Code" and "Chat with Selection" features. Custom commands can be accessed from the Editor menu of Xcode and the contextual menu of the circular widget.
- Smooth scrolling. Fixes #122
- Automatic ChatGPT token limit management. The app will now calculate the
max_token
for you, and the "Max Token" settings in the host app now represents the token count of messages sent + the token count of reply. That means you can set the value to maximum now. - Add "Max Message Count Sending" picker.
- Add "Temperature" slider.
- Delete messages from chat.
- Resend message from chat.
- Allow accepting prompt-to-code suggestion when the bot is still writing the description but the code is ready.
- Add copy button to Prompt to Code panel.
0.13.1
The development of this project will slow down until we know what Apple will do to Xcode during WWDC.
What's New
- Support setting extra system prompt for prompt-to-code custom commands. I found it quite useful when I use it as a smart template. You can set the code template in the extra system prompt field and leave the prompt field blank, then when you run this command, you will be able to generate code from this template with natural language. The panel will now show the custom command name.
- Prompt to code now has the knowledge of the editing file path.
- The text fields are now
TextEditor
with monospaced font. - Messages displayed when running custom chat commands are updated to also show the command name.
What's New in 0.13.0
- Bad news, the command "Explain Selection" is removed. Good news, It's now re-added as a custom command. You can now create custom commands to extend the "Prompt to Code" and "Chat with Selection" features. Custom commands can be accessed from the Editor menu of Xcode and the contextual menu of the circular widget.
- Smooth scrolling. Fixes #122
- Automatic ChatGPT token limit management. The app will now calculate the
max_token
for you, and the "Max Token" settings in the host app now represents the token count of messages sent + the token count of reply. That means you can set the value to maximum now. - Add "Max Message Count Sending" picker.
- Add "Temperature" slider.
- Delete messages from chat.
- Resend message from chat.
- Allow accepting prompt-to-code suggestion when the bot is still writing the description but the code is ready.
- Add copy button to Prompt to Code panel.
0.13.0
The development of this project will slow down until we know what Apple will do to Xcode during WWDC.
What's New
- Bad news, the command "Explain Selection" is removed. Good news, It's now re-added as a custom command. You can now create custom commands to extend the "Prompt to Code" and "Chat with Selection" features. Custom commands can be accessed from the Editor menu of Xcode and the contextual menu of the circular widget.
- Smooth scrolling. Fixes #122
- Automatic ChatGPT token limit management. The app will now calculate the
max_token
for you, and the "Max Token" settings in the host app now represents the token count of messages sent + the token count of reply. That means you can set the value to maximum now. - Add "Max Message Count Sending" picker.
- Add "Temperature" slider.
- Delete messages from chat.
- Resend message from chat.
- Allow accepting prompt-to-code suggestion when the bot is still writing the description but the code is ready.
- Add copy button to Prompt to Code panel.
Pull Requests
- Add Custom Scroll View backed by List for improved performance and smoother scrolling by @intitni in #157
- Add copy button to prompt to code by @intitni in #158
- Custom command by @intitni in #160
- Chat message manipulation by @intitni in #161
- Tweak prompt to code by @intitni in #162
- Auto token management by @intitni in #163
Full Changelog: 0.12.0...0.13.0
0.12.0
What's New
-
New command "Prompt to Code" to write or refactor code with natural language. The feature is powered by ChatGPT by default, but you can switch to a GitHub Copilot implementation which doesn't work that well.
Prompt to Code is like a special suggestion that has a higher priority, so you won't see other suggestions when the panel is displayed. You can accept or reject the prompt to code using the commands for suggestions when Xcode is active.
-
You can now globally disable suggestions and prompt to code features, and enable them for selected projects.
-
The widget is now preferred to stay inside the editor when the editor is wide enough. You can adjust the min-width in the host app.
-
You can now copy a reply from the chat panel with the new copy button. Or copy any message by right-clicking the bubble.
-
/run
now uses an interactive logged-in shell so it should now have the same environment as when you open a terminal. -
Node will now be loaded with interactive logged-in bash. If this is breaking the app for you, you can turn it off in the host app.
Help wanted: #122. Looks like it happens only on SwiftUI ScrollView
.
Pull Requests
- Disable suggestion feature globally, and selectively enable it for selected paths by @intitni in #141
- Prompt to code by @intitni in #147
- Continuous prompt to code by @intitni in #148
- Prompt to code with GitHub copilot by @intitni in #150
- Prefer widget to be inside editor when the editor is wide enough by @intitni in #151
- Boost qos hack that doesn't seem to make any change by @intitni in #152
- Add context menu with copy button by @intitni in #153
- Load node with interactive logged in shell by @intitni in #154
Full Changelog: 0.11.2...0.12.0
0.11.2
Tweak editor info prefetch and real-time suggestions.
- The app will no longer trigger real-time suggestion with Apple Script.
- You can turn off the prefetch step in the host app. Scroll all the way to the bottom for the toggle.
Fix a bug that a suggestions can't be accepted or discarded sometimes, because multiple filespaces for a same file was created.
Accepting suggestions via Accessibility API will now recover scroll position.
0.11.1
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
- 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
- enhancement by @ss18 in #121
- Improve chat panel UI by @intitni in #130
- Move data from SuggestionWidget to Service by @intitni in #131
- Global chat by @intitni in #133
- Hide common preceding spaces for suggestion by @intitni in #134
- AI terminal by @intitni in #135
- Fix widget position by @intitni in #136
New Contributors
Full Changelog: 0.10.0...0.11.0
0.10.0
- 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
- fix typo in SuggestionInjector.swift by @eltociear in #79
- Fix tab button hidden by panel by @intitni in #93
- Tweak chat panel behavior by @intitni in #98
- Cache filespace info automatically on file change by @intitni in #104
- Stop presenting LSP ServerErrors to the widget by @intitni in #105
- Accept suggestions via Accessibility API in widgets by @intitni in #106
- Improve prompt for chat by @intitni in #109
- Chat plugin - terminal by @intitni in #114
- Support more languages by @intitni in #115
- Never use apple script to trigger real-time suggestions by @intitni in #116
- Plugin tweak by @intitni in #117
- Support syntax highlighting and copy code in chat panel by @intitni in #118
- Allow ChatGPT Model and Reply in Language to be selected in Picker by @SNQ-2001 in #100
New Contributors
- @eltociear made their first contribution in #79
- @SNQ-2001 made their first contribution in #100
Full Changelog: 0.9.1...0.10.0
0.9.1
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:
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.