Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CopilotCode Component with Syntax Highlighting and File Explorer and Meta-Chat/Sidebar/Popup Components #230

Open
TimeLordRaps opened this issue Feb 20, 2024 · 1 comment
Labels
feature request New feature or request

Comments

@TimeLordRaps
Copy link

CopilotCode Component

Is your feature request related to a problem? Please describe.
Currently the text area is good but doesn't provide syntax highlighting, file explorer, and other useful coding tools

Describe the solution you'd like
A clear and concise description of what you want to happen.
Integration of a code editor component that includes syntax highlighting and a file explorer.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
The text area provides most of the functionality already, but lacks key features related to the difference between code and natural language.

Additional context
Add any other context or screenshots about the feature request here.
Besides syntax highlighting and a file explorer, it would be useful to have some sort of execution/run functionality for rapid in app prototyping.

Meta-versions of each Copilot Component

Is your feature request related to a problem? Please describe.
Currently while we can change certain things about the state via interactions with a copilot, it isn't directly obvious how the copilot would have access to changing actual functionality of the app itself via code injection.

Describe the solution you'd like
An integrated solution for interacting with the app itself from within the app itself. In line with the arbitrary code execution from above I think some sort of meta-chat/code/text area where the developer is: able to interact with a copy of the codebase of the app from within the app, able to switch between the live stable view and a live modified view from within the app, able to view both the live stable and live modified views side by side loaded off the same data where an interaction on either side is reflected on both sides depending on the differences in code.

Describe alternatives you've considered
Implementing it using the current solutions, but I'm currently unsure on multiple aspects of implementation.

Additional context
Each of the chat/code/text areas would function differently.

Meta-Chat/sidebar/popup would be natural language mixed with code where the user typically interacts via natural language and the ai responds with code that it thinks is valid so that it can receive a confirmation from the developer before integration into a modified version for view via side by side or back and forth.

Meta-Code would just be the code editor with the project open in the file explorer.

Meta-Text area would be more like a to do list or instruction set/sequence where each new line would separate the list into individual actions to be taken in their order to change the app's code base. Where the developer can compare any 2 in between steps side by side or can progress through the steps from current stable one by one in a gallery. To add even more power to this conditional logic would be nice, where the gallery goes sequentially through sequential steps with links to each conditioned step. We would need some sort of action compiler that would only compile from the point of a change onwards.

@TimeLordRaps TimeLordRaps added the feature request New feature or request label Feb 20, 2024
@TimeLordRaps
Copy link
Author

So I'm currently trying to work around redirecting the suggestions and insertions from the textarea to a monaco editor's completion provider with no success. I'm not familiar with typescript at all really and am struggling greatly. If possible could someone familiar with the suggestions and insertions direct me on this process.

For more context:
A completion provider is a function that essentially takes in the text of the editor, the position in the text, "context" around the cursor point in the editor, and a cancellation token and returns a list of completions.

I am currently trying to run a hidden parallel textarea that I could use, but am unsure as to how to transfer the previewed suggestions to the monaco editor as they don't seem directly accessible from the CopilotTextArea.

Any indirect solutions revolving around accessing the suggestions from the CopilotTextArea would be useful, or if there are currently none. Expanding the accessibility to the suggestions and insertions interface of the CopilotTextArea would make the textarea more extensible, and allow other's to more easily integrate it with their current UI's.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant