OpenFolder
The OpenFolder utility allow to open and manage folders within the side bar of the application. This utility provides various functionalities for handling folder operations, such as opening, removing, reloading, and maintaining state.
Usage
To use the OpenFolder
utility, you need to require it using the Acode's module system and call the openFolder
function with the appropriate parameters.
Importing the OpenFolder
To use the OpenFolder, it needs to be imported into plugin as shown below:
const openFolder = acode.require('openFolder');
Parameters
The openFolder
function accepts two parameters:
_path
(string): The path of the folder to be opened. This is arequired
parameter.opts
(object): An optional object containing additional options for the folder. It includes:name
(string): A name to be assigned to the folder. If not provided, the folder's name from the file system will be used.id
(string): An ID to be assigned to the folder. If not provided, an ID will be automatically generated.saveState
(boolean): Indicates whether the state of the folder should be saved when the user closes it. The default value istrue
.reloadOnResume
(boolean): Indicates whether the folder should be reloaded when the user reopens it. The default value istrue
.
Example
const openFolder = acode.require('openFolder');
const options = {
name: 'My Documents',
id: 'folder-1',
saveState: false,
reloadOnResume: false,
};
openFolder('/path/to/my/documents', options);
In this example, the folder at /path/to/my/documents
will be opened in the sidebar, assigned the name "My Documents" and the ID "folder-1". The state of the folder will not be saved when closed, and it will not be reloaded when reopened.
API
openFolder(_path, opts)
Opens the specified folder in the sidebar.
Parameters:
_path
(string): Path of the folder.opts
(object): Options for the folder.
Options:
name
(string): Name of the folder.id
(string): ID for the folder.saveState
(boolean): Save the state of the folder.listFiles
(boolean): List all files recursively.listState
(object): State of the listed files.
Methods
remove()
Removes the folder from the sidebar.
reload()
Reloads the folder in the sidebar.
Adding Files and Folders
You can also dynamically add files and folders to the opened folder.
Example:
openFolder.add('/path/to/newFile.txt', 'file');
openFolder.add('/path/to/newFolder', 'folder');
Renaming Items
To rename an existing file or folder:
openFolder.renameItem('/path/to/oldFile.txt', '/path/to/newFile.txt', 'newFile.txt');
Removing Items
To remove an existing file or folder:
openFolder.removeItem('/path/to/fileOrFolder');
Removing Folders
To remove multiple folders based on a URL pattern:
openFolder.removeFolders('/path/to/baseFolder');
Finding Folders
To find a folder containing a specific URL:
const folder = openFolder.find('/path/to/fileOrFolder');
Event Handling
The openFolder
utility emits various events to help manage folder operations:
add-folder
remove-folder
update-folder
These events can be listened to for performing custom actions upon folder operations.
Example:
editorManager.on('add-folder', (event) => {
console.log('Folder added:', event);
});