648 lines
23 KiB
JSON
648 lines
23 KiB
JSON
{
|
|
"name": "digital-ide",
|
|
"displayName": "digital-ide",
|
|
"description": "all in one vscode plugin for Verilog/VHDL development",
|
|
"version": "0.3.0",
|
|
"engines": {
|
|
"vscode": "^1.72.0"
|
|
},
|
|
"main": "./out/extension.js",
|
|
"categories": [
|
|
"Extension Packs",
|
|
"Programming Languages",
|
|
"Snippets"
|
|
],
|
|
"activationEvents": [
|
|
"onLanguage:verilog",
|
|
"onLanguage:vhdl",
|
|
"onLanguage:systemverilog",
|
|
"onCommand:digital-ide.property-json.generate",
|
|
"onCommand:digital-ide.property-json.overwrite",
|
|
"workspaceContains:.vscode/property.json"
|
|
],
|
|
"contributes": {
|
|
"configuration": {
|
|
"title": "Digital-IDE",
|
|
"properties": {
|
|
"lib.custom.path": {
|
|
"scope": "window",
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "path of the dictionary of \"custom\" in library"
|
|
},
|
|
"function.doc.webview.backgroundImage": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "url of the background image"
|
|
},
|
|
"function.doc.pdf.scale": {
|
|
"type": "number",
|
|
"default": 1,
|
|
"description": "scale of the exported pdf"
|
|
},
|
|
"function.doc.pdf.printBackground": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "whether print background"
|
|
},
|
|
"function.doc.pdf.landscape": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "whether export pdf as a landscape style"
|
|
},
|
|
"function.doc.pdf.format": {
|
|
"type": "string",
|
|
"default": "A4",
|
|
"description": "format of pdf size"
|
|
},
|
|
"function.doc.pdf.displayHeaderFooter": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "display header and footer in the exported pdf"
|
|
},
|
|
"function.doc.pdf.browserPath": {
|
|
"type": "string",
|
|
"default": "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe",
|
|
"description": "the absolute path of edge or chrome, we need browser to render pdf"
|
|
},
|
|
"function.doc.pdf.margin.top": {
|
|
"type": "number",
|
|
"default": 0.5,
|
|
"description": "top margin of exported pdf, unit cm"
|
|
},
|
|
"function.doc.pdf.margin.right": {
|
|
"type": "number",
|
|
"default": 0.5,
|
|
"description": "top margin of exported pdf, unit cm"
|
|
},
|
|
"function.doc.pdf.margin.bottom": {
|
|
"type": "number",
|
|
"default": 0.5,
|
|
"description": "top margin of exported pdf, unit cm"
|
|
},
|
|
"function.doc.pdf.margin.left": {
|
|
"type": "number",
|
|
"default": 0.5,
|
|
"description": "top margin of exported pdf, unit cm"
|
|
},
|
|
"function.doc.pdf.headerTemplate": {
|
|
"type": "string",
|
|
"default": "<div style=\"font-size: 9px; margin-left: 1cm;\"> <span class='title'></span></div> <div style=\"font-size: 9px; margin-left: auto; margin-right: 1cm; \"> <span class='date'></span></div>",
|
|
"description": "html template of header, if displayHeaderFooter is set to false, this setting will be ignored"
|
|
},
|
|
"function.doc.pdf.footerTemplate": {
|
|
"type": "string",
|
|
"default": "<div style=\"font-size: 9px; margin-left: 1cm;\"> <span class='title'></span></div> <div style=\"font-size: 9px; margin-left: auto; margin-right: 1cm; \"> <span class='date'></span></div>",
|
|
"description": "html template of footer, if displayHeaderFooter is set to false, this setting will be ignored"
|
|
},
|
|
"function.simulate.icarus.installPath": {
|
|
"type": "string",
|
|
"description": "Path of install path of iverilog components, if set to \"\", then iverilog and vvp in environment will be used for simulation. Otherwise, ones that in the install path will be used."
|
|
},
|
|
"function.simulate.simulationHome": {
|
|
"type": "string",
|
|
"description": "Path of simulation folder, .vvp and other file during simulation will be generated here"
|
|
},
|
|
"function.simulate.gtkwavePath": {
|
|
"type": "string",
|
|
"default": "gtkwave",
|
|
"description": "Absolute path of launch path of gtkwave software"
|
|
},
|
|
"function.simulate.xilinxLibPath": {
|
|
"type": "string",
|
|
"description": "Path of Xilinx library for simulation"
|
|
},
|
|
"function.simulate.runInTerminal": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "run the simulation command in terminal instead of output"
|
|
}
|
|
}
|
|
},
|
|
"commands": [
|
|
{
|
|
"command": "digital-ide.property-json.generate",
|
|
"title": "%digital-ide.property-json.generate.title%",
|
|
"category": "Digital-IDE"
|
|
},
|
|
{
|
|
"command": "digital-ide.property-json.overwrite",
|
|
"title": "%digital-ide.property-json.overwrite.title%",
|
|
"category": "Digital-IDE"
|
|
},
|
|
{
|
|
"command": "digital-ide.hdlDoc.exportFile",
|
|
"title": "%digital-ide.hdlDoc.exportFile.title%",
|
|
"category": "Digital-IDE"
|
|
},
|
|
{
|
|
"command": "digital-ide.hdlDoc.exportProject",
|
|
"title": "%digital-ide.hdlDoc.exportProject.title%",
|
|
"category": "Digital-IDE"
|
|
},
|
|
{
|
|
"command": "digital-ide.hdlDoc.showWebview",
|
|
"title": "%digital-ide.hdlDoc.showWebview.title%",
|
|
"category": "Digital-IDE",
|
|
"icon": {
|
|
"light": "images/svg/light/documentation.svg",
|
|
"dark": "images/svg/dark/documentation.svg"
|
|
}
|
|
},
|
|
{
|
|
"command": "digital-ide.tool.instance",
|
|
"title": "%digital-ide.tool.instance.title%",
|
|
"category": "Digital-IDE"
|
|
},
|
|
{
|
|
"command": "digital-ide.tool.testbench",
|
|
"title": "%digital-ide.tool.testbench.title%",
|
|
"category": "Digital-IDE"
|
|
},
|
|
{
|
|
"command": "digital-ide.tool.icarus.simulateFile",
|
|
"title": "%digital-ide.tool.icarus.simulateFile.title%",
|
|
"category": "Digital-IDE",
|
|
"icon": {
|
|
"light": "images/svg/light/debug.svg",
|
|
"dark": "images/svg/dark/debug.svg"
|
|
}
|
|
},
|
|
{
|
|
"command": "digital-ide.treeView.arch.expand",
|
|
"category": "tool",
|
|
"icon": "$(expand-all)",
|
|
"title": "%digital-ide.treeView.arch.expand.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.treeView.arch.collapse",
|
|
"category": "tool",
|
|
"icon": "$(collapse-all)",
|
|
"title": "%digital-ide.treeView.arch.collapse.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.treeView.arch.refresh",
|
|
"category": "tool",
|
|
"icon": "$(refresh)",
|
|
"title": "%digital-ide.treeView.arch.refresh.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.treeView.arch.openFile",
|
|
"category": "tool",
|
|
"title": "%digital-ide.treeView.arch.openFile.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.tool.tool.clean",
|
|
"category": "tool",
|
|
"title": "%digital-ide.tool.tool.clean.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.soft.launch",
|
|
"category": "tool",
|
|
"title": "%digital-ide.soft.launch.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.soft.build",
|
|
"category": "tool",
|
|
"title": "%digital-ide.soft.build.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.soft.download",
|
|
"category": "tool",
|
|
"title": "%digital-ide.soft.download.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.launch",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.launch.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.simulate",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.simulate.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.simulate.cli",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.simulate.cli.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.simulate.gui",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.simulate.gui.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.refresh",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.refresh.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.build",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.build.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.build.synth",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.build.synth.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.build.impl",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.build.impl.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.build.bitstream",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.build.bitstream.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.program",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.program.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.gui",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.gui.title%"
|
|
},
|
|
{
|
|
"command": "digital-ide.hard.exit",
|
|
"category": "tool",
|
|
"title": "%digital-ide.hard.exit.title%"
|
|
}
|
|
],
|
|
"menus": {
|
|
"view/title": [
|
|
{
|
|
"command": "digital-ide.treeView.arch.collapse",
|
|
"group": "navigation",
|
|
"when": "view == digital-ide-treeView-arch"
|
|
},
|
|
{
|
|
"command": "TOOL.libPick",
|
|
"group": "navigation",
|
|
"when": "view == digital-ide-treeView-arch"
|
|
},
|
|
{
|
|
"command": "digital-ide.treeView.arch.refresh",
|
|
"group": "navigation",
|
|
"when": "view == digital-ide-treeView-arch"
|
|
}
|
|
],
|
|
"editor/title": [
|
|
{
|
|
"when": "editorLangId == verilog || editorLangId == systemverilog || editorLangId == vhdl",
|
|
"command": "digital-ide.tool.icarus.simulateFile",
|
|
"group": "navigation@1"
|
|
},
|
|
{
|
|
"when": "editorLangId == verilog || editorLangId == systemverilog || editorLangId == vhdl",
|
|
"command": "digital-ide.hdlDoc.showWebview",
|
|
"group": "navigation@4"
|
|
}
|
|
]
|
|
},
|
|
"views": {
|
|
"TOOL": [
|
|
{
|
|
"id": "digital-ide-treeView-arch",
|
|
"name": "architecture"
|
|
},
|
|
{
|
|
"id": "digital-ide-treeView-tool",
|
|
"name": "TOOL"
|
|
},
|
|
{
|
|
"id": "digital-ide-treeView-hardware",
|
|
"name": "HARD Options"
|
|
},
|
|
{
|
|
"id": "digital-ide-treeView-software",
|
|
"name": "SOFT Options"
|
|
}
|
|
]
|
|
},
|
|
"keybindings": [
|
|
{
|
|
"command": "digital-ide.tool.instance",
|
|
"key": "alt+i",
|
|
"mac": "alt+i",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{
|
|
"command": "digital-ide.tool.testbench",
|
|
"key": "alt+t",
|
|
"mac": "alt+t",
|
|
"when": "editorTextFocus"
|
|
}
|
|
],
|
|
"languages": [
|
|
{
|
|
"id": "tcl",
|
|
"aliases": [
|
|
"TCL",
|
|
"Xilinx Constraints File",
|
|
"Synopsis Constraints File"
|
|
],
|
|
"extensions": [
|
|
".tcl",
|
|
".sdc",
|
|
".xdc",
|
|
".fdc"
|
|
],
|
|
"configuration": "./config/tcl.configuration.json"
|
|
},
|
|
{
|
|
"id": "bd",
|
|
"extensions": [
|
|
".bd"
|
|
]
|
|
},
|
|
{
|
|
"id": "vhdl",
|
|
"aliases": [
|
|
"VHDL",
|
|
"vhdl"
|
|
],
|
|
"extensions": [
|
|
".vhd",
|
|
".vhdl",
|
|
".vho",
|
|
".vht"
|
|
],
|
|
"configuration": "./config/vhdl.configuration.json"
|
|
},
|
|
{
|
|
"id": "verilog",
|
|
"aliases": [
|
|
"Verilog",
|
|
"verilog"
|
|
],
|
|
"extensions": [
|
|
".v",
|
|
".V",
|
|
".vh",
|
|
".vl"
|
|
],
|
|
"configuration": "./config/verilog.configuration.json"
|
|
},
|
|
{
|
|
"id": "systemverilog",
|
|
"aliases": [
|
|
"System Verilog",
|
|
"systemverilog"
|
|
],
|
|
"extensions": [
|
|
".sv",
|
|
".SV"
|
|
],
|
|
"configuration": "./config/systemverilog.configuration.json"
|
|
},
|
|
{
|
|
"id": "arm",
|
|
"aliases": [
|
|
"ARM",
|
|
"arm"
|
|
],
|
|
"extensions": [
|
|
".s",
|
|
".S",
|
|
".asm",
|
|
".sx"
|
|
],
|
|
"configuration": "./config/arm.configuration.json"
|
|
},
|
|
{
|
|
"id": "linkerscript",
|
|
"aliases": [
|
|
"LinkerScript",
|
|
"linkerscript"
|
|
],
|
|
"extensions": [
|
|
".ld",
|
|
".dld"
|
|
],
|
|
"configuration": "./config/link.configuration.json"
|
|
},
|
|
{
|
|
"id": "digital-ide-output",
|
|
"mimetypes": [
|
|
"text/x-code-output"
|
|
]
|
|
}
|
|
],
|
|
"jsonValidation": [
|
|
{
|
|
"fileMatch": "property.json",
|
|
"url": "./project/property-schema.json"
|
|
}
|
|
],
|
|
"grammars": [
|
|
{
|
|
"language": "linkerscript",
|
|
"scopeName": "source.ld",
|
|
"path": "./syntaxes/link.json"
|
|
},
|
|
{
|
|
"language": "arm",
|
|
"scopeName": "source.arm",
|
|
"path": "./syntaxes/arm.json"
|
|
},
|
|
{
|
|
"language": "tcl",
|
|
"scopeName": "source.tcl",
|
|
"path": "./syntaxes/tcl.json"
|
|
},
|
|
{
|
|
"language": "vhdl",
|
|
"scopeName": "source.vhdl",
|
|
"path": "./syntaxes/vhdl.json"
|
|
},
|
|
{
|
|
"language": "verilog",
|
|
"scopeName": "source.verilog",
|
|
"path": "./syntaxes/verilog.json"
|
|
},
|
|
{
|
|
"language": "systemverilog",
|
|
"scopeName": "source.systemverilog",
|
|
"path": "./syntaxes/systemverilog.json"
|
|
},
|
|
{
|
|
"language": "digital-ide-output",
|
|
"scopeName": "digital-ide.output",
|
|
"path": "./syntaxes/digital-ide-output.json"
|
|
}
|
|
],
|
|
"snippets": [
|
|
{
|
|
"language": "tcl",
|
|
"path": "snippets/tcl.json"
|
|
},
|
|
{
|
|
"language": "vhdl",
|
|
"path": "snippets/vhdl.json"
|
|
},
|
|
{
|
|
"language": "verilog",
|
|
"path": "snippets/svlog.json"
|
|
},
|
|
{
|
|
"language": "systemverilog",
|
|
"path": "snippets/svlog.json"
|
|
}
|
|
],
|
|
"icons": {
|
|
"instance-verilog": {
|
|
"description": "icon of verilog in TOOL.instance",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e7a8"
|
|
}
|
|
},
|
|
"instance-vhdl": {
|
|
"description": "icon of verilog in TOOL.instance",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e6b3"
|
|
}
|
|
},
|
|
"instance-port": {
|
|
"description": "port of verilog in TOOL.instance",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e638"
|
|
}
|
|
},
|
|
"instance-param": {
|
|
"description": "param of verilog in TOOL.instance",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e655"
|
|
}
|
|
},
|
|
"instance-module": {
|
|
"description": "module of verilog in TOOL.instance",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e60b"
|
|
}
|
|
},
|
|
"instance-input": {
|
|
"description": "input",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e908"
|
|
}
|
|
},
|
|
"instance-output": {
|
|
"description": "output",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e7b0"
|
|
}
|
|
},
|
|
"instance-inout": {
|
|
"description": "inout",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\ea19"
|
|
}
|
|
},
|
|
"export-html": {
|
|
"description": "export html",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e633"
|
|
}
|
|
},
|
|
"export-markdown": {
|
|
"description": "export markdown",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\ee68"
|
|
}
|
|
},
|
|
"export-pdf": {
|
|
"description": "export pdf",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e684"
|
|
}
|
|
},
|
|
"libpick-folder": {
|
|
"description": "libpick folder",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e600"
|
|
}
|
|
},
|
|
"libpick-verilog": {
|
|
"description": "libpick verilog",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e7a8"
|
|
}
|
|
},
|
|
"libpick-vhdl": {
|
|
"description": "libpick vhdl",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e6b3"
|
|
}
|
|
},
|
|
"libpick-common": {
|
|
"description": "libpick common",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e622"
|
|
}
|
|
},
|
|
"libpick-custom": {
|
|
"description": "libpick custom",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e623"
|
|
}
|
|
},
|
|
"libpick-unknown": {
|
|
"description": "libpick unknown",
|
|
"default": {
|
|
"fontPath": "./images/icons/iconfont.woff2",
|
|
"fontCharacter": "\\e62a"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"scripts": {
|
|
"vscode:prepublish": "npm run compile",
|
|
"compile": "tsc -p ./",
|
|
"watch": "tsc -watch -p ./",
|
|
"pretest": "npm run compile && npm run lint",
|
|
"lint": "eslint src --ext ts",
|
|
"test": "node ./out/test/runTest.js"
|
|
},
|
|
"devDependencies": {
|
|
"@types/glob": "^8.0.0",
|
|
"@types/mocha": "^10.0.0",
|
|
"@types/node": "16.x",
|
|
"@types/showdown": "^2.0.0",
|
|
"@types/vscode": "^1.74.0",
|
|
"@typescript-eslint/eslint-plugin": "^5.42.0",
|
|
"@typescript-eslint/parser": "^5.42.0",
|
|
"@vscode/test-electron": "^2.2.0",
|
|
"eslint": "^8.26.0",
|
|
"glob": "^8.0.3",
|
|
"mocha": "^10.1.0",
|
|
"typescript": "^4.8.4"
|
|
},
|
|
"dependencies": {
|
|
"chokidar": "^3.5.3",
|
|
"puppeteer-core": "^19.4.1",
|
|
"showdown": "^2.1.0",
|
|
"state-machine-cat": "^9.2.5",
|
|
"temp": "^0.9.4",
|
|
"wavedrom": "^2.9.1"
|
|
}
|
|
} |