Description
We need to identify an approach for extension preferences.
For context per #416 by @pkasila
@Angelk90 said:
If the newly installed "Hello world" extension had a settings window, how can I access it?
@pkasila gave 3 options:
- (code approach) We can add
static func settings() -> ...
function toExtensionBuilder
class and this function should return (one of):
1.1. a set of settings (so CodeEdit handles settings in some unified way)
1.2. a function for window to be created
1.3. aNSViewController
with extension's settings (extension handles its settings)- (bundle resource approach) We can make extension developers add their settings fields to
Info.plist
or any other file in the extension's bundle, so CodeEdit will parse this file and handle settings in some unified way.- Actually we can make it work with XIBs in the extension's bundle 😄
@jasonplatts pointed out how Nova handles this...
Great question @Angelk90. We will need to consider that many extensions will want to store both global and project-specific settings. @austincondiff, this is something that is really confusing for users in Nova. The first white window is where global settings are shown and the second darker project window is where project-specific settings are found.
In our concept (here and here), we planned to house our extension store and extension library (installed extensions) in the Extension Navigator (#355).
What happens when we click on an extension in this navigator? Here are some options:
- A: A tab opens up with extension information and preferences
- B: A sheet opens up on top of the workspace window that shows extension information and preferences
- C: We have a separate extension store window similar to Nova
- 1: Forgo the navigator in preference of this extension window, or...
- 2: Use this window to supplement the navigator.
- We would display a button in the navigator to show the window.
- The navigator would enable quick access, while the window acts as a app store like experience.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status