Skip to content

Commit 5efe1cc

Browse files
authored
Merge pull request #15 from KubrickCode/project-structure
Project Structure Changes
2 parents 23baebe + 79c0000 commit 5efe1cc

21 files changed

+1860
-1501
lines changed

.vscodeignore

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Source code files - only include compiled output
2+
src/extension/src/
3+
src/extension/__mocks__/
4+
src/extension/*.test.ts
5+
src/extension/*.test.js
6+
src/extension/*.spec.ts
7+
src/extension/*.spec.js
8+
9+
# Development dependencies
10+
src/extension/node_modules/
11+
src/web-view/node_modules/
12+
13+
# Development config files
14+
src/extension/tsconfig.json
15+
src/extension/jest.config.js
16+
src/extension/.gitignore
17+
src/extension/yarn.lock
18+
src/extension/package-lock.json
19+
20+
# Web view source (keep only built output)
21+
src/web-view/src/
22+
src/web-view/public/
23+
src/web-view/node_modules/
24+
src/web-view/package.json
25+
src/web-view/package-lock.json
26+
src/web-view/yarn.lock
27+
src/web-view/tsconfig.json
28+
src/web-view/vite.config.ts
29+
src/web-view/.gitignore
30+
31+
# Old build outputs (no longer used)
32+
src/extension/out/
33+
34+
# Development files
35+
.env
36+
.env.*
37+
!.env.example
38+
39+
# VS Code specific
40+
.vscode-test/
41+
.vscode-test-web/
42+
43+
# Git
44+
.git/
45+
.gitignore
46+
47+
# Documentation and development (keep README for marketplace)
48+
CLAUDE.md
49+
50+
# CI/CD
51+
.github/
52+
.gitlab-ci.yml
53+
.travis.yml
54+
.circleci/
55+
56+
# IDE files
57+
.idea/
58+
*.swp
59+
*.swo
60+
*~
61+
62+
# OS files
63+
.DS_Store
64+
Thumbs.db
65+
66+
# Temporary files
67+
tmp/
68+
temp/
69+
*.tmp
70+
71+
# Source maps
72+
*.map
73+
74+
# Other development files
75+
justfile
76+
.devcontainer/
77+
78+
# Test coverage
79+
coverage/
80+
.nyc_output/
81+
82+
# Logs
83+
*.log

justfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ root_dir := justfile_directory()
44
extension_dir := root_dir + "/src/extension"
55
web_view_dir := root_dir + "/src/web-view"
66

7-
deps: deps-extension deps-web-view
7+
deps: deps-root deps-extension deps-web-view
8+
9+
deps-root:
10+
cd "{{ root_dir }}" && yarn install
811

912
deps-extension:
1013
cd "{{ extension_dir }}" && yarn install
@@ -13,21 +16,22 @@ deps-web-view:
1316
cd "{{ web_view_dir }}" && yarn install
1417

1518
install-package:
16-
cd "{{ extension_dir }}" && yarn install-package
19+
cd "{{ root_dir }}" && yarn install-package
1720

1821
clean-build:
1922
rm -rf "{{ web_view_dir }}/dist"
2023
rm -rf "{{ extension_dir }}/web-view-dist"
21-
rm -rf "{{ extension_dir }}/out"
24+
rm -rf "{{ root_dir }}/out"
2225

2326
package: clean-build
2427
cd "{{ web_view_dir }}" && yarn build
2528
cp -r "{{ web_view_dir }}/dist" "{{ extension_dir }}/web-view-dist"
26-
cd "{{ extension_dir }}" && yarn compile && yarn package
29+
cd "{{ extension_dir }}" && yarn compile
30+
cd "{{ root_dir }}" && yarn package
2731

2832
publish target="both":
2933
#!/usr/bin/env bash
30-
cd "{{ extension_dir }}"
34+
cd "{{ root_dir }}"
3135
if [ "{{ target }}" = "vsce" ] || [ "{{ target }}" = "both" ]; then
3236
echo "Publishing to VS Code Marketplace..."
3337
if [ -n "$VSCE_ACCESS_TOKEN" ]; then

package.json

Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
1+
{
2+
"name": "quick-command-buttons",
3+
"displayName": "Quick Command Buttons",
4+
"description": "Add customizable buttons to quickly execute commands in VS Code",
5+
"version": "0.1.1",
6+
"publisher": "KubrickCode",
7+
"license": "MIT",
8+
"repository": {
9+
"type": "git",
10+
"url": "https://github.com/KubrickCode/quick-command-buttons.git"
11+
},
12+
"engines": {
13+
"vscode": "^1.90.0"
14+
},
15+
"categories": [
16+
"Other"
17+
],
18+
"keywords": [
19+
"commands",
20+
"buttons",
21+
"quick",
22+
"shortcuts",
23+
"productivity"
24+
],
25+
"activationEvents": [
26+
"onStartupFinished"
27+
],
28+
"main": "./out/src/main.js",
29+
"contributes": {
30+
"commands": [
31+
{
32+
"command": "quickCommandButtons.refresh",
33+
"title": "Refresh Quick Command Buttons",
34+
"icon": "$(refresh)"
35+
},
36+
{
37+
"command": "quickCommandButtons.refreshTree",
38+
"title": "Refresh Tree View"
39+
},
40+
{
41+
"command": "quickCommandButtons.executeFromTree",
42+
"title": "Execute Command from Tree"
43+
},
44+
{
45+
"command": "quickCommandButtons.showAllCommands",
46+
"title": "Show All Quick Commands",
47+
"category": "Quick Commands"
48+
},
49+
{
50+
"command": "quickCommandButtons.openConfig",
51+
"title": "Open Configuration UI",
52+
"category": "Quick Commands",
53+
"icon": "$(gear)"
54+
}
55+
],
56+
"viewsContainers": {
57+
"activitybar": [
58+
{
59+
"id": "quickCommandsContainer",
60+
"title": "Quick Commands",
61+
"icon": "$(terminal)"
62+
}
63+
]
64+
},
65+
"views": {
66+
"quickCommandsContainer": [
67+
{
68+
"id": "quickCommandsTree",
69+
"name": "Commands"
70+
}
71+
]
72+
},
73+
"menus": {
74+
"view/title": [
75+
{
76+
"command": "quickCommandButtons.refreshTree",
77+
"when": "view == quickCommandsTree",
78+
"group": "navigation"
79+
},
80+
{
81+
"command": "quickCommandButtons.openConfig",
82+
"when": "view == quickCommandsTree",
83+
"group": "navigation"
84+
}
85+
]
86+
},
87+
"keybindings": [
88+
{
89+
"command": "quickCommandButtons.showAllCommands",
90+
"key": "ctrl+shift+;",
91+
"mac": "cmd+shift+;"
92+
}
93+
],
94+
"configuration": {
95+
"title": "Quick Command Buttons",
96+
"properties": {
97+
"quickCommandButtons.refreshButton": {
98+
"type": "object",
99+
"default": {
100+
"icon": "$(refresh)",
101+
"color": "#00BCD4",
102+
"enabled": true
103+
},
104+
"description": "Configuration for the refresh button",
105+
"properties": {
106+
"icon": {
107+
"type": "string",
108+
"default": "$(refresh)",
109+
"description": "Icon for the refresh button (supports $(icon-name) syntax)"
110+
},
111+
"color": {
112+
"type": "string",
113+
"default": "#00BCD4",
114+
"description": "Color for the refresh button"
115+
},
116+
"enabled": {
117+
"type": "boolean",
118+
"default": true,
119+
"description": "Enable/disable the refresh button"
120+
}
121+
}
122+
},
123+
"quickCommandButtons.buttons": {
124+
"type": "array",
125+
"default": [
126+
{
127+
"name": "$(terminal) Terminal",
128+
"command": "workbench.action.terminal.new",
129+
"useVsCodeApi": true,
130+
"color": "#2196F3",
131+
"shortcut": "t"
132+
},
133+
{
134+
"name": "$(git-branch) Git",
135+
"color": "#FF9800",
136+
"shortcut": "g",
137+
"group": [
138+
{
139+
"name": "$(git-commit) Status",
140+
"command": "git status",
141+
"shortcut": "s"
142+
},
143+
{
144+
"name": "$(diff) Diff",
145+
"command": "git diff",
146+
"shortcut": "d"
147+
},
148+
{
149+
"name": "$(arrow-circle-up) Push",
150+
"command": "git push",
151+
"shortcut": "p"
152+
}
153+
]
154+
}
155+
],
156+
"description": "Configuration for quick command buttons",
157+
"items": {
158+
"type": "object",
159+
"properties": {
160+
"name": {
161+
"type": "string",
162+
"description": "Button label (supports $(icon-name) syntax)"
163+
},
164+
"command": {
165+
"type": "string",
166+
"description": "Command to execute (for single buttons)"
167+
},
168+
"useVsCodeApi": {
169+
"type": "boolean",
170+
"default": false,
171+
"description": "Use VS Code API instead of terminal"
172+
},
173+
"color": {
174+
"type": "string",
175+
"description": "Button text color"
176+
},
177+
"shortcut": {
178+
"type": "string",
179+
"description": "Single key shortcut for quick access (e.g. 'q', '1', 'F1')"
180+
},
181+
"terminalName": {
182+
"type": "string",
183+
"description": "Custom terminal name"
184+
},
185+
"executeAll": {
186+
"type": "boolean",
187+
"default": false,
188+
"description": "Execute all commands in group simultaneously"
189+
},
190+
"group": {
191+
"type": "array",
192+
"description": "Sub-commands for grouped buttons (supports infinite nesting)",
193+
"items": {
194+
"$ref": "#/properties/quickCommandButtons.buttons/items"
195+
}
196+
}
197+
},
198+
"required": [
199+
"name"
200+
],
201+
"anyOf": [
202+
{
203+
"required": [
204+
"command"
205+
]
206+
},
207+
{
208+
"required": [
209+
"group"
210+
]
211+
}
212+
]
213+
}
214+
}
215+
}
216+
}
217+
},
218+
"scripts": {
219+
"package": "vsce package --out versions/",
220+
"install-package": "code --install-extension versions/quick-command-buttons-$npm_package_version.vsix",
221+
"vsce-publish": "vsce publish",
222+
"ovsx-publish": "ovsx publish"
223+
},
224+
"devDependencies": {
225+
"@vscode/vsce": "3.0.0"
226+
},
227+
"dependencies": {}
228+
}

0 commit comments

Comments
 (0)