浏览代码

:bug: Fixing component naming convention to snake_case (#133)

Danilo Guanabara 8 月之前
父节点
当前提交
3d22514d12
共有 4 个文件被更改,包括 132 次插入1 次删除
  1. 128 0
      Cargo.lock
  2. 1 0
      Cargo.toml
  3. 1 0
      crates/bolt-lang/attribute/component/Cargo.toml
  4. 2 1
      crates/bolt-lang/attribute/component/src/lib.rs

+ 128 - 0
Cargo.lock

@@ -858,6 +858,7 @@ name = "bolt-attribute-bolt-component"
 version = "0.2.1"
 version = "0.2.1"
 dependencies = [
 dependencies = [
  "bolt-utils 0.2.1",
  "bolt-utils 0.2.1",
+ "ligen-ir",
  "proc-macro2",
  "proc-macro2",
  "quote",
  "quote",
  "syn 1.0.109",
  "syn 1.0.109",
@@ -1571,6 +1572,12 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
 checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
 
 
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
 [[package]]
 [[package]]
 name = "core-foundation"
 name = "core-foundation"
 version = "0.9.4"
 version = "0.9.4"
@@ -1791,6 +1798,19 @@ dependencies = [
  "syn 1.0.109",
  "syn 1.0.109",
 ]
 ]
 
 
+[[package]]
+name = "derive_more"
+version = "0.99.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 2.0.79",
+]
+
 [[package]]
 [[package]]
 name = "dialoguer"
 name = "dialoguer"
 version = "0.10.4"
 version = "0.10.4"
@@ -1969,6 +1989,18 @@ dependencies = [
  "cfg-if",
  "cfg-if",
 ]
 ]
 
 
+[[package]]
+name = "enum-as-inner"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.79",
+]
+
 [[package]]
 [[package]]
 name = "enum-iterator"
 name = "enum-iterator"
 version = "1.5.0"
 version = "1.5.0"
@@ -2753,12 +2785,42 @@ version = "2.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708"
 checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708"
 
 
+[[package]]
+name = "is-tree"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "626ed8456ae78f787e675bdfec62f52a2bf0815cbfcb8deca13e16171853b75c"
+dependencies = [
+ "enum-as-inner",
+ "is-tree-macro",
+]
+
+[[package]]
+name = "is-tree-macro"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1c298b22f5336ec6f50850e139710265c4de4a0ae22e762485713a511b635b6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.79",
+]
+
 [[package]]
 [[package]]
 name = "is_terminal_polyfill"
 name = "is_terminal_polyfill"
 version = "1.70.1"
 version = "1.70.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
 checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
 
 
+[[package]]
+name = "itertools"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
+dependencies = [
+ "either",
+]
+
 [[package]]
 [[package]]
 name = "itertools"
 name = "itertools"
 version = "0.10.5"
 version = "0.10.5"
@@ -2926,6 +2988,34 @@ dependencies = [
  "libsecp256k1-core",
  "libsecp256k1-core",
 ]
 ]
 
 
+[[package]]
+name = "ligen-common"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffacf772830eecdb74ab98f14ebeee218d0a114ab1cde0f76e3512e036899391"
+dependencies = [
+ "derive_more",
+ "serde",
+ "serde_json",
+ "shrinkwraprs",
+]
+
+[[package]]
+name = "ligen-ir"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "537fef82bb0e6ed638cbefa2a761f285a402a4ac6b88395aeeaa4be82b714b64"
+dependencies = [
+ "enum-as-inner",
+ "is-tree",
+ "ligen-common",
+ "regex",
+ "semver",
+ "serde",
+ "serde_json",
+ "strum",
+]
+
 [[package]]
 [[package]]
 name = "light-poseidon"
 name = "light-poseidon"
 version = "0.2.0"
 version = "0.2.0"
@@ -4113,6 +4203,9 @@ name = "semver"
 version = "1.0.23"
 version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+dependencies = [
+ "serde",
+]
 
 
 [[package]]
 [[package]]
 name = "serde"
 name = "serde"
@@ -4320,6 +4413,19 @@ version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 
+[[package]]
+name = "shrinkwraprs"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331"
+dependencies = [
+ "bitflags 1.3.2",
+ "itertools 0.8.2",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
 [[package]]
 [[package]]
 name = "signal-hook-registry"
 name = "signal-hook-registry"
 version = "1.4.2"
 version = "1.4.2"
@@ -5611,6 +5717,28 @@ version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
 checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
 
 
+[[package]]
+name = "strum"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.25.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.79",
+]
+
 [[package]]
 [[package]]
 name = "subtle"
 name = "subtle"
 version = "2.4.1"
 version = "2.4.1"

+ 1 - 0
Cargo.toml

@@ -46,6 +46,7 @@ solana-client = { version = "=1.16" }
 solana-security-txt = "1.1.1"
 solana-security-txt = "1.1.1"
 tuple-conv = "1.0.1"
 tuple-conv = "1.0.1"
 syn = { version = "1.0.60", features = ["full"] }
 syn = { version = "1.0.60", features = ["full"] }
+ligen-ir = { version = "=0.1.18" }
 quote = "1.0"
 quote = "1.0"
 proc-macro2 = "1.0"
 proc-macro2 = "1.0"
 serde = { version = "1.0", features = ["derive"] }
 serde = { version = "1.0", features = ["derive"] }

+ 1 - 0
crates/bolt-lang/attribute/component/Cargo.toml

@@ -13,6 +13,7 @@ proc-macro = true
 
 
 [dependencies]
 [dependencies]
 syn = { workspace = true }
 syn = { workspace = true }
+ligen-ir = { workspace = true }
 bolt-utils = { workspace = true }
 bolt-utils = { workspace = true }
 quote = { workspace = true }
 quote = { workspace = true }
 proc-macro2 = { workspace = true }
 proc-macro2 = { workspace = true }

+ 2 - 1
crates/bolt-lang/attribute/component/src/lib.rs

@@ -53,7 +53,8 @@ pub fn component(attr: TokenStream, item: TokenStream) -> TokenStream {
     add_bolt_metadata(&mut input);
     add_bolt_metadata(&mut input);
 
 
     let name = &input.ident;
     let name = &input.ident;
-    let component_name = syn::Ident::new(&name.to_string().to_lowercase(), input.ident.span());
+    let component_name = ligen_ir::Identifier::new(name.to_string()).to_snake_case();
+    let component_name = syn::Ident::new(&component_name.to_string(), input.ident.span());
 
 
     let bolt_program = if delegate_set {
     let bolt_program = if delegate_set {
         quote! {
         quote! {