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.
- package/.claude/agents/langium-language-designer.md +38 -38
- package/.claude/agents/typescript-vscode-expert.md +29 -29
- package/.claude/agents/ui-ux-designer.md +36 -36
- package/.claude/settings.local.json +33 -33
- package/.idea/inspectionProfiles/Project_Default.xml +6 -6
- package/.idea/isdl.iml +13 -13
- package/.idea/modules.xml +8 -8
- package/.idea/vcs.xml +6 -6
- package/.idea/watcherTasks.xml +3 -3
- package/.vscodeignore +18 -18
- package/LICENSE +673 -673
- package/README.md +86 -86
- package/bin/cli.js +4 -4
- package/bin/lsp.js +8 -8
- package/out/_backgrounds.scss +91 -91
- package/out/_handlebars.scss +497 -497
- package/out/_isdlStyles.scss +1444 -1381
- package/out/_vuetifyOverrides.scss +425 -425
- package/out/_vuetifyStyles.scss +31957 -31957
- package/out/cli/components/_backgrounds.scss +91 -91
- package/out/cli/components/_handlebars.scss +497 -497
- package/out/cli/components/_isdlStyles.scss +1444 -1381
- package/out/cli/components/_vuetifyOverrides.scss +425 -425
- package/out/cli/components/_vuetifyStyles.scss +31957 -31957
- package/out/cli/components/active-effect-sheet-generator.js +453 -453
- package/out/cli/components/chat-card-generator.js +654 -651
- package/out/cli/components/chat-card-generator.js.map +1 -1
- package/out/cli/components/css-generator.js +4 -4
- package/out/cli/components/damage-roll-generator.js +160 -160
- package/out/cli/components/datamodel-generator.js +264 -257
- package/out/cli/components/datamodel-generator.js.map +1 -1
- package/out/cli/components/derived-data-generator.js +923 -923
- package/out/cli/components/hotbar-drop-hook-generator.js +82 -82
- package/out/cli/components/init-hook-generator.js +495 -495
- package/out/cli/components/language-generator.js +1 -1
- package/out/cli/components/language-generator.js.map +1 -1
- package/out/cli/components/measured-template-preview.js +221 -221
- package/out/cli/components/method-generator.js +979 -887
- package/out/cli/components/method-generator.js.map +1 -1
- package/out/cli/components/ready-hook-generator.js +404 -404
- package/out/cli/components/token-generator.js +116 -116
- package/out/cli/components/vue/base-components/vue-attribute.js +138 -138
- package/out/cli/components/vue/base-components/vue-boolean.js +64 -64
- package/out/cli/components/vue/base-components/vue-calculator.js +93 -93
- package/out/cli/components/vue/base-components/vue-damage-application.js +356 -356
- package/out/cli/components/vue/base-components/vue-damage-bonuses.js +165 -165
- package/out/cli/components/vue/base-components/vue-damage-resistances.js +196 -196
- package/out/cli/components/vue/base-components/vue-damage-track.js +121 -121
- package/out/cli/components/vue/base-components/vue-date-time.js +42 -42
- package/out/cli/components/vue/base-components/vue-dice.js +98 -98
- package/out/cli/components/vue/base-components/vue-die.js +73 -73
- package/out/cli/components/vue/base-components/vue-document-choice.js +149 -149
- package/out/cli/components/vue/base-components/vue-document-choices.js +179 -179
- package/out/cli/components/vue/base-components/vue-document-link.js +60 -60
- package/out/cli/components/vue/base-components/vue-extended-choice.js +88 -88
- package/out/cli/components/vue/base-components/vue-inventory.js +519 -519
- package/out/cli/components/vue/base-components/vue-macro-choice.js +138 -138
- package/out/cli/components/vue/base-components/vue-measured-template.js +530 -530
- package/out/cli/components/vue/base-components/vue-money.js +483 -483
- package/out/cli/components/vue/base-components/vue-number.js +174 -174
- package/out/cli/components/vue/base-components/vue-paperdoll.js +43 -43
- package/out/cli/components/vue/base-components/vue-parent-property-reference.js +76 -76
- package/out/cli/components/vue/base-components/vue-prosemirror.js +18 -18
- package/out/cli/components/vue/base-components/vue-resource.js +136 -136
- package/out/cli/components/vue/base-components/vue-roll-visualizer.js +286 -109
- package/out/cli/components/vue/base-components/vue-roll-visualizer.js.map +1 -1
- package/out/cli/components/vue/base-components/vue-self-property-reference.js +62 -62
- package/out/cli/components/vue/base-components/vue-string-choice.js +98 -98
- package/out/cli/components/vue/base-components/vue-string-choices.js +203 -203
- package/out/cli/components/vue/base-components/vue-string.js +60 -60
- package/out/cli/components/vue/base-components/vue-text-field.js +53 -53
- package/out/cli/components/vue/base-components/vue-tracker.js +431 -431
- package/out/cli/components/vue/vue-action-component-generator.js +64 -64
- package/out/cli/components/vue/vue-active-effect-sheet-generator.js +856 -856
- package/out/cli/components/vue/vue-datatable-sheet-class-generator.js +292 -292
- package/out/cli/components/vue/vue-datatable2-component-generator.js +824 -824
- package/out/cli/components/vue/vue-document-creation-app.js +121 -121
- package/out/cli/components/vue/vue-document-creation-sheet.js +94 -94
- package/out/cli/components/vue/vue-generator.js +40 -40
- package/out/cli/components/vue/vue-mixin.js +296 -296
- package/out/cli/components/vue/vue-pinned-datatable-component-generator.js +260 -260
- package/out/cli/components/vue/vue-prompt-generator.js +91 -76
- package/out/cli/components/vue/vue-prompt-generator.js.map +1 -1
- package/out/cli/components/vue/vue-prompt-sheet-class-generator.js +317 -317
- package/out/cli/components/vue/vue-sheet-application-generator.js +1177 -1167
- package/out/cli/components/vue/vue-sheet-application-generator.js.map +1 -1
- package/out/cli/components/vue/vue-sheet-class-generator.js +510 -510
- package/out/cli/generator.js +438 -433
- package/out/cli/generator.js.map +1 -1
- package/out/extension/github/githubAuthProvider.js +71 -29
- package/out/extension/github/githubAuthProvider.js.map +1 -1
- package/out/extension/github/githubGistManager.js +4 -3
- package/out/extension/github/githubGistManager.js.map +1 -1
- package/out/extension/github/githubManager.js +40 -38
- package/out/extension/github/githubManager.js.map +1 -1
- package/out/extension/github/githubQuickActions.js +120 -120
- package/out/extension/github/system-workflow.yml +47 -47
- package/out/extension/main.cjs +909 -532
- package/out/extension/main.cjs.map +3 -3
- package/out/extension/package.json +419 -419
- package/out/language/generated/ast.js +51 -2
- package/out/language/generated/ast.js.map +1 -1
- package/out/language/generated/grammar.js +14240 -13991
- package/out/language/generated/grammar.js.map +1 -1
- package/out/language/intelligent-system-design-language-validator.js +32 -2
- package/out/language/intelligent-system-design-language-validator.js.map +1 -1
- package/out/language/isdl-scope-provider.js +14 -1
- package/out/language/isdl-scope-provider.js.map +1 -1
- package/out/language/main.cjs +913 -569
- package/out/language/main.cjs.map +3 -3
- package/out/package.json +419 -419
- package/out/progressbar.min.js +6 -6
- package/out/styles.scss +762 -747
- package/out/test/validating/diagnostics.test.js +40 -0
- package/out/test/validating/diagnostics.test.js.map +1 -1
- 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';
|