@imc-trading/svlangserver
Version:
A language server for systemverilog
280 lines (279 loc) • 9.95 kB
JSON
{
"name": "@imc-trading/svlangserver",
"description": "A language server for systemverilog",
"keywords": [
"sv",
"systemverilog",
"verilog",
"language",
"server"
],
"version": "0.4.1",
"author": "Kanad Kanhere",
"publisher": "IMCTradingBV",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/imc-trading/svlangserver.git"
},
"engines": {
"node": "*",
"vscode": "^1.52.0"
},
"icon": "resources/icon.png",
"categories": [
"Programming Languages",
"Snippets",
"Linters",
"Formatters"
],
"activationEvents": [
"onLanguage:systemverilog",
"onLanguage:verilog",
"onLanguage:markdown",
"workspaceContains:**/*.{sv,v,svh,vh}"
],
"extensionKind": [
"workspace"
],
"main": "./dist/extension",
"bin": {
"svlangserver": "./bin/main.js"
},
"contributes": {
"languages": [
{
"id": "systemverilog",
"aliases": [
"SystemVerilog",
"systemverilog",
"System Verilog",
"Systemverilog"
],
"extensions": [
".sv",
".svh"
],
"configuration": "./language-configuration.json"
},
{
"id": "verilog",
"aliases": [
"Verilog",
"verilog"
],
"extensions": [
".v",
".vh"
],
"configuration": "./language-configuration.json"
}
],
"snippets": [
{
"language": "systemverilog",
"path": "./snippets/systemverilog.json"
},
{
"language": "verilog",
"path": "./snippets/systemverilog.json"
}
],
"grammars": [
{
"language": "systemverilog",
"scopeName": "source.systemverilog",
"path": "./syntaxes/systemverilog.tmLanguage.json"
},
{
"language": "verilog",
"scopeName": "source.systemverilog",
"path": "./syntaxes/systemverilog.tmLanguage.json"
},
{
"scopeName": "markdown.verilog.codeblock",
"path": "./syntaxes/codeblock.json",
"injectTo": [
"text.html.markdown"
],
"embeddedLanguages": {
"meta.embedded.block.systemverilog": "source.systemverilog",
"meta.embedded.block.verilog": "source.verilog"
}
}
],
"configuration": [
{
"title": "SystemVerilog Language Server",
"properties": {
"systemverilog.includeIndexing": {
"type": "array",
"default": [
"**/*.sv"
],
"description": "Files included for indexing (glob pattern)."
},
"systemverilog.mustIncludeIndexing": {
"type": "array",
"default": [],
"description": "Files included for indexing and are always to be linted (glob pattern)."
},
"systemverilog.libraryIndexing": {
"type": "array",
"default": [],
"description": "Files not included for indexing but needed for linting (glob pattern)."
},
"systemverilog.excludeIndexing": {
"type": "array",
"default": [
"**/test/**"
],
"description": "Files excluded for indexing (glob pattern)."
},
"systemverilog.linter": {
"type": "string",
"enum": [
"icarus",
"verilator"
],
"default": "verilator",
"description": "Linter to use"
},
"systemverilog.launchConfiguration": {
"type": "string",
"default": "verilator -sv --lint-only --Wall",
"description": "Command used for linting",
"examples": [
"verilator -sv --lint-only --Wall",
"iverilog -t null"
]
},
"systemverilog.defines": {
"type": "array",
"default": [],
"description": "Defines needed for linting."
},
"systemverilog.lintOnUnsaved": {
"type": "boolean",
"default": true,
"description": "Enable linting on unsaved files"
},
"systemverilog.linterWhitelist": {
"type": "array",
"default": [
"/Unsupported: Interfaced port on top level module/i",
"/Parent instance's interface is not found/i"
],
"description": "List of linting errors that need to be whitelisted (javascript regex)"
},
"systemverilog.formatCommand": {
"type": "string",
"default": "verible-verilog-format",
"description": "Verible verilog format command"
},
"systemverilog.disableCompletionProvider": {
"type": "boolean",
"default": false,
"description": "Disable auto completion provided by the language server"
},
"systemverilog.disableHoverProvider": {
"type": "boolean",
"default": false,
"description": "Disable hover over help provided by the language server"
},
"systemverilog.disableSignatureHelpProvider": {
"type": "boolean",
"default": false,
"description": "Disable signature help provided by the language server"
},
"systemverilog.disableLinting": {
"type": "boolean",
"default": false,
"description": "Disable verilator linting"
}
}
}
],
"commands": [
{
"command": "systemverilog.build_index",
"title": "SystemVerilog: Build index of modules in workspace"
},
{
"command": "systemverilog.get_hierarchy",
"title": "SystemVerilog: Get hierarchy of instances for a given top module"
}
],
"jsonValidation": [
{
"fileMatch": "tasks.json",
"url": "./schemas/tasks.schema.json"
}
],
"problemMatchers": [
{
"name": "verilator-error",
"owner": "Verilator",
"source": "systemverilog",
"severity": "error",
"fileLocation": "autoDetect",
"pattern": [
{
"regexp": "%Error(-[A-Z0-9]+)?: ((\\S+):(\\d+):((\\d+):)? )?(.*)$",
"severity": 1,
"file": 2,
"line": 3,
"column": 4,
"message": 5
}
]
},
{
"name": "verilator-warning",
"owner": "Verilator",
"source": "systemverilog",
"severity": "warning",
"fileLocation": "autoDetect",
"pattern": [
{
"regexp": "%Warning(-[A-Z0-9]+)?: ((\\S+):(\\d+):((\\d+):)? )?(.*)$",
"severity": 1,
"file": 2,
"line": 3,
"column": 4,
"message": 5
}
]
}
]
},
"dependencies": {
"glob": "^7.1.6",
"vscode-languageclient": "^7.0.0",
"vscode-languageserver": "^7.0.0",
"vscode-languageserver-protocol": "^3.16.0",
"vscode-languageserver-textdocument": "^1.0.1",
"vscode-uri": "^2.1.2",
"tmp": "^0.2.1"
},
"devDependencies": {
"@types/node": "^12.12.0",
"@types/vscode": "^1.52.0",
"ts-loader": "^9.1.2",
"typescript": "^3.7.5",
"webpack": "^5.37.0",
"webpack-cli": "^4.7.0"
},
"scripts": {
"vscode:prepublish": "npm run prepare && npm run webpack",
"webpack": "webpack --mode production --config ./webpack.config.js",
"build": "tsc -p .",
"prepare": "tsc -p ./src",
"watch": "tsc --watch -p ."
},
"files": [
"/lib/*.js",
"/lib/*.d.ts",
"/bin/*.js"
]
}