{ "name": "kendryte-extension", "displayName": "Kendryte Dev Tools", "description": "A develop tool for kendryte chip.", "repository": { "type": "git", "url": "https://github.com/kendryte/Kendryte-dev-extension.git" }, "icon": "resources/kendryte.png", "license": "SEE LICENSE IN LICENSE", "keywords": [ "Risc-v", "riscv", "kendryte", "k210", "canaan" ], "publisher": "Kendryte", "version": "0.3.1", "engines": { "vscode": "^1.45.1" }, "categories": [ "Debuggers", "Extension Packs", "Other" ], "activationEvents": [ "*" ], "main": "./build/extension.js", "contributes": { "jsonValidation": [ { "fileMatch": "kendryte-package.json", "url": "./resources/schema.json" } ], "extensionPack": [ "ms-vscode.cpptools" ], "configuration": [ { "title": "k210-openocd", "properties": { "openocd.useKey": { "type": "string", "enum": [ "JTag", "FTDI" ], "default": "JTag", "description": "Select how openocd is configured.", "enumDescriptions": [ "Use JTag interface", "Use FTDI interface" ] }, "openocd.port": { "type": "number", "default": 0, "minimum": 0, "maximum": 65535, "description": "Openocd listen port, 0 means auto select" } } }, { "title": "k210-JLink", "properties": { "JTag.ID": { "type": "number", "default": 0, "description": "Serial number of JLink device, 0 means use first available" }, "JTag.speed": { "type": "number", "default": 3000, "description": "khz" } } }, { "title": "k210-FTDI", "properties": { "FTDI.speed": { "type": "number", "default": 2500, "description": "khz" }, "FTDI.vid_pid": { "type": "string", "default": "0403 6014", "description": "FTDI USB device VID PID value (two HEX string, eg: \"1b2b 3c4d\")" }, "FTDI.layout": { "type": "string", "default": "00e8 00eb", "description": "Layout init value (two HEX string, eg: \"1b2b 3c4d\")" }, "FTDI.tdo-fe": { "type": "boolean", "default": true, "description": "ftdi_tdo_sample_edge_value" } } } ], "commands": [ { "command": "extension.reinstallPackages", "title": "Reinstall Packages", "category": "K210-Dev-Extension" }, { "command": "extension.build", "title": "Build", "category": "K210-Dev-Extension" }, { "command": "extension.createHelloworld", "title": "Create Helloworld Project", "category": "K210-Dev-Extension" }, { "command": "extension.buildAndUpload", "title": "Build and upload", "category": "K210-Dev-Extension" }, { "command": "extension.debug", "title": "Debug", "category": "K210-Dev-Extension" }, { "command": "extension.configGenerate", "title": "Config generate", "category": "K210-Dev-Extension" }, { "command": "extension.openocd.start", "title": "Start Openocd", "category": "Openocd" }, { "command": "extension.openocd.stop", "title": "Stop Openocd", "category": "Openocd" }, { "command": "extension.openocd.restart", "title": "Restart Openocd", "category": "Openocd" }, { "command": "extension.cmakelistGenerate", "title": "Generate CMakeLists", "category": "K210-Dev-Extension" }, { "command": "extension.pickDevice", "title": "Pick Device", "category": "K210-Dev-Extension" }, { "command": "packageDependencies.refresh", "title": "Refresh dependencies", "icon": { "dark": "resources/dark/refresh.svg", "light": "resources/light/refresh.svg" } }, { "command": "packageDependencies.download", "title": "Download Packages", "icon": { "dark": "resources/dark/download.svg", "light": "resources/light/download.svg" } }, { "command": "packageDependencies.createWebview", "title": "Download Packages", "icon": { "dark": "resources/dark/explore.svg", "light": "resources/light/explore.svg" } }, { "command": "packageDependencies.delete", "title": "Download Packages", "icon": { "dark": "resources/dark/delete.svg", "light": "resources/light/delete.svg" } }, { "command": "extension.addDependency", "title": "Add Package", "category": "K210-Dev-Extension" }, { "command": "extension.openSerialPort", "title": "Open serial port output channel", "category": "K210-Dev-Extension" } ], "viewsContainers": { "activitybar": [ { "id": "package-explorer", "title": "Package Explorer", "icon": "resources/dark/core.svg" } ] }, "views": { "package-explorer": [ { "id": "packageDependencies", "name": "Dependencies" } ] }, "menus": { "view/title": [ { "command": "packageDependencies.createWebview", "when": "view == packageDependencies", "group": "navigation@3" }, { "command": "packageDependencies.download", "when": "view == packageDependencies", "group": "navigation@2" }, { "command": "packageDependencies.refresh", "when": "view == packageDependencies", "group": "navigation@1" } ], "view/item/context": [ { "command": "packageDependencies.delete", "when": "view == packageDependencies", "group": "inline" } ] }, "breakpoints": [ { "language": "c" }, { "language": "cpp" }, { "language": "asm" } ], "debuggers": [ { "type": "kendryte", "program": "./build/debugadapter.js", "runtime": "node", "label": "Kendryte", "configurationAttributes": { "launch": { "required": [ "target" ], "properties": { "id": { "type": "string", "description": "ID of this config" }, "executable": { "type": "string", "description": "Path of executable" }, "target": { "type": "string", "description": "openocd server ip port" }, "gdbpath": { "type": "string", "description": "gdb working directory" }, "cwd": { "type": "string", "description": "gdb working directory" }, "debuggerArgs": { "type": "array", "description": "Additional arguments to pass to GDB", "default": [] }, "autorun": { "type": "array", "description": "GDB commands to run when starting to debug", "default": [] }, "env": { "type": "object" } } } }, "initialConfigurations": [ { "id": "kendryte", "name": "Kendryte Debug", "type": "kendryte", "cwd": "${workspaceRoot}/build" } ], "configurationSnippets": [ { "label": "Kendryte: Debug Program", "description": "Debug program with OpenOCD", "body": { "type": "kendryte", "name": "${2:Kendryte Debug}", "target": "${1:DefaultProjectName}", "cwd": "^\"\\${workspaceRoot}/build\"" } } ] } ] }, "scripts": { "postinstall": "./node_modules/.bin/electron-rebuild --version 7.0.0", "vscode:prepublish": "webpack --mode production && node scripts/build.js", "compile": "tsc -p src/tsconfig.json", "test": "node ./build/test/runTest.js", "dev": "tsc -watch -p src/tsconfig.json", "build": "node scripts/build.js", "watch": "node scripts/start.js", "webpack-dev": "webpack --mode development --watch" }, "devDependencies": { "@babel/core": "^7.6.0", "@types/adm-zip": "^0.4.32", "@types/chmodr": "^1.0.0", "@types/glob": "^7.1.1", "@types/jest": "^24.0.19", "@types/jszip": "^3.1.6", "@types/lodash": "^4.14.144", "@types/mocha": "^5.2.6", "@types/module-alias": "^2.0.0", "@types/node": "^10.12.21", "@types/node-7z": "^0.4.2", "@types/react": "^16.9.7", "@types/react-dom": "^16.9.2", "@types/react-router-dom": "^5.1.0", "@types/serialport": "^8.0.0", "@types/split2": "^2.1.6", "@types/vscode": "^1.45.1", "@typescript-eslint/eslint-plugin": "^2.7.0", "@typescript-eslint/parser": "^2.7.0", "autoprefixer": "^7.1.6", "babel-eslint": "^10.0.3", "babel-jest": "^24.9.0", "babel-loader": "^8.0.6", "babel-plugin-named-asset-import": "^0.3.4", "babel-preset-react-app": "^9.0.2", "case-sensitive-paths-webpack-plugin": "^2.2.0", "css-loader": "^2.1.1", "electron-rebuild": "^1.10.1", "eslint": "^6.5.1", "eslint-config-react-app": "^5.0.2", "eslint-loader": "^3.0.2", "eslint-plugin-flowtype": "^3.13.0", "eslint-plugin-import": "^2.18.2", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-react": "^7.14.3", "eslint-plugin-react-hooks": "^1.7.0", "extract-text-webpack-plugin": "^3.0.2", "fork-ts-checker-webpack-plugin": "^0.2.10", "glob": "^7.1.4", "jest": "^24.9.0", "jest-environment-jsdom-fourteen": "^0.1.0", "jest-resolve": "^24.9.0", "jest-watch-typeahead": "^0.4.0", "mocha": "^6.1.4", "module-alias": "^2.2.2", "node-sass": "^4.13.0", "rewire": "^4.0.1", "sass-loader": "^7.2.0", "terser-webpack-plugin": "^1.4.1", "ts-jest": "^22.0.1", "ts-loader": "^6.0.0", "tsconfig-paths-webpack-plugin": "^2.0.0", "tslint": "^5.20.0", "tslint-config-prettier": "^1.18.0", "tslint-react": "^3.6.0", "typescript": "^3.4.3", "uglifyjs-webpack-plugin": "^1.2.5", "vscode-test": "^1.0.0-next.0", "webpack": "^4.41.0", "webpack-cli": "^3.3.10", "webpack-dev-server": "^3.2.1", "webpack-manifest-plugin": "^2.1.1", "workbox-webpack-plugin": "^4.3.1" }, "dependencies": { "7zip-bin": "^5.0.3", "7zip-bin-wrapper": "^1.0.10", "@serialport/binding-mock": "^8.0.6", "@serialport/bindings": "^8.0.7", "@svgr/webpack": "4.3.2", "adm-zip": "^0.4.13", "axios": "^0.19.0", "camelcase": "^5.2.0", "chalk": "1.1.3", "chmodr": "^1.2.0", "dotenv": "6.2.0", "dotenv-expand": "5.1.0", "fast-glob": "^3.1.0", "file-loader": "3.0.1", "fs-extra": "7.0.1", "html-webpack-plugin": "4.0.0-beta.5", "identity-obj-proxy": "3.0.0", "is-wsl": "^1.1.0", "jszip": "^3.2.2", "lodash": "^4.17.15", "mini-css-extract-plugin": "0.8.0", "node-7z": "^1.1.1", "node-gyp": "^6.0.1", "object-assign": "4.1.1", "optimize-css-assets-webpack-plugin": "5.0.3", "original-fs": "^1.1.0", "pnp-webpack-plugin": "1.5.0", "postcss-flexbugs-fixes": "4.1.0", "postcss-loader": "3.0.0", "postcss-normalize": "7.0.1", "postcss-preset-env": "6.7.0", "postcss-safe-parser": "4.0.1", "promise": "8.0.1", "raf": "3.4.0", "react": "^16.10.2", "react-app-polyfill": "^1.0.4", "react-dev-utils": "^9.1.0", "react-dom": "^16.10.2", "react-router-dom": "^5.1.2", "resolve": "1.12.0", "resolve-url-loader": "3.1.0", "semver": "6.3.0", "serialport": "^8.0.7", "source-map-loader": "^0.2.1", "style-loader": "1.0.0", "sudo-prompt": "^9.1.1", "sw-precache-webpack-plugin": "0.11.4", "ts-pnp": "1.1.4", "url-loader": "2.1.0", "vscode-debugadapter": "^1.35.0", "vscode-debugprotocol": "^1.35.0", "vscode-nls": "^4.1.1", "whatwg-fetch": "2.0.3" }, "_moduleAliases": { "@command/*": "./src/command", "@utils/*": "./src/utils", "@debug/*": "./src/debug", "@service/*": "./src/service", "@common/*": "./src/common" }, "babel": { "presets": [ "react-app" ] }, "jest": { "roots": [ "/src" ], "collectCoverageFrom": [ "src/**/*.{js,jsx,ts,tsx}", "!src/**/*.d.ts" ], "setupFiles": [ "react-app-polyfill/jsdom" ], "setupFilesAfterEnv": [], "testMatch": [ "/src/**/__tests__/**/*.{js,jsx,ts,tsx}", "/src/**/*.{spec,test}.{js,jsx,ts,tsx}" ], "testEnvironment": "jest-environment-jsdom-fourteen", "transform": { "^.+\\.(js|jsx|ts|tsx)$": "/node_modules/babel-jest", "^.+\\.css$": "/config/jest/cssTransform.js", "^(?!.*\\.(js|jsx|ts|tsx|css|json)$)": "/config/jest/fileTransform.js" }, "transformIgnorePatterns": [ "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$", "^.+\\.module\\.(css|sass|scss)$" ], "modulePaths": [], "moduleNameMapper": { "^react-native$": "react-native-web", "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy" }, "moduleFileExtensions": [ "web.js", "js", "web.ts", "ts", "web.tsx", "tsx", "json", "web.jsx", "jsx", "node" ], "watchPlugins": [ "jest-watch-typeahead/filename", "jest-watch-typeahead/testname" ] }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "resolutions": { "serialport": "^8.0.7" } }