intelligent-system-design-language 0.3.21 → 0.3.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/.claude/agents/langium-language-designer.md +38 -38
  2. package/.claude/agents/typescript-vscode-expert.md +29 -29
  3. package/.claude/agents/ui-ux-designer.md +36 -36
  4. package/.claude/settings.local.json +33 -33
  5. package/.idea/inspectionProfiles/Project_Default.xml +6 -6
  6. package/.idea/isdl.iml +13 -13
  7. package/.idea/modules.xml +8 -8
  8. package/.idea/vcs.xml +6 -6
  9. package/.idea/watcherTasks.xml +3 -3
  10. package/.vscodeignore +18 -18
  11. package/LICENSE +673 -673
  12. package/README.md +86 -86
  13. package/bin/cli.js +4 -4
  14. package/bin/lsp.js +8 -8
  15. package/out/_backgrounds.scss +91 -91
  16. package/out/_handlebars.scss +497 -497
  17. package/out/_isdlStyles.scss +1444 -1381
  18. package/out/_vuetifyOverrides.scss +425 -425
  19. package/out/_vuetifyStyles.scss +31957 -31957
  20. package/out/cli/components/_backgrounds.scss +91 -91
  21. package/out/cli/components/_handlebars.scss +497 -497
  22. package/out/cli/components/_isdlStyles.scss +1444 -1381
  23. package/out/cli/components/_vuetifyOverrides.scss +425 -425
  24. package/out/cli/components/_vuetifyStyles.scss +31957 -31957
  25. package/out/cli/components/active-effect-sheet-generator.js +453 -453
  26. package/out/cli/components/chat-card-generator.js +654 -651
  27. package/out/cli/components/chat-card-generator.js.map +1 -1
  28. package/out/cli/components/css-generator.js +4 -4
  29. package/out/cli/components/damage-roll-generator.js +160 -160
  30. package/out/cli/components/datamodel-generator.js +264 -257
  31. package/out/cli/components/datamodel-generator.js.map +1 -1
  32. package/out/cli/components/derived-data-generator.js +923 -923
  33. package/out/cli/components/hotbar-drop-hook-generator.js +82 -82
  34. package/out/cli/components/init-hook-generator.js +495 -495
  35. package/out/cli/components/language-generator.js +1 -1
  36. package/out/cli/components/language-generator.js.map +1 -1
  37. package/out/cli/components/measured-template-preview.js +221 -221
  38. package/out/cli/components/method-generator.js +979 -887
  39. package/out/cli/components/method-generator.js.map +1 -1
  40. package/out/cli/components/ready-hook-generator.js +404 -404
  41. package/out/cli/components/token-generator.js +116 -116
  42. package/out/cli/components/vue/base-components/vue-attribute.js +138 -138
  43. package/out/cli/components/vue/base-components/vue-boolean.js +64 -64
  44. package/out/cli/components/vue/base-components/vue-calculator.js +93 -93
  45. package/out/cli/components/vue/base-components/vue-damage-application.js +356 -356
  46. package/out/cli/components/vue/base-components/vue-damage-bonuses.js +165 -165
  47. package/out/cli/components/vue/base-components/vue-damage-resistances.js +196 -196
  48. package/out/cli/components/vue/base-components/vue-damage-track.js +121 -121
  49. package/out/cli/components/vue/base-components/vue-date-time.js +42 -42
  50. package/out/cli/components/vue/base-components/vue-dice.js +98 -98
  51. package/out/cli/components/vue/base-components/vue-die.js +73 -73
  52. package/out/cli/components/vue/base-components/vue-document-choice.js +149 -149
  53. package/out/cli/components/vue/base-components/vue-document-choices.js +179 -179
  54. package/out/cli/components/vue/base-components/vue-document-link.js +60 -60
  55. package/out/cli/components/vue/base-components/vue-extended-choice.js +88 -88
  56. package/out/cli/components/vue/base-components/vue-inventory.js +519 -519
  57. package/out/cli/components/vue/base-components/vue-macro-choice.js +138 -138
  58. package/out/cli/components/vue/base-components/vue-measured-template.js +530 -530
  59. package/out/cli/components/vue/base-components/vue-money.js +483 -483
  60. package/out/cli/components/vue/base-components/vue-number.js +174 -174
  61. package/out/cli/components/vue/base-components/vue-paperdoll.js +43 -43
  62. package/out/cli/components/vue/base-components/vue-parent-property-reference.js +76 -76
  63. package/out/cli/components/vue/base-components/vue-prosemirror.js +18 -18
  64. package/out/cli/components/vue/base-components/vue-resource.js +136 -136
  65. package/out/cli/components/vue/base-components/vue-roll-visualizer.js +286 -109
  66. package/out/cli/components/vue/base-components/vue-roll-visualizer.js.map +1 -1
  67. package/out/cli/components/vue/base-components/vue-self-property-reference.js +62 -62
  68. package/out/cli/components/vue/base-components/vue-string-choice.js +98 -98
  69. package/out/cli/components/vue/base-components/vue-string-choices.js +203 -203
  70. package/out/cli/components/vue/base-components/vue-string.js +60 -60
  71. package/out/cli/components/vue/base-components/vue-text-field.js +53 -53
  72. package/out/cli/components/vue/base-components/vue-tracker.js +431 -431
  73. package/out/cli/components/vue/vue-action-component-generator.js +64 -64
  74. package/out/cli/components/vue/vue-active-effect-sheet-generator.js +856 -856
  75. package/out/cli/components/vue/vue-datatable-sheet-class-generator.js +292 -292
  76. package/out/cli/components/vue/vue-datatable2-component-generator.js +824 -824
  77. package/out/cli/components/vue/vue-document-creation-app.js +121 -121
  78. package/out/cli/components/vue/vue-document-creation-sheet.js +94 -94
  79. package/out/cli/components/vue/vue-generator.js +40 -40
  80. package/out/cli/components/vue/vue-mixin.js +296 -296
  81. package/out/cli/components/vue/vue-pinned-datatable-component-generator.js +260 -260
  82. package/out/cli/components/vue/vue-prompt-generator.js +91 -76
  83. package/out/cli/components/vue/vue-prompt-generator.js.map +1 -1
  84. package/out/cli/components/vue/vue-prompt-sheet-class-generator.js +317 -317
  85. package/out/cli/components/vue/vue-sheet-application-generator.js +1177 -1167
  86. package/out/cli/components/vue/vue-sheet-application-generator.js.map +1 -1
  87. package/out/cli/components/vue/vue-sheet-class-generator.js +510 -510
  88. package/out/cli/generator.js +438 -433
  89. package/out/cli/generator.js.map +1 -1
  90. package/out/extension/github/githubAuthProvider.js +71 -29
  91. package/out/extension/github/githubAuthProvider.js.map +1 -1
  92. package/out/extension/github/githubGistManager.js +4 -3
  93. package/out/extension/github/githubGistManager.js.map +1 -1
  94. package/out/extension/github/githubManager.js +40 -38
  95. package/out/extension/github/githubManager.js.map +1 -1
  96. package/out/extension/github/githubQuickActions.js +120 -120
  97. package/out/extension/github/system-workflow.yml +47 -47
  98. package/out/extension/main.cjs +909 -532
  99. package/out/extension/main.cjs.map +3 -3
  100. package/out/extension/package.json +419 -419
  101. package/out/language/generated/ast.js +51 -2
  102. package/out/language/generated/ast.js.map +1 -1
  103. package/out/language/generated/grammar.js +14240 -13991
  104. package/out/language/generated/grammar.js.map +1 -1
  105. package/out/language/intelligent-system-design-language-validator.js +32 -2
  106. package/out/language/intelligent-system-design-language-validator.js.map +1 -1
  107. package/out/language/isdl-scope-provider.js +14 -1
  108. package/out/language/isdl-scope-provider.js.map +1 -1
  109. package/out/language/main.cjs +913 -569
  110. package/out/language/main.cjs.map +3 -3
  111. package/out/package.json +419 -419
  112. package/out/progressbar.min.js +6 -6
  113. package/out/styles.scss +762 -747
  114. package/out/test/validating/diagnostics.test.js +40 -0
  115. package/out/test/validating/diagnostics.test.js.map +1 -1
  116. package/package.json +419 -419
package/README.md CHANGED
@@ -1,86 +1,86 @@
1
- # Welcome to Intelligent System Design Language!
2
-
3
- <img width="1024" height="1024" alt="isdl" src="https://github.com/user-attachments/assets/03264bb0-3ca9-494e-99ff-0aaa8743b512" />
4
-
5
- Intelligent System Design Language (ISDL) is a custom programming language that enables you to create professional Virtual Tabletop Systems in hours, not months. It generates modern Foundry VTT systems compatible with Foundry V12 and V13 using cutting-edge web technologies.
6
-
7
- ISDL provides both a **VS Code extension** and **CLI tool** for development, featuring syntax highlighting, intelligent validation, autocomplete, and seamless GitHub integration for publishing and sharing your systems.
8
-
9
- <img width="1303" height="1029" alt="image" src="https://github.com/user-attachments/assets/c4f9aed8-b872-4936-a3ec-135248c64f1d" />
10
-
11
- ## ✨ Key Features
12
-
13
- ### 🎨 Modern User Interface
14
- * **Vue 3 + Vuetify** powered reactive character sheets for smooth, responsive gameplay
15
- * **Advanced DataTables** with search, filter, sort, and drag-drop functionality - perfect for managing inventories and spell lists
16
- * **Edit vs Play Mode** toggle for clear distinction between character building and gameplay
17
- * **Responsive Design** optimized for desktop and tablet use
18
-
19
- ### ⚡ Enhanced Active Effects
20
- * **Visual Editor** integration for creating effects through the familiar Foundry interface
21
- * **Smart Targeting** with automatic field detection and validation
22
- * **Condition Management** with built-in status effect handling
23
-
24
- ### 🎲 Intelligent Game Mechanics
25
- * **Smart Dice Operations** - multiply a d4 by 2 and get a d8, because that makes sense for tabletop games
26
- * **Enhanced Roll System** showing detailed breakdowns with labeled components
27
- * **Conditional Visibility** - show Ki trackers only for Monks, spell slots only for casters, etc.
28
- * **Resource Management** with automatic token bar integration and damage application
29
-
30
- ### 🔗 Seamless Publishing & Sharing
31
- * **GitHub Integration** - authenticate, publish systems, and manage releases directly from VS Code
32
- * **Automated Versioning** with semantic version detection based on your ISDL changes
33
- * **Gist Sharing** for quick collaboration and system prototypes
34
- * **Quality Releases** with auto-generated installation instructions and changelogs
35
-
36
- ### 🛠️ Developer Experience
37
- * **VS Code Extension** with full language support, syntax highlighting, and intelligent autocomplete
38
- * **CLI Tool** for build automation and CI/CD integration
39
- * **Real-time Validation** catching errors as you type
40
- * **Minimal Setup Needed** so you can get started easily
41
-
42
- ## 🚀 Quick Start
43
-
44
- Ready to create your first system? Choose your preferred development environment:
45
-
46
- ### 📝 **VS Code Extension** (Recommended)
47
- 1. Install the [ISDL extension](https://marketplace.visualstudio.com/items?itemName=IronMooseDevelopment.isdl) from the VS Code marketplace
48
- 2. Create a new `.isdl` file and start coding with full intellisense support
49
- 3. Use `Ctrl+Shift+P` → `ISDL - Generate` to create your Foundry system
50
- 4. Connect to GitHub for easy publishing and sharing
51
-
52
- ### 📚 **Learn More**
53
- * **[Getting Started Guide](https://github.com/cswendrowski/intelligent-system-design-language/wiki/Getting-Started)** - Complete setup and first system tutorial
54
- * **[Your First System](https://github.com/cswendrowski/intelligent-system-design-language/wiki/Your-first-System)** - Step-by-step walkthrough
55
- * **[GitHub Integration](https://github.com/cswendrowski/intelligent-system-design-language/wiki/GitHub-Integration)** - Publishing and sharing guide
56
- * **[Examples](https://github.com/cswendrowski/intelligent-system-design-language/tree/main/isdl/examples)** - Real system examples to learn from
57
-
58
- ---
59
-
60
- ## 🎯 Design Philosophy
61
-
62
- ### 1: Programming made easy, but still light programming
63
-
64
- Systems like Simple World Building, Custom System Builder, and Sandbox all offer a no-code click based way to build out small lightweight systems.
65
-
66
- ISDL is not nearly as complicated as developing a full Foundry system from scratch, but it is still a programming language. Basic familiarity with scripting languages as Javascript will be useful.
67
-
68
- ### 2: Do what makes sense
69
-
70
- There are a lot of options and customization available, but if you use the default syntax it should provide a reasonable default.
71
-
72
- When working with Datatypes like a list of Die size choices, most languages would reject `self.DieSize += 1` - adding `1` to a string doesn't make sense for most languages. For ISDL, we raise the value to the next die size, because that's what makes sense for Tabletop games. Multiply a d4 by 2? Now you have a d8.
73
-
74
- ### 3: Just enough Typing
75
-
76
- Some programming languages have no typing, meaning you can pass a number to something that expects a string and the function will have to deal with it - or error. Even simple typos can error.
77
-
78
- Other languages provide fully enforced typing which protects you from these mistakes, but can add a lot of extra work doing type conversions and checks.
79
-
80
- ISDL provides just enough typing to protect yourself from things like typos and errors, without requiring a ton of extra work.
81
-
82
- ## Let's go!
83
-
84
- **Ready to start your system development?**
85
-
86
- 👉 **[Start with the Getting Started Guide](https://github.com/cswendrowski/intelligent-system-design-language/wiki/Getting-Started)**
1
+ # Welcome to Intelligent System Design Language!
2
+
3
+ <img width="1024" height="1024" alt="isdl" src="https://github.com/user-attachments/assets/03264bb0-3ca9-494e-99ff-0aaa8743b512" />
4
+
5
+ Intelligent System Design Language (ISDL) is a custom programming language that enables you to create professional Virtual Tabletop Systems in hours, not months. It generates modern Foundry VTT systems compatible with Foundry V12 and V13 using cutting-edge web technologies.
6
+
7
+ ISDL provides both a **VS Code extension** and **CLI tool** for development, featuring syntax highlighting, intelligent validation, autocomplete, and seamless GitHub integration for publishing and sharing your systems.
8
+
9
+ <img width="1303" height="1029" alt="image" src="https://github.com/user-attachments/assets/c4f9aed8-b872-4936-a3ec-135248c64f1d" />
10
+
11
+ ## ✨ Key Features
12
+
13
+ ### 🎨 Modern User Interface
14
+ * **Vue 3 + Vuetify** powered reactive character sheets for smooth, responsive gameplay
15
+ * **Advanced DataTables** with search, filter, sort, and drag-drop functionality - perfect for managing inventories and spell lists
16
+ * **Edit vs Play Mode** toggle for clear distinction between character building and gameplay
17
+ * **Responsive Design** optimized for desktop and tablet use
18
+
19
+ ### ⚡ Enhanced Active Effects
20
+ * **Visual Editor** integration for creating effects through the familiar Foundry interface
21
+ * **Smart Targeting** with automatic field detection and validation
22
+ * **Condition Management** with built-in status effect handling
23
+
24
+ ### 🎲 Intelligent Game Mechanics
25
+ * **Smart Dice Operations** - multiply a d4 by 2 and get a d8, because that makes sense for tabletop games
26
+ * **Enhanced Roll System** showing detailed breakdowns with labeled components
27
+ * **Conditional Visibility** - show Ki trackers only for Monks, spell slots only for casters, etc.
28
+ * **Resource Management** with automatic token bar integration and damage application
29
+
30
+ ### 🔗 Seamless Publishing & Sharing
31
+ * **GitHub Integration** - authenticate, publish systems, and manage releases directly from VS Code
32
+ * **Automated Versioning** with semantic version detection based on your ISDL changes
33
+ * **Gist Sharing** for quick collaboration and system prototypes
34
+ * **Quality Releases** with auto-generated installation instructions and changelogs
35
+
36
+ ### 🛠️ Developer Experience
37
+ * **VS Code Extension** with full language support, syntax highlighting, and intelligent autocomplete
38
+ * **CLI Tool** for build automation and CI/CD integration
39
+ * **Real-time Validation** catching errors as you type
40
+ * **Minimal Setup Needed** so you can get started easily
41
+
42
+ ## 🚀 Quick Start
43
+
44
+ Ready to create your first system? Choose your preferred development environment:
45
+
46
+ ### 📝 **VS Code Extension** (Recommended)
47
+ 1. Install the [ISDL extension](https://marketplace.visualstudio.com/items?itemName=IronMooseDevelopment.isdl) from the VS Code marketplace
48
+ 2. Create a new `.isdl` file and start coding with full intellisense support
49
+ 3. Use `Ctrl+Shift+P` → `ISDL - Generate` to create your Foundry system
50
+ 4. Connect to GitHub for easy publishing and sharing
51
+
52
+ ### 📚 **Learn More**
53
+ * **[Getting Started Guide](https://github.com/cswendrowski/intelligent-system-design-language/wiki/Getting-Started)** - Complete setup and first system tutorial
54
+ * **[Your First System](https://github.com/cswendrowski/intelligent-system-design-language/wiki/Your-first-System)** - Step-by-step walkthrough
55
+ * **[GitHub Integration](https://github.com/cswendrowski/intelligent-system-design-language/wiki/GitHub-Integration)** - Publishing and sharing guide
56
+ * **[Examples](https://github.com/cswendrowski/intelligent-system-design-language/tree/main/isdl/examples)** - Real system examples to learn from
57
+
58
+ ---
59
+
60
+ ## 🎯 Design Philosophy
61
+
62
+ ### 1: Programming made easy, but still light programming
63
+
64
+ Systems like Simple World Building, Custom System Builder, and Sandbox all offer a no-code click based way to build out small lightweight systems.
65
+
66
+ ISDL is not nearly as complicated as developing a full Foundry system from scratch, but it is still a programming language. Basic familiarity with scripting languages as Javascript will be useful.
67
+
68
+ ### 2: Do what makes sense
69
+
70
+ There are a lot of options and customization available, but if you use the default syntax it should provide a reasonable default.
71
+
72
+ When working with Datatypes like a list of Die size choices, most languages would reject `self.DieSize += 1` - adding `1` to a string doesn't make sense for most languages. For ISDL, we raise the value to the next die size, because that's what makes sense for Tabletop games. Multiply a d4 by 2? Now you have a d8.
73
+
74
+ ### 3: Just enough Typing
75
+
76
+ Some programming languages have no typing, meaning you can pass a number to something that expects a string and the function will have to deal with it - or error. Even simple typos can error.
77
+
78
+ Other languages provide fully enforced typing which protects you from these mistakes, but can add a lot of extra work doing type conversions and checks.
79
+
80
+ ISDL provides just enough typing to protect yourself from things like typos and errors, without requiring a ton of extra work.
81
+
82
+ ## Let's go!
83
+
84
+ **Ready to start your system development?**
85
+
86
+ 👉 **[Start with the Getting Started Guide](https://github.com/cswendrowski/intelligent-system-design-language/wiki/Getting-Started)**
package/bin/cli.js CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
2
-
3
- import main from '../out/cli/main.js';
4
- main();
1
+ #!/usr/bin/env node
2
+
3
+ import main from '../out/cli/main.js';
4
+ main();
package/bin/lsp.js CHANGED
@@ -1,8 +1,8 @@
1
- #!/usr/bin/env node
2
-
3
- // Launches the ISDL language server (LSP) so any LSP-capable editor (Neovim,
4
- // Emacs, Sublime, etc.) can get diagnostics, completion and validation for
5
- // .isdl files. The transport (--stdio / --node-ipc / --socket) is detected
6
- // automatically from argv by vscode-languageserver; editors typically pass
7
- // --stdio. Importing the bundled server module starts it immediately.
8
- import '../out/language/main.cjs';
1
+ #!/usr/bin/env node
2
+
3
+ // Launches the ISDL language server (LSP) so any LSP-capable editor (Neovim,
4
+ // Emacs, Sublime, etc.) can get diagnostics, completion and validation for
5
+ // .isdl files. The transport (--stdio / --node-ipc / --socket) is detected
6
+ // automatically from argv by vscode-languageserver; editors typically pass
7
+ // --stdio. Importing the bundled server module starts it immediately.
8
+ import '../out/language/main.cjs';