| @@ -31,12 +31,17 @@ def is_valid_slug(slug): | |||||
| return re.match(r'^[a-zA-Z0-9_\-]+$', slug) != None | return re.match(r'^[a-zA-Z0-9_\-]+$', slug) != None | ||||
| def slug_to_identifier(slug): | |||||
| if len(slug) == 0 or slug[0].isdigit(): | |||||
| slug = "_" + slug | |||||
| slug = slug[0].upper() + slug[1:] | |||||
| slug = slug.replace('-', '_') | |||||
| return slug | |||||
| def str_to_identifier(s): | |||||
| if not s: | |||||
| return "_" | |||||
| # Identifiers can't start with a number | |||||
| if s[0].isdigit(): | |||||
| s = "_" + s | |||||
| # Capitalize first letter | |||||
| s = s[0].upper() + s[1:] | |||||
| # Replace special characters with underscore | |||||
| s = re.sub(r'\W', '_', s) | |||||
| return s | |||||
| def create_plugin(slug, plugin_dir=None): | def create_plugin(slug, plugin_dir=None): | ||||
| @@ -241,7 +246,7 @@ def create_module(slug, panel_filename=None, source_filename=None): | |||||
| print(f"Source file generated at {source_filename}") | print(f"Source file generated at {source_filename}") | ||||
| # Append model to plugin.hpp | # Append model to plugin.hpp | ||||
| identifier = slug_to_identifier(slug) | |||||
| identifier = str_to_identifier(slug) | |||||
| # Tell user to add model to plugin.hpp and plugin.cpp | # Tell user to add model to plugin.hpp and plugin.cpp | ||||
| print(f""" | print(f""" | ||||
| @@ -285,7 +290,7 @@ def panel_to_components(tree): | |||||
| name = el.get('{http://www.inkscape.org/namespaces/inkscape}label') | name = el.get('{http://www.inkscape.org/namespaces/inkscape}label') | ||||
| if name is None: | if name is None: | ||||
| name = el.get('id') | name = el.get('id') | ||||
| name = slug_to_identifier(name).upper() | |||||
| name = str_to_identifier(name).upper() | |||||
| c['name'] = name | c['name'] = name | ||||
| # Get color | # Get color | ||||
| @@ -336,7 +341,7 @@ def panel_to_components(tree): | |||||
| def components_to_source(components, slug): | def components_to_source(components, slug): | ||||
| identifier = slug_to_identifier(slug) | |||||
| identifier = str_to_identifier(slug) | |||||
| source = "" | source = "" | ||||
| source += f"""#include "plugin.hpp" | source += f"""#include "plugin.hpp" | ||||