10.0 KB337 lines
Blame
1{
2 "name": "grove-scm",
3 "displayName": "Grove SCM",
4 "description": "Grove: Source Control powered by Sapling",
5 "version": "0.1.0",
6 "publisher": "LetterpressLabs",
7 "license": "MIT",
8 "engines": {
9 "vscode": "^1.63.0"
10 },
11 "categories": [
12 "SCM Providers"
13 ],
14 "activationEvents": [
15 "onStartupFinished",
16 "onCommand:sapling.open-isl",
17 "onWebviewPanel:sapling.isl",
18 "onView:sapling.isl"
19 ],
20 "extensionKind": [
21 "workspace"
22 ],
23 "galleryBanner": {
24 "color": "#2e8555",
25 "theme": "dark"
26 },
27 "main": "./dist/extension.js",
28 "icon": "resources/extensionIcon.png",
29 "homepage": "https://grove.host/",
30 "bugs": {
31 "url": "https://grove.host/"
32 },
33 "repository": {
34 "type": "git",
35 "url": "https://grove.host/"
36 },
37 "contributes": {
38 "configurationDefaults": {
39 "files.exclude": {
40 "**/.sl": true
41 }
42 },
43 "configuration": {
44 "title": "Grove",
45 "properties": {
46 "sapling.commandPath": {
47 "type": "string",
48 "default": "",
49 "description": "%settings.commandPath.description%"
50 },
51 "sapling.showInlineBlame": {
52 "type": "boolean",
53 "description": "%settings.showInlineBlame.description%",
54 "default": true
55 },
56 "sapling.showDiffComments": {
57 "type": "boolean",
58 "description": "%settings.showDiffComments.description%",
59 "default": true
60 },
61 "sapling.inlineCommentDiffViewMode": {
62 "type": "string",
63 "enum": [
64 "Unified",
65 "Split"
66 ],
67 "description": "%settings.diffViewMode.description%",
68 "default": "Unified"
69 },
70 "sapling.markConflictingFilesResolvedOnSave": {
71 "type": "boolean",
72 "description": "%settings.markConflictingFilesResolvedOnSave.description%",
73 "default": true
74 },
75 "sapling.comparisonPanelMode": {
76 "type": "string",
77 "enum": [
78 "Auto",
79 "Always Separate Panel"
80 ],
81 "enumDescriptions": [
82 "%settings.comparisonPanelMode.enumDescriptions.auto%",
83 "%settings.comparisonPanelMode.enumDescriptions.always-separate-panel%"
84 ],
85 "description": "%settings.comparisonPanelMode.description%",
86 "default": "Auto"
87 },
88 "sapling.isl.openBeside": {
89 "type": "boolean",
90 "default": false,
91 "description": "%settings.isl.openBeside.description%"
92 },
93 "sapling.isl.showInSidebar": {
94 "type": "boolean",
95 "default": false,
96 "description": "%settings.isl.showInSidebar.description%"
97 }
98 }
99 },
100 "icons": {
101 "grove-icon": {
102 "description": "Grove icon",
103 "default": {
104 "fontPath": "resources/grove-icons.woff",
105 "fontCharacter": "\\F101"
106 }
107 }
108 },
109 "views": {
110 "scm": [
111 {
112 "type": "webview",
113 "id": "sapling.comments",
114 "name": "Code Review Comments",
115 "when": "isl.inlineCommentSidePanelEnabled"
116 }
117 ]
118 },
119 "commands": [
120 {
121 "command": "sapling.revert-file",
122 "title": "%sapling.revert-file-command%",
123 "category": "%sapling.command-category%",
124 "icon": "$(discard)"
125 },
126 {
127 "command": "sapling.open-isl",
128 "title": "%sapling.open-isl-command%",
129 "category": "%sapling.command-category%",
130 "icon": "resources/Sapling_favicon-light-green-transparent.svg"
131 },
132 {
133 "command": "sapling.open-isl-tab",
134 "title": "Open Interactive Smartlog in Tab",
135 "category": "%sapling.command-category%",
136 "icon": "$(link-external)"
137 },
138 {
139 "command": "sapling.open-file-diff-uncommitted",
140 "title": "%sapling.open-diff-uncommitted-command%",
141 "category": "%sapling.command-category%",
142 "icon": "$(git-pull-request-go-to-changes)"
143 },
144 {
145 "command": "sapling.open-file-diff-head",
146 "title": "%sapling.open-diff-head-command%",
147 "category": "%sapling.command-category%"
148 },
149 {
150 "command": "sapling.open-file-diff-stack",
151 "title": "%sapling.open-diff-stack-command%",
152 "category": "%sapling.command-category%"
153 },
154 {
155 "command": "sapling.open-comparison-view-uncommitted",
156 "title": "%sapling.open-comparison-view-uncommitted-command%",
157 "category": "%sapling.command-category%"
158 },
159 {
160 "command": "sapling.open-comparison-view-head",
161 "title": "%sapling.open-comparison-view-head-command%",
162 "category": "%sapling.command-category%"
163 },
164 {
165 "command": "sapling.open-comparison-view-stack",
166 "title": "%sapling.open-comparison-view-stack-command%",
167 "category": "%sapling.command-category%"
168 },
169 {
170 "command": "sapling.open-comparison-view",
171 "title": "%sapling.open-comparison-view-command%",
172 "when": false
173 },
174 {
175 "command": "sapling.isl.focus",
176 "title": "Focus Sapling ISL Sidebar"
177 },
178 {
179 "command": "sapling.open-remote-file-link",
180 "title": "Open in Code Review",
181 "enablement": "sapling:hasRemoteLinkRepo"
182 },
183 {
184 "command": "sapling.copy-remote-file-link",
185 "title": "Copy Code Review Link",
186 "enablement": "sapling:hasRemoteLinkRepo"
187 },
188 {
189 "command": "sapling.open-comments",
190 "title": "%sapling.open-comments-command%",
191 "enablement": "isl.inlineCommentSidePanelEnabled"
192 },
193 {
194 "command": "sapling.toggle-inline-comments",
195 "title": "%sapling.toggle-inline-comments-command%",
196 "enablement": "isl.inlineCommentSidePanelEnabled"
197 },
198 {
199 "command": "sapling.debug.interpret-file-as-comments",
200 "title": "Debug: Load file as inline comments JSON",
201 "enablement": "sapling.isDev"
202 },
203 {
204 "command": "grove.init",
205 "title": "Initialize Grove Repository",
206 "category": "Grove"
207 }
208 ],
209 "keybindings": [
210 {
211 "command": "sapling.open-comparison-view-uncommitted",
212 "key": "ctrl-'",
213 "mac": "cmd-'",
214 "when": "activeWebviewPanelId != 'sapling.isl'"
215 },
216 {
217 "command": "sapling.open-comparison-view-head",
218 "key": "ctrl-shift-'",
219 "mac": "cmd-shift-'",
220 "when": "activeWebviewPanelId != 'sapling.isl'"
221 },
222 {
223 "command": "sapling.open-comments",
224 "key": "alt-shift-g",
225 "mac": "alt-shift-g",
226 "when": "isl.inlineCommentSidePanelEnabled && activeWebviewPanelId != 'sapling.comments'"
227 },
228 {
229 "command": "sapling.toggle-inline-comments",
230 "key": "alt-shift-t",
231 "mac": "alt-shift-t",
232 "when": "isl.inlineCommentSidePanelEnabled"
233 }
234 ],
235 "menus": {
236 "editor/context": [
237 {
238 "command": "sapling.open-remote-file-link",
239 "when": "sapling:hasRemoteLinkRepo"
240 },
241 {
242 "command": "sapling.copy-remote-file-link",
243 "when": "sapling:hasRemoteLinkRepo"
244 }
245 ],
246 "explorer/context": [
247 {
248 "command": "sapling.open-remote-file-link",
249 "when": "sapling:hasRemoteLinkRepo && isFileSystemResource && resourceScheme =~ /^(?!output$|vscode-(?!remote|vfs$)).*$/"
250 },
251 {
252 "command": "sapling.copy-remote-file-link",
253 "when": "sapling:hasRemoteLinkRepo && isFileSystemResource && resourceScheme =~ /^(?!output$|vscode-(?!remote|vfs$)).*$/"
254 }
255 ],
256 "commandPalette": [
257 {
258 "command": "sapling.isl.focus",
259 "when": "config.sapling.isl.showInSidebar"
260 }
261 ],
262 "scm/resourceState/context": [
263 {
264 "command": "sapling.open-file-diff-uncommitted",
265 "group": "inline",
266 "when": "scmProvider == sapling && scmResourceGroup == changes"
267 },
268 {
269 "command": "sapling.revert-file",
270 "group": "inline",
271 "when": "scmProvider == sapling && scmResourceGroup == changes"
272 }
273 ],
274 "scm/title": [
275 {
276 "command": "sapling.open-isl",
277 "group": "navigation",
278 "when": "scmProvider == sapling"
279 }
280 ]
281 },
282 "viewsWelcome": [
283 {
284 "view": "workbench.explorer.emptyView",
285 "contents": "You can initialize a Grove repository in the current folder.\n[Initialize Grove Repository](command:grove.init)"
286 },
287 {
288 "view": "scm",
289 "contents": "No Grove repository found.\n[Initialize Grove Repository](command:grove.init)\n[Open Folder](command:vscode.openFolder)",
290 "when": "!scmProvider"
291 }
292 ]
293 },
294 "scripts": {
295 "eslint": "eslint extension webview --ext .ts --ext .tsx",
296 "test": "jest",
297 "watch-extension": "rollup --config rollup.extension.config.mjs --watch",
298 "watch-webview": "vite",
299 "build-extension": "rollup --config rollup.extension.config.mjs --environment NODE_ENV:production",
300 "build-webview": "vite build",
301 "vscode:prepublish": "node ./buildForPublish.js"
302 },
303 "optionalDependencies": {
304 "vsce": "^2.15.0"
305 },
306 "devDependencies": {
307 "@rollup/plugin-alias": "^5.1.1",
308 "@rollup/plugin-commonjs": "^25.0.8",
309 "@rollup/plugin-json": "^6.1.0",
310 "@rollup/plugin-node-resolve": "^15.3.1",
311 "@rollup/plugin-replace": "^5.0.5",
312 "@rollup/plugin-terser": "^0.4.4",
313 "@stylexjs/stylex": "^0.9.3",
314 "@types/jest": "29.5.12",
315 "@types/node": "^16.11.7",
316 "@types/react-dom": "^18.3.0",
317 "@types/vscode": "^1.34.0",
318 "@vitejs/plugin-react": "^4.3.4",
319 "cross-env": "7.0.3",
320 "isl": "0.1.0",
321 "jest": "29.7.0",
322 "jotai": "^2.6.2",
323 "mini-css-extract-plugin": "^2.6.1",
324 "react": "^18.3.1",
325 "react-dom": "^18.3.1",
326 "rollup": "^4.57.1",
327 "rollup-plugin-esbuild": "^6.2.1",
328 "ts-jest": "29",
329 "tsx": "^4.16.2",
330 "typescript": "5.5.4",
331 "vite": "5.4.12",
332 "vite-plugin-stylex": "^0.10.1",
333 "vite-tsconfig-paths": "^4.3.2",
334 "vscode-uri": "^3.0.6"
335 }
336}
337