Releases: intitni/CopilotForXcode
0.22.2
Please restart Xcode to finish the update.
- Fix broken purchase license link.
- Fix that opening new browser tab will disable the observations in previous browser tabs.
New in 0.22.0
- (Plus, free to try before 2023-08-26) Accept suggestion with Tab, go turn it on in the settings!
- (Plus, free to try before 2023-08-26) Persisted chat tabs and browser tabs.
- (Plus) Browser tab:
- Fix that rewrite content was not working.
- Support rewriting content inside shadow dom (e.g. Bing Chat), and some
contenteditable
(e.g. Linear.app). - Support right click - open in new window. It will now open the link in another tab.
- Fix that
target="_blank"
links were unable to open.
- You can now hide the accept and reject buttons on the suggestion panel to have a more compact look.
- When the circular widget is hidden, it will display the animation when fetching suggestion.
- Fix the terrible transition when accepting prompt to code suggestion with continuous mode on.
- Make the chat bot know the current time.
- Remove Splash, use Highlight.js to highlight all the languages. Bump Highlight.js to 11.8.0.
Pull Requests
- Feature/function calling fallback by @intitni in #329
- Support hiding buttons in suggestion panel by @intitni in #330
- Handle target blank link browser tab by @intitni in #331
- Bump highlightjs version. Remove Splash. by @intitni in #332
- Persisted chat by @intitni in #333
- Tab to accept suggestion by @intitni in #339
- Circular widget animation when hidden by @intitni in #340
Full Changelog: 0.21.2...0.22.0
0.22.1
Please restart Xcode to finish the update.
- Fix that opening new browser tab will disable the observations in previous browser tabs.
New in 0.22.0
- (Plus, free to try before 2023-08-26) Accept suggestion with Tab, go turn it on in the settings!
- (Plus, free to try before 2023-08-26) Persisted chat tabs and browser tabs.
- (Plus) Browser tab:
- Fix that rewrite content was not working.
- Support rewriting content inside shadow dom (e.g. Bing Chat), and some
contenteditable
(e.g. Linear.app). - Support right click - open in new window. It will now open the link in another tab.
- Fix that
target="_blank"
links were unable to open.
- You can now hide the accept and reject buttons on the suggestion panel to have a more compact look.
- When the circular widget is hidden, it will display the animation when fetching suggestion.
- Fix the terrible transition when accepting prompt to code suggestion with continuous mode on.
- Make the chat bot know the current time.
- Remove Splash, use Highlight.js to highlight all the languages. Bump Highlight.js to 11.8.0.
Pull Requests
- Feature/function calling fallback by @intitni in #329
- Support hiding buttons in suggestion panel by @intitni in #330
- Handle target blank link browser tab by @intitni in #331
- Bump highlightjs version. Remove Splash. by @intitni in #332
- Persisted chat by @intitni in #333
- Tab to accept suggestion by @intitni in #339
- Circular widget animation when hidden by @intitni in #340
Full Changelog: 0.21.2...0.22.0
0.22.0
Please restart Xcode to finish the update.
- (Plus, free to try before 2023-08-26) Accept suggestion with Tab, go turn it on in the settings!
- (Plus, free to try before 2023-08-26) Persisted chat tabs and browser tabs.
- (Plus) Browser tab:
- Fix that rewrite content was not working.
- Support rewriting content inside shadow dom (e.g. Bing Chat), and some
contenteditable
(e.g. Linear.app). - Support right click - open in new window. It will now open the link in another tab.
- Fix that
target="_blank"
links were unable to open.
- You can now hide the accept and reject buttons on the suggestion panel to have a more compact look.
- When the circular widget is hidden, it will display the animation when fetching suggestion.
- Fix the terrible transition when accepting prompt to code suggestion with continuous mode on.
- Make the chat bot know the current time.
- Remove Splash, use Highlight.js to highlight all the languages. Bump Highlight.js to 11.8.0.
Pull Requests
- Feature/function calling fallback by @intitni in #329
- Support hiding buttons in suggestion panel by @intitni in #330
- Handle target blank link browser tab by @intitni in #331
- Bump highlightjs version. Remove Splash. by @intitni in #332
- Persisted chat by @intitni in #333
- Tab to accept suggestion by @intitni in #339
- Circular widget animation when hidden by @intitni in #340
Full Changelog: 0.21.2...0.22.0
0.21.2
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.
New in 0.21.1
- Fix that command+w can't close chat tabs.
- Fix that the project can't be built without the private submodule.
New in 0.21.0
Introducing Copilot for Xcode Plus!
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:
- Browser tab.
- Unlimited number of custom commands (non-plus users will have a limit of 10 commands (´・ω・`)).
What’s New
-
Replace selection and file scope with file and code scope.
- The file scope enables the chatbot to read the metadata of the edited file. The code scope enables the chatbot to read both the metadata and content of the edited file.
- The
@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. - When there is no selected code, it can get the focused code base on the cursor position.
-
(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:- paste selected code / file content.
- paste selected code / file content in Markdown.
- rewrite selected text with custom commands.
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+]
andshift+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
Pull Requests
- Browser chat tab by @intitni in #299
- Chat panel keyboard shortcuts by @intitni in #312
- Feature/browser tab inserting and processing by @intitni in #313
- Azure OpenAI 2023-07-01-preview by @intitni in #318
- Bump Codeium version to 1.2.57 by @intitni in #319
- Feature/adjust browser tab processed content presentation by @intitni in #320
- Disallow reading large files in Filespace by @intitni in #321
- Feature/allow hiding circular widget by @intitni in #322
- Make local models usable as an OpenAI replacement by @intitni in #323
- Use SMAppService to setup launch agent by @intitni in #324
- Update retrieval chain to only gather information by @intitni in #325
- Code scope with AST support by @intitni in #326
Full Changelog: 0.20.1...0.21.0
0.21.1
- Fix that command+w can't close chat tabs.
- Fix that the project can't be built without the private submodule.
New in 0.21.0
Introducing Copilot for Xcode Plus!
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:
- Browser tab.
- Unlimited number of custom commands (non-plus users will have a limit of 10 commands (´・ω・`)).
What’s New
-
Replace selection and file scope with file and code scope.
- The file scope enables the chatbot to read the metadata of the edited file. The code scope enables the chatbot to read both the metadata and content of the edited file.
- The
@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. - When there is no selected code, it can get the focused code base on the cursor position.
-
(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:- paste selected code / file content.
- paste selected code / file content in Markdown.
- rewrite selected text with custom commands.
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+]
andshift+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
Pull Requests
- Browser chat tab by @intitni in #299
- Chat panel keyboard shortcuts by @intitni in #312
- Feature/browser tab inserting and processing by @intitni in #313
- Azure OpenAI 2023-07-01-preview by @intitni in #318
- Bump Codeium version to 1.2.57 by @intitni in #319
- Feature/adjust browser tab processed content presentation by @intitni in #320
- Disallow reading large files in Filespace by @intitni in #321
- Feature/allow hiding circular widget by @intitni in #322
- Make local models usable as an OpenAI replacement by @intitni in #323
- Use SMAppService to setup launch agent by @intitni in #324
- Update retrieval chain to only gather information by @intitni in #325
- Code scope with AST support by @intitni in #326
Full Changelog: 0.20.1...0.21.0
0.21.0
Introducing Copilot for Xcode Plus!
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:
- Browser tab.
- Unlimited number of custom commands (non-plus users will have a limit of 10 commands (´・ω・`)).
What’s New
-
Replace selection and file scope with file and code scope.
- The file scope enables the chatbot to read the metadata of the edited file. The code scope enables the chatbot to read both the metadata and content of the edited file.
- The
@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. - When there is no selected code, it can get the focused code base on the cursor position.
-
(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:- paste selected code / file content.
- paste selected code / file content in Markdown.
- rewrite selected text with custom commands.
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+]
andshift+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
Pull Requests
- Browser chat tab by @intitni in #299
- Chat panel keyboard shortcuts by @intitni in #312
- Feature/browser tab inserting and processing by @intitni in #313
- Azure OpenAI 2023-07-01-preview by @intitni in #318
- Bump Codeium version to 1.2.57 by @intitni in #319
- Feature/adjust browser tab processed content presentation by @intitni in #320
- Disallow reading large files in Filespace by @intitni in #321
- Feature/allow hiding circular widget by @intitni in #322
- Make local models usable as an OpenAI replacement by @intitni in #323
- Use SMAppService to setup launch agent by @intitni in #324
- Update retrieval chain to only gather information by @intitni in #325
- Code scope with AST support by @intitni in #326
Full Changelog: 0.20.1...0.21.0
0.20.1
Please restart Xcode to finish the update.
- Fix different cases in accepting a suggestion after typing out a part of the suggested code.
- Fix that only the title area of a chat panel tab can be clicked.
New in 0.20.0
-
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.)
0.20.0
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:
- It takes like forever to code sign.
- You will have to set up Python in your unit tests.
- Heavily increased app bundle size.
- There is no documentation about how to use it in a multiple-thread environment.
Luckily it's not that hard to translate the tools I need into Swift.
Pull Requests
- Feature/python as spm by @intitni in #260
- ChatGPT function call, memory and configuration by @intitni in #263
- Chat service to support new api by @intitni in #264
- Accept suggestion automatically fallback to Accessibility API solution by @intitni in #267
- Web access for bot by @intitni in #284
- Migrate to composible architecture by @intitni in #285
- Multiple chat tab by @intitni in #288
- Custom command single round dialog by @intitni in #291
- Improve real-time suggestion invalidation by @intitni in #294
- Update QueryWebsiteFunction to work by @intitni in #295
- GitHub Copilot 1.9.1 by @intitni in #296
Full Changelog: 0.19.2...0.20.0
0.19.2
Please restart Xcode to finish the update.
- Fix incorrect opened tabs observation, which may affect the suggestion feature in generating suggestions from the opened files.
New in 0.19.1
- Fix the issue where the extension service may fail to register some AXNotifications if Xcode is opened after the service.
New in 0.19.0
- Add new suggestion presentation mode: nearby text cursor. It's recommended to set the real-time suggestion debounce to something greater than 0 if you are using this mode. Remove comment mode. Go toggle it on in the suggestion feature settings!
- Update Codeium to 1.2.40.
- Accepting suggestion in widget will automatically fall back to using Accessibility API when the command menu is not available. If the button is not working for you, please turn on “Always use Accessibility API to accept suggesting” in advanced settings.
- 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.19.1
Please restart Xcode to finish the update.
- Fix the issue where the extension service may fail to register some AXNotifications if Xcode is opened after the service.
New in 0.19.0
- Add new suggestion presentation mode: nearby text cursor. It's recommended to set the real-time suggestion debounce to something greater than 0 if you are using this mode. Remove comment mode. Go toggle it on in the suggestion feature settings!
- Update Codeium to 1.2.40.
- Accepting suggestion in widget will automatically fall back to using Accessibility API when the command menu is not available. If the button is not working for you, please turn on “Always use Accessibility API to accept suggesting” in advanced settings.
- 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