IncludeCPP 3.7.3__py3-none-any.whl

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 (49) hide show
  1. includecpp/__init__.py +59 -0
  2. includecpp/__init__.pyi +255 -0
  3. includecpp/__main__.py +4 -0
  4. includecpp/cli/__init__.py +4 -0
  5. includecpp/cli/commands.py +8270 -0
  6. includecpp/cli/config_parser.py +127 -0
  7. includecpp/core/__init__.py +19 -0
  8. includecpp/core/ai_integration.py +2132 -0
  9. includecpp/core/build_manager.py +2416 -0
  10. includecpp/core/cpp_api.py +376 -0
  11. includecpp/core/cpp_api.pyi +95 -0
  12. includecpp/core/cppy_converter.py +3448 -0
  13. includecpp/core/cssl/CSSL_DOCUMENTATION.md +2075 -0
  14. includecpp/core/cssl/__init__.py +42 -0
  15. includecpp/core/cssl/cssl_builtins.py +2271 -0
  16. includecpp/core/cssl/cssl_builtins.pyi +1393 -0
  17. includecpp/core/cssl/cssl_events.py +621 -0
  18. includecpp/core/cssl/cssl_modules.py +2803 -0
  19. includecpp/core/cssl/cssl_parser.py +2575 -0
  20. includecpp/core/cssl/cssl_runtime.py +3051 -0
  21. includecpp/core/cssl/cssl_syntax.py +488 -0
  22. includecpp/core/cssl/cssl_types.py +1512 -0
  23. includecpp/core/cssl_bridge.py +882 -0
  24. includecpp/core/cssl_bridge.pyi +488 -0
  25. includecpp/core/error_catalog.py +802 -0
  26. includecpp/core/error_formatter.py +1016 -0
  27. includecpp/core/exceptions.py +97 -0
  28. includecpp/core/path_discovery.py +77 -0
  29. includecpp/core/project_ui.py +3370 -0
  30. includecpp/core/settings_ui.py +326 -0
  31. includecpp/generator/__init__.py +1 -0
  32. includecpp/generator/parser.cpp +1903 -0
  33. includecpp/generator/parser.h +281 -0
  34. includecpp/generator/type_resolver.cpp +363 -0
  35. includecpp/generator/type_resolver.h +68 -0
  36. includecpp/py.typed +0 -0
  37. includecpp/templates/cpp.proj.template +18 -0
  38. includecpp/vscode/__init__.py +1 -0
  39. includecpp/vscode/cssl/__init__.py +1 -0
  40. includecpp/vscode/cssl/language-configuration.json +38 -0
  41. includecpp/vscode/cssl/package.json +50 -0
  42. includecpp/vscode/cssl/snippets/cssl.snippets.json +1080 -0
  43. includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +341 -0
  44. includecpp-3.7.3.dist-info/METADATA +1076 -0
  45. includecpp-3.7.3.dist-info/RECORD +49 -0
  46. includecpp-3.7.3.dist-info/WHEEL +5 -0
  47. includecpp-3.7.3.dist-info/entry_points.txt +2 -0
  48. includecpp-3.7.3.dist-info/licenses/LICENSE +21 -0
  49. includecpp-3.7.3.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1080 @@
1
+ {
2
+ "Class Definition": {
3
+ "prefix": ["class", "cls"],
4
+ "body": [
5
+ "class ${1:ClassName} {",
6
+ "\t// Member variables",
7
+ "\t${2:string} ${3:name};",
8
+ "",
9
+ "\t// Constructor",
10
+ "\tvoid ${1}(${4:params}) {",
11
+ "\t\tthis->${3} = ${5:value};",
12
+ "\t}",
13
+ "",
14
+ "\t// Methods",
15
+ "\t${6:void} ${7:methodName}() {",
16
+ "\t\t$0",
17
+ "\t}",
18
+ "}"
19
+ ],
20
+ "description": "Create a new CSSL class with constructor and method"
21
+ },
22
+ "Constructor": {
23
+ "prefix": ["constructor", "ctor"],
24
+ "body": [
25
+ "void ${1:ClassName}(${2:params}) {",
26
+ "\tthis->${3:member} = ${4:value};$0",
27
+ "}"
28
+ ],
29
+ "description": "Create a class constructor"
30
+ },
31
+ "New Instance": {
32
+ "prefix": ["new", "instance"],
33
+ "body": [
34
+ "${1:ClassName} ${2:obj} = new ${1}(${3:args});$0"
35
+ ],
36
+ "description": "Create new class instance"
37
+ },
38
+ "This Access": {
39
+ "prefix": ["this->", "this"],
40
+ "body": [
41
+ "this->${1:member}$0"
42
+ ],
43
+ "description": "Access class member with this->"
44
+ },
45
+ "Function Definition": {
46
+ "prefix": ["func", "function", "define"],
47
+ "body": [
48
+ "${1:void} ${2:functionName}(${3:params}) {",
49
+ "\t$0",
50
+ "}"
51
+ ],
52
+ "description": "Create a function"
53
+ },
54
+ "If Statement": {
55
+ "prefix": "if",
56
+ "body": [
57
+ "if (${1:condition}) {",
58
+ "\t$0",
59
+ "}"
60
+ ],
61
+ "description": "If statement"
62
+ },
63
+ "If-Else Statement": {
64
+ "prefix": "ife",
65
+ "body": [
66
+ "if (${1:condition}) {",
67
+ "\t$2",
68
+ "} else {",
69
+ "\t$0",
70
+ "}"
71
+ ],
72
+ "description": "If-else statement"
73
+ },
74
+ "For Loop": {
75
+ "prefix": "for",
76
+ "body": [
77
+ "for (int ${1:i} = 0; ${1} < ${2:count}; ${1}++) {",
78
+ "\t$0",
79
+ "}"
80
+ ],
81
+ "description": "For loop"
82
+ },
83
+ "Foreach Loop": {
84
+ "prefix": "foreach",
85
+ "body": [
86
+ "foreach (${1:item} in ${2:collection}) {",
87
+ "\t$0",
88
+ "}"
89
+ ],
90
+ "description": "Foreach loop"
91
+ },
92
+ "While Loop": {
93
+ "prefix": "while",
94
+ "body": [
95
+ "while (${1:condition}) {",
96
+ "\t$0",
97
+ "}"
98
+ ],
99
+ "description": "While loop"
100
+ },
101
+ "Try-Catch": {
102
+ "prefix": "try",
103
+ "body": [
104
+ "try {",
105
+ "\t$1",
106
+ "} catch {",
107
+ "\t$0",
108
+ "}"
109
+ ],
110
+ "description": "Try-catch block"
111
+ },
112
+ "Switch Statement": {
113
+ "prefix": "switch",
114
+ "body": [
115
+ "switch (${1:expression}) {",
116
+ "\tcase ${2:value}:",
117
+ "\t\t$3",
118
+ "\t\tbreak;",
119
+ "\tdefault:",
120
+ "\t\t$0",
121
+ "}"
122
+ ],
123
+ "description": "Switch statement"
124
+ },
125
+ "Main Function": {
126
+ "prefix": "main",
127
+ "body": [
128
+ "void main() {",
129
+ "\t$0",
130
+ "}"
131
+ ],
132
+ "description": "Main function entry point"
133
+ },
134
+
135
+ "Print": {
136
+ "prefix": "print",
137
+ "body": "print(${1:value});$0",
138
+ "description": "Print values without newline"
139
+ },
140
+ "Print Line": {
141
+ "prefix": ["printl", "pl", "println"],
142
+ "body": "printl(${1:\"message\"});$0",
143
+ "description": "Print values with newline"
144
+ },
145
+ "Debug": {
146
+ "prefix": "debug",
147
+ "body": "debug(${1:value});$0",
148
+ "description": "Print debug information with [DEBUG] prefix"
149
+ },
150
+ "Error": {
151
+ "prefix": "error",
152
+ "body": "error(${1:\"error message\"});$0",
153
+ "description": "Print error message with [ERROR] prefix"
154
+ },
155
+ "Warn": {
156
+ "prefix": "warn",
157
+ "body": "warn(${1:\"warning message\"});$0",
158
+ "description": "Print warning message with [WARN] prefix"
159
+ },
160
+
161
+ "Int Conversion": {
162
+ "prefix": "int(",
163
+ "body": "int(${1:value})$0",
164
+ "description": "Convert value to integer"
165
+ },
166
+ "Float Conversion": {
167
+ "prefix": "float(",
168
+ "body": "float(${1:value})$0",
169
+ "description": "Convert value to float"
170
+ },
171
+ "String Conversion": {
172
+ "prefix": "str(",
173
+ "body": "str(${1:value})$0",
174
+ "description": "Convert value to string"
175
+ },
176
+ "Bool Conversion": {
177
+ "prefix": "bool(",
178
+ "body": "bool(${1:value})$0",
179
+ "description": "Convert value to boolean"
180
+ },
181
+ "List Conversion": {
182
+ "prefix": "list(",
183
+ "body": "list(${1:value})$0",
184
+ "description": "Convert value to list or create empty list"
185
+ },
186
+ "Dict Conversion": {
187
+ "prefix": "dict(",
188
+ "body": "dict(${1:value})$0",
189
+ "description": "Convert value to dictionary"
190
+ },
191
+
192
+ "Typeof": {
193
+ "prefix": "typeof",
194
+ "body": "typeof(${1:value})$0",
195
+ "description": "Get type name of value (int, str, list, etc.)"
196
+ },
197
+ "Isinstance": {
198
+ "prefix": "isinstance",
199
+ "body": "isinstance(${1:value}, ${2:\"type\"})$0",
200
+ "description": "Check if value is instance of type"
201
+ },
202
+ "Isint": {
203
+ "prefix": "isint",
204
+ "body": "isint(${1:value})$0",
205
+ "description": "Check if value is an integer"
206
+ },
207
+ "Isfloat": {
208
+ "prefix": "isfloat",
209
+ "body": "isfloat(${1:value})$0",
210
+ "description": "Check if value is a float"
211
+ },
212
+ "Isstr": {
213
+ "prefix": "isstr",
214
+ "body": "isstr(${1:value})$0",
215
+ "description": "Check if value is a string"
216
+ },
217
+ "Isbool": {
218
+ "prefix": "isbool",
219
+ "body": "isbool(${1:value})$0",
220
+ "description": "Check if value is a boolean"
221
+ },
222
+ "Islist": {
223
+ "prefix": "islist",
224
+ "body": "islist(${1:value})$0",
225
+ "description": "Check if value is a list"
226
+ },
227
+ "Isdict": {
228
+ "prefix": "isdict",
229
+ "body": "isdict(${1:value})$0",
230
+ "description": "Check if value is a dictionary"
231
+ },
232
+ "Isnull": {
233
+ "prefix": "isnull",
234
+ "body": "isnull(${1:value})$0",
235
+ "description": "Check if value is null"
236
+ },
237
+
238
+ "Len": {
239
+ "prefix": "len",
240
+ "body": "len(${1:value})$0",
241
+ "description": "Get length of string, list, or dictionary"
242
+ },
243
+ "Upper": {
244
+ "prefix": "upper",
245
+ "body": "upper(${1:string})$0",
246
+ "description": "Convert string to uppercase"
247
+ },
248
+ "Lower": {
249
+ "prefix": "lower",
250
+ "body": "lower(${1:string})$0",
251
+ "description": "Convert string to lowercase"
252
+ },
253
+ "Trim": {
254
+ "prefix": "trim",
255
+ "body": "trim(${1:string})$0",
256
+ "description": "Remove whitespace from both ends"
257
+ },
258
+ "Ltrim": {
259
+ "prefix": "ltrim",
260
+ "body": "ltrim(${1:string})$0",
261
+ "description": "Remove whitespace from left side"
262
+ },
263
+ "Rtrim": {
264
+ "prefix": "rtrim",
265
+ "body": "rtrim(${1:string})$0",
266
+ "description": "Remove whitespace from right side"
267
+ },
268
+ "Split": {
269
+ "prefix": "split",
270
+ "body": "split(${1:string}, ${2:\",\"})$0",
271
+ "description": "Split string into list by delimiter"
272
+ },
273
+ "Join": {
274
+ "prefix": "join",
275
+ "body": "join(${1:array}, ${2:\"-\"})$0",
276
+ "description": "Join list elements into string"
277
+ },
278
+ "Replace": {
279
+ "prefix": "replace",
280
+ "body": "replace(${1:string}, ${2:\"old\"}, ${3:\"new\"})$0",
281
+ "description": "Replace all occurrences of substring"
282
+ },
283
+ "Substr": {
284
+ "prefix": "substr",
285
+ "body": "substr(${1:string}, ${2:start}, ${3:length})$0",
286
+ "description": "Extract substring"
287
+ },
288
+ "Contains": {
289
+ "prefix": "contains",
290
+ "body": "contains(${1:string}, ${2:\"substring\"})$0",
291
+ "description": "Check if string contains substring"
292
+ },
293
+ "Startswith": {
294
+ "prefix": "startswith",
295
+ "body": "startswith(${1:string}, ${2:\"prefix\"})$0",
296
+ "description": "Check if string starts with prefix"
297
+ },
298
+ "Endswith": {
299
+ "prefix": "endswith",
300
+ "body": "endswith(${1:string}, ${2:\"suffix\"})$0",
301
+ "description": "Check if string ends with suffix"
302
+ },
303
+ "Format": {
304
+ "prefix": "format",
305
+ "body": "format(${1:\"template {}\"}, ${2:value})$0",
306
+ "description": "Format string with placeholders"
307
+ },
308
+ "Concat": {
309
+ "prefix": "concat",
310
+ "body": "concat(${1:\"a\"}, ${2:\"b\"})$0",
311
+ "description": "Concatenate multiple strings"
312
+ },
313
+ "Repeat": {
314
+ "prefix": "repeat",
315
+ "body": "repeat(${1:string}, ${2:count})$0",
316
+ "description": "Repeat string n times"
317
+ },
318
+ "Reverse": {
319
+ "prefix": "reverse",
320
+ "body": "reverse(${1:string})$0",
321
+ "description": "Reverse string"
322
+ },
323
+ "Indexof": {
324
+ "prefix": "indexof",
325
+ "body": "indexof(${1:string}, ${2:\"substring\"})$0",
326
+ "description": "Find first occurrence of substring"
327
+ },
328
+ "Lastindexof": {
329
+ "prefix": "lastindexof",
330
+ "body": "lastindexof(${1:string}, ${2:\"substring\"})$0",
331
+ "description": "Find last occurrence of substring"
332
+ },
333
+ "Padleft": {
334
+ "prefix": "padleft",
335
+ "body": "padleft(${1:string}, ${2:length}, ${3:\"0\"})$0",
336
+ "description": "Pad string on left to specified length"
337
+ },
338
+ "Padright": {
339
+ "prefix": "padright",
340
+ "body": "padright(${1:string}, ${2:length}, ${3:\"0\"})$0",
341
+ "description": "Pad string on right to specified length"
342
+ },
343
+ "Capitalize": {
344
+ "prefix": "capitalize",
345
+ "body": "capitalize(${1:string})$0",
346
+ "description": "Capitalize first character"
347
+ },
348
+ "Title": {
349
+ "prefix": "title",
350
+ "body": "title(${1:string})$0",
351
+ "description": "Capitalize first character of each word"
352
+ },
353
+
354
+ "Push": {
355
+ "prefix": "push",
356
+ "body": "push(${1:array}, ${2:value});$0",
357
+ "description": "Add element to end of array"
358
+ },
359
+ "Pop": {
360
+ "prefix": "pop",
361
+ "body": "pop(${1:array})$0",
362
+ "description": "Remove and return last element"
363
+ },
364
+ "Shift": {
365
+ "prefix": "shift",
366
+ "body": "shift(${1:array})$0",
367
+ "description": "Remove and return first element"
368
+ },
369
+ "Unshift": {
370
+ "prefix": "unshift",
371
+ "body": "unshift(${1:array}, ${2:value});$0",
372
+ "description": "Add element to beginning of array"
373
+ },
374
+ "Slice": {
375
+ "prefix": "slice",
376
+ "body": "slice(${1:array}, ${2:start}, ${3:end})$0",
377
+ "description": "Extract portion of array"
378
+ },
379
+ "Sort": {
380
+ "prefix": "sort",
381
+ "body": "sort(${1:array})$0",
382
+ "description": "Sort array in ascending order"
383
+ },
384
+ "Rsort": {
385
+ "prefix": "rsort",
386
+ "body": "rsort(${1:array})$0",
387
+ "description": "Sort array in descending order"
388
+ },
389
+ "Unique": {
390
+ "prefix": "unique",
391
+ "body": "unique(${1:array})$0",
392
+ "description": "Remove duplicate elements"
393
+ },
394
+ "Flatten": {
395
+ "prefix": "flatten",
396
+ "body": "flatten(${1:array})$0",
397
+ "description": "Flatten nested arrays"
398
+ },
399
+ "Filter": {
400
+ "prefix": "filter",
401
+ "body": "filter(${1:array}, ${2:predicate})$0",
402
+ "description": "Filter array by predicate function"
403
+ },
404
+ "Map Function": {
405
+ "prefix": "map(",
406
+ "body": "map(${1:array}, ${2:func})$0",
407
+ "description": "Apply function to each element"
408
+ },
409
+ "Reduce": {
410
+ "prefix": "reduce",
411
+ "body": "reduce(${1:array}, ${2:func}, ${3:initial})$0",
412
+ "description": "Reduce array to single value"
413
+ },
414
+ "Find": {
415
+ "prefix": "find",
416
+ "body": "find(${1:array}, ${2:predicate})$0",
417
+ "description": "Find first element matching predicate"
418
+ },
419
+ "Findindex": {
420
+ "prefix": "findindex",
421
+ "body": "findindex(${1:array}, ${2:predicate})$0",
422
+ "description": "Find index of first matching element"
423
+ },
424
+ "Range": {
425
+ "prefix": "range",
426
+ "body": "range(${1:start}, ${2:stop}, ${3:step})$0",
427
+ "description": "Generate range of integers"
428
+ },
429
+
430
+ "Keys": {
431
+ "prefix": "keys",
432
+ "body": "keys(${1:dict})$0",
433
+ "description": "Get all dictionary keys"
434
+ },
435
+ "Values": {
436
+ "prefix": "values",
437
+ "body": "values(${1:dict})$0",
438
+ "description": "Get all dictionary values"
439
+ },
440
+ "Items": {
441
+ "prefix": "items",
442
+ "body": "items(${1:dict})$0",
443
+ "description": "Get all key-value pairs"
444
+ },
445
+ "Haskey": {
446
+ "prefix": "haskey",
447
+ "body": "haskey(${1:dict}, ${2:\"key\"})$0",
448
+ "description": "Check if dictionary has key"
449
+ },
450
+ "Getkey": {
451
+ "prefix": "getkey",
452
+ "body": "getkey(${1:dict}, ${2:\"key\"}, ${3:default})$0",
453
+ "description": "Get value by key with optional default"
454
+ },
455
+ "Setkey": {
456
+ "prefix": "setkey",
457
+ "body": "setkey(${1:dict}, ${2:\"key\"}, ${3:value});$0",
458
+ "description": "Set key-value pair in dictionary"
459
+ },
460
+ "Delkey": {
461
+ "prefix": "delkey",
462
+ "body": "delkey(${1:dict}, ${2:\"key\"});$0",
463
+ "description": "Delete key from dictionary"
464
+ },
465
+ "Merge": {
466
+ "prefix": "merge",
467
+ "body": "merge(${1:dict1}, ${2:dict2})$0",
468
+ "description": "Merge multiple dictionaries"
469
+ },
470
+
471
+ "Abs": {
472
+ "prefix": "abs",
473
+ "body": "abs(${1:value})$0",
474
+ "description": "Absolute value"
475
+ },
476
+ "Min": {
477
+ "prefix": "min",
478
+ "body": "min(${1:values})$0",
479
+ "description": "Minimum value"
480
+ },
481
+ "Max": {
482
+ "prefix": "max",
483
+ "body": "max(${1:values})$0",
484
+ "description": "Maximum value"
485
+ },
486
+ "Sum": {
487
+ "prefix": "sum",
488
+ "body": "sum(${1:array})$0",
489
+ "description": "Sum of array elements"
490
+ },
491
+ "Avg": {
492
+ "prefix": "avg",
493
+ "body": "avg(${1:array})$0",
494
+ "description": "Average of array elements"
495
+ },
496
+ "Round": {
497
+ "prefix": "round",
498
+ "body": "round(${1:value}, ${2:decimals})$0",
499
+ "description": "Round to specified decimal places"
500
+ },
501
+ "Floor": {
502
+ "prefix": "floor",
503
+ "body": "floor(${1:value})$0",
504
+ "description": "Round down to nearest integer"
505
+ },
506
+ "Ceil": {
507
+ "prefix": "ceil",
508
+ "body": "ceil(${1:value})$0",
509
+ "description": "Round up to nearest integer"
510
+ },
511
+ "Pow": {
512
+ "prefix": "pow",
513
+ "body": "pow(${1:base}, ${2:exponent})$0",
514
+ "description": "Raise base to power"
515
+ },
516
+ "Sqrt": {
517
+ "prefix": "sqrt",
518
+ "body": "sqrt(${1:value})$0",
519
+ "description": "Square root"
520
+ },
521
+ "Random": {
522
+ "prefix": "random",
523
+ "body": "random()$0",
524
+ "description": "Random float between 0 and 1"
525
+ },
526
+ "Randint": {
527
+ "prefix": "randint",
528
+ "body": "randint(${1:min}, ${2:max})$0",
529
+ "description": "Random integer in range [min, max]"
530
+ },
531
+ "Sin": {
532
+ "prefix": "sin",
533
+ "body": "sin(${1:radians})$0",
534
+ "description": "Sine (radians)"
535
+ },
536
+ "Cos": {
537
+ "prefix": "cos",
538
+ "body": "cos(${1:radians})$0",
539
+ "description": "Cosine (radians)"
540
+ },
541
+ "Tan": {
542
+ "prefix": "tan",
543
+ "body": "tan(${1:radians})$0",
544
+ "description": "Tangent (radians)"
545
+ },
546
+ "Asin": {
547
+ "prefix": "asin",
548
+ "body": "asin(${1:value})$0",
549
+ "description": "Arc sine (returns radians)"
550
+ },
551
+ "Acos": {
552
+ "prefix": "acos",
553
+ "body": "acos(${1:value})$0",
554
+ "description": "Arc cosine (returns radians)"
555
+ },
556
+ "Atan": {
557
+ "prefix": "atan",
558
+ "body": "atan(${1:value})$0",
559
+ "description": "Arc tangent (returns radians)"
560
+ },
561
+ "Atan2": {
562
+ "prefix": "atan2",
563
+ "body": "atan2(${1:y}, ${2:x})$0",
564
+ "description": "Two-argument arc tangent"
565
+ },
566
+ "Log": {
567
+ "prefix": "log",
568
+ "body": "log(${1:value})$0",
569
+ "description": "Natural logarithm"
570
+ },
571
+ "Log10": {
572
+ "prefix": "log10",
573
+ "body": "log10(${1:value})$0",
574
+ "description": "Base-10 logarithm"
575
+ },
576
+ "Exp": {
577
+ "prefix": "exp",
578
+ "body": "exp(${1:value})$0",
579
+ "description": "Exponential function (e^x)"
580
+ },
581
+ "Pi": {
582
+ "prefix": "pi",
583
+ "body": "pi()$0",
584
+ "description": "Mathematical constant pi (3.14159...)"
585
+ },
586
+ "E Constant": {
587
+ "prefix": "e()",
588
+ "body": "e()$0",
589
+ "description": "Mathematical constant e (2.71828...)"
590
+ },
591
+ "Radians": {
592
+ "prefix": "radians",
593
+ "body": "radians(${1:degrees})$0",
594
+ "description": "Convert degrees to radians"
595
+ },
596
+ "Degrees": {
597
+ "prefix": "degrees",
598
+ "body": "degrees(${1:radians})$0",
599
+ "description": "Convert radians to degrees"
600
+ },
601
+
602
+ "Now": {
603
+ "prefix": "now",
604
+ "body": "now()$0",
605
+ "description": "Current timestamp as float"
606
+ },
607
+ "Timestamp": {
608
+ "prefix": "timestamp",
609
+ "body": "timestamp()$0",
610
+ "description": "Current timestamp as integer"
611
+ },
612
+ "Sleep": {
613
+ "prefix": "sleep",
614
+ "body": "sleep(${1:seconds});$0",
615
+ "description": "Pause execution for specified seconds"
616
+ },
617
+ "Date": {
618
+ "prefix": "date",
619
+ "body": "date(${1:\"%Y-%m-%d\"})$0",
620
+ "description": "Current date as formatted string"
621
+ },
622
+ "Time": {
623
+ "prefix": "time",
624
+ "body": "time(${1:\"%H:%M:%S\"})$0",
625
+ "description": "Current time as formatted string"
626
+ },
627
+ "Datetime": {
628
+ "prefix": "datetime",
629
+ "body": "datetime(${1:\"%Y-%m-%d %H:%M:%S\"})$0",
630
+ "description": "Current date and time"
631
+ },
632
+ "Strftime": {
633
+ "prefix": "strftime",
634
+ "body": "strftime(${1:\"%Y-%m-%d\"}, ${2:timestamp})$0",
635
+ "description": "Format timestamp as string"
636
+ },
637
+
638
+ "Read File": {
639
+ "prefix": "read",
640
+ "body": "read(${1:\"path\"})$0",
641
+ "description": "Read entire file content"
642
+ },
643
+ "Readline": {
644
+ "prefix": "readline",
645
+ "body": "readline(${1:line}, ${2:\"path\"})$0",
646
+ "description": "Read specific line from file (1-indexed)"
647
+ },
648
+ "Write File": {
649
+ "prefix": "write",
650
+ "body": "write(${1:\"path\"}, ${2:content});$0",
651
+ "description": "Write content to file (overwrites)"
652
+ },
653
+ "Writeline": {
654
+ "prefix": "writeline",
655
+ "body": "writeline(${1:line}, ${2:content}, ${3:\"path\"});$0",
656
+ "description": "Write/replace specific line in file"
657
+ },
658
+ "Appendfile": {
659
+ "prefix": "appendfile",
660
+ "body": "appendfile(${1:\"path\"}, ${2:content});$0",
661
+ "description": "Append content to file"
662
+ },
663
+ "Readlines": {
664
+ "prefix": "readlines",
665
+ "body": "readlines(${1:\"path\"})$0",
666
+ "description": "Read all lines from file"
667
+ },
668
+ "Pathexists": {
669
+ "prefix": "pathexists",
670
+ "body": "pathexists(${1:\"path\"})$0",
671
+ "description": "Check if path exists"
672
+ },
673
+ "Isfile": {
674
+ "prefix": "isfile",
675
+ "body": "isfile(${1:\"path\"})$0",
676
+ "description": "Check if path is a file"
677
+ },
678
+ "Isdir": {
679
+ "prefix": "isdir",
680
+ "body": "isdir(${1:\"path\"})$0",
681
+ "description": "Check if path is a directory"
682
+ },
683
+ "Listdir": {
684
+ "prefix": "listdir",
685
+ "body": "listdir(${1:\"path\"})$0",
686
+ "description": "List directory contents"
687
+ },
688
+ "Makedirs": {
689
+ "prefix": "makedirs",
690
+ "body": "makedirs(${1:\"path\"});$0",
691
+ "description": "Create directory and parent directories"
692
+ },
693
+ "Removefile": {
694
+ "prefix": "removefile",
695
+ "body": "removefile(${1:\"path\"});$0",
696
+ "description": "Delete a file"
697
+ },
698
+ "Removedir": {
699
+ "prefix": "removedir",
700
+ "body": "removedir(${1:\"path\"});$0",
701
+ "description": "Delete an empty directory"
702
+ },
703
+ "Copyfile": {
704
+ "prefix": "copyfile",
705
+ "body": "copyfile(${1:\"src\"}, ${2:\"dst\"});$0",
706
+ "description": "Copy file from source to destination"
707
+ },
708
+ "Movefile": {
709
+ "prefix": "movefile",
710
+ "body": "movefile(${1:\"src\"}, ${2:\"dst\"});$0",
711
+ "description": "Move/rename file"
712
+ },
713
+ "Filesize": {
714
+ "prefix": "filesize",
715
+ "body": "filesize(${1:\"path\"})$0",
716
+ "description": "Get file size in bytes"
717
+ },
718
+ "Basename": {
719
+ "prefix": "basename",
720
+ "body": "basename(${1:\"path\"})$0",
721
+ "description": "Get filename from path"
722
+ },
723
+ "Dirname": {
724
+ "prefix": "dirname",
725
+ "body": "dirname(${1:\"path\"})$0",
726
+ "description": "Get directory from path"
727
+ },
728
+ "Joinpath": {
729
+ "prefix": "joinpath",
730
+ "body": "joinpath(${1:\"path1\"}, ${2:\"path2\"})$0",
731
+ "description": "Join path components"
732
+ },
733
+ "Abspath": {
734
+ "prefix": "abspath",
735
+ "body": "abspath(${1:\"path\"})$0",
736
+ "description": "Get absolute path"
737
+ },
738
+
739
+ "JSON Read": {
740
+ "prefix": "json::read",
741
+ "body": "json::read(${1:\"path\"})$0",
742
+ "description": "Read and parse JSON file"
743
+ },
744
+ "JSON Write": {
745
+ "prefix": "json::write",
746
+ "body": "json::write(${1:\"path\"}, ${2:data});$0",
747
+ "description": "Write data to JSON file"
748
+ },
749
+ "JSON Parse": {
750
+ "prefix": "json::parse",
751
+ "body": "json::parse(${1:jsonString})$0",
752
+ "description": "Parse JSON string"
753
+ },
754
+ "JSON Stringify": {
755
+ "prefix": "json::stringify",
756
+ "body": "json::stringify(${1:data})$0",
757
+ "description": "Convert data to JSON string"
758
+ },
759
+ "JSON Pretty": {
760
+ "prefix": "json::pretty",
761
+ "body": "json::pretty(${1:data})$0",
762
+ "description": "Pretty print JSON with indentation"
763
+ },
764
+ "JSON Get": {
765
+ "prefix": "json::get",
766
+ "body": "json::get(${1:data}, ${2:\"path.to.key\"})$0",
767
+ "description": "Get value by dot-path"
768
+ },
769
+ "JSON Set": {
770
+ "prefix": "json::set",
771
+ "body": "json::set(${1:data}, ${2:\"path.to.key\"}, ${3:value})$0",
772
+ "description": "Set value by dot-path"
773
+ },
774
+ "JSON Has": {
775
+ "prefix": "json::has",
776
+ "body": "json::has(${1:data}, ${2:\"path.to.key\"})$0",
777
+ "description": "Check if path exists"
778
+ },
779
+ "JSON Keys": {
780
+ "prefix": "json::keys",
781
+ "body": "json::keys(${1:data})$0",
782
+ "description": "Get all keys from JSON object"
783
+ },
784
+ "JSON Values": {
785
+ "prefix": "json::values",
786
+ "body": "json::values(${1:data})$0",
787
+ "description": "Get all values from JSON object"
788
+ },
789
+ "JSON Merge": {
790
+ "prefix": "json::merge",
791
+ "body": "json::merge(${1:obj1}, ${2:obj2})$0",
792
+ "description": "Deep merge multiple JSON objects"
793
+ },
794
+
795
+ "Instance GetMethods": {
796
+ "prefix": "instance::getMethods",
797
+ "body": "instance::getMethods(${1:@module})$0",
798
+ "description": "Get all method names from object/module"
799
+ },
800
+ "Instance GetClasses": {
801
+ "prefix": "instance::getClasses",
802
+ "body": "instance::getClasses(${1:@module})$0",
803
+ "description": "Get all class names from module"
804
+ },
805
+ "Instance GetVars": {
806
+ "prefix": "instance::getVars",
807
+ "body": "instance::getVars(${1:@module})$0",
808
+ "description": "Get all variable/attribute names"
809
+ },
810
+ "Instance GetAll": {
811
+ "prefix": "instance::getAll",
812
+ "body": "instance::getAll(${1:@module})$0",
813
+ "description": "Get all attributes categorized"
814
+ },
815
+ "Instance Call": {
816
+ "prefix": "instance::call",
817
+ "body": "instance::call(${1:@module}, ${2:\"methodName\"}, ${3:args})$0",
818
+ "description": "Dynamically call method on object"
819
+ },
820
+ "Instance Has": {
821
+ "prefix": "instance::has",
822
+ "body": "instance::has(${1:@module}, ${2:\"name\"})$0",
823
+ "description": "Check if object has attribute"
824
+ },
825
+ "Instance Type": {
826
+ "prefix": "instance::type",
827
+ "body": "instance::type(${1:@module})$0",
828
+ "description": "Get type name of object"
829
+ },
830
+ "IsAvailable": {
831
+ "prefix": "isavailable",
832
+ "body": "isavailable(${1:\"name\"})$0",
833
+ "description": "Check if shared instance exists"
834
+ },
835
+ "IsAvailable Check": {
836
+ "prefix": "isavailable-if",
837
+ "body": [
838
+ "if (isavailable(\"${1:name}\")) {",
839
+ "\t$0",
840
+ "}"
841
+ ],
842
+ "description": "Check if shared instance exists with if block"
843
+ },
844
+
845
+ "Match Regex": {
846
+ "prefix": "match",
847
+ "body": "match(${1:\"pattern\"}, ${2:string})$0",
848
+ "description": "Match regex at start of string"
849
+ },
850
+ "Search Regex": {
851
+ "prefix": "search",
852
+ "body": "search(${1:\"pattern\"}, ${2:string})$0",
853
+ "description": "Search for regex anywhere in string"
854
+ },
855
+ "Findall Regex": {
856
+ "prefix": "findall",
857
+ "body": "findall(${1:\"pattern\"}, ${2:string})$0",
858
+ "description": "Find all regex matches"
859
+ },
860
+ "Sub Regex": {
861
+ "prefix": "sub",
862
+ "body": "sub(${1:\"pattern\"}, ${2:\"replacement\"}, ${3:string})$0",
863
+ "description": "Replace all regex matches"
864
+ },
865
+
866
+ "MD5": {
867
+ "prefix": "md5",
868
+ "body": "md5(${1:string})$0",
869
+ "description": "Calculate MD5 hash"
870
+ },
871
+ "SHA1": {
872
+ "prefix": "sha1",
873
+ "body": "sha1(${1:string})$0",
874
+ "description": "Calculate SHA1 hash"
875
+ },
876
+ "SHA256": {
877
+ "prefix": "sha256",
878
+ "body": "sha256(${1:string})$0",
879
+ "description": "Calculate SHA256 hash"
880
+ },
881
+
882
+ "Exit": {
883
+ "prefix": "exit",
884
+ "body": "exit(${1:0});$0",
885
+ "description": "Exit CSSL execution"
886
+ },
887
+ "Input": {
888
+ "prefix": "input",
889
+ "body": "input(${1:\"prompt\"})$0",
890
+ "description": "Read user input from console"
891
+ },
892
+ "Env": {
893
+ "prefix": "env",
894
+ "body": "env(${1:\"VAR_NAME\"})$0",
895
+ "description": "Get environment variable"
896
+ },
897
+ "Setenv": {
898
+ "prefix": "setenv",
899
+ "body": "setenv(${1:\"name\"}, ${2:\"value\"});$0",
900
+ "description": "Set environment variable"
901
+ },
902
+ "Clear": {
903
+ "prefix": "clear",
904
+ "body": "clear();$0",
905
+ "description": "Clear console screen"
906
+ },
907
+ "Copy": {
908
+ "prefix": "copy",
909
+ "body": "copy(${1:obj})$0",
910
+ "description": "Create shallow copy of object"
911
+ },
912
+ "Deepcopy": {
913
+ "prefix": "deepcopy",
914
+ "body": "deepcopy(${1:obj})$0",
915
+ "description": "Create deep copy of object"
916
+ },
917
+ "Pyimport": {
918
+ "prefix": "pyimport",
919
+ "body": "@${1:module} = pyimport(\"${2:module_name}\");$0",
920
+ "description": "Import Python module dynamically"
921
+ },
922
+ "Include": {
923
+ "prefix": "include",
924
+ "body": "@${1:module} = include(\"${2:path.cssl-mod}\");$0",
925
+ "description": "Include/import CSSL module"
926
+ },
927
+ "Payload": {
928
+ "prefix": "payload",
929
+ "body": "payload(\"${1:data.cssl-pl}\");$0",
930
+ "description": "Load CSSL payload file"
931
+ },
932
+
933
+ "OpenFind": {
934
+ "prefix": "OpenFind",
935
+ "body": "OpenFind<${1:int}>(${2:0})$0",
936
+ "description": "Find open parameter by type or index"
937
+ },
938
+ "Datastruct": {
939
+ "prefix": "datastruct",
940
+ "body": "datastruct<${1:string}> ${2:data};$0",
941
+ "description": "Create datastruct container"
942
+ },
943
+ "Shuffled": {
944
+ "prefix": "shuffled",
945
+ "body": "shuffled<${1:string}> ${2:data};$0",
946
+ "description": "Create shuffled container for unorganized storage"
947
+ },
948
+ "Iterator": {
949
+ "prefix": "iterator",
950
+ "body": "iterator<${1:int}> ${2:iter};$0",
951
+ "description": "Create iterator with programmable tasks"
952
+ },
953
+ "Combo": {
954
+ "prefix": "combo",
955
+ "body": "combo<${1:dynamic}> ${2:filter};$0",
956
+ "description": "Create combo filter/search space"
957
+ },
958
+ "Share": {
959
+ "prefix": "share",
960
+ "body": "share(\"${1:name}\", ${2:obj});$0",
961
+ "description": "Share Python object with CSSL"
962
+ },
963
+ "Delete Shared": {
964
+ "prefix": "delete",
965
+ "body": "delete(\"${1:name}\");$0",
966
+ "description": "Delete shared object"
967
+ },
968
+
969
+ "IsLinux": {
970
+ "prefix": "isLinux",
971
+ "body": "isLinux()$0",
972
+ "description": "Check if running on Linux"
973
+ },
974
+ "IsWindows": {
975
+ "prefix": "isWindows",
976
+ "body": "isWindows()$0",
977
+ "description": "Check if running on Windows"
978
+ },
979
+ "IsMac": {
980
+ "prefix": "isMac",
981
+ "body": "isMac()$0",
982
+ "description": "Check if running on macOS"
983
+ },
984
+
985
+ "Parameter Get": {
986
+ "prefix": ["param", "parameter.get"],
987
+ "body": "${1:type} ${2:name} = parameter.get(${3:0});$0",
988
+ "description": "Get parameter from Python"
989
+ },
990
+ "Parameter Return": {
991
+ "prefix": ["return", "parameter.return"],
992
+ "body": "parameter.return(${1:value});$0",
993
+ "description": "Return value to Python"
994
+ },
995
+ "Stack Declaration": {
996
+ "prefix": ["stack"],
997
+ "body": "stack<${1:string}> ${2:name};$0",
998
+ "description": "Create a stack"
999
+ },
1000
+ "Vector Declaration": {
1001
+ "prefix": ["vector"],
1002
+ "body": "vector<${1:string}> ${2:name};$0",
1003
+ "description": "Create a vector"
1004
+ },
1005
+ "Map Declaration": {
1006
+ "prefix": ["map"],
1007
+ "body": "map<${1:string}, ${2:int}> ${3:name};$0",
1008
+ "description": "Create a map (ordered key-value container)"
1009
+ },
1010
+ "Dictionary Declaration": {
1011
+ "prefix": ["dict", "dictionary"],
1012
+ "body": "dictionary<${1:string}> ${2:name};$0",
1013
+ "description": "Create a dictionary"
1014
+ },
1015
+ "Instance Reference": {
1016
+ "prefix": ["instance<"],
1017
+ "body": "instance<\"${1:name}\"> ${2:var};$0",
1018
+ "description": "Create instance reference"
1019
+ },
1020
+ "Shared Reference": {
1021
+ "prefix": ["$", "shared"],
1022
+ "body": "\\$${1:name}$0",
1023
+ "description": "Shared object reference"
1024
+ },
1025
+ "Module Reference": {
1026
+ "prefix": ["@", "module"],
1027
+ "body": "@${1:ModuleName}$0",
1028
+ "description": "Module reference"
1029
+ },
1030
+ "Code Infusion": {
1031
+ "prefix": ["<<=", "infuse"],
1032
+ "body": [
1033
+ "${1:target} <<== {",
1034
+ "\t$0",
1035
+ "};"
1036
+ ],
1037
+ "description": "Code infusion block"
1038
+ },
1039
+ "Brute Injection": {
1040
+ "prefix": ["<==", "inject"],
1041
+ "body": "${1:target} <== ${2:value};$0",
1042
+ "description": "Brute injection"
1043
+ },
1044
+ "Receive Injection": {
1045
+ "prefix": ["==>", "receive"],
1046
+ "body": "${1:source} ==> ${2:target};$0",
1047
+ "description": "Receive injection"
1048
+ },
1049
+ "Struct Definition": {
1050
+ "prefix": "struct",
1051
+ "body": [
1052
+ "struct ${1:Name} {",
1053
+ "\t${2:field} <== ${3:value};",
1054
+ "\t$0",
1055
+ "}"
1056
+ ],
1057
+ "description": "Create a struct"
1058
+ },
1059
+ "Service Init Block": {
1060
+ "prefix": "service-init",
1061
+ "body": [
1062
+ "service-init {",
1063
+ "\tservice-name <== \"${1:ServiceName}\";",
1064
+ "\tservice-version <== \"${2:1.0.0}\";",
1065
+ "\t$0",
1066
+ "}"
1067
+ ],
1068
+ "description": "Service initialization block"
1069
+ },
1070
+ "Open Define Function": {
1071
+ "prefix": "opendefine",
1072
+ "body": [
1073
+ "open define ${1:FuncName}(open Params) {",
1074
+ "\tindex = OpenFind<int>(0);",
1075
+ "\t$0",
1076
+ "}"
1077
+ ],
1078
+ "description": "Open parameter function"
1079
+ }
1080
+ }