{
  "name": "solidity-language-server",
  "description": "Ethereum Solidity Language for Visual Studio Code",
  "keywords": [
    "solidity",
    "ethereum",
    "blockchain",
    "compiler",
    "solium",
    "nethereum",
    "solhint"
  ],
  "version": "0.0.3",
  "publisher": "JuanBlanco",
  "license": "MIT",
  "engines": {
    "vscode": "^1.60.0"
  },
  "contributors": [
    "Juan Blanco"
  ],
  "bugs": {
    "url": "https://github.com/juanfranblanco/vscode-solidity/issues"
  },
  "icon": "images/icon.png",
  "repository": {
    "type": "git",
    "url": "https://github.com/juanfranblanco/vscode-solidity"
  },
  "categories": [
    "Programming Languages",
    "Snippets"
  ],
  "activationEvents": [
    "onLanguage:solidity",
    "onCommand:solidity.compile",
    "onCommand:solidity.codegenNethereumCodeGenSettings",
    "onCommand:solidity.compile.active",
    "onCommand:solidity.codegenCSharpProject",
    "onCommand:solidity.codegenVbNetProject",
    "onCommand:solidity.codegenFSharpProject",
    "onCommand:solidity.codegenCSharpProjectAll",
    "onCommand:solidity.codegenVbNetProjectAll",
    "onCommand:solidity.codegenFSharpProjectAll",
    "onCommand:solidity.fixDocument"
  ],
  "main": "./out/src/solidity-language-server.js",
  "files": [
    "out/src/",
    "src/"
  ],
  "bin": {
    "solidity-language-server": "./out/src/solidity-language-server.js"
  },
  "scripts": {
    "vscode:prepublish": "npm run compile",
    "compile": "tsc -p ./",
    "watch": "tsc -watch -p ./",
    "test": "nyc --require ts-node/register --require source-map-support/register mocha test/**/*.spec.ts"
  },
  "dependencies": {
    "ajv": "^6.10.2",
    "ajv-keywords": "^3.4.1",
    "chai": "^4.2.0",
    "find-cache-dir": "^2.1.0",
    "fs-extra": "^4.0.3",
    "mkdirp": "^0.5.1",
    "nethereum-codegen": "^1.0.17",
    "prettier": "^2.3.1",
    "prettier-plugin-solidity": "1.0.0-beta.17",
    "require-from-string": "^2.0.2",
    "solc": "^0.8.6",
    "solhint": "^3.3.6",
    "solium": "^1.2.5",
    "solparse-exp-jb": "2.2.23",
    "vscode-languageclient": "^7.0.0",
    "vscode-languageserver": "^7.0.0",
    "vscode-languageserver-textdocument": "^1.0.1",
    "vscode-uri": "3.0.2",
    "yaml-js": "0.2.3"
  },
  "devDependencies": {
    "@types/node": "^11.15.3",
    "ts-node": "^7.0.1",
    "tslint": "^5.20.1",
    "typescript": "^3.7.3",
    "@types/vscode": "^1.60.0"
  },
  "nyc": {
    "extension": [
      ".ts"
    ],
    "include": [
      "src/**/*.ts"
    ],
    "exclude": [
      "**/*.d.ts",
      "dist"
    ],
    "all": true
  },
  "contributes": {
    "configuration": {
      "type": "object",
      "title": "Solidity configuration",
      "properties": {
        "solidity.nodemodulespackage": {
          "type": "string",
          "default": "solc",
          "description": "The node modules package to find the solcjs compiler"
        },
        "solidity.compileUsingRemoteVersion": {
          "type": "string",
          "default": "latest",
          "description": "Compile downloading a remote solc binary file, for example: 'latest' or 'v0.4.3+commit.2353da71', use the command 'Solidity: Get solidity releases' to list all versions, or just right click in a solidity file to simply select the version"
        },
        "solidity.compilerOptimization": {
          "type": "number",
          "default": 200,
          "description": "Optimize for how many times you intend to run the code. Lower values will optimize more for initial deployment cost, higher values will optimize more for high-frequency usage."
        },
        "solidity.compileUsingLocalVersion": {
          "type": "string",
          "default": "",
          "description": "Compile using a local solc binary file, please include the path of the file if wanted: 'C://v0.4.3+commit.2353da71.js'"
        },
        "solidity.defaultCompiler": {
          "type": "string",
          "enum": [
            "remote",
            "localFile",
            "localNodeModule",
            "embedded"
          ],
          "default": "remote",
          "description": "Sets the default compiler to use"
        },
        "solidity.linter": {
          "type": "string",
          "enum": [
            "",
            "solhint",
            "solium"
          ],
          "default": "solhint",
          "description": "Enables linting using either solium (ethlint) or solhint. Possible options 'solhint' and 'solium', the default is solhint"
        },
        "solidity.solhintRules": {
          "type": [
            "object"
          ],
          "default": null,
          "description": "Solhint linting validation rules"
        },
        "solidity.formatter": {
          "type": "string",
          "default": "prettier",
          "enum": [
            "none",
            "prettier"
          ],
          "description": "Enables / disables the solidity formatter (prettier solidity default)"
        },
        "solidity.soliumRules": {
          "type": [
            "object"
          ],
          "default": {
            "imports-on-top": 0,
            "variable-declarations": 0,
            "indentation": [
              "off",
              4
            ],
            "quotes": [
              "off",
              "double"
            ]
          },
          "description": "Solium linting validation rules"
        },
        "solidity.enabledAsYouTypeCompilationErrorCheck": {
          "type": "boolean",
          "default": true,
          "description": "Enables as you type compilation of the document and error highlighting"
        },
        "solidity.validationDelay": {
          "type": "number",
          "default": 1500,
          "description": "Delay to trigger the validation of the changes of the current document (compilation, solium)"
        },
        "solidity.packageDefaultDependenciesDirectory": {
          "type": "string",
          "default": "node_modules",
          "description": "Default directory for Packages Dependencies, i.e: 'node_modules', 'lib'. This is used to avoid typing imports with that path prefix"
        },
        "solidity.packageDefaultDependenciesContractsDirectory": {
          "type": "string",
          "default": "",
          "description": "Default directory where the Package Dependency store its contracts, i.e: 'src', 'contracts', or just a blank string '', this is used to avoid typing imports with subfolder paths"
        },
        "solidity.remappings": {
          "type": "array",
          "default": [],
          "description": "Remappings to resolve contracts to local files / directories, i.e: [\"@openzeppelin/=lib/openzeppelin-contracts\",\"ds-test/=lib/ds-test/src/\"]"
        }
      }
    },
    "languages": [
      {
        "id": "solidity",
        "aliases": [
          "Solidity",
          "solidity"
        ],
        "extensions": [
          ".sol"
        ],
        "configuration": "./solidity.configuration.json"
      }
    ],
    "commands": [
      {
        "command": "solidity.compile.active",
        "title": "Solidity: Compile Contract"
      },
      {
        "command": "solidity.compile.activeUsingRemote",
        "title": "Solidity: Compile with configured Remote version"
      },
      {
        "command": "solidity.compile.activeUsingLocalFile",
        "title": "Solidity: Compile with configured Local solc file"
      },
      {
        "command": "solidity.compile.activeUsingNodeModule",
        "title": "Solidity: Compile with configured Node module"
      },
      {
        "command": "solidity.compile",
        "title": "Solidity: Compile All"
      },
      {
        "command": "solidity.compilerInfo",
        "title": "Solidity: Compiler Information"
      },
      {
        "command": "solidity.solcReleases",
        "title": "Solidity: Get solidity releases"
      },
      {
        "command": "solidity.codegenNethereumCodeGenSettings",
        "title": "Solidity: Create 'nethereum-gen.settings' with default values at root"
      },
      {
        "command": "solidity.codegenCSharpProject",
        "title": "Solidity: Code generate CSharp contract definition"
      },
      {
        "command": "solidity.compileAndCodegenCSharpProject",
        "title": "Solidity: Compile and Code generate CSharp contract definition"
      },
      {
        "command": "solidity.codegenVbNetProject",
        "title": "Solidity: Code generate VB.Net contract definition"
      },
      {
        "command": "solidity.compileAndCodegenVbNetProject",
        "title": "Solidity: Compile and Code generate VB.Net contract definition"
      },
      {
        "command": "solidity.codegenFSharpProject",
        "title": "Solidity: Code generate FSharp contract definition"
      },
      {
        "command": "solidity.compileAndCodegenFSharpProject",
        "title": "Solidity: Compile and Code generate FSharp contract definition"
      },
      {
        "command": "solidity.codegenCSharpProjectAll",
        "title": "Solidity: Code generate CSharp Project from all compiled files"
      },
      {
        "command": "solidity.codegenVbNetProjectAll",
        "title": "Solidity: Code generate VB.Net Project from all compiled files"
      },
      {
        "command": "solidity.codegenFSharpProjectAll",
        "title": "Solidity: Code generate FSharp Project from all compiled files"
      },
      {
        "command": "solidity.codegenCSharpProjectAllAbiCurrent",
        "title": "Solidity: Code generate CSharp Definitions for Abi files in current folder"
      },
      {
        "command": "solidity.codegenVbNetProjectAllAbiCurrent",
        "title": "Solidity: Code generate VB.Net Definitions for Abi files in current folder"
      },
      {
        "command": "solidity.codegenFSharpProjectAllAbiCurrent",
        "title": "Solidity: Code generate FSharp Definitions for Abi files in current folder"
      },
      {
        "command": "solidity.fixDocument",
        "title": "Solidity: Fix document rules using Solium"
      },
      {
        "command": "solidity.selectWorkspaceRemoteSolcVersion",
        "title": "Solidity: Change workspace compiler version (Remote)"
      },
      {
        "command": "solidity.selectGlobalRemoteSolcVersion",
        "title": "Solidity: Change global compiler version (Remote)"
      },
      {
        "command": "solidity.downloadRemoteSolcVersion",
        "title": "Solidity: Download compiler"
      },
      {
        "command": "solidity.downloadRemoteVersionAndSetLocalPathSetting",
        "title": "Solidity: Download compiler and set workspace local Path"
      },
      {
        "command": "solidity.changeDefaultCompilerType",
        "title": "Solidity: Change the default workspace compiler to Remote, Local, NodeModule, Embedded"
      }
    ],
    "menus": {
      "commandPalette": [
        {
          "when": "resourceExtname == .abi || resourceExtname == .json",
          "command": "solidity.codegenCSharpProject"
        },
        {
          "when": "resourceExtname == .abi || resourceExtname == .json",
          "command": "solidity.codegenVbNetProject"
        },
        {
          "when": "resourceExtname == .abi || resourceExtname == .json",
          "command": "solidity.codegenFSharpProject"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compile.active"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compile"
        }
      ],
      "editor/context": [
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compile.active",
          "group": "1_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compile",
          "group": "1_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compilerInfo",
          "group": "1_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compile.activeUsingRemote",
          "group": "1_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compile.activeUsingLocalFile",
          "group": "1_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compile.activeUsingNodeModule",
          "group": "1_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.changeDefaultCompilerType",
          "group": "2_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.solcReleases",
          "group": "2_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.selectGlobalRemoteSolcVersion",
          "group": "2_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.selectWorkspaceRemoteSolcVersion",
          "group": "2_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.downloadRemoteSolcVersion",
          "group": "2_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.downloadRemoteVersionAndSetLocalPathSetting",
          "group": "2_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.codegenNethereumCodeGenSettings",
          "group": "3_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compileAndCodegenCSharpProject",
          "group": "3_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compileAndCodegenVbNetProject",
          "group": "3_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compileAndCodegenFSharpProject",
          "group": "3_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenCSharpProject",
          "group": "3_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenVbNetProject",
          "group": "3_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenFSharpProject",
          "group": "3_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenCSharpProjectAllAbiCurrent",
          "group": "3_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenVbNetProjectAllAbiCurrent",
          "group": "3_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenFSharpProjectAllAbiCurrent",
          "group": "3_solidity"
        }
      ],
      "explorer/context": [
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenCSharpProject",
          "group": "3_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenVbNetProject",
          "group": "3_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenFSharpProject",
          "group": "3_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compile.active",
          "group": "2_solidity"
        },
        {
          "when": "editorLangId == 'solidity'",
          "command": "solidity.compile",
          "group": "2_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenCSharpProjectAllAbiCurrent",
          "group": "3_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenVbNetProjectAllAbiCurrent",
          "group": "3_solidity"
        },
        {
          "when": "resourceExtname == .abi",
          "command": "solidity.codegenFSharpProjectAllAbiCurrent",
          "group": "3_solidity"
        }
      ]
    },
    "keybindings": [
      {
        "command": "solidity.compile.active",
        "key": "f5",
        "mac": "f5",
        "when": "editorTextFocus && editorLangId == 'solidity'"
      },
      {
        "command": "solidity.compile",
        "key": "Ctrl+f5",
        "mac": "Cmd+f5",
        "when": "editorTextFocus && editorLangId == 'solidity'"
      }
    ],
    "snippets": [
      {
        "language": "solidity",
        "path": "./snippets/solidity.json"
      }
    ],
    "grammars": [
      {
        "language": "solidity",
        "scopeName": "source.solidity",
        "path": "./syntaxes/solidity.json"
      }
    ]
  }
}
