core: Milestone 7b — Files explorer and Default Editor improvements
- Files plugin: richer explorer with breadcrumbs, selection, toolbar actions, rename/trash, filter, sorting, hidden/reserved entries filtered - Default Editor: line numbers, Ctrl+S, markdown toolbar, Edit/Preview/Split, markdown preview, Reload/Revert - E2E tests: 39 passed for files + editor - Workspace model: correction, naming alignment, compatibility wrappers - Updated docs: NOTES_FILES_PLUGIN_PLAN.md, PLUGIN_RUNTIME.md
This commit is contained in:
Vendored
+31
@@ -1,5 +1,6 @@
|
||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
||||
// This file is automatically generated. DO NOT EDIT
|
||||
import {workspace} from '../models';
|
||||
import {workbench} from '../models';
|
||||
import {capability} from '../models';
|
||||
import {api} from '../models';
|
||||
@@ -15,6 +16,8 @@ export function CreateVault(arg1:string):Promise<void>;
|
||||
|
||||
export function CreateVaultFolder(arg1:string,arg2:string):Promise<string>;
|
||||
|
||||
export function CreateWorkspace(arg1:string,arg2:string):Promise<workspace.Workspace|string>;
|
||||
|
||||
export function CreateWorkspaceNode(arg1:string,arg2:string,arg3:string):Promise<Record<string, any>>;
|
||||
|
||||
export function DisablePlugin(arg1:string):Promise<string>;
|
||||
@@ -31,6 +34,8 @@ export function GetCapabilities():Promise<Array<capability.Entry>>;
|
||||
|
||||
export function GetContributions():Promise<api.ContributionSummary>;
|
||||
|
||||
export function GetCurrentWorkspace():Promise<Record<string, any>>;
|
||||
|
||||
export function GetCurrentWorkspaceNode():Promise<Record<string, any>>;
|
||||
|
||||
export function GetPermissions():Promise<Array<permissions.Entry>>;
|
||||
@@ -53,12 +58,16 @@ export function GetWorkbenchOpenedResources():Promise<Array<workbench.OpenedReso
|
||||
|
||||
export function GetWorkbenchPreferences():Promise<workbench.Preferences>;
|
||||
|
||||
export function GetWorkspaceMetadata(arg1:string):Promise<workspace.Metadata|string>;
|
||||
|
||||
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>;
|
||||
|
||||
export function ListWorkspaces():Promise<Array<workspace.Workspace>|string>;
|
||||
|
||||
export function MoveVaultPath(arg1:string,arg2:string,arg3:string,arg4:files.MoveOptions):Promise<string>;
|
||||
|
||||
export function MoveWorkspaceNode(arg1:string,arg2:string):Promise<string>;
|
||||
@@ -81,24 +90,46 @@ export function RecordDesiredPlugin(arg1:string,arg2:string,arg3:string):Promise
|
||||
|
||||
export function ReloadPlugins():Promise<number|string>;
|
||||
|
||||
export function RenameWorkspace(arg1:string,arg2:string):Promise<string>;
|
||||
|
||||
export function RenameWorkspaceNode(arg1:string,arg2:string):Promise<string>;
|
||||
|
||||
export function ResetSyncKey():Promise<void>;
|
||||
|
||||
export function SelectDirectory():Promise<string>;
|
||||
|
||||
export function SelectVaultForOpen():Promise<string>;
|
||||
|
||||
export function SetCurrentVault(arg1:string):Promise<string>;
|
||||
|
||||
export function SetCurrentWorkspace(arg1:string):Promise<string>;
|
||||
|
||||
export function SetCurrentWorkspaceNode(arg1:string):Promise<string>;
|
||||
|
||||
export function SubscribePluginEvent(arg1:string,arg2:string):Promise<string>;
|
||||
|
||||
export function SyncConfigure(arg1:string,arg2:string,arg3:string):Promise<void>;
|
||||
|
||||
export function SyncDisconnect():Promise<void>;
|
||||
|
||||
export function SyncNow():Promise<Record<string, any>>;
|
||||
|
||||
export function SyncSetInterval(arg1:number):Promise<void>;
|
||||
|
||||
export function SyncStatus():Promise<api.SyncStatusDTO>;
|
||||
|
||||
export function SyncTestConnection(arg1:string,arg2:string,arg3:string):Promise<void>;
|
||||
|
||||
export function TrashVaultPath(arg1:string,arg2:string):Promise<files.TrashResult|string>;
|
||||
|
||||
export function TrashWorkspace(arg1:string):Promise<workspace.TrashResult|string>;
|
||||
|
||||
export function UpdateAppSettings(arg1:Record<string, any>):Promise<string>;
|
||||
|
||||
export function UpdateWorkbenchPreferences(arg1:workbench.Preferences):Promise<string>;
|
||||
|
||||
export function UpdateWorkspaceMetadata(arg1:string,arg2:workspace.MetadataPatch):Promise<workspace.Metadata|string>;
|
||||
|
||||
export function WriteFrontendLog(arg1:string,arg2:string):Promise<void>;
|
||||
|
||||
export function WritePluginDataJSON(arg1:string,arg2:string,arg3:Record<string, any>):Promise<string>;
|
||||
|
||||
@@ -18,6 +18,10 @@ export function CreateVaultFolder(arg1, arg2) {
|
||||
return window['go']['api']['App']['CreateVaultFolder'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function CreateWorkspace(arg1, arg2) {
|
||||
return window['go']['api']['App']['CreateWorkspace'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function CreateWorkspaceNode(arg1, arg2, arg3) {
|
||||
return window['go']['api']['App']['CreateWorkspaceNode'](arg1, arg2, arg3);
|
||||
}
|
||||
@@ -50,6 +54,10 @@ export function GetContributions() {
|
||||
return window['go']['api']['App']['GetContributions']();
|
||||
}
|
||||
|
||||
export function GetCurrentWorkspace() {
|
||||
return window['go']['api']['App']['GetCurrentWorkspace']();
|
||||
}
|
||||
|
||||
export function GetCurrentWorkspaceNode() {
|
||||
return window['go']['api']['App']['GetCurrentWorkspaceNode']();
|
||||
}
|
||||
@@ -94,6 +102,10 @@ export function GetWorkbenchPreferences() {
|
||||
return window['go']['api']['App']['GetWorkbenchPreferences']();
|
||||
}
|
||||
|
||||
export function GetWorkspaceMetadata(arg1) {
|
||||
return window['go']['api']['App']['GetWorkspaceMetadata'](arg1);
|
||||
}
|
||||
|
||||
export function GetWorkspaceTree() {
|
||||
return window['go']['api']['App']['GetWorkspaceTree']();
|
||||
}
|
||||
@@ -106,6 +118,10 @@ export function ListVaultFiles(arg1, arg2) {
|
||||
return window['go']['api']['App']['ListVaultFiles'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function ListWorkspaces() {
|
||||
return window['go']['api']['App']['ListWorkspaces']();
|
||||
}
|
||||
|
||||
export function MoveVaultPath(arg1, arg2, arg3, arg4) {
|
||||
return window['go']['api']['App']['MoveVaultPath'](arg1, arg2, arg3, arg4);
|
||||
}
|
||||
@@ -150,10 +166,18 @@ export function ReloadPlugins() {
|
||||
return window['go']['api']['App']['ReloadPlugins']();
|
||||
}
|
||||
|
||||
export function RenameWorkspace(arg1, arg2) {
|
||||
return window['go']['api']['App']['RenameWorkspace'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function RenameWorkspaceNode(arg1, arg2) {
|
||||
return window['go']['api']['App']['RenameWorkspaceNode'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function ResetSyncKey() {
|
||||
return window['go']['api']['App']['ResetSyncKey']();
|
||||
}
|
||||
|
||||
export function SelectDirectory() {
|
||||
return window['go']['api']['App']['SelectDirectory']();
|
||||
}
|
||||
@@ -166,6 +190,10 @@ export function SetCurrentVault(arg1) {
|
||||
return window['go']['api']['App']['SetCurrentVault'](arg1);
|
||||
}
|
||||
|
||||
export function SetCurrentWorkspace(arg1) {
|
||||
return window['go']['api']['App']['SetCurrentWorkspace'](arg1);
|
||||
}
|
||||
|
||||
export function SetCurrentWorkspaceNode(arg1) {
|
||||
return window['go']['api']['App']['SetCurrentWorkspaceNode'](arg1);
|
||||
}
|
||||
@@ -174,10 +202,38 @@ export function SubscribePluginEvent(arg1, arg2) {
|
||||
return window['go']['api']['App']['SubscribePluginEvent'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function SyncConfigure(arg1, arg2, arg3) {
|
||||
return window['go']['api']['App']['SyncConfigure'](arg1, arg2, arg3);
|
||||
}
|
||||
|
||||
export function SyncDisconnect() {
|
||||
return window['go']['api']['App']['SyncDisconnect']();
|
||||
}
|
||||
|
||||
export function SyncNow() {
|
||||
return window['go']['api']['App']['SyncNow']();
|
||||
}
|
||||
|
||||
export function SyncSetInterval(arg1) {
|
||||
return window['go']['api']['App']['SyncSetInterval'](arg1);
|
||||
}
|
||||
|
||||
export function SyncStatus() {
|
||||
return window['go']['api']['App']['SyncStatus']();
|
||||
}
|
||||
|
||||
export function SyncTestConnection(arg1, arg2, arg3) {
|
||||
return window['go']['api']['App']['SyncTestConnection'](arg1, arg2, arg3);
|
||||
}
|
||||
|
||||
export function TrashVaultPath(arg1, arg2) {
|
||||
return window['go']['api']['App']['TrashVaultPath'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function TrashWorkspace(arg1) {
|
||||
return window['go']['api']['App']['TrashWorkspace'](arg1);
|
||||
}
|
||||
|
||||
export function UpdateAppSettings(arg1) {
|
||||
return window['go']['api']['App']['UpdateAppSettings'](arg1);
|
||||
}
|
||||
@@ -186,6 +242,10 @@ export function UpdateWorkbenchPreferences(arg1) {
|
||||
return window['go']['api']['App']['UpdateWorkbenchPreferences'](arg1);
|
||||
}
|
||||
|
||||
export function UpdateWorkspaceMetadata(arg1, arg2) {
|
||||
return window['go']['api']['App']['UpdateWorkspaceMetadata'](arg1, arg2);
|
||||
}
|
||||
|
||||
export function WriteFrontendLog(arg1, arg2) {
|
||||
return window['go']['api']['App']['WriteFrontendLog'](arg1, arg2);
|
||||
}
|
||||
|
||||
@@ -206,6 +206,41 @@ export namespace api {
|
||||
|
||||
|
||||
|
||||
|
||||
export class SyncStatusDTO {
|
||||
configured: boolean;
|
||||
serverUrl: string;
|
||||
deviceId: string;
|
||||
deviceName: string;
|
||||
connected: boolean;
|
||||
revoked: boolean;
|
||||
tokenStored: boolean;
|
||||
unpushedOps: number;
|
||||
lastSyncAt: string;
|
||||
syncInterval: number;
|
||||
lastError: string;
|
||||
statusLabel: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new SyncStatusDTO(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.configured = source["configured"];
|
||||
this.serverUrl = source["serverUrl"];
|
||||
this.deviceId = source["deviceId"];
|
||||
this.deviceName = source["deviceName"];
|
||||
this.connected = source["connected"];
|
||||
this.revoked = source["revoked"];
|
||||
this.tokenStored = source["tokenStored"];
|
||||
this.unpushedOps = source["unpushedOps"];
|
||||
this.lastSyncAt = source["lastSyncAt"];
|
||||
this.syncInterval = source["syncInterval"];
|
||||
this.lastError = source["lastError"];
|
||||
this.statusLabel = source["statusLabel"];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1017,3 +1052,111 @@ export namespace workbench {
|
||||
|
||||
}
|
||||
|
||||
export namespace workspace {
|
||||
|
||||
export class TemplateSnapshot {
|
||||
templateId: string;
|
||||
templateName: string;
|
||||
templateVersion: number;
|
||||
appliedAt: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new TemplateSnapshot(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.templateId = source["templateId"];
|
||||
this.templateName = source["templateName"];
|
||||
this.templateVersion = source["templateVersion"];
|
||||
this.appliedAt = source["appliedAt"];
|
||||
}
|
||||
}
|
||||
export class Metadata {
|
||||
workspaceName: string;
|
||||
createdFromTemplate?: TemplateSnapshot;
|
||||
features?: Record<string, boolean>;
|
||||
folders?: Record<string, string>;
|
||||
updatedAt?: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new Metadata(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.workspaceName = source["workspaceName"];
|
||||
this.createdFromTemplate = this.convertValues(source["createdFromTemplate"], TemplateSnapshot);
|
||||
this.features = source["features"];
|
||||
this.folders = source["folders"];
|
||||
this.updatedAt = source["updatedAt"];
|
||||
}
|
||||
|
||||
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 MetadataPatch {
|
||||
features?: Record<string, boolean>;
|
||||
folders?: Record<string, string>;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new MetadataPatch(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.features = source["features"];
|
||||
this.folders = source["folders"];
|
||||
}
|
||||
}
|
||||
|
||||
export class TrashResult {
|
||||
originalPath: string;
|
||||
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"];
|
||||
this.trashPath = source["trashPath"];
|
||||
this.trashId = source["trashId"];
|
||||
this.deletedAt = source["deletedAt"];
|
||||
}
|
||||
}
|
||||
export class Workspace {
|
||||
name: string;
|
||||
rootPath: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new Workspace(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.name = source["name"];
|
||||
this.rootPath = source["rootPath"];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user