forked from rojo-rbx/rojo
Implement handle_rbx_change API for plugins as a pass
This commit is contained in:
@@ -7,6 +7,11 @@ pub enum TransformFileResult {
|
|||||||
Pass,
|
Pass,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub enum RbxChangeResult {
|
||||||
|
Write(Option<VfsItem>),
|
||||||
|
Pass,
|
||||||
|
}
|
||||||
|
|
||||||
pub enum FileChangeResult {
|
pub enum FileChangeResult {
|
||||||
MarkChanged(Option<Vec<Route>>),
|
MarkChanged(Option<Vec<Route>>),
|
||||||
Pass,
|
Pass,
|
||||||
@@ -14,6 +19,7 @@ pub enum FileChangeResult {
|
|||||||
|
|
||||||
pub trait Plugin {
|
pub trait Plugin {
|
||||||
fn transform_file(&self, plugins: &PluginChain, vfs_item: &VfsItem) -> TransformFileResult;
|
fn transform_file(&self, plugins: &PluginChain, vfs_item: &VfsItem) -> TransformFileResult;
|
||||||
|
fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxItem) -> RbxChangeResult;
|
||||||
fn handle_file_change(&self, route: &Route) -> FileChangeResult;
|
fn handle_file_change(&self, route: &Route) -> FileChangeResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,6 +45,17 @@ impl PluginChain {
|
|||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxItem) -> Option<VfsItem> {
|
||||||
|
for plugin in &self.plugins {
|
||||||
|
match plugin.handle_rbx_change(route, rbx_item) {
|
||||||
|
RbxChangeResult::Write(vfs_item) => return vfs_item,
|
||||||
|
RbxChangeResult::Pass => {},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
pub fn handle_file_change(&self, route: &Route) -> Option<Vec<Route>> {
|
pub fn handle_file_change(&self, route: &Route) -> Option<Vec<Route>> {
|
||||||
for plugin in &self.plugins {
|
for plugin in &self.plugins {
|
||||||
match plugin.handle_file_change(route) {
|
match plugin.handle_file_change(route) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use core::Route;
|
use core::Route;
|
||||||
use plugin::{Plugin, PluginChain, TransformFileResult, FileChangeResult};
|
use plugin::{Plugin, PluginChain, TransformFileResult, RbxChangeResult, FileChangeResult};
|
||||||
use rbx::{RbxItem, RbxValue};
|
use rbx::{RbxItem, RbxValue};
|
||||||
use vfs::VfsItem;
|
use vfs::VfsItem;
|
||||||
|
|
||||||
@@ -58,4 +58,8 @@ impl Plugin for DefaultPlugin {
|
|||||||
fn handle_file_change(&self, route: &Route) -> FileChangeResult {
|
fn handle_file_change(&self, route: &Route) -> FileChangeResult {
|
||||||
FileChangeResult::MarkChanged(Some(vec![route.clone()]))
|
FileChangeResult::MarkChanged(Some(vec![route.clone()]))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxItem) -> RbxChangeResult {
|
||||||
|
RbxChangeResult::Pass
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ use std::collections::HashMap;
|
|||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
|
|
||||||
use core::Route;
|
use core::Route;
|
||||||
use plugin::{Plugin, PluginChain, TransformFileResult, FileChangeResult};
|
use plugin::{Plugin, PluginChain, TransformFileResult, RbxChangeResult, FileChangeResult};
|
||||||
use rbx::{RbxItem, RbxValue};
|
use rbx::{RbxItem, RbxValue};
|
||||||
use vfs::VfsItem;
|
use vfs::VfsItem;
|
||||||
|
|
||||||
@@ -114,4 +114,8 @@ impl Plugin for ScriptPlugin {
|
|||||||
FileChangeResult::Pass
|
FileChangeResult::Pass
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxItem) -> RbxChangeResult {
|
||||||
|
RbxChangeResult::Pass
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user