-
Notifications
You must be signed in to change notification settings - Fork 3
/
package.json
156 lines (156 loc) · 8.28 KB
/
package.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
{
"publisher": "yowasp",
"name": "toolchain",
"displayName": "YoWASP Toolchain",
"description": "YoWASP toolchain for Visual Studio Code",
"author": "Catherine <whitequark@whitequark.org>",
"sponsor": {
"url": "https://patreon.com/whitequark"
},
"license": "ISC",
"homepage": "https://yowasp.org/",
"version": "0.3.1",
"repository": {
"type": "git",
"url": "https://github.com/YoWASP/vscode.git"
},
"engines": {
"vscode": "^1.82.0"
},
"extensionKind": ["ui"],
"categories": [
"Programming Languages"
],
"activationEvents": [
"onCommand:workbench.action.tasks.runTask"
],
"browser": "./out/browser/extension.js",
"main": "./out/node/extension.js",
"contributes": {
"configuration": {
"id": "yowaspToolchain",
"type": "object",
"title": "YoWASP Toolchain",
"properties": {
"yowaspToolchain.bundleBaseURL": {
"type": "string",
"default": "https://cdn.jsdelivr.net/npm/",
"description": "Base URL to use for toolchain bundles. This is usually pointing to a CDN delivering NPM packages."
},
"yowaspToolchain.bundles": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"@spade-lang/spade",
"@yowasp/yosys@release",
"@yowasp/nextpnr-ice40@release",
"@yowasp/nextpnr-ecp5@release",
"@yowasp/nextpnr-machxo2@release",
"@yowasp/nextpnr-nexus@release",
"@yowasp/openfpgaloader"
],
"markdownDescription": "URLs, or URL fragments relative to `yowaspToolchain.bundleBaseURL`, pointing to an entry point of a compiled YoWASP toolchain bundle. This is usually a bare `@yowasp/*` package name, but could also be an absolute URL pointing to the root of an NPM package.\n\nEach bundle can provide one or more commands. All of the bundles (< 1 MB each) are loaded at the beginning of the build to locate the commands, but the bundle resources (10s to 100s of MB) are loaded only when necessary to run a command. If multiple bundles provide the same command, the first one is used."
},
"yowaspToolchain.pyodideBaseURL": {
"type": "string",
"default": "https://cdn.jsdelivr.net/pyodide/v0.24.1/",
"markdownDescription": "Base URL to use for [Pyodide](https://pyodide.org/), which provides Python language support. This is usually pointing to a CDN delivering a build of Pyodide.\n\nThe `vX.Y.Z` path fragment can be changed to load a different Pyodide version. Note that [Pyodide versioning](https://pyodide.org/en/stable/project/changelog.html) is independent from Python interpreter versioning, and Pyodide does not yet have a stable API; changing the `vX.Y` part of the version may result in a non-functional toolchain."
},
"yowaspToolchain.pythonRequirements": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"markdownDescription": "[Requirement specifiers](https://pip.pypa.io/en/stable/reference/requirement-specifiers/#requirement-specifiers) for Python packages that are installed whenever a `python` command is executed. See [micropip documentation](https://micropip.pyodide.org/en/v0.2.2/project/api.html#micropip.install) for an exhaustive description of the syntax supported for requirements."
},
"yowaspToolchain.buildCommands": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"minItems": 1,
"default": [],
"markdownDescription": "The sequence of commands executed by the \"YoWASP Toolchain: Build...\" command.\n\nEach command is an array where the first element specifies the command to run, and the rest specify its arguments. Input or output files **must appear as their own argument** and not be concatenated with an option.\n\nE.g.:\n```\n[\n [\"yosys\", \"top.v\", \"-p\", \"synth_ice40\", \"-o\", \"top.json\"],\n [\"nextpnr-ice40\", \"--hx8k\", \"--package\", \"ct256\", \"--json\", \"top.json\", \"--asc\", \"top.asc\"]\n]\n```"
}
}
},
"commands": [
{
"command": "yowasp.toolchain.runCommand",
"category": "YoWASP Toolchain",
"title": "Run Command..."
},
{
"command": "yowasp.toolchain.build",
"category": "YoWASP Toolchain",
"title": "Build...",
"enablement": "config.yowaspToolchain.buildCommands && config.yowaspToolchain.buildCommands != []"
},
{
"command": "yowasp.toolchain.requestUSBDevice",
"category": "YoWASP Toolchain",
"title": "Connect USB Device...",
"enablement": "isWeb"
}
],
"keybindings": [
{
"command": "yowasp.toolchain.build",
"key": "ctrl+shift+b",
"mac": "shift+cmd+b"
}
],
"taskDefinitions": [
{
"type": "yowasp",
"required": [
"commands"
],
"properties": {
"commands": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"minItems": 1,
"description": "The sequence of commands to execute. Each command is an array where the first element specifies the command to run, and the rest specify its arguments. Input or output files must appear as their own argument and not be concatenated with an option. E.g. `[[\"yosys\", \"top.v\", \"-p\", \"synth_ice40\", \"-o\", \"top.json\"], [\"nextpnr-ice40\", \"--hx8k\", \"--package\", \"ct256\", \"--json\", \"top.json\", \"--asc\", \"top.asc\"]]."
}
}
}
]
},
"scripts": {
"tsc": "tsc -p .",
"lint": "eslint src --ext ts",
"esbuild": "npm run esbuild:browser && npm run esbuild:node",
"esbuild:browser": "esbuild ./src/extension.ts --bundle --outdir=out/browser/ --sourcemap --external:vscode --format=cjs --platform=browser --define:USE_WEB_WORKERS=true",
"esbuild:browser:watch": "npm run esbuild:browser -- --watch",
"esbuild:node": "esbuild ./src/extension.ts --bundle --outdir=out/node/ --sourcemap --external:vscode --format=cjs --platform=node --define:USE_WEB_WORKERS=false",
"esbuild:node:watch": "npm run esbuild:node -- --watch",
"esbuild:nodeusb": "esbuild ./src/nodeUSB.ts --bundle --outfile=out/node/usb/bundle.js --sourcemap --format=cjs --platform=node --define:__dirname=__dirname_nodeUSB && node -e \"const { cpSync } = require('node:fs'); cpSync('node_modules/usb/prebuilds/', 'out/node/usb/prebuilds/', { recursive: true });\"",
"vscode:prepublish": "npm run esbuild:browser && npm run esbuild:node && npm run esbuild:nodeusb",
"browser": "vscode-test-web --coi --browserOption=--remote-debugging-port=9222 --extensionDevelopmentPath=. test"
},
"devDependencies": {
"typescript": "^5.3.2",
"@types/vscode": "^1.82.0",
"@types/node": "18.15.0",
"eslint": "^8.54.0",
"@typescript-eslint/parser": "^6.13.1",
"@typescript-eslint/eslint-plugin": "^6.13.1",
"@vscode/test-web": "^0.0.50",
"esbuild": "^0.19.9",
"usb": "^2.11.0"
}
}