Closed timzaak closed 2 months ago
telosys 有点像。参数是 entity 的概念,能加载自数据库。但模版库索引库是以自己维护为主,其余人为辅。入门有一丢丢门槛,不够友好。Java 语言。 Giter8 是靠近预期的,但和 SBT 深度绑定,目标用户以 Scala 社区为优先。g8Scaffold 应该是核心,因为常用,但是以 SBT 插件形式存在。 TODO: Idea、VS Code 模版功能
我在想,是否是基于 Giter8 来起步,重新架构产品形态?虽然功能都已比较完善,但依赖包、Scala 3、分发等问题还是需要解决。 尤其模版Lib string template,在 Rust 中没有类似包,后续工作量也不小。
最终还是用 Rust 吧,Scala 需要解决 GraalVM 生态下的各依赖库兼容性问题,目前不确定相关生态是否可行。 模版可多个,默认使用 Liquid,后面在追加 stringtemplate 等,方便兼容 giter8。
构建模版项目命令行参数参考 https://www.foundweekends.org/giter8/usage.html 项目结构需要改动一下, src/main/g8 => .template。
已有项目模块 Scaffold 命令, 参考 https://www.foundweekends.org/giter8/scaffolding.html
文件内注释 Scaffold 命令, 还需要仔细考量。一个文件可能存在多个 Scaffold。
除了二进制文件外,
要先自己用起来,那么直接做 Scaffold 会比较好,后面再补充模版项目,最后代码着色插件。
商业上无法成立。没人会为此买单。目前应用场景多作为一个大Web框架下命令行工具中的一部分。
再衍生一些,就是配置文件模版。但配置文件追求的是覆盖、默认值。
GitHub 也有模版库的概念,可以结合。
cargo-generate 功能类似, 但依托于 cargo,需要 fork and rewrite,补充项目执行过程中的 template
AI 代码提示,解决所有问题,整个架构需要围绕AI来做了。
基于 #113 来看,还是做个代码模版生成工具会更具有价值。
功能需求
可以参考 giter8 来做,但 giter8的问题是只有 Scala 社区在用,其本身是作为 SBT 插件来做的。
以上最后一条最难实现,需要搞定不同文件格式的语法解析, java/kotlin/swift/c/c++/rust/python/js/typescript/html/css 等够花巨量时间去做。
解决方案
后续拓展