The missing GitHub Copilot, Codeium and ChatGPT Xcode Source Editor Extension
OTHER License
Bot releases are hidden (Show)
Published by intitni about 1 year ago
Please restart Xcode to finish the update.
contenteditable
(e.g. Linear.app).target="_blank"
links were unable to open.Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.21.2...0.22.0
Published by intitni about 1 year ago
Please restart Xcode to finish the update.
contenteditable
(e.g. Linear.app).target="_blank"
links were unable to open.Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.21.2...0.22.0
Published by intitni about 1 year ago
Please restart Xcode to finish the update.
Add a toggle to disable function calling in advanced settings.
you can disable it if you have no control over the model you are using for chat, and the model doesn't support function calling.
@web
scope and some features of the @code
scope will not work without function calling.
Back in the beginning of 2023, I created the initial version of the source editor extension for GitHub Copilot, which injects suggestions into the code as comments. I never imagined that it would evolve into what it is today.
While most of what was free and open-source will remain free and open-source. I would like to introduce the Plus license key which unlocks a subset of the new features. I kindly ask you to consider getting a license key to support the development of this project!
The very first plus features are:
Replace selection and file scope with file and code scope.
@code
scope now parses the AST (Swift only at the moment) of the file so it knows more context of the file, like what is imported and what type or function the selected code is in.(Plus) Browser tab
You can now use your favorite web tools from the chat panel. The context menu has been enhanced, allowing you to perform the following actions while editing text:
When you are not editing text, you can still run custom commands on any selected text.
Known issue:
- active elements inside shadow dom and
contenteditable
divs are not yet supported.- open in new tab is not yet handled.
Create new chat tab with custom chat commands.
Chat panel now supports switch tabs with shift+command+]
and shift+command+[
.
Web page query with @web
scope should be faster now.
You can now hide the circular widget. #307
Move the chat context menu to tab bar.
Move the pin chat panel button to the title bar of chat panel.
Use SMAppService to setup launch agent. If you are building the app yourself, don’t forget to update the launchAgent.plist file in the project. #266
Bump Codeium to 1.2.57
Update Azure OpenAI API to 07-01 preview which supports function calling. (Please update the model version of your deployment tot 0613)
Make the ChatGPT service compatible with LocalAI, but you should use a model that supports function calling, or configure it to completely ignore function calling. #308
Prevent reading large files. #316
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.20.1...0.21.0
Published by intitni about 1 year ago
Back in the beginning of 2023, I created the initial version of the source editor extension for GitHub Copilot, which injects suggestions into the code as comments. I never imagined that it would evolve into what it is today.
While most of what was free and open-source will remain free and open-source. I would like to introduce the Plus license key which unlocks a subset of the new features. I kindly ask you to consider getting a license key to support the development of this project!
The very first plus features are:
Replace selection and file scope with file and code scope.
@code
scope now parses the AST (Swift only at the moment) of the file so it knows more context of the file, like what is imported and what type or function the selected code is in.(Plus) Browser tab
You can now use your favorite web tools from the chat panel. The context menu has been enhanced, allowing you to perform the following actions while editing text:
When you are not editing text, you can still run custom commands on any selected text.
Known issue:
- active elements inside shadow dom and
contenteditable
divs are not yet supported.- open in new tab is not yet handled.
Create new chat tab with custom chat commands.
Chat panel now supports switch tabs with shift+command+]
and shift+command+[
.
Web page query with @web
scope should be faster now.
You can now hide the circular widget. #307
Move the chat context menu to tab bar.
Move the pin chat panel button to the title bar of chat panel.
Use SMAppService to setup launch agent. If you are building the app yourself, don’t forget to update the launchAgent.plist file in the project. #266
Bump Codeium to 1.2.57
Update Azure OpenAI API to 07-01 preview which supports function calling. (Please update the model version of your deployment tot 0613)
Make the ChatGPT service compatible with LocalAI, but you should use a model that supports function calling, or configure it to completely ignore function calling. #308
Prevent reading large files. #316
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.20.1...0.21.0
Published by intitni about 1 year ago
Back in the beginning of 2023, I created the initial version of the source editor extension for GitHub Copilot, which injects suggestions into the code as comments. I never imagined that it would evolve into what it is today.
While most of what was free and open-source will remain free and open-source. I would like to introduce the Plus license key which unlocks a subset of the new features. I kindly ask you to consider getting a license key to support the development of this project!
The very first plus features are:
Replace selection and file scope with file and code scope.
@code
scope now parses the AST (Swift only at the moment) of the file so it knows more context of the file, like what is imported and what type or function the selected code is in.(Plus) Browser tab
You can now use your favorite web tools from the chat panel. The context menu has been enhanced, allowing you to perform the following actions while editing text:
When you are not editing text, you can still run custom commands on any selected text.
Known issue:
- active elements inside shadow dom and
contenteditable
divs are not yet supported.- open in new tab is not yet handled.
Create new chat tab with custom chat commands.
Chat panel now supports switch tabs with shift+command+]
and shift+command+[
.
Web page query with @web
scope should be faster now.
You can now hide the circular widget. #307
Move the chat context menu to tab bar.
Move the pin chat panel button to the title bar of chat panel.
Use SMAppService to setup launch agent. If you are building the app yourself, don’t forget to update the launchAgent.plist file in the project. #266
Bump Codeium to 1.2.57
Update Azure OpenAI API to 07-01 preview which supports function calling.
Make the ChatGPT service compatible with LocalAI, but you should use a model that supports function calling, or configure it to completely ignore function calling. #308
Prevent reading large files. #316
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.20.1...0.21.0
Published by intitni about 1 year ago
Please restart Xcode to finish the update.
Update Nearby Text Cursor to be the default presentation.
Support multiple chat tabs.
Support new custom command "Single Round Dialog", which sends a message to a temporary chat, and optionally receives a reply through notification. You may want to use it to quickly run a shell command with /run
.
For example, you can set the prompt of this custom command to be /run open $FILE_PATH -a "TextEdit.app"
to open the active file in TextEdit.app or /run open .
to open the project root in Finder.app.
For anyone doesn't know, you can run shell command in the chat panel with /run
. The directory path will be you project root.
Update GitHub Copilot to 1.9.1.
Add a "ignore trailing new lines and whitespaces" toggle to GitHub Copilot settings.
Improve transitions of widgets.
An experimental chat scope @web
is added. It can search with Bing, scrap a website, and answer your question according to that information. But the implementation is still very naive, it will use the top 5 relevant trunks of text from the webpage to generate an answer.
(Azure OpenAI doesn't support function calling yet, so you can't use @web
from it.)
Published by intitni over 1 year ago
Please restart Xcode to finish the update.
Update Nearby Text Cursor to be the default presentation.
Support multiple chat tabs.
Support new custom command "Single Round Dialog", which sends a message to a temporary chat, and optionally receives a reply through notification. You may want to use it to quickly run a shell command with /run
.
For example, you can set the prompt of this custom command to be /run open $FILE_PATH -a "TextEdit.app"
to open the active file in TextEdit.app or /run open .
to open the project root in Finder.app.
For anyone doesn't know, you can run shell command in the chat panel with /run
. The directory path will be you project root.
Update GitHub Copilot to 1.9.1.
Add a "ignore trailing new lines and whitespaces" toggle to GitHub Copilot settings.
Improve transitions of widgets.
An experimental chat scope @web
is added. It can search with Bing, scrap a website, and answer your question according to that information. But the implementation is still very naive, it will use the top 5 relevant trunks of text from the webpage to generate an answer.
(Azure OpenAI doesn't support function calling yet, so you can't use @web
from it.)
Eventually, I decided to just not use PythonKit and LangChain.py. It's actually possible to embed site-packages, import from LangChain, and even call its tools from threads other than the main thread. But it makes me very nervous when trying to use it to run some time-consuming tasks. Other downsides are:
Luckily it's not that hard to translate the tools I need into Swift.
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.19.2...0.20.0
Published by intitni over 1 year ago
Please restart Xcode to finish the update.
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.18.2...0.19.0
Published by intitni over 1 year ago
Please restart Xcode to finish the update.
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.18.2...0.19.0
Published by intitni over 1 year ago
Please restart Xcode to finish the update.
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.18.2...0.19.0
Published by intitni over 1 year ago
Please restart Xcode to finish the update.
\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!
/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:
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.)
We now support 2 new chat plugins:
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.
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.17.1...0.18.0
Published by intitni over 1 year ago
Please restart Xcode to finish the update.
/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:
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.)
We now support 2 new chat plugins:
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.
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.17.1...0.18.0
Published by intitni over 1 year ago
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:
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.
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.17.1...0.18.0
Published by intitni over 1 year ago
Please restart Xcode to finish the update.
@selection
to let it read the selected code.Published by intitni over 1 year ago
Please restart Xcode to finish the update.
@selection
to let it read the selected code.Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.16.1...0.17.0
Published by intitni over 1 year ago
Please restart Xcode to finish the update
@file
. But please note that you may not have enough tokens to put large files into the context.Published by intitni over 1 year ago
@file
. But please note that you may not have enough tokens to put large files into the context.Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.15.4...0.16.0
Published by intitni over 1 year ago
This guy is writing a lot of bug...
NSWindow.orderFront
to make the widgets displayed when Xcode is in fullscreen mode. It will now call orderFront
only when Xcode enters fullscreen.Published by intitni over 1 year ago
NSWindow.orderFront
to make the widgets displayed when Xcode is in fullscreen mode. It will now call orderFront
only when Xcode enters fullscreen.Workspace
by @intitni in https://github.com/intitni/CopilotForXcode/pull/195
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.14.1...0.15.0
Published by intitni over 1 year ago
NSWindow.orderFront
to make the widgets displayed when Xcode is in fullscreen mode. It will now call orderFront
only when Xcode enters fullscreen.Workspace
by @intitni in https://github.com/intitni/CopilotForXcode/pull/195
Full Changelog: https://github.com/intitni/CopilotForXcode/compare/0.14.1...0.15.0