statusbar-quick-actions 0.0.10

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.
@@ -0,0 +1,973 @@
1
+ # StatusBar Quick Actions - Sample Configurations
2
+
3
+ This document provides comprehensive sample configurations for various development workflows and project types.
4
+
5
+ ## Table of Contents
6
+
7
+ 1. [Basic JavaScript/Node.js](#basic-javascriptnodejs)
8
+ 2. [React/TypeScript Project](#reacttypescript-project)
9
+ 3. [Python Development](#python-development)
10
+ 4. [Git Operations](#git-operations)
11
+ 5. [Docker Workflows](#docker-workflows)
12
+ 6. [Multi-Service Applications](#multi-service-applications)
13
+ 7. [Advanced Use Cases](#advanced-use-cases)
14
+
15
+ ---
16
+
17
+ ## Basic JavaScript/Node.js
18
+
19
+ Perfect for npm/yarn/pnpm/bun package management and basic development tasks.
20
+
21
+ ```json
22
+ {
23
+ "statusbarQuickActions": {
24
+ "buttons": [
25
+ {
26
+ "id": "npm-install",
27
+ "text": "$(cloud-download) Install",
28
+ "tooltip": "Install npm dependencies",
29
+ "command": {
30
+ "type": "npm",
31
+ "script": "install"
32
+ },
33
+ "enabled": true,
34
+ "alignment": "left",
35
+ "priority": 100,
36
+ "execution": {
37
+ "foreground": true,
38
+ "showProgress": true,
39
+ "timeout": 300000
40
+ }
41
+ },
42
+ {
43
+ "id": "npm-dev",
44
+ "text": "$(play) Dev",
45
+ "tooltip": "Start development server",
46
+ "command": {
47
+ "type": "npm",
48
+ "script": "dev"
49
+ },
50
+ "enabled": true,
51
+ "alignment": "left",
52
+ "priority": 200,
53
+ "execution": {
54
+ "foreground": true,
55
+ "showProgress": true,
56
+ "timeout": 0
57
+ }
58
+ },
59
+ {
60
+ "id": "npm-build",
61
+ "text": "$(package) Build",
62
+ "tooltip": "Build for production",
63
+ "command": {
64
+ "type": "npm",
65
+ "script": "build"
66
+ },
67
+ "enabled": true,
68
+ "alignment": "left",
69
+ "priority": 300,
70
+ "execution": {
71
+ "foreground": true,
72
+ "showProgress": true,
73
+ "timeout": 600000
74
+ }
75
+ },
76
+ {
77
+ "id": "npm-test",
78
+ "text": "$(beaker) Test",
79
+ "tooltip": "Run tests",
80
+ "command": {
81
+ "type": "npm",
82
+ "script": "test"
83
+ },
84
+ "enabled": true,
85
+ "alignment": "left",
86
+ "priority": 400,
87
+ "execution": {
88
+ "foreground": false,
89
+ "showProgress": true,
90
+ "timeout": 300000
91
+ }
92
+ }
93
+ ]
94
+ }
95
+ }
96
+ ```
97
+
98
+ ---
99
+
100
+ ## React/TypeScript Project
101
+
102
+ Comprehensive React/TypeScript development workflow with TypeScript support.
103
+
104
+ ```json
105
+ {
106
+ "statusbarQuickActions": {
107
+ "buttons": [
108
+ {
109
+ "id": "react-dev",
110
+ "text": "$(triangle-right) Start",
111
+ "tooltip": "Start React development server",
112
+ "command": {
113
+ "type": "npm",
114
+ "script": "dev"
115
+ },
116
+ "enabled": true,
117
+ "alignment": "left",
118
+ "priority": 100,
119
+ "execution": {
120
+ "foreground": true,
121
+ "showProgress": true
122
+ },
123
+ "visibility": {
124
+ "conditions": [
125
+ {
126
+ "type": "fileType",
127
+ "patterns": ["*.tsx", "*.ts", "*.jsx", "*.js"]
128
+ }
129
+ ]
130
+ }
131
+ },
132
+ {
133
+ "id": "react-build",
134
+ "text": "$(package) Build",
135
+ "tooltip": "Build React app for production",
136
+ "command": {
137
+ "type": "npm",
138
+ "script": "build"
139
+ },
140
+ "enabled": true,
141
+ "alignment": "left",
142
+ "priority": 200,
143
+ "execution": {
144
+ "foreground": false,
145
+ "showProgress": true,
146
+ "timeout": 600000
147
+ }
148
+ },
149
+ {
150
+ "id": "react-test",
151
+ "text": "$(beaker) Test",
152
+ "tooltip": "Run React tests with coverage",
153
+ "command": {
154
+ "type": "npm",
155
+ "script": "test -- --coverage"
156
+ },
157
+ "enabled": true,
158
+ "alignment": "left",
159
+ "priority": 300,
160
+ "execution": {
161
+ "foreground": false,
162
+ "showProgress": true,
163
+ "timeout": 300000
164
+ }
165
+ },
166
+ {
167
+ "id": "react-storybook",
168
+ "text": "$(book) Storybook",
169
+ "tooltip": "Start Storybook development server",
170
+ "command": {
171
+ "type": "npm",
172
+ "script": "storybook"
173
+ },
174
+ "enabled": true,
175
+ "alignment": "right",
176
+ "priority": 100,
177
+ "execution": {
178
+ "foreground": true,
179
+ "showProgress": true
180
+ },
181
+ "visibility": {
182
+ "conditions": [
183
+ {
184
+ "type": "fileExists",
185
+ "path": ".storybook"
186
+ }
187
+ ]
188
+ }
189
+ },
190
+ {
191
+ "id": "ts-check",
192
+ "text": "$(symbol-constructor) Type Check",
193
+ "tooltip": "Run TypeScript type checking",
194
+ "command": {
195
+ "type": "npm",
196
+ "script": "type-check"
197
+ },
198
+ "enabled": true,
199
+ "alignment": "right",
200
+ "priority": 200,
201
+ "execution": {
202
+ "foreground": false,
203
+ "showProgress": true
204
+ }
205
+ }
206
+ ]
207
+ }
208
+ }
209
+ ```
210
+
211
+ ---
212
+
213
+ ## Python Development
214
+
215
+ Python-focused configuration with virtual environment support and testing.
216
+
217
+ ```json
218
+ {
219
+ "statusbarQuickActions": {
220
+ "buttons": [
221
+ {
222
+ "id": "python-run",
223
+ "text": "$(play) Run",
224
+ "tooltip": "Run current Python file",
225
+ "command": {
226
+ "type": "shell",
227
+ "command": "python",
228
+ "args": ["${fileBasename}"]
229
+ },
230
+ "enabled": true,
231
+ "alignment": "left",
232
+ "priority": 100,
233
+ "execution": {
234
+ "foreground": true,
235
+ "showProgress": true,
236
+ "timeout": 60000
237
+ },
238
+ "visibility": {
239
+ "conditions": [
240
+ {
241
+ "type": "fileType",
242
+ "patterns": ["*.py"]
243
+ }
244
+ ]
245
+ }
246
+ },
247
+ {
248
+ "id": "python-test",
249
+ "text": "$(beaker) Test",
250
+ "tooltip": "Run pytest",
251
+ "command": {
252
+ "type": "shell",
253
+ "command": "pytest",
254
+ "args": ["-v"]
255
+ },
256
+ "enabled": true,
257
+ "alignment": "left",
258
+ "priority": 200,
259
+ "execution": {
260
+ "foreground": false,
261
+ "showProgress": true,
262
+ "timeout": 300000
263
+ },
264
+ "visibility": {
265
+ "conditions": [
266
+ {
267
+ "type": "fileExists",
268
+ "path": "pytest.ini"
269
+ }
270
+ ]
271
+ }
272
+ },
273
+ {
274
+ "id": "python-format",
275
+ "text": "$(symbol-number) Format",
276
+ "tooltip": "Format Python code with black",
277
+ "command": {
278
+ "type": "shell",
279
+ "command": "black",
280
+ "args": ["."]
281
+ },
282
+ "enabled": true,
283
+ "alignment": "right",
284
+ "priority": 100,
285
+ "execution": {
286
+ "foreground": false,
287
+ "showProgress": true,
288
+ "timeout": 120000
289
+ },
290
+ "visibility": {
291
+ "conditions": [
292
+ {
293
+ "type": "fileType",
294
+ "patterns": ["*.py"]
295
+ }
296
+ ]
297
+ }
298
+ },
299
+ {
300
+ "id": "python-lint",
301
+ "text": "$(warning) Lint",
302
+ "tooltip": "Run pylint",
303
+ "command": {
304
+ "type": "shell",
305
+ "command": "pylint",
306
+ "args": ["."]
307
+ },
308
+ "enabled": true,
309
+ "alignment": "right",
310
+ "priority": 200,
311
+ "execution": {
312
+ "foreground": false,
313
+ "showProgress": true,
314
+ "timeout": 120000
315
+ },
316
+ "visibility": {
317
+ "conditions": [
318
+ {
319
+ "type": "fileType",
320
+ "patterns": ["*.py"]
321
+ }
322
+ ]
323
+ }
324
+ },
325
+ {
326
+ "id": "python-venv",
327
+ "text": "$(symbol-class) Venv",
328
+ "tooltip": "Activate virtual environment",
329
+ "command": {
330
+ "type": "shell",
331
+ "command": "source",
332
+ "args": [
333
+ "venv/bin/activate",
334
+ "&&",
335
+ "echo",
336
+ "Virtual environment activated"
337
+ ]
338
+ },
339
+ "enabled": true,
340
+ "alignment": "right",
341
+ "priority": 300,
342
+ "execution": {
343
+ "foreground": true,
344
+ "showProgress": true,
345
+ "timeout": 10000
346
+ },
347
+ "visibility": {
348
+ "conditions": [
349
+ {
350
+ "type": "fileExists",
351
+ "path": "venv"
352
+ }
353
+ ]
354
+ }
355
+ }
356
+ ]
357
+ }
358
+ }
359
+ ```
360
+
361
+ ---
362
+
363
+ ## Git Operations
364
+
365
+ Git workflow buttons for repository management and common GitHub actions.
366
+
367
+ ```json
368
+ {
369
+ "statusbarQuickActions": {
370
+ "buttons": [
371
+ {
372
+ "id": "git-status",
373
+ "text": "$(git-branch) Status",
374
+ "tooltip": "Show Git status",
375
+ "command": {
376
+ "type": "shell",
377
+ "command": "git",
378
+ "args": ["status", "--porcelain"]
379
+ },
380
+ "enabled": true,
381
+ "alignment": "left",
382
+ "priority": 100,
383
+ "execution": {
384
+ "foreground": false,
385
+ "showProgress": false
386
+ },
387
+ "visibility": {
388
+ "conditions": [
389
+ {
390
+ "type": "gitStatus",
391
+ "status": "repository"
392
+ }
393
+ ]
394
+ }
395
+ },
396
+ {
397
+ "id": "git-commit",
398
+ "text": "$(git-commit) Commit",
399
+ "tooltip": "Commit changes with message",
400
+ "command": {
401
+ "type": "shell",
402
+ "command": "git",
403
+ "args": ["commit", "-m", "${input:commitMessage}"]
404
+ },
405
+ "enabled": true,
406
+ "alignment": "left",
407
+ "priority": 200,
408
+ "execution": {
409
+ "foreground": true,
410
+ "showProgress": true,
411
+ "timeout": 60000
412
+ },
413
+ "visibility": {
414
+ "conditions": [
415
+ {
416
+ "type": "gitStatus",
417
+ "status": "dirty"
418
+ }
419
+ ]
420
+ }
421
+ },
422
+ {
423
+ "id": "git-push",
424
+ "text": "$(cloud-upload) Push",
425
+ "tooltip": "Push to remote repository",
426
+ "command": {
427
+ "type": "shell",
428
+ "command": "git",
429
+ "args": ["push", "origin", "HEAD"]
430
+ },
431
+ "enabled": true,
432
+ "alignment": "left",
433
+ "priority": 300,
434
+ "execution": {
435
+ "foreground": false,
436
+ "showProgress": true,
437
+ "timeout": 120000
438
+ },
439
+ "visibility": {
440
+ "conditions": [
441
+ {
442
+ "type": "gitStatus",
443
+ "status": "ahead"
444
+ }
445
+ ]
446
+ }
447
+ },
448
+ {
449
+ "id": "git-pull",
450
+ "text": "$(cloud-download) Pull",
451
+ "tooltip": "Pull from remote repository",
452
+ "command": {
453
+ "type": "shell",
454
+ "command": "git",
455
+ "args": ["pull", "--rebase"]
456
+ },
457
+ "enabled": true,
458
+ "alignment": "left",
459
+ "priority": 400,
460
+ "execution": {
461
+ "foreground": false,
462
+ "showProgress": true,
463
+ "timeout": 120000
464
+ },
465
+ "visibility": {
466
+ "conditions": [
467
+ {
468
+ "type": "gitStatus",
469
+ "status": "repository"
470
+ }
471
+ ]
472
+ }
473
+ },
474
+ {
475
+ "id": "gh-pr-create",
476
+ "text": "$(git-pull-request) PR",
477
+ "tooltip": "Create GitHub Pull Request",
478
+ "command": {
479
+ "type": "github",
480
+ "command": "pr",
481
+ "args": ["create", "--fill"]
482
+ },
483
+ "enabled": true,
484
+ "alignment": "right",
485
+ "priority": 100,
486
+ "execution": {
487
+ "foreground": true,
488
+ "showProgress": true,
489
+ "timeout": 60000
490
+ },
491
+ "visibility": {
492
+ "conditions": [
493
+ {
494
+ "type": "gitStatus",
495
+ "status": "ahead"
496
+ }
497
+ ]
498
+ }
499
+ }
500
+ ]
501
+ }
502
+ }
503
+ ```
504
+
505
+ ---
506
+
507
+ ## Docker Workflows
508
+
509
+ Container management and deployment buttons for Docker-based projects.
510
+
511
+ ```json
512
+ {
513
+ "statusbarQuickActions": {
514
+ "buttons": [
515
+ {
516
+ "id": "docker-build",
517
+ "text": "$(package) Build",
518
+ "tooltip": "Build Docker image",
519
+ "command": {
520
+ "type": "shell",
521
+ "command": "docker",
522
+ "args": ["build", "-t", "${input:imageName}", "."]
523
+ },
524
+ "enabled": true,
525
+ "alignment": "left",
526
+ "priority": 100,
527
+ "execution": {
528
+ "foreground": false,
529
+ "showProgress": true,
530
+ "timeout": 600000
531
+ },
532
+ "visibility": {
533
+ "conditions": [
534
+ {
535
+ "type": "fileExists",
536
+ "path": "Dockerfile"
537
+ }
538
+ ]
539
+ }
540
+ },
541
+ {
542
+ "id": "docker-run",
543
+ "text": "$(play) Run",
544
+ "tooltip": "Run Docker container",
545
+ "command": {
546
+ "type": "shell",
547
+ "command": "docker",
548
+ "args": [
549
+ "run",
550
+ "-d",
551
+ "--name",
552
+ "${input:containerName}",
553
+ "${input:imageName}"
554
+ ]
555
+ },
556
+ "enabled": true,
557
+ "alignment": "left",
558
+ "priority": 200,
559
+ "execution": {
560
+ "foreground": true,
561
+ "showProgress": true,
562
+ "timeout": 30000
563
+ },
564
+ "visibility": {
565
+ "conditions": [
566
+ {
567
+ "type": "fileExists",
568
+ "path": "Dockerfile"
569
+ }
570
+ ]
571
+ }
572
+ },
573
+ {
574
+ "id": "docker-logs",
575
+ "text": "$(list-ordered) Logs",
576
+ "tooltip": "View container logs",
577
+ "command": {
578
+ "type": "shell",
579
+ "command": "docker",
580
+ "args": ["logs", "-f", "${input:containerName}"]
581
+ },
582
+ "enabled": true,
583
+ "alignment": "left",
584
+ "priority": 300,
585
+ "execution": {
586
+ "foreground": true,
587
+ "showProgress": false,
588
+ "timeout": 0
589
+ }
590
+ },
591
+ {
592
+ "id": "docker-compose-up",
593
+ "text": "$(play-circle) Compose Up",
594
+ "tooltip": "Start services with docker-compose",
595
+ "command": {
596
+ "type": "shell",
597
+ "command": "docker-compose",
598
+ "args": ["up", "-d"]
599
+ },
600
+ "enabled": true,
601
+ "alignment": "right",
602
+ "priority": 100,
603
+ "execution": {
604
+ "foreground": false,
605
+ "showProgress": true,
606
+ "timeout": 300000
607
+ },
608
+ "visibility": {
609
+ "conditions": [
610
+ {
611
+ "type": "fileExists",
612
+ "path": "docker-compose.yml"
613
+ }
614
+ ]
615
+ }
616
+ },
617
+ {
618
+ "id": "docker-clean",
619
+ "text": "$(trash) Clean",
620
+ "tooltip": "Clean up Docker resources",
621
+ "command": {
622
+ "type": "shell",
623
+ "command": "docker",
624
+ "args": ["system", "prune", "-f"]
625
+ },
626
+ "enabled": true,
627
+ "alignment": "right",
628
+ "priority": 200,
629
+ "execution": {
630
+ "foreground": false,
631
+ "showProgress": true,
632
+ "timeout": 120000
633
+ }
634
+ }
635
+ ]
636
+ }
637
+ }
638
+ ```
639
+
640
+ ---
641
+
642
+ ## Multi-Service Applications
643
+
644
+ Complex applications with multiple services and environments.
645
+
646
+ ```json
647
+ {
648
+ "statusbarQuickActions": {
649
+ "buttons": [
650
+ {
651
+ "id": "service-api",
652
+ "text": "API $(play)",
653
+ "tooltip": "Start API service",
654
+ "command": {
655
+ "type": "shell",
656
+ "command": "npm",
657
+ "args": ["run", "dev:api"]
658
+ },
659
+ "enabled": true,
660
+ "alignment": "left",
661
+ "priority": 100,
662
+ "execution": {
663
+ "foreground": true,
664
+ "showProgress": true,
665
+ "timeout": 0
666
+ },
667
+ "visibility": {
668
+ "conditions": [
669
+ {
670
+ "type": "workspaceFolder",
671
+ "folders": ["api", "backend", "server"]
672
+ }
673
+ ]
674
+ }
675
+ },
676
+ {
677
+ "id": "service-frontend",
678
+ "text": "Web $(play)",
679
+ "tooltip": "Start frontend service",
680
+ "command": {
681
+ "type": "shell",
682
+ "command": "npm",
683
+ "args": ["run", "dev:frontend"]
684
+ },
685
+ "enabled": true,
686
+ "alignment": "left",
687
+ "priority": 200,
688
+ "execution": {
689
+ "foreground": true,
690
+ "showProgress": true,
691
+ "timeout": 0
692
+ },
693
+ "visibility": {
694
+ "conditions": [
695
+ {
696
+ "type": "workspaceFolder",
697
+ "folders": ["frontend", "web", "client"]
698
+ }
699
+ ]
700
+ }
701
+ },
702
+ {
703
+ "id": "env-dev",
704
+ "text": "Dev",
705
+ "tooltip": "Switch to development environment",
706
+ "command": {
707
+ "type": "shell",
708
+ "command": "export",
709
+ "args": [
710
+ "NODE_ENV=development",
711
+ "&&",
712
+ "echo",
713
+ "Development environment set"
714
+ ]
715
+ },
716
+ "enabled": true,
717
+ "alignment": "right",
718
+ "priority": 100,
719
+ "execution": {
720
+ "foreground": true,
721
+ "showProgress": true,
722
+ "timeout": 10000
723
+ }
724
+ },
725
+ {
726
+ "id": "env-prod",
727
+ "text": "Prod",
728
+ "tooltip": "Switch to production environment",
729
+ "command": {
730
+ "type": "shell",
731
+ "command": "export",
732
+ "args": [
733
+ "NODE_ENV=production",
734
+ "&&",
735
+ "echo",
736
+ "Production environment set"
737
+ ]
738
+ },
739
+ "enabled": true,
740
+ "alignment": "right",
741
+ "priority": 200,
742
+ "execution": {
743
+ "foreground": true,
744
+ "showProgress": true,
745
+ "timeout": 10000
746
+ }
747
+ },
748
+ {
749
+ "id": "services-all",
750
+ "text": "All $(rocket)",
751
+ "tooltip": "Start all services",
752
+ "command": {
753
+ "type": "shell",
754
+ "command": "concurrently",
755
+ "args": [
756
+ "\"npm run dev:api\"",
757
+ "\"npm run dev:frontend\"",
758
+ "\"npm run dev:worker\""
759
+ ]
760
+ },
761
+ "enabled": true,
762
+ "alignment": "left",
763
+ "priority": 50,
764
+ "execution": {
765
+ "foreground": true,
766
+ "showProgress": true,
767
+ "timeout": 0
768
+ }
769
+ }
770
+ ]
771
+ }
772
+ }
773
+ ```
774
+
775
+ ---
776
+
777
+ ## Advanced Use Cases
778
+
779
+ ### Conditional Visibility with Git Status
780
+
781
+ ```json
782
+ {
783
+ "statusbarQuickActions": {
784
+ "buttons": [
785
+ {
786
+ "id": "deploy-production",
787
+ "text": "$(rocket) Deploy",
788
+ "tooltip": "Deploy to production",
789
+ "command": {
790
+ "type": "shell",
791
+ "command": "npm",
792
+ "args": ["run", "deploy:prod"]
793
+ },
794
+ "enabled": true,
795
+ "alignment": "right",
796
+ "priority": 100,
797
+ "execution": {
798
+ "foreground": false,
799
+ "showProgress": true,
800
+ "timeout": 300000
801
+ },
802
+ "visibility": {
803
+ "conditions": [
804
+ {
805
+ "type": "gitStatus",
806
+ "status": "clean"
807
+ },
808
+ {
809
+ "type": "fileType",
810
+ "patterns": ["package.json"]
811
+ },
812
+ {
813
+ "type": "workspaceFolder",
814
+ "folders": ["main", "master"],
815
+ "invert": true
816
+ }
817
+ ]
818
+ }
819
+ }
820
+ ]
821
+ }
822
+ }
823
+ ```
824
+
825
+ ### Custom Environment Variables
826
+
827
+ ```json
828
+ {
829
+ "statusbarQuickActions": {
830
+ "buttons": [
831
+ {
832
+ "id": "custom-env-run",
833
+ "text": "$(symbol-property) Run",
834
+ "tooltip": "Run with custom environment",
835
+ "command": {
836
+ "type": "shell",
837
+ "command": "node",
838
+ "args": ["app.js"]
839
+ },
840
+ "enabled": true,
841
+ "alignment": "left",
842
+ "priority": 100,
843
+ "execution": {
844
+ "foreground": true,
845
+ "showProgress": true,
846
+ "timeout": 60000
847
+ },
848
+ "workingDirectory": "${workspaceFolder}",
849
+ "environment": {
850
+ "NODE_ENV": "development",
851
+ "API_URL": "http://localhost:3000",
852
+ "DEBUG": "app:*"
853
+ }
854
+ }
855
+ ]
856
+ }
857
+ }
858
+ ```
859
+
860
+ ### VSCode Command Integration
861
+
862
+ ```json
863
+ {
864
+ "statusbarQuickActions": {
865
+ "buttons": [
866
+ {
867
+ "id": "format-document",
868
+ "text": "$(symbol-number) Format",
869
+ "tooltip": "Format current document",
870
+ "command": {
871
+ "type": "vscode",
872
+ "command": "editor.action.formatDocument"
873
+ },
874
+ "enabled": true,
875
+ "alignment": "right",
876
+ "priority": 100,
877
+ "execution": {
878
+ "foreground": true,
879
+ "showProgress": true,
880
+ "timeout": 30000
881
+ }
882
+ },
883
+ {
884
+ "id": "toggle-terminal",
885
+ "text": "$(terminal) Toggle",
886
+ "tooltip": "Toggle integrated terminal",
887
+ "command": {
888
+ "type": "vscode",
889
+ "command": "workbench.action.terminal.toggleTerminal"
890
+ },
891
+ "enabled": true,
892
+ "alignment": "right",
893
+ "priority": 200,
894
+ "execution": {
895
+ "foreground": true,
896
+ "showProgress": false
897
+ }
898
+ }
899
+ ]
900
+ }
901
+ }
902
+ ```
903
+
904
+ ---
905
+
906
+ ## Tips and Best Practices
907
+
908
+ ### 1. Button Priority
909
+
910
+ - **Left side (low priority numbers)**: 100-500
911
+ - **Right side (high priority numbers)**: 100-500
912
+ - Higher numbers appear further from the edge
913
+
914
+ ### 2. Execution Settings
915
+
916
+ - **Foreground**: User sees command output in terminal
917
+ - **Background**: Command runs silently, shows progress only
918
+ - **Timeout**: Set to 0 for unlimited (long-running commands)
919
+
920
+ ### 3. Visibility Conditions
921
+
922
+ - Use multiple conditions for complex logic
923
+ - Combine with `invert: true` for exclusion patterns
924
+ - File type patterns support wildcards (_.js, _.test.\*)
925
+
926
+ ### 4. Icon Animations
927
+
928
+ - `spin`: Spinning animation for loading states
929
+ - `pulse`: Pulsing animation for notifications
930
+ - Use `null` for no animation
931
+
932
+ ### 5. Environment Variables
933
+
934
+ - Define project-specific environment variables
935
+ - Use VS Code variables like `${workspaceFolder}`, `${fileBasename}`
936
+ - Combine shell commands with environment setup
937
+
938
+ ### 6. Package Manager Auto-Detection
939
+
940
+ - Set command type to "detect" for automatic package manager detection
941
+ - Extension will choose between npm, yarn, pnpm, or bun based on lock files
942
+
943
+ ---
944
+
945
+ ## Troubleshooting
946
+
947
+ ### Common Issues
948
+
949
+ 1. **Button not showing**: Check visibility conditions and file associations
950
+ 2. **Command not found**: Verify package manager installation and PATH
951
+ 3. **Permission errors**: Check file permissions and working directory
952
+ 4. **Timeout errors**: Increase timeout value for slow commands
953
+
954
+ ### Debug Mode
955
+
956
+ Enable debug mode in settings:
957
+
958
+ ```json
959
+ {
960
+ "statusbarQuickActions": {
961
+ "settings": {
962
+ "debug": true
963
+ }
964
+ }
965
+ }
966
+ ```
967
+
968
+ This will show detailed error messages and command execution logs in the output panel.
969
+
970
+ ---
971
+
972
+ _Last updated: December 2024_
973
+ _Extension version: 1.0.0_