feat: milestones 6b-fix through 6e — default-editor, files plugin, workspace host, workspaceItems contribution
- Fix PluginCard openProviders display - Add default-editor plugin (text/markdown/notes-context) - Add files plugin with workspaceItems placement - Add workspaceItems contribution point (Go + API + mock + SDK) - Add WorkspaceHost component for workspace area - WorkspaceTree dispatches selection event - Fix default-editor layout to fill container - Fix PluginCard unsafe .length access - Add E2E tests: 34/34 pass - Add bundle execution check to official-plugins check.sh - Update docs: PLUGIN_RUNTIME, DEV_PLUGINS, MILESTONE_6B/6C/6D plans
This commit is contained in:
Vendored
+5
-5
@@ -1,11 +1,11 @@
|
||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
||||
// This file is automatically generated. DO NOT EDIT
|
||||
import {workbench} from '../models';
|
||||
import {capability} from '../models';
|
||||
import {api} from '../models';
|
||||
import {permissions} from '../models';
|
||||
import {plugin} from '../models';
|
||||
import {files} from '../models';
|
||||
import {workbench} from '../models';
|
||||
|
||||
export function ArchiveWorkspaceNode(arg1:string):Promise<string>;
|
||||
|
||||
@@ -19,12 +19,12 @@ export function CreateWorkspaceNode(arg1:string,arg2:string,arg3:string):Promise
|
||||
|
||||
export function DisablePlugin(arg1:string):Promise<string>;
|
||||
|
||||
export function EditWorkbenchResource(arg1:string,arg2:Record<string, any>):Promise<workbench.OpenResourceResult|string>;
|
||||
|
||||
export function EnablePlugin(arg1:string):Promise<string>;
|
||||
|
||||
export function ExecutePluginCommand(arg1:string,arg2:string,arg3:Record<string, any>):Promise<Record<string, any>|string>;
|
||||
|
||||
export function EditWorkbenchResource(arg1:string,arg2:Record<string, any>):Promise<workbench.OpenResourceResult|string>;
|
||||
|
||||
export function GetAppSettings():Promise<Record<string, any>>;
|
||||
|
||||
export function GetCapabilities():Promise<Array<capability.Entry>>;
|
||||
@@ -49,12 +49,12 @@ export function GetVaultPluginState():Promise<Record<string, any>>;
|
||||
|
||||
export function GetVaultStatus():Promise<Record<string, string>>;
|
||||
|
||||
export function GetWorkspaceTree():Promise<Record<string, any>>;
|
||||
|
||||
export function GetWorkbenchOpenedResources():Promise<Array<workbench.OpenedResource>>;
|
||||
|
||||
export function GetWorkbenchPreferences():Promise<workbench.Preferences>;
|
||||
|
||||
export function GetWorkspaceTree():Promise<Record<string, any>>;
|
||||
|
||||
export function ListPluginCapabilities(arg1:string):Promise<Array<capability.Entry>|string>;
|
||||
|
||||
export function ListVaultFiles(arg1:string,arg2:string):Promise<Array<files.FileEntry>|string>;
|
||||
|
||||
@@ -26,6 +26,10 @@ export function DisablePlugin(arg1) {
|
||||
return window['go']['api']['App']['DisablePlugin'](arg1);
|
||||
}
|
||||
|
||||
export function EditWorkbenchResource(arg1, arg2) {
|
||||
return window['go']['api']['App']['EditWorkbenchResource'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function EnablePlugin(arg1) {
|
||||
return window['go']['api']['App']['EnablePlugin'](arg1);
|
||||
}
|
||||
@@ -34,10 +38,6 @@ export function ExecutePluginCommand(arg1, arg2, arg3) {
|
||||
return window['go']['api']['App']['ExecutePluginCommand'](arg1, arg2, arg3);
|
||||
}
|
||||
|
||||
export function EditWorkbenchResource(arg1, arg2) {
|
||||
return window['go']['api']['App']['EditWorkbenchResource'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function GetAppSettings() {
|
||||
return window['go']['api']['App']['GetAppSettings']();
|
||||
}
|
||||
@@ -86,10 +86,6 @@ export function GetVaultStatus() {
|
||||
return window['go']['api']['App']['GetVaultStatus']();
|
||||
}
|
||||
|
||||
export function GetWorkspaceTree() {
|
||||
return window['go']['api']['App']['GetWorkspaceTree']();
|
||||
}
|
||||
|
||||
export function GetWorkbenchOpenedResources() {
|
||||
return window['go']['api']['App']['GetWorkbenchOpenedResources']();
|
||||
}
|
||||
@@ -98,6 +94,10 @@ export function GetWorkbenchPreferences() {
|
||||
return window['go']['api']['App']['GetWorkbenchPreferences']();
|
||||
}
|
||||
|
||||
export function GetWorkspaceTree() {
|
||||
return window['go']['api']['App']['GetWorkspaceTree']();
|
||||
}
|
||||
|
||||
export function ListPluginCapabilities(arg1) {
|
||||
return window['go']['api']['App']['ListPluginCapabilities'](arg1);
|
||||
}
|
||||
|
||||
+344
-239
@@ -1,15 +1,35 @@
|
||||
export namespace api {
|
||||
|
||||
|
||||
export class FlatWorkspaceItem {
|
||||
pluginId: string;
|
||||
id: string;
|
||||
title: string;
|
||||
icon?: string;
|
||||
component: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FlatWorkspaceItem(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.pluginId = source["pluginId"];
|
||||
this.id = source["id"];
|
||||
this.title = source["title"];
|
||||
this.icon = source["icon"];
|
||||
this.component = source["component"];
|
||||
}
|
||||
}
|
||||
export class FlatOpenProviderSupport {
|
||||
kind: string;
|
||||
mime?: string[];
|
||||
extensions?: string[];
|
||||
contexts?: string[];
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FlatOpenProviderSupport(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.kind = source["kind"];
|
||||
@@ -25,11 +45,11 @@ export namespace api {
|
||||
priority?: number;
|
||||
component: string;
|
||||
supports: FlatOpenProviderSupport[];
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FlatOpenProvider(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.pluginId = source["pluginId"];
|
||||
@@ -39,7 +59,7 @@ export namespace api {
|
||||
this.component = source["component"];
|
||||
this.supports = this.convertValues(source["supports"], FlatOpenProviderSupport);
|
||||
}
|
||||
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
@@ -65,11 +85,11 @@ export namespace api {
|
||||
icon?: string;
|
||||
view: string;
|
||||
position?: number;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FlatSidebarItem(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.pluginId = source["pluginId"];
|
||||
@@ -86,11 +106,11 @@ export namespace api {
|
||||
title: string;
|
||||
icon?: string;
|
||||
component: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FlatSettingsPanel(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.pluginId = source["pluginId"];
|
||||
@@ -106,11 +126,11 @@ export namespace api {
|
||||
title: string;
|
||||
icon?: string;
|
||||
handler?: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FlatCommand(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.pluginId = source["pluginId"];
|
||||
@@ -126,11 +146,11 @@ export namespace api {
|
||||
title: string;
|
||||
icon?: string;
|
||||
component: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FlatView(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.pluginId = source["pluginId"];
|
||||
@@ -146,11 +166,12 @@ export namespace api {
|
||||
settingsPanels: FlatSettingsPanel[];
|
||||
sidebarItems: FlatSidebarItem[];
|
||||
openProviders: FlatOpenProvider[];
|
||||
|
||||
workspaceItems: FlatWorkspaceItem[];
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionSummary(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.views = this.convertValues(source["views"], FlatView);
|
||||
@@ -158,8 +179,9 @@ export namespace api {
|
||||
this.settingsPanels = this.convertValues(source["settingsPanels"], FlatSettingsPanel);
|
||||
this.sidebarItems = this.convertValues(source["sidebarItems"], FlatSidebarItem);
|
||||
this.openProviders = this.convertValues(source["openProviders"], FlatOpenProvider);
|
||||
this.workspaceItems = this.convertValues(source["workspaceItems"], FlatWorkspaceItem);
|
||||
}
|
||||
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
@@ -178,185 +200,27 @@ export namespace api {
|
||||
return a;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
export namespace workbench {
|
||||
|
||||
export class OpenResourceContext {
|
||||
sourcePluginId?: string;
|
||||
sourceView?: string;
|
||||
isInsideNotesFolder?: boolean;
|
||||
notesScopePath?: string;
|
||||
notesMode?: boolean;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new OpenResourceContext(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.sourcePluginId = source["sourcePluginId"];
|
||||
this.sourceView = source["sourceView"];
|
||||
this.isInsideNotesFolder = source["isInsideNotesFolder"];
|
||||
this.notesScopePath = source["notesScopePath"];
|
||||
this.notesMode = source["notesMode"];
|
||||
}
|
||||
}
|
||||
export class OpenResourceRequest {
|
||||
kind: string;
|
||||
path: string;
|
||||
mode?: string;
|
||||
mime?: string;
|
||||
extension?: string;
|
||||
context?: OpenResourceContext;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new OpenResourceRequest(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.kind = source["kind"];
|
||||
this.path = source["path"];
|
||||
this.mode = source["mode"];
|
||||
this.mime = source["mime"];
|
||||
this.extension = source["extension"];
|
||||
this.context = this.convertValues(source["context"], OpenResourceContext);
|
||||
}
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
}
|
||||
if (a.slice && a.map) {
|
||||
return (a as any[]).map(elem => this.convertValues(elem, classs));
|
||||
} else if ("object" === typeof a) {
|
||||
if (asMap) {
|
||||
for (const key of Object.keys(a)) {
|
||||
a[key] = new classs(a[key]);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
return new classs(a);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class OpenResourceResult {
|
||||
status: string;
|
||||
providerId?: string;
|
||||
providerPluginId?: string;
|
||||
providerComponent?: string;
|
||||
request: OpenResourceRequest;
|
||||
message?: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new OpenResourceResult(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.status = source["status"];
|
||||
this.providerId = source["providerId"];
|
||||
this.providerPluginId = source["providerPluginId"];
|
||||
this.providerComponent = source["providerComponent"];
|
||||
this.request = this.convertValues(source["request"], OpenResourceRequest);
|
||||
this.message = source["message"];
|
||||
}
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
}
|
||||
if (a.slice && a.map) {
|
||||
return (a as any[]).map(elem => this.convertValues(elem, classs));
|
||||
} else if ("object" === typeof a) {
|
||||
if (asMap) {
|
||||
for (const key of Object.keys(a)) {
|
||||
a[key] = new classs(a[key]);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
return new classs(a);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class OpenedResource {
|
||||
id: string;
|
||||
providerId: string;
|
||||
providerPluginId: string;
|
||||
providerComponent: string;
|
||||
request: OpenResourceRequest;
|
||||
openedAt: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new OpenedResource(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
this.providerId = source["providerId"];
|
||||
this.providerPluginId = source["providerPluginId"];
|
||||
this.providerComponent = source["providerComponent"];
|
||||
this.request = this.convertValues(source["request"], OpenResourceRequest);
|
||||
this.openedAt = source["openedAt"];
|
||||
}
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
}
|
||||
if (a.slice && a.map) {
|
||||
return (a as any[]).map(elem => this.convertValues(elem, classs));
|
||||
} else if ("object" === typeof a) {
|
||||
if (asMap) {
|
||||
for (const key of Object.keys(a)) {
|
||||
a[key] = new classs(a[key]);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
return new classs(a);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class Preferences {
|
||||
defaultTextEditorProvider?: string;
|
||||
defaultMarkdownEditorProvider?: string;
|
||||
defaultNotesMarkdownEditorProvider?: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new Preferences(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.defaultTextEditorProvider = source["defaultTextEditorProvider"];
|
||||
this.defaultMarkdownEditorProvider = source["defaultMarkdownEditorProvider"];
|
||||
this.defaultNotesMarkdownEditorProvider = source["defaultNotesMarkdownEditorProvider"];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
export namespace capability {
|
||||
|
||||
|
||||
export class Entry {
|
||||
name: string;
|
||||
description?: string;
|
||||
pluginId: string;
|
||||
status: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new Entry(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.name = source["name"];
|
||||
@@ -369,7 +233,7 @@ export namespace capability {
|
||||
}
|
||||
|
||||
export namespace files {
|
||||
|
||||
|
||||
export class FileEntry {
|
||||
name: string;
|
||||
relativePath: string;
|
||||
@@ -381,11 +245,11 @@ export namespace files {
|
||||
isReserved: boolean;
|
||||
canRead: boolean;
|
||||
canWrite: boolean;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FileEntry(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.name = source["name"];
|
||||
@@ -413,11 +277,11 @@ export namespace files {
|
||||
isReserved: boolean;
|
||||
canRead: boolean;
|
||||
canWrite: boolean;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FileMetadata(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.relativePath = source["relativePath"];
|
||||
@@ -436,11 +300,11 @@ export namespace files {
|
||||
}
|
||||
export class MoveOptions {
|
||||
overwrite: boolean;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new MoveOptions(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.overwrite = source["overwrite"];
|
||||
@@ -451,11 +315,11 @@ export namespace files {
|
||||
trashPath: string;
|
||||
trashId: string;
|
||||
deletedAt: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new TrashResult(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.originalPath = source["originalPath"];
|
||||
@@ -467,11 +331,11 @@ export namespace files {
|
||||
export class WriteOptions {
|
||||
createIfMissing: boolean;
|
||||
overwrite: boolean;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new WriteOptions(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.createIfMissing = source["createIfMissing"];
|
||||
@@ -482,16 +346,16 @@ export namespace files {
|
||||
}
|
||||
|
||||
export namespace permissions {
|
||||
|
||||
|
||||
export class Entry {
|
||||
name: string;
|
||||
description: string;
|
||||
dangerous: boolean;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new Entry(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.name = source["name"];
|
||||
@@ -503,15 +367,15 @@ export namespace permissions {
|
||||
}
|
||||
|
||||
export namespace plugin {
|
||||
|
||||
|
||||
export class HealthCheckConfig {
|
||||
type?: string;
|
||||
timeout?: number;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new HealthCheckConfig(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.type = source["type"];
|
||||
@@ -522,18 +386,18 @@ export namespace plugin {
|
||||
type: string;
|
||||
entry: Record<string, string>;
|
||||
healthCheck?: HealthCheckConfig;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new BackendConfig(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.type = source["type"];
|
||||
this.entry = source["entry"];
|
||||
this.healthCheck = this.convertValues(source["healthCheck"], HealthCheckConfig);
|
||||
}
|
||||
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
@@ -558,11 +422,11 @@ export namespace plugin {
|
||||
icon?: string;
|
||||
capability?: string;
|
||||
handler?: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionAction(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
@@ -576,11 +440,11 @@ export namespace plugin {
|
||||
id: string;
|
||||
events?: string[];
|
||||
handler: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionActivityProvider(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
@@ -594,11 +458,11 @@ export namespace plugin {
|
||||
keybinding?: string;
|
||||
icon?: string;
|
||||
handler?: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionCommand(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
@@ -615,11 +479,11 @@ export namespace plugin {
|
||||
group?: string;
|
||||
capability?: string;
|
||||
handler?: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionContextMenuEntry(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
@@ -630,15 +494,71 @@ export namespace plugin {
|
||||
this.handler = source["handler"];
|
||||
}
|
||||
}
|
||||
export class OpenProviderSupport {
|
||||
kind: string;
|
||||
mime?: string[];
|
||||
extensions?: string[];
|
||||
contexts?: string[];
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new OpenProviderSupport(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.kind = source["kind"];
|
||||
this.mime = source["mime"];
|
||||
this.extensions = source["extensions"];
|
||||
this.contexts = source["contexts"];
|
||||
}
|
||||
}
|
||||
export class ContributionOpenProvider {
|
||||
id: string;
|
||||
title: string;
|
||||
priority?: number;
|
||||
component: string;
|
||||
supports: OpenProviderSupport[];
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionOpenProvider(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
this.title = source["title"];
|
||||
this.priority = source["priority"];
|
||||
this.component = source["component"];
|
||||
this.supports = this.convertValues(source["supports"], OpenProviderSupport);
|
||||
}
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
}
|
||||
if (a.slice && a.map) {
|
||||
return (a as any[]).map(elem => this.convertValues(elem, classs));
|
||||
} else if ("object" === typeof a) {
|
||||
if (asMap) {
|
||||
for (const key of Object.keys(a)) {
|
||||
a[key] = new classs(a[key]);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
return new classs(a);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class ContributionSearchProvider {
|
||||
id: string;
|
||||
label: string;
|
||||
handler: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionSearchProvider(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
@@ -651,11 +571,11 @@ export namespace plugin {
|
||||
title: string;
|
||||
component: string;
|
||||
icon?: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionSettingsPanel(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
@@ -670,11 +590,11 @@ export namespace plugin {
|
||||
icon?: string;
|
||||
view: string;
|
||||
position?: number;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionSidebarItem(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
@@ -689,11 +609,11 @@ export namespace plugin {
|
||||
label: string;
|
||||
position?: string;
|
||||
handler?: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionStatusBarItem(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
@@ -707,11 +627,29 @@ export namespace plugin {
|
||||
title: string;
|
||||
icon?: string;
|
||||
component: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionView(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
this.title = source["title"];
|
||||
this.icon = source["icon"];
|
||||
this.component = source["component"];
|
||||
}
|
||||
}
|
||||
export class ContributionWorkspaceItem {
|
||||
id: string;
|
||||
title: string;
|
||||
icon?: string;
|
||||
component: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ContributionWorkspaceItem(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
@@ -731,11 +669,13 @@ export namespace plugin {
|
||||
searchProviders?: ContributionSearchProvider[];
|
||||
activityProviders?: ContributionActivityProvider[];
|
||||
statusBarItems?: ContributionStatusBarItem[];
|
||||
|
||||
openProviders?: ContributionOpenProvider[];
|
||||
workspaceItems?: ContributionWorkspaceItem[];
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new Contributions(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.views = this.convertValues(source["views"], ContributionView);
|
||||
@@ -748,8 +688,10 @@ export namespace plugin {
|
||||
this.searchProviders = this.convertValues(source["searchProviders"], ContributionSearchProvider);
|
||||
this.activityProviders = this.convertValues(source["activityProviders"], ContributionActivityProvider);
|
||||
this.statusBarItems = this.convertValues(source["statusBarItems"], ContributionStatusBarItem);
|
||||
this.openProviders = this.convertValues(source["openProviders"], ContributionOpenProvider);
|
||||
this.workspaceItems = this.convertValues(source["workspaceItems"], ContributionWorkspaceItem);
|
||||
}
|
||||
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
@@ -771,26 +713,26 @@ export namespace plugin {
|
||||
export class FrontendConfig {
|
||||
entry: string;
|
||||
style?: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FrontendConfig(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.entry = source["entry"];
|
||||
this.style = source["style"];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export class SyncConfig {
|
||||
namespaces?: string[];
|
||||
participate?: boolean;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new SyncConfig(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.namespaces = source["namespaces"];
|
||||
@@ -799,11 +741,11 @@ export namespace plugin {
|
||||
}
|
||||
export class MigrationConfig {
|
||||
path?: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new MigrationConfig(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.path = source["path"];
|
||||
@@ -827,11 +769,11 @@ export namespace plugin {
|
||||
migrations?: MigrationConfig;
|
||||
contributes?: Contributions;
|
||||
sync?: SyncConfig;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new Manifest(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.schemaVersion = source["schemaVersion"];
|
||||
@@ -852,7 +794,7 @@ export namespace plugin {
|
||||
this.contributes = this.convertValues(source["contributes"], Contributions);
|
||||
this.sync = this.convertValues(source["sync"], SyncConfig);
|
||||
}
|
||||
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
@@ -871,18 +813,19 @@ export namespace plugin {
|
||||
return a;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
export class Plugin {
|
||||
manifest: Manifest;
|
||||
status: string;
|
||||
error?: string;
|
||||
enabled: boolean;
|
||||
rootPath: string;
|
||||
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new Plugin(source);
|
||||
}
|
||||
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.manifest = this.convertValues(source["manifest"], Manifest);
|
||||
@@ -891,7 +834,7 @@ export namespace plugin {
|
||||
this.enabled = source["enabled"];
|
||||
this.rootPath = source["rootPath"];
|
||||
}
|
||||
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
@@ -912,3 +855,165 @@ export namespace plugin {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export namespace workbench {
|
||||
|
||||
export class OpenResourceContext {
|
||||
sourcePluginId?: string;
|
||||
sourceView?: string;
|
||||
isInsideNotesFolder?: boolean;
|
||||
notesScopePath?: string;
|
||||
notesMode?: boolean;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new OpenResourceContext(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.sourcePluginId = source["sourcePluginId"];
|
||||
this.sourceView = source["sourceView"];
|
||||
this.isInsideNotesFolder = source["isInsideNotesFolder"];
|
||||
this.notesScopePath = source["notesScopePath"];
|
||||
this.notesMode = source["notesMode"];
|
||||
}
|
||||
}
|
||||
export class OpenResourceRequest {
|
||||
kind: string;
|
||||
path: string;
|
||||
mode?: string;
|
||||
mime?: string;
|
||||
extension?: string;
|
||||
context?: OpenResourceContext;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new OpenResourceRequest(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.kind = source["kind"];
|
||||
this.path = source["path"];
|
||||
this.mode = source["mode"];
|
||||
this.mime = source["mime"];
|
||||
this.extension = source["extension"];
|
||||
this.context = this.convertValues(source["context"], OpenResourceContext);
|
||||
}
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
}
|
||||
if (a.slice && a.map) {
|
||||
return (a as any[]).map(elem => this.convertValues(elem, classs));
|
||||
} else if ("object" === typeof a) {
|
||||
if (asMap) {
|
||||
for (const key of Object.keys(a)) {
|
||||
a[key] = new classs(a[key]);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
return new classs(a);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class OpenResourceResult {
|
||||
status: string;
|
||||
providerId?: string;
|
||||
providerPluginId?: string;
|
||||
providerComponent?: string;
|
||||
request: OpenResourceRequest;
|
||||
message?: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new OpenResourceResult(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.status = source["status"];
|
||||
this.providerId = source["providerId"];
|
||||
this.providerPluginId = source["providerPluginId"];
|
||||
this.providerComponent = source["providerComponent"];
|
||||
this.request = this.convertValues(source["request"], OpenResourceRequest);
|
||||
this.message = source["message"];
|
||||
}
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
}
|
||||
if (a.slice && a.map) {
|
||||
return (a as any[]).map(elem => this.convertValues(elem, classs));
|
||||
} else if ("object" === typeof a) {
|
||||
if (asMap) {
|
||||
for (const key of Object.keys(a)) {
|
||||
a[key] = new classs(a[key]);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
return new classs(a);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class OpenedResource {
|
||||
id: string;
|
||||
providerId: string;
|
||||
providerPluginId: string;
|
||||
providerComponent: string;
|
||||
request: OpenResourceRequest;
|
||||
openedAt: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new OpenedResource(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
this.providerId = source["providerId"];
|
||||
this.providerPluginId = source["providerPluginId"];
|
||||
this.providerComponent = source["providerComponent"];
|
||||
this.request = this.convertValues(source["request"], OpenResourceRequest);
|
||||
this.openedAt = source["openedAt"];
|
||||
}
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
}
|
||||
if (a.slice && a.map) {
|
||||
return (a as any[]).map(elem => this.convertValues(elem, classs));
|
||||
} else if ("object" === typeof a) {
|
||||
if (asMap) {
|
||||
for (const key of Object.keys(a)) {
|
||||
a[key] = new classs(a[key]);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
return new classs(a);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class Preferences {
|
||||
defaultTextEditorProvider?: string;
|
||||
defaultMarkdownEditorProvider?: string;
|
||||
defaultNotesMarkdownEditorProvider?: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new Preferences(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.defaultTextEditorProvider = source["defaultTextEditorProvider"];
|
||||
this.defaultMarkdownEditorProvider = source["defaultMarkdownEditorProvider"];
|
||||
this.defaultNotesMarkdownEditorProvider = source["defaultNotesMarkdownEditorProvider"];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user