Mapper for SobaScript components and their nodes.
-- #SobaScript
Extensible Modular Scripting Programming Language.
https://github.com/3F/SobaScript
Licensed under the MIT License
Copyright (c) 2014-2019 Denis Kuzmin < x-3F@outlook.com > GitHub/3F
[ ☕ Donate ]
SobaScript.Mapper contributors: https://github.com/3F/SobaScript.Mapper/graphs/contributors
This helps to describe your component for code completion (Intellisense), for generating the documentation files, etc.
To describe the properties. For example:
[Property("propertyName","Description of the property",CValType.Boolean,CValType.Boolean)]publicstringyourLogic(){
...}[Property("IsBuildable","Gets or Sets whether the project or project item configuration can be built.","find","stProjectConf",CValType.Boolean,CValType.Boolean)]Basic Syntax:
[Property(stringname,stringdescription,CValTypeget,CValTypeset)][Property(stringname,stringparent,stringmethod,CValTypeget,CValTypeset)]Note:
- An optional
parentargument is used for linking to parent property/method/etc. - An
methodargument must contain the real method name who implements the parent element (property/method etc.)
To describe the methods/functions. For example:
[Method("call","Caller of executable files with arguments.",newstring[]{"name","args"},newstring[]{"Executable file","Arguments"},CValType.Void,CValType.String,CValType.String)]protectedstringstCall(stringdata,boolstdOut,boolsilent){
...}Basic Syntax:
[Method(stringname,stringdescription,CValTyperet,paramsCValType[]args)][Method(stringname,stringparent,stringmethod,CValTyperet,paramsCValType[]args)]Note:
- An optional
parentargument is used for linking to parent property/method/etc. - An
methodargument must contain the real method name who implements the parent element (property/method etc.)
To describe the new component. For example:
[Component("File","I/O operations")]publicclassFileComponent:Component,IComponent{
...}Basic Syntax:
[Component(stringname,stringdescription)][Component("Primary",new[]{"Alias1","Alias2","Alias3"},"description")]To describe the any definition. For example:
[Definition("(true) { }","Conditionals statements\n\n(1 > 2) {\n ... \n}")]publicclassConditionComponent:Component,IComponent{
...}[Definition("var name","Get data from variable the 'name'")][Definition("var name = data","Set the 'data' for variable the 'name'")]Syntax:
[Definition(stringname,stringdescription)]