diff --git a/src/vscode_plugin/snippets/aki_class_snippets.json b/src/vscode_plugin/snippets/aki_class_snippets.json new file mode 100644 index 0000000000000000000000000000000000000000..bfd0321dde8836f91679b18b77b329f875c37a66 --- /dev/null +++ b/src/vscode_plugin/snippets/aki_class_snippets.json @@ -0,0 +1,40 @@ +{ + "Aki class": { + "prefix": "akiclass", + "body": [ + "class A {", + " public:", + " A() {", + " value_ = -1;", + " result = -1;", + " };", + " explicit A(double test) { value_ = test; }", + " ~A() = default;", + " static double MultiplyObject(A obj1, A obj2) { return obj1.value_ * obj2.value_; }", + " double Multiply(double mult) {", + " value_ *= mult;", + " return value_;", + " }", + " double GetValue() const { return value_; }", + " void SetValue(double value) { value_ = value; }", + " double result;", + " private:", + " double value_;", + "}; // A", + "// Bind class A.", + "JSBIND_CLASS(A) {", + " // Bind default constructor of class.", + " JSBIND_CONSTRUCTOR<>();", + " // Bind a parameterized constructor of class.", + " JSBIND_CONSTRUCTOR();", + " // Bind member method of class.", + " JSBIND_METHOD(MultiplyObject);", + " JSBIND_METHOD(Multiply);", + " // Listen to class member properties in C++.", + " JSBIND_FIELD(\"value\", GetValue, SetValue);", + " // Bind member property of class.", + " JSBIND_PROPERTY(result);", + "}" + ] + } +} \ No newline at end of file diff --git a/src/vscode_plugin/snippets/aki_enum_snippets.json b/src/vscode_plugin/snippets/aki_enum_snippets.json new file mode 100644 index 0000000000000000000000000000000000000000..aeb1719c4b56577c52fa96f9ae147682f89ee155 --- /dev/null +++ b/src/vscode_plugin/snippets/aki_enum_snippets.json @@ -0,0 +1,21 @@ +{ + "Aki enum": { + "prefix": "akienum", + "body": [ + "enum TypeFlags { NONE, NUM, STRING, BUTT = -1 };", + "// Bind C++ enum", + "JSBIND_ENUM(TypeFlags) {", + " // Bind C++ enum value.", + " JSBIND_ENUM_VALUE(NONE);", + " JSBIND_ENUM_VALUE(NUM);", + " JSBIND_ENUM_VALUE(STRING);", + "}", + "TypeFlags Passing(TypeFlags flag) { return flag; }", + "JSBIND_ADDON(entry)", + "JSBIND_GLOBAL() {", + " // Bind global function of using enum value.", + " JSBIND_FUNCTION(Passing);", + "}" + ] + } +} \ No newline at end of file diff --git a/src/vscode_plugin/snippets/aki_struct_snippets.json b/src/vscode_plugin/snippets/aki_struct_snippets.json new file mode 100644 index 0000000000000000000000000000000000000000..f6d5594ac6800b7e7c923b23aede32f1dc519ae0 --- /dev/null +++ b/src/vscode_plugin/snippets/aki_struct_snippets.json @@ -0,0 +1,40 @@ +{ + "Aki struct": { + "prefix": "akistruct", + "body": [ + "struct B {", + " public:", + " B() {", + " value_ = -1;", + " result = -1;", + " };", + " explicit B(double test) { value_ = test; }", + " ~B() = default;", + " static double MultiplyObject(B obj1, B obj2) { return obj1.value_ * obj2.value_; }", + " double Multiply(double mult) {", + " value_ *= mult;", + " return value_;", + " }", + " double GetValue() const { return value_; }", + " void SetValue(double value) { value_ = value; }", + " double result;", + " private:", + " double value_;", + "}; // B", + "// Bind struct B.", + "JSBIND_CLASS(B) {", + " // Bind default constructor of struct.", + " JSBIND_CONSTRUCTOR<>();", + " // Bind a parameterized constructor of struct.", + " JSBIND_CONSTRUCTOR();", + " // Bind member method of struct.", + " JSBIND_METHOD(MultiplyObject);", + " JSBIND_METHOD(Multiply);", + " // Listen to struct member properties in C++.", + " JSBIND_FIELD(\"value\", GetValue, SetValue);", + " // Bind member property of struct.", + " JSBIND_PROPERTY(result);", + "}" + ] + } +} \ No newline at end of file