benji300 / joplin-note-tabs

Allows to open several notes at once in tabs and pin them.
MIT License
251 stars 16 forks source link

Improve reading setting values #24

Closed benji300 closed 3 years ago

benji300 commented 3 years ago

Reading accesses of setting values shall be improved. Read only when setting changes. Required plugin API version = v1.6.5.

Example code:

https://github.com/laurent22/joplin/releases/tag/v1.6.5
joplin.settings.onChange((event) => {
  joplin.data.post(['folders'], null, { title: JSON.stringify(event.keys) });
});

/**
 * Called when one or multiple settings of your plugin have been changed.
 * - For performance reasons, this event is triggered with a delay.
 * - You will only get events for your own plugin settings.
 */
public async onChange(handler: ChangeHandler): Promise<void> {
    // Filter out keys that are not related to this plugin
    eventManager.on('settingsChange', (event: ChangeEvent) => {
        const keys = event.keys
            .filter(k => k.indexOf(this.keyPrefix) === 0)
            .map(k => k.substr(this.keyPrefix.length));
        if (!keys.length) return;
        handler({ keys });
    });
}