Open austincondiff opened 1 year ago
In my experiment over here, I use the following structures for "primative" ui elements (VStack, HStack, Text, Button):
{
"viewType": "vstack", // or hstack
"content": [/*other json representations of UI elements*/]
}
{
"viewType": "text",
"content": "content here"
}
{
"viewType": "button",
"onClick": "name of callback function",
"content": { /*other json representation of a UI element*/ }
}
All views need a viewType
field, which is used on the Swift side to decide which view to render. I use content
for what is shown in the view, but it could be renamed for each different kind of content (eg. plaintext, a single view, or multiple views)
We should allow extension developers to use a library of standardized UI components so that we can ensure a consistent visual design throughout CodeEdit and it's extensions.
The following UI components will need to be available for extensions to use for views in the navigator, inspector, and debug areas:
Possible UI elements (need further elaboration):
Note: some of these are standard to SwiftUI however depending on our architecture we may need to expose these through CodeEditKit.
Other considerations:
We should also keep in mind what we plan to allow developers to extend. This might include: