intelligent-system-design-language 0.3.13

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 (209) hide show
  1. package/.claude/agents/langium-language-designer.md +38 -0
  2. package/.claude/agents/typescript-vscode-expert.md +29 -0
  3. package/.claude/agents/ui-ux-designer.md +36 -0
  4. package/.claude/settings.local.json +33 -0
  5. package/.idea/inspectionProfiles/Project_Default.xml +7 -0
  6. package/.idea/isdl.iml +14 -0
  7. package/.idea/modules.xml +9 -0
  8. package/.idea/vcs.xml +7 -0
  9. package/.idea/watcherTasks.xml +4 -0
  10. package/.vscodeignore +18 -0
  11. package/LICENSE +674 -0
  12. package/README.md +86 -0
  13. package/bin/cli.js +4 -0
  14. package/bin/lsp.js +8 -0
  15. package/isdl.png +0 -0
  16. package/out/_backgrounds.scss +91 -0
  17. package/out/_handlebars.scss +505 -0
  18. package/out/_isdlStyles.scss +1357 -0
  19. package/out/_vuetifyOverrides.scss +425 -0
  20. package/out/_vuetifyStyles.scss +31957 -0
  21. package/out/cli/cli-util.js +39 -0
  22. package/out/cli/cli-util.js.map +1 -0
  23. package/out/cli/components/_backgrounds.scss +91 -0
  24. package/out/cli/components/_handlebars.scss +505 -0
  25. package/out/cli/components/_isdlStyles.scss +1357 -0
  26. package/out/cli/components/_vuetifyOverrides.scss +425 -0
  27. package/out/cli/components/_vuetifyStyles.scss +31957 -0
  28. package/out/cli/components/active-effect-sheet-generator.js +643 -0
  29. package/out/cli/components/active-effect-sheet-generator.js.map +1 -0
  30. package/out/cli/components/base-actor-sheet-generator.js +125 -0
  31. package/out/cli/components/base-actor-sheet-generator.js.map +1 -0
  32. package/out/cli/components/base-sheet-generator.js +525 -0
  33. package/out/cli/components/base-sheet-generator.js.map +1 -0
  34. package/out/cli/components/chat-card-generator.js +683 -0
  35. package/out/cli/components/chat-card-generator.js.map +1 -0
  36. package/out/cli/components/css-generator.js +58 -0
  37. package/out/cli/components/css-generator.js.map +1 -0
  38. package/out/cli/components/damage-roll-generator.js +173 -0
  39. package/out/cli/components/damage-roll-generator.js.map +1 -0
  40. package/out/cli/components/datamodel-generator.js +672 -0
  41. package/out/cli/components/datamodel-generator.js.map +1 -0
  42. package/out/cli/components/derived-data-generator.js +1340 -0
  43. package/out/cli/components/derived-data-generator.js.map +1 -0
  44. package/out/cli/components/hotbar-drop-hook-generator.js +95 -0
  45. package/out/cli/components/hotbar-drop-hook-generator.js.map +1 -0
  46. package/out/cli/components/init-hook-generator.js +597 -0
  47. package/out/cli/components/init-hook-generator.js.map +1 -0
  48. package/out/cli/components/keywords-generator.js +220 -0
  49. package/out/cli/components/keywords-generator.js.map +1 -0
  50. package/out/cli/components/language-generator.js +110 -0
  51. package/out/cli/components/language-generator.js.map +1 -0
  52. package/out/cli/components/measured-template-preview.js +234 -0
  53. package/out/cli/components/measured-template-preview.js.map +1 -0
  54. package/out/cli/components/method-generator.js +1812 -0
  55. package/out/cli/components/method-generator.js.map +1 -0
  56. package/out/cli/components/ready-hook-generator.js +448 -0
  57. package/out/cli/components/ready-hook-generator.js.map +1 -0
  58. package/out/cli/components/token-generator.js +138 -0
  59. package/out/cli/components/token-generator.js.map +1 -0
  60. package/out/cli/components/utils.js +176 -0
  61. package/out/cli/components/utils.js.map +1 -0
  62. package/out/cli/components/vue/base-components/vue-attribute.js +148 -0
  63. package/out/cli/components/vue/base-components/vue-attribute.js.map +1 -0
  64. package/out/cli/components/vue/base-components/vue-boolean.js +77 -0
  65. package/out/cli/components/vue/base-components/vue-boolean.js.map +1 -0
  66. package/out/cli/components/vue/base-components/vue-calculator.js +106 -0
  67. package/out/cli/components/vue/base-components/vue-calculator.js.map +1 -0
  68. package/out/cli/components/vue/base-components/vue-damage-application.js +369 -0
  69. package/out/cli/components/vue/base-components/vue-damage-application.js.map +1 -0
  70. package/out/cli/components/vue/base-components/vue-damage-bonuses.js +225 -0
  71. package/out/cli/components/vue/base-components/vue-damage-bonuses.js.map +1 -0
  72. package/out/cli/components/vue/base-components/vue-damage-resistances.js +256 -0
  73. package/out/cli/components/vue/base-components/vue-damage-resistances.js.map +1 -0
  74. package/out/cli/components/vue/base-components/vue-damage-track.js +134 -0
  75. package/out/cli/components/vue/base-components/vue-damage-track.js.map +1 -0
  76. package/out/cli/components/vue/base-components/vue-date-time.js +55 -0
  77. package/out/cli/components/vue/base-components/vue-date-time.js.map +1 -0
  78. package/out/cli/components/vue/base-components/vue-dice.js +111 -0
  79. package/out/cli/components/vue/base-components/vue-dice.js.map +1 -0
  80. package/out/cli/components/vue/base-components/vue-die.js +86 -0
  81. package/out/cli/components/vue/base-components/vue-die.js.map +1 -0
  82. package/out/cli/components/vue/base-components/vue-document-choice.js +172 -0
  83. package/out/cli/components/vue/base-components/vue-document-choice.js.map +1 -0
  84. package/out/cli/components/vue/base-components/vue-document-choices.js +203 -0
  85. package/out/cli/components/vue/base-components/vue-document-choices.js.map +1 -0
  86. package/out/cli/components/vue/base-components/vue-document-link.js +73 -0
  87. package/out/cli/components/vue/base-components/vue-document-link.js.map +1 -0
  88. package/out/cli/components/vue/base-components/vue-extended-choice.js +101 -0
  89. package/out/cli/components/vue/base-components/vue-extended-choice.js.map +1 -0
  90. package/out/cli/components/vue/base-components/vue-inventory.js +532 -0
  91. package/out/cli/components/vue/base-components/vue-inventory.js.map +1 -0
  92. package/out/cli/components/vue/base-components/vue-macro-choice.js +150 -0
  93. package/out/cli/components/vue/base-components/vue-macro-choice.js.map +1 -0
  94. package/out/cli/components/vue/base-components/vue-measured-template.js +543 -0
  95. package/out/cli/components/vue/base-components/vue-measured-template.js.map +1 -0
  96. package/out/cli/components/vue/base-components/vue-money.js +496 -0
  97. package/out/cli/components/vue/base-components/vue-money.js.map +1 -0
  98. package/out/cli/components/vue/base-components/vue-number.js +184 -0
  99. package/out/cli/components/vue/base-components/vue-number.js.map +1 -0
  100. package/out/cli/components/vue/base-components/vue-paperdoll.js +56 -0
  101. package/out/cli/components/vue/base-components/vue-paperdoll.js.map +1 -0
  102. package/out/cli/components/vue/base-components/vue-parent-property-reference.js +89 -0
  103. package/out/cli/components/vue/base-components/vue-parent-property-reference.js.map +1 -0
  104. package/out/cli/components/vue/base-components/vue-prosemirror.js +31 -0
  105. package/out/cli/components/vue/base-components/vue-prosemirror.js.map +1 -0
  106. package/out/cli/components/vue/base-components/vue-resource.js +149 -0
  107. package/out/cli/components/vue/base-components/vue-resource.js.map +1 -0
  108. package/out/cli/components/vue/base-components/vue-roll-visualizer.js +121 -0
  109. package/out/cli/components/vue/base-components/vue-roll-visualizer.js.map +1 -0
  110. package/out/cli/components/vue/base-components/vue-self-property-reference.js +75 -0
  111. package/out/cli/components/vue/base-components/vue-self-property-reference.js.map +1 -0
  112. package/out/cli/components/vue/base-components/vue-string-choice.js +111 -0
  113. package/out/cli/components/vue/base-components/vue-string-choice.js.map +1 -0
  114. package/out/cli/components/vue/base-components/vue-string-choices.js +216 -0
  115. package/out/cli/components/vue/base-components/vue-string-choices.js.map +1 -0
  116. package/out/cli/components/vue/base-components/vue-string.js +73 -0
  117. package/out/cli/components/vue/base-components/vue-string.js.map +1 -0
  118. package/out/cli/components/vue/base-components/vue-text-field.js +66 -0
  119. package/out/cli/components/vue/base-components/vue-text-field.js.map +1 -0
  120. package/out/cli/components/vue/base-components/vue-tracker.js +444 -0
  121. package/out/cli/components/vue/base-components/vue-tracker.js.map +1 -0
  122. package/out/cli/components/vue/vue-action-component-generator.js +88 -0
  123. package/out/cli/components/vue/vue-action-component-generator.js.map +1 -0
  124. package/out/cli/components/vue/vue-active-effect-sheet-generator.js +1016 -0
  125. package/out/cli/components/vue/vue-active-effect-sheet-generator.js.map +1 -0
  126. package/out/cli/components/vue/vue-base-components-generator.js +59 -0
  127. package/out/cli/components/vue/vue-base-components-generator.js.map +1 -0
  128. package/out/cli/components/vue/vue-datatable-component-generator.js +307 -0
  129. package/out/cli/components/vue/vue-datatable-component-generator.js.map +1 -0
  130. package/out/cli/components/vue/vue-datatable-sheet-class-generator.js +342 -0
  131. package/out/cli/components/vue/vue-datatable-sheet-class-generator.js.map +1 -0
  132. package/out/cli/components/vue/vue-datatable2-component-generator.js +939 -0
  133. package/out/cli/components/vue/vue-datatable2-component-generator.js.map +1 -0
  134. package/out/cli/components/vue/vue-document-creation-app.js +140 -0
  135. package/out/cli/components/vue/vue-document-creation-app.js.map +1 -0
  136. package/out/cli/components/vue/vue-document-creation-sheet.js +105 -0
  137. package/out/cli/components/vue/vue-document-creation-sheet.js.map +1 -0
  138. package/out/cli/components/vue/vue-generator.js +240 -0
  139. package/out/cli/components/vue/vue-generator.js.map +1 -0
  140. package/out/cli/components/vue/vue-mixin.js +338 -0
  141. package/out/cli/components/vue/vue-mixin.js.map +1 -0
  142. package/out/cli/components/vue/vue-pinned-datatable-component-generator.js +306 -0
  143. package/out/cli/components/vue/vue-pinned-datatable-component-generator.js.map +1 -0
  144. package/out/cli/components/vue/vue-prompt-generator.js +201 -0
  145. package/out/cli/components/vue/vue-prompt-generator.js.map +1 -0
  146. package/out/cli/components/vue/vue-prompt-sheet-class-generator.js +252 -0
  147. package/out/cli/components/vue/vue-prompt-sheet-class-generator.js.map +1 -0
  148. package/out/cli/components/vue/vue-sheet-application-generator.js +2008 -0
  149. package/out/cli/components/vue/vue-sheet-application-generator.js.map +1 -0
  150. package/out/cli/components/vue/vue-sheet-class-generator.js +484 -0
  151. package/out/cli/components/vue/vue-sheet-class-generator.js.map +1 -0
  152. package/out/cli/generator.js +659 -0
  153. package/out/cli/generator.js.map +1 -0
  154. package/out/cli/main.js +43 -0
  155. package/out/cli/main.js.map +1 -0
  156. package/out/datatables.min.css +54 -0
  157. package/out/datatables.min.js +178 -0
  158. package/out/extension/github/githubAuthProvider.js +345 -0
  159. package/out/extension/github/githubAuthProvider.js.map +1 -0
  160. package/out/extension/github/githubConfig.js +132 -0
  161. package/out/extension/github/githubConfig.js.map +1 -0
  162. package/out/extension/github/githubGistActions.js +251 -0
  163. package/out/extension/github/githubGistActions.js.map +1 -0
  164. package/out/extension/github/githubGistManager.js +255 -0
  165. package/out/extension/github/githubGistManager.js.map +1 -0
  166. package/out/extension/github/githubManager.js +1735 -0
  167. package/out/extension/github/githubManager.js.map +1 -0
  168. package/out/extension/github/githubQuickActions.js +659 -0
  169. package/out/extension/github/githubQuickActions.js.map +1 -0
  170. package/out/extension/github/githubTreeProvider.js +181 -0
  171. package/out/extension/github/githubTreeProvider.js.map +1 -0
  172. package/out/extension/github/system-workflow.yml +48 -0
  173. package/out/extension/main.cjs +70315 -0
  174. package/out/extension/main.cjs.map +7 -0
  175. package/out/extension/main.js +237 -0
  176. package/out/extension/main.js.map +1 -0
  177. package/out/extension/package.json +426 -0
  178. package/out/isdl.png +0 -0
  179. package/out/language/generated/ast.js +2992 -0
  180. package/out/language/generated/ast.js.map +1 -0
  181. package/out/language/generated/grammar.js +13970 -0
  182. package/out/language/generated/grammar.js.map +1 -0
  183. package/out/language/generated/module.js +20 -0
  184. package/out/language/generated/module.js.map +1 -0
  185. package/out/language/intelligent-system-design-language-formatter.js +85 -0
  186. package/out/language/intelligent-system-design-language-formatter.js.map +1 -0
  187. package/out/language/intelligent-system-design-language-module.js +69 -0
  188. package/out/language/intelligent-system-design-language-module.js.map +1 -0
  189. package/out/language/intelligent-system-design-language-quickfixes.js +37 -0
  190. package/out/language/intelligent-system-design-language-quickfixes.js.map +1 -0
  191. package/out/language/intelligent-system-design-language-validator.js +515 -0
  192. package/out/language/intelligent-system-design-language-validator.js.map +1 -0
  193. package/out/language/isdl-hover-provider.js +77 -0
  194. package/out/language/isdl-hover-provider.js.map +1 -0
  195. package/out/language/isdl-scope-provider.js +149 -0
  196. package/out/language/isdl-scope-provider.js.map +1 -0
  197. package/out/language/main.cjs +47655 -0
  198. package/out/language/main.cjs.map +7 -0
  199. package/out/language/main.js +11 -0
  200. package/out/language/main.js.map +1 -0
  201. package/out/missing-character.png +0 -0
  202. package/out/package.json +426 -0
  203. package/out/paperdoll_default.png +0 -0
  204. package/out/progressbar.min.js +7 -0
  205. package/out/styles.scss +722 -0
  206. package/out/test/formatting/formatter.test.js +46 -0
  207. package/out/test/formatting/formatter.test.js.map +1 -0
  208. package/out/vuetify.esm.js +30279 -0
  209. package/package.json +426 -0
@@ -0,0 +1,237 @@
1
+ import * as vscode from 'vscode';
2
+ import * as path from 'node:path';
3
+ import { spawn } from 'child_process';
4
+ import { LanguageClient, TransportKind } from 'vscode-languageclient/node.js';
5
+ import { IntelligentSystemDesignLanguageQuickfixes } from '../language/intelligent-system-design-language-quickfixes.js';
6
+ import { GitHubManager } from "./github/githubManager.js";
7
+ import { GitHubTreeProvider } from "./github/githubTreeProvider.js";
8
+ import { GitHubQuickActions } from "./github/githubQuickActions.js";
9
+ import { GitHubGistManager } from "./github/githubGistManager.js";
10
+ import { GitHubGistActions } from "./github/githubGistActions.js";
11
+ let client;
12
+ let outputChannel;
13
+ // This function is called when the extension is activated.
14
+ export function activate(context) {
15
+ outputChannel = vscode.window.createOutputChannel('ISDL');
16
+ context.subscriptions.push(outputChannel);
17
+ registerCommands(context);
18
+ registerCodeActions(context);
19
+ registerGithub(context);
20
+ client = startLanguageClient(context);
21
+ }
22
+ // This function is called when the extension is deactivated.
23
+ export function deactivate() {
24
+ if (client) {
25
+ return client.stop();
26
+ }
27
+ return undefined;
28
+ }
29
+ function registerCommands(context) {
30
+ function generate(sourceFilePath, destinationPath) {
31
+ const cliPath = path.resolve(context.extensionPath, 'bin', 'cli.js');
32
+ const fileName = path.basename(sourceFilePath);
33
+ outputChannel.clear();
34
+ outputChannel.appendLine(`Generating ${fileName} → ${destinationPath}`);
35
+ outputChannel.appendLine('');
36
+ vscode.window.withProgress({
37
+ location: vscode.ProgressLocation.Notification,
38
+ title: `Generating ${fileName}...`,
39
+ cancellable: false
40
+ }, () => new Promise((resolve, reject) => {
41
+ const cliProcess = spawn('node', [cliPath, 'generate', `"${sourceFilePath}"`, '--destination', `"${destinationPath}"`], {
42
+ cwd: context.extensionPath,
43
+ shell: true
44
+ });
45
+ let outputPath;
46
+ const errors = [];
47
+ cliProcess.stdout.on('data', (data) => {
48
+ const text = data.toString();
49
+ outputChannel.append(text);
50
+ const match = text.match(/generated successfully:\s*(.+)/i);
51
+ if (match) {
52
+ outputPath = match[1].trim();
53
+ }
54
+ });
55
+ cliProcess.stderr.on('data', (data) => {
56
+ const text = data.toString().trim();
57
+ outputChannel.appendLine(`[error] ${text}`);
58
+ errors.push(text);
59
+ });
60
+ cliProcess.on('close', (code) => {
61
+ if (code === 0) {
62
+ const msg = outputPath
63
+ ? `System generated successfully!\n${outputPath}`
64
+ : 'System generated successfully!';
65
+ vscode.window.showInformationMessage(msg);
66
+ resolve();
67
+ }
68
+ else {
69
+ outputChannel.show();
70
+ const detail = errors.length > 0 ? errors.join('\n') : `Exit code ${code}`;
71
+ vscode.window.showErrorMessage(`Generation failed: ${detail}`);
72
+ reject();
73
+ }
74
+ });
75
+ }));
76
+ }
77
+ context.subscriptions.push(vscode.commands.registerCommand('isdl.generate', async () => {
78
+ var _a, _b;
79
+ const files = await vscode.workspace.findFiles('**/*.isdl');
80
+ if (!files || files.length === 0) {
81
+ vscode.window.showErrorMessage('No .isdl files found in the workspace.');
82
+ return;
83
+ }
84
+ const lastSelectedFile = context.globalState.get('lastSelectedFile');
85
+ // Pre-select the currently open .isdl file, or fall back to last used
86
+ const activeFile = (_a = vscode.window.activeTextEditor) === null || _a === void 0 ? void 0 : _a.document.uri.fsPath;
87
+ const preferredFile = (_b = ((activeFile === null || activeFile === void 0 ? void 0 : activeFile.endsWith('.isdl')) ? activeFile : undefined)) !== null && _b !== void 0 ? _b : lastSelectedFile;
88
+ const fileItems = files.map(file => ({
89
+ label: path.basename(file.fsPath),
90
+ description: file.fsPath,
91
+ picked: file.fsPath === preferredFile
92
+ }));
93
+ const selectedFile = await vscode.window.showQuickPick(fileItems, {
94
+ placeHolder: 'Select an .isdl file to generate',
95
+ canPickMany: false,
96
+ });
97
+ if (!selectedFile) {
98
+ return; // user cancelled — not an error
99
+ }
100
+ await context.globalState.update('lastSelectedFile', selectedFile.description);
101
+ const sourceFilePath = selectedFile.description;
102
+ const lastSelectedFolder = context.globalState.get('lastSelectedFolder');
103
+ const destinationFolderUri = await vscode.window.showOpenDialog({
104
+ canSelectFiles: false,
105
+ canSelectFolders: true,
106
+ canSelectMany: false,
107
+ openLabel: 'Select Foundry Data/systems Folder',
108
+ title: 'Select your Foundry VTT Data/systems folder',
109
+ defaultUri: lastSelectedFolder ? vscode.Uri.file(lastSelectedFolder) : undefined
110
+ });
111
+ if (!destinationFolderUri || destinationFolderUri.length === 0) {
112
+ return; // user cancelled — not an error
113
+ }
114
+ const destinationPath = destinationFolderUri[0].fsPath;
115
+ await context.globalState.update('lastSelectedFolder', destinationPath);
116
+ generate(sourceFilePath, destinationPath);
117
+ }));
118
+ context.subscriptions.push(vscode.commands.registerCommand('isdl.regenerate', async () => {
119
+ const lastSelectedFile = context.globalState.get('lastSelectedFile');
120
+ const lastSelectedFolder = context.globalState.get('lastSelectedFolder');
121
+ if (!lastSelectedFile || !lastSelectedFolder) {
122
+ vscode.window.showErrorMessage('No previous generation found. Run Generate first.');
123
+ return;
124
+ }
125
+ generate(lastSelectedFile, lastSelectedFolder);
126
+ }));
127
+ }
128
+ function startLanguageClient(context) {
129
+ const serverModule = context.asAbsolutePath(path.join('out', 'language', 'main.cjs'));
130
+ // The debug options for the server
131
+ // --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging.
132
+ // By setting `process.env.DEBUG_BREAK` to a truthy value, the language server will wait until a debugger is attached.
133
+ const debugOptions = { execArgv: ['--nolazy', `--inspect${process.env.DEBUG_BREAK ? '-brk' : ''}=${process.env.DEBUG_SOCKET || '6009'}`] };
134
+ // If the extension is launched in debug mode then the debug server options are used
135
+ // Otherwise the run options are used
136
+ const serverOptions = {
137
+ run: { module: serverModule, transport: TransportKind.ipc },
138
+ debug: { module: serverModule, transport: TransportKind.ipc, options: debugOptions }
139
+ };
140
+ // Options to control the language client
141
+ const clientOptions = {
142
+ documentSelector: [{ scheme: 'file', language: 'intelligent-system-design-language' }]
143
+ };
144
+ // Create the language client and start the client.
145
+ const client = new LanguageClient('intelligent-system-design-language', 'Intelligent System Design Language', serverOptions, clientOptions);
146
+ // Start the client. This will also launch the server
147
+ client.start();
148
+ return client;
149
+ }
150
+ function registerCodeActions(context) {
151
+ vscode.languages.registerCodeActionsProvider('intelligent-system-design-language', new IntelligentSystemDesignLanguageQuickfixes(), {
152
+ providedCodeActionKinds: [vscode.CodeActionKind.QuickFix]
153
+ });
154
+ }
155
+ function registerGithub(context) {
156
+ // Initialize GitHub components
157
+ const githubManager = new GitHubManager(context);
158
+ const gistManager = new GitHubGistManager(githubManager.getAuthProvider());
159
+ const treeProvider = new GitHubTreeProvider(githubManager, gistManager);
160
+ const quickActions = new GitHubQuickActions(githubManager);
161
+ const gistActions = new GitHubGistActions(gistManager);
162
+ // Register tree view
163
+ const treeView = vscode.window.createTreeView('isdl.github', {
164
+ treeDataProvider: treeProvider,
165
+ showCollapseAll: false
166
+ });
167
+ // Register simplified commands
168
+ const commands = [
169
+ vscode.commands.registerCommand('isdl.github.authenticate', async () => {
170
+ await githubManager.authenticate();
171
+ }),
172
+ vscode.commands.registerCommand('isdl.github.signOut', async () => {
173
+ await githubManager.signOut();
174
+ }),
175
+ vscode.commands.registerCommand('isdl.github.selectRepository', async () => {
176
+ await quickActions.selectRepository();
177
+ }),
178
+ vscode.commands.registerCommand('isdl.github.createRepository', async () => {
179
+ await quickActions.createRepository();
180
+ }),
181
+ vscode.commands.registerCommand('isdl.github.disconnectRepository', async () => {
182
+ await quickActions.disconnectRepository();
183
+ }),
184
+ vscode.commands.registerCommand('isdl.github.publish', async () => {
185
+ await quickActions.publishSystem();
186
+ }),
187
+ vscode.commands.registerCommand('isdl.github.update', async () => {
188
+ await quickActions.updateSystem();
189
+ }),
190
+ vscode.commands.registerCommand('isdl.github.selectGist', async () => {
191
+ await gistActions.selectGist();
192
+ }),
193
+ vscode.commands.registerCommand('isdl.github.createGist', async () => {
194
+ await gistActions.createGist();
195
+ }),
196
+ vscode.commands.registerCommand('isdl.github.syncToGist', async () => {
197
+ await gistActions.syncToGist();
198
+ }),
199
+ vscode.commands.registerCommand('isdl.github.downloadFromGist', async () => {
200
+ await gistActions.downloadFromGist();
201
+ }),
202
+ vscode.commands.registerCommand('isdl.github.disconnectGist', async () => {
203
+ await gistActions.disconnectGist();
204
+ }),
205
+ vscode.commands.registerCommand('isdl.github.refresh', () => {
206
+ treeProvider.refresh();
207
+ }),
208
+ vscode.commands.registerCommand('isdl.github.openProfile', (username) => {
209
+ if (username) {
210
+ vscode.env.openExternal(vscode.Uri.parse(`https://github.com/${username}`));
211
+ }
212
+ })
213
+ ];
214
+ // Add to context subscriptions
215
+ context.subscriptions.push(treeView, ...commands);
216
+ updateWorkspaceContext();
217
+ // Watch for ISDL files to update context
218
+ const fileWatcher = vscode.workspace.createFileSystemWatcher('**/*.isdl');
219
+ fileWatcher.onDidCreate(updateWorkspaceContext);
220
+ fileWatcher.onDidDelete(updateWorkspaceContext);
221
+ context.subscriptions.push(fileWatcher);
222
+ }
223
+ /**
224
+ * Update workspace context for when clauses
225
+ */
226
+ async function updateWorkspaceContext() {
227
+ const workspaceFolders = vscode.workspace.workspaceFolders;
228
+ if (!workspaceFolders) {
229
+ await vscode.commands.executeCommand('setContext', 'isdl.workspaceHasIsdlFiles', false);
230
+ return;
231
+ }
232
+ // Check if workspace has ISDL files
233
+ const isdlFiles = await vscode.workspace.findFiles('**/*.isdl', null, 1);
234
+ const hasIsdlFiles = isdlFiles.length > 0;
235
+ await vscode.commands.executeCommand('setContext', 'isdl.workspaceHasIsdlFiles', hasIsdlFiles);
236
+ }
237
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/extension/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,426 @@
1
+ {
2
+ "name": "isdl",
3
+ "displayName": "ISDL - Intelligent System Design Language",
4
+ "description": "Intelligent System Design Language support for Visual Studio Code",
5
+ "publisher": "IronMooseDevelopment",
6
+ "version": "0.3.13",
7
+ "author": "Iron Moose Development",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/cswendrowski/intelligent-system-design-language"
11
+ },
12
+ "homepage": "https://github.com/cswendrowski/intelligent-system-design-language#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/cswendrowski/intelligent-system-design-language/issues"
15
+ },
16
+ "keywords": [
17
+ "isdl",
18
+ "foundry-vtt",
19
+ "tabletop-rpg",
20
+ "dsl",
21
+ "game-system",
22
+ "character-sheet"
23
+ ],
24
+ "preview": true,
25
+ "license": "GPL-3.0",
26
+ "type": "module",
27
+ "icon": "isdl.png",
28
+ "scripts": {
29
+ "build": "tsc -b tsconfig.src.json && node esbuild.mjs",
30
+ "watch": "concurrently -n tsc,esbuild -c blue,yellow \"tsc -b tsconfig.src.json --watch\" \"node esbuild.mjs --watch\"",
31
+ "lint": "eslint src --ext ts",
32
+ "langium:generate": "langium generate",
33
+ "langium:watch": "langium generate --watch",
34
+ "vscode:prepublish": "",
35
+ "test": "vitest run",
36
+ "isdl:generate": "node ./bin/cli.js"
37
+ },
38
+ "dependencies": {
39
+ "@mdi/font": "^7.4.47",
40
+ "@octokit/auth-app": "^6.0.0",
41
+ "@octokit/rest": "^19.0.13",
42
+ "@vitejs/plugin-vue": "^5.0.0",
43
+ "chalk": "~5.3.0",
44
+ "commander": "~11.0.0",
45
+ "datatables.net-buttons": "^3.2.2",
46
+ "datatables.net-buttons-dt": "^3.2.2",
47
+ "datatables.net-colreorder-dt": "^2.0.4",
48
+ "datatables.net-dt": "^2.2.2",
49
+ "datatables.net-responsive-dt": "^3.0.4",
50
+ "datatables.net-rowreorder-dt": "^1.5.0",
51
+ "datatables.net-vue3": "^3.0.4",
52
+ "inflection": "^3.0.0",
53
+ "langium": "~3.0.0",
54
+ "rpg-awesome": "^0.2.0",
55
+ "sass": "^1.77.4",
56
+ "vite": "^5.0.0",
57
+ "vite-plugin-vuetify": "^2.1.0",
58
+ "vscode-languageclient": "~9.0.1",
59
+ "vscode-languageserver": "~9.0.1",
60
+ "vue": "^3.4.0",
61
+ "vuetify": "^3.7.14"
62
+ },
63
+ "devDependencies": {
64
+ "@fortawesome/fontawesome-free": "^6.7.2",
65
+ "@types/node": "^18.19.34",
66
+ "@types/vscode": "~1.67.0",
67
+ "@typescript-eslint/eslint-plugin": "~6.4.1",
68
+ "@typescript-eslint/parser": "~6.4.1",
69
+ "concurrently": "~8.2.1",
70
+ "esbuild": "^0.19.12",
71
+ "eslint": "~8.47.0",
72
+ "langium-cli": "~3.0.0",
73
+ "typescript": "~5.1.6",
74
+ "vite-plugin-vue-devtools": "^7.7.2",
75
+ "vitest": "~1.4.0"
76
+ },
77
+ "engines": {
78
+ "vscode": "^1.67.0",
79
+ "node": ">=18.0.0"
80
+ },
81
+ "categories": [
82
+ "Programming Languages"
83
+ ],
84
+ "contributes": {
85
+ "languages": [
86
+ {
87
+ "id": "intelligent-system-design-language",
88
+ "aliases": [
89
+ "Intelligent System Design Language",
90
+ "intelligent-system-design-language"
91
+ ],
92
+ "extensions": [
93
+ ".isdl"
94
+ ],
95
+ "configuration": "./language-configuration.json"
96
+ }
97
+ ],
98
+ "configurationDefaults": {
99
+ "[intelligent-system-design-language]": {
100
+ "editor.formatOnSave": true
101
+ }
102
+ },
103
+ "grammars": [
104
+ {
105
+ "language": "intelligent-system-design-language",
106
+ "scopeName": "source.intelligent-system-design-language",
107
+ "path": "syntaxes/intelligent-system-design-language.tmLanguage.json"
108
+ }
109
+ ],
110
+ "snippets": [
111
+ {
112
+ "language": "intelligent-system-design-language",
113
+ "path": "snippets/isdl.json"
114
+ }
115
+ ],
116
+ "commands": [
117
+ {
118
+ "command": "isdl.generate",
119
+ "title": "Generate",
120
+ "category": "ISDL"
121
+ },
122
+ {
123
+ "command": "isdl.regenerate",
124
+ "title": "Regenerate",
125
+ "category": "ISDL"
126
+ },
127
+ {
128
+ "command": "isdl.github.authenticate",
129
+ "title": "Connect to GitHub",
130
+ "category": "ISDL - GitHub",
131
+ "icon": "$(github)"
132
+ },
133
+ {
134
+ "command": "isdl.github.signOut",
135
+ "title": "Sign Out from GitHub",
136
+ "category": "ISDL - GitHub",
137
+ "icon": "$(sign-out)"
138
+ },
139
+ {
140
+ "command": "isdl.github.selectRepository",
141
+ "title": "Select Repository",
142
+ "category": "ISDL - GitHub",
143
+ "icon": "$(repo)"
144
+ },
145
+ {
146
+ "command": "isdl.github.createRepository",
147
+ "title": "Create Repository",
148
+ "category": "ISDL - GitHub",
149
+ "icon": "$(repo-create)"
150
+ },
151
+ {
152
+ "command": "isdl.github.publish",
153
+ "title": "Publish System",
154
+ "category": "ISDL - GitHub",
155
+ "icon": "$(rocket)"
156
+ },
157
+ {
158
+ "command": "isdl.github.update",
159
+ "title": "Update Files",
160
+ "category": "ISDL - GitHub",
161
+ "icon": "$(cloud-upload)"
162
+ },
163
+ {
164
+ "command": "isdl.github.refresh",
165
+ "title": "Refresh",
166
+ "category": "ISDL - GitHub",
167
+ "icon": "$(refresh)"
168
+ },
169
+ {
170
+ "command": "isdl.github.selectGist",
171
+ "title": "Select Gist",
172
+ "category": "ISDL - GitHub",
173
+ "icon": "$(gist)"
174
+ },
175
+ {
176
+ "command": "isdl.github.createGist",
177
+ "title": "Create Gist",
178
+ "category": "ISDL - GitHub",
179
+ "icon": "$(gist-new)"
180
+ },
181
+ {
182
+ "command": "isdl.github.syncToGist",
183
+ "title": "Sync to Gist",
184
+ "category": "ISDL - GitHub",
185
+ "icon": "$(cloud-upload)"
186
+ },
187
+ {
188
+ "command": "isdl.github.downloadFromGist",
189
+ "title": "Download from Gist",
190
+ "category": "ISDL - GitHub",
191
+ "icon": "$(cloud-download)"
192
+ },
193
+ {
194
+ "command": "isdl.github.disconnectGist",
195
+ "title": "Disconnect Gist",
196
+ "category": "ISDL - GitHub",
197
+ "icon": "$(diff-removed)"
198
+ }
199
+ ],
200
+ "views": {
201
+ "isdl-explorer": [
202
+ {
203
+ "id": "isdl.github",
204
+ "name": "GitHub Publishing",
205
+ "icon": "$(github)",
206
+ "visibility": "collapsed"
207
+ }
208
+ ]
209
+ },
210
+ "viewsContainers": {
211
+ "activitybar": [
212
+ {
213
+ "id": "isdl-explorer",
214
+ "title": "Intelligent System Design Language",
215
+ "icon": "$(lightbulb-sparkle)"
216
+ }
217
+ ]
218
+ },
219
+ "menus": {
220
+ "view/title": [
221
+ {
222
+ "command": "isdl.github.refresh",
223
+ "when": "view == isdl.github",
224
+ "group": "navigation@1"
225
+ },
226
+ {
227
+ "command": "isdl.github.authenticate",
228
+ "when": "view == isdl.github && !isdl.github.authenticated",
229
+ "group": "navigation@2"
230
+ }
231
+ ],
232
+ "view/item/context": [
233
+ {
234
+ "command": "isdl.github.signOut",
235
+ "when": "view == isdl.github && viewItem == authenticated",
236
+ "group": "inline@1"
237
+ }
238
+ ],
239
+ "commandPalette": [
240
+ {
241
+ "command": "isdl.github.authenticate",
242
+ "when": "isdl.workspaceHasIsdlFiles"
243
+ },
244
+ {
245
+ "command": "isdl.github.publish",
246
+ "when": "isdl.workspaceHasIsdlFiles && isdl.github.authenticated"
247
+ },
248
+ {
249
+ "command": "isdl.github.update",
250
+ "when": "isdl.workspaceHasIsdlFiles && isdl.github.authenticated"
251
+ },
252
+ {
253
+ "command": "isdl.github.createRepository",
254
+ "when": "isdl.workspaceHasIsdlFiles && isdl.github.authenticated"
255
+ },
256
+ {
257
+ "command": "isdl.github.selectRepository",
258
+ "when": "isdl.workspaceHasIsdlFiles && isdl.github.authenticated"
259
+ },
260
+ {
261
+ "command": "isdl.github.selectGist",
262
+ "when": "isdl.workspaceHasIsdlFiles && isdl.github.authenticated"
263
+ },
264
+ {
265
+ "command": "isdl.github.createGist",
266
+ "when": "isdl.workspaceHasIsdlFiles && isdl.github.authenticated"
267
+ },
268
+ {
269
+ "command": "isdl.github.syncToGist",
270
+ "when": "isdl.workspaceHasIsdlFiles && isdl.github.authenticated"
271
+ },
272
+ {
273
+ "command": "isdl.github.downloadFromGist",
274
+ "when": "isdl.workspaceHasIsdlFiles && isdl.github.authenticated"
275
+ }
276
+ ],
277
+ "editor/title": [
278
+ {
279
+ "command": "isdl.github.publish",
280
+ "when": "resourceExtname == .isdl && isdl.github.authenticated",
281
+ "group": "navigation@1"
282
+ },
283
+ {
284
+ "command": "isdl.github.update",
285
+ "when": "resourceExtname == .isdl && isdl.github.authenticated",
286
+ "group": "navigation@2"
287
+ },
288
+ {
289
+ "command": "isdl.github.syncToGist",
290
+ "when": "resourceExtname == .isdl && isdl.github.authenticated",
291
+ "group": "navigation@3"
292
+ }
293
+ ],
294
+ "explorer/context": [
295
+ {
296
+ "command": "isdl.github.publish",
297
+ "when": "resourceExtname == .isdl && isdl.github.authenticated",
298
+ "group": "isdl@1"
299
+ },
300
+ {
301
+ "command": "isdl.github.update",
302
+ "when": "resourceExtname == .isdl && isdl.github.authenticated",
303
+ "group": "isdl@2"
304
+ },
305
+ {
306
+ "command": "isdl.github.syncToGist",
307
+ "when": "resourceExtname == .isdl && isdl.github.authenticated",
308
+ "group": "isdl@3"
309
+ },
310
+ {
311
+ "command": "isdl.github.createGist",
312
+ "when": "resourceExtname == .isdl && isdl.github.authenticated",
313
+ "group": "isdl@4"
314
+ },
315
+ {
316
+ "command": "isdl.github.createRepository",
317
+ "when": "explorerResourceIsFolder && isdl.workspaceHasIsdlFiles && isdl.github.authenticated",
318
+ "group": "isdl@5"
319
+ }
320
+ ]
321
+ }
322
+ },
323
+ "configuration": {
324
+ "type": "object",
325
+ "title": "Intelligent System Design Language Configuration",
326
+ "properties": {
327
+ "isdl.lastSelectedFolder": {
328
+ "type": "string",
329
+ "default": "",
330
+ "description": "The last selected folder path"
331
+ },
332
+ "isdl.lastSelectedFile": {
333
+ "type": "string",
334
+ "default": "",
335
+ "description": "The last selected file"
336
+ },
337
+ "isdl.github.defaultBranch": {
338
+ "type": "string",
339
+ "default": "main",
340
+ "description": "Default branch name for new repositories",
341
+ "enum": [
342
+ "main",
343
+ "master",
344
+ "develop"
345
+ ],
346
+ "enumDescriptions": [
347
+ "Use 'main' as the default branch (recommended)",
348
+ "Use 'master' as the default branch",
349
+ "Use 'develop' as the default branch"
350
+ ]
351
+ },
352
+ "isdl.github.includeDocumentation": {
353
+ "type": "boolean",
354
+ "default": true,
355
+ "description": "Automatically generate README and documentation files when publishing"
356
+ },
357
+ "isdl.github.includeBuildScripts": {
358
+ "type": "boolean",
359
+ "default": true,
360
+ "description": "Include GitHub Actions workflows and build configuration"
361
+ },
362
+ "isdl.github.templateRepository": {
363
+ "type": "string",
364
+ "description": "GitHub repository to use as a template (format: owner/repo)",
365
+ "pattern": "^[a-zA-Z0-9._-]+/[a-zA-Z0-9._-]+$"
366
+ },
367
+ "isdl.github.commitMessage": {
368
+ "type": "string",
369
+ "default": "Update system files",
370
+ "description": "Default commit message for automated updates"
371
+ },
372
+ "isdl.github.tagReleases": {
373
+ "type": "boolean",
374
+ "default": true,
375
+ "description": "Automatically create Git tags when publishing releases"
376
+ },
377
+ "isdl.github.generateChangelog": {
378
+ "type": "boolean",
379
+ "default": true,
380
+ "description": "Generate CHANGELOG.md from commit history"
381
+ },
382
+ "isdl.github.autoPublish": {
383
+ "type": "boolean",
384
+ "default": false,
385
+ "description": "Automatically publish to GitHub when system files are generated"
386
+ },
387
+ "isdl.github.repositoryVisibility": {
388
+ "type": "string",
389
+ "default": "public",
390
+ "enum": [
391
+ "public",
392
+ "private"
393
+ ],
394
+ "enumDescriptions": [
395
+ "Create public repositories (visible to everyone, required for people to be able to install the system)",
396
+ "Create private repositories (visible only to you and collaborators)"
397
+ ],
398
+ "description": "Default visibility for new repositories"
399
+ },
400
+ "isdl.github.licenseTemplate": {
401
+ "type": "string",
402
+ "description": "License template to include in new repositories. See https://choosealicense.com/licenses/ for more details",
403
+ "enum": [
404
+ "unlicense",
405
+ "mit",
406
+ "lgpl-3.0"
407
+ ],
408
+ "enumDescriptions": [
409
+ "The Unlicense - Public domain dedication, anyone can do what they want",
410
+ "MIT License - Permissive license with basic protections and attribution",
411
+ "GNU LGPL v3.0 - Copyleft license that prevents someone from making your system closed source but allows modules to do what they want"
412
+ ]
413
+ }
414
+ }
415
+ },
416
+ "activationEvents": [
417
+ "onLanguage:intelligent-system-design-language",
418
+ "onView:isdl.github"
419
+ ],
420
+ "main": "./out/extension/main.cjs",
421
+ "bin": {
422
+ "isdl": "./bin/cli.js",
423
+ "isdl-lsp": "./bin/lsp.js",
424
+ "intelligent-system-design-language-cli": "./bin/cli.js"
425
+ }
426
+ }
package/out/isdl.png ADDED
Binary file