ass_editor/extensions/registry_integration/
builtins.rs1use super::RegistryIntegration;
8use crate::core::{EditorError, Result};
9
10#[cfg(not(feature = "std"))]
11use alloc::{boxed::Box, format, string::ToString};
12
13impl RegistryIntegration {
14 pub fn register_builtin_handlers(&mut self) -> Result<()> {
16 use ass_core::plugin::tags::*;
17
18 for handler in formatting::create_formatting_handlers() {
20 self.registry.register_tag_handler(handler).map_err(|e| {
21 EditorError::ExtensionError {
22 extension: "builtin".to_string(),
23 message: format!("Failed to register formatting handler: {e}"),
24 }
25 })?;
26 }
27
28 for handler in special::create_special_handlers() {
30 self.registry.register_tag_handler(handler).map_err(|e| {
31 EditorError::ExtensionError {
32 extension: "builtin".to_string(),
33 message: format!("Failed to register special handler: {e}"),
34 }
35 })?;
36 }
37
38 for handler in font::create_font_handlers() {
40 self.registry.register_tag_handler(handler).map_err(|e| {
41 EditorError::ExtensionError {
42 extension: "builtin".to_string(),
43 message: format!("Failed to register font handler: {e}"),
44 }
45 })?;
46 }
47
48 for handler in advanced::create_advanced_handlers() {
50 self.registry.register_tag_handler(handler).map_err(|e| {
51 EditorError::ExtensionError {
52 extension: "builtin".to_string(),
53 message: format!("Failed to register advanced handler: {e}"),
54 }
55 })?;
56 }
57
58 for handler in alignment::create_alignment_handlers() {
60 self.registry.register_tag_handler(handler).map_err(|e| {
61 EditorError::ExtensionError {
62 extension: "builtin".to_string(),
63 message: format!("Failed to register alignment handler: {e}"),
64 }
65 })?;
66 }
67
68 for handler in karaoke::create_karaoke_handlers() {
70 self.registry.register_tag_handler(handler).map_err(|e| {
71 EditorError::ExtensionError {
72 extension: "builtin".to_string(),
73 message: format!("Failed to register karaoke handler: {e}"),
74 }
75 })?;
76 }
77
78 for handler in position::create_position_handlers() {
80 self.registry.register_tag_handler(handler).map_err(|e| {
81 EditorError::ExtensionError {
82 extension: "builtin".to_string(),
83 message: format!("Failed to register position handler: {e}"),
84 }
85 })?;
86 }
87
88 for handler in color::create_color_handlers() {
90 self.registry.register_tag_handler(handler).map_err(|e| {
91 EditorError::ExtensionError {
92 extension: "builtin".to_string(),
93 message: format!("Failed to register color handler: {e}"),
94 }
95 })?;
96 }
97
98 for handler in transform::create_transform_handlers() {
100 self.registry.register_tag_handler(handler).map_err(|e| {
101 EditorError::ExtensionError {
102 extension: "builtin".to_string(),
103 message: format!("Failed to register transform handler: {e}"),
104 }
105 })?;
106 }
107
108 for handler in animation::create_animation_handlers() {
110 self.registry.register_tag_handler(handler).map_err(|e| {
111 EditorError::ExtensionError {
112 extension: "builtin".to_string(),
113 message: format!("Failed to register animation handler: {e}"),
114 }
115 })?;
116 }
117
118 for handler in clipping::create_clipping_handlers() {
120 self.registry.register_tag_handler(handler).map_err(|e| {
121 EditorError::ExtensionError {
122 extension: "builtin".to_string(),
123 message: format!("Failed to register clipping handler: {e}"),
124 }
125 })?;
126 }
127
128 for handler in misc::create_misc_handlers() {
130 self.registry.register_tag_handler(handler).map_err(|e| {
131 EditorError::ExtensionError {
132 extension: "builtin".to_string(),
133 message: format!("Failed to register misc handler: {e}"),
134 }
135 })?;
136 }
137
138 Ok(())
139 }
140
141 pub fn register_builtin_sections(&mut self) -> Result<()> {
143 use ass_core::plugin::sections::*;
144
145 self.registry
147 .register_section_processor(Box::new(aegisub::AegisubProjectProcessor))
148 .map_err(|e| EditorError::ExtensionError {
149 extension: "builtin".to_string(),
150 message: format!("Failed to register Aegisub section processor: {e}"),
151 })?;
152
153 Ok(())
154 }
155}