Need help with prettier-plugin-solidity?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

149 Stars 21 Forks MIT License 328 Commits 11 Opened issues


Prettier plugin for Solidity

Services available


Need anything else?

Contributors list


Build Status codecov Telegram Twitter Follow

A Prettier Plugin for automatically formatting your Solidity code.

If you like this project, please consider contributing to our Gitcoin grant!

Installation and usage

Install both

npm install --save-dev prettier prettier-plugin-solidity

Run prettier in your contracts:

npx prettier --write 'contracts/**/*.sol'

You can add a script for running prettier on all your contracts:

"prettier": "prettier --write 'contracts/**/*.sol'"

Or you can use it as part of your linting to check that all your code is prettified:

"lint": "prettier --list-different 'contracts/**/*.sol'"

Who's using it?

These are some of the projects using Prettier Solidity:



To integrate this plugin with vim, first install

. These instructions assume you are using
. Add this to your configuration:

Plug 'prettier/vim-prettier', {
  \ 'do': 'yarn install && yarn add prettier-plugin-solidity',
  \ 'branch': 'release/1.x',
  \ 'for': [
    \ 'javascript',
    \ 'typescript',
    \ 'css',
    \ 'less',
    \ 'scss',
    \ 'json',
    \ 'graphql',
    \ 'markdown',
    \ 'vue',
    \ 'lua',
    \ 'php',
    \ 'python',
    \ 'ruby',
    \ 'html',
    \ 'swift',
    \ 'solidity'] }

We modified the

instruction to also install this plugin. Then you'll have to configure the plugin to always use the version installed in the vim plugin's directory:
let g:prettier#exec_cmd_path = '~/.vim/bundle/vim-prettier/node_modules/.bin/prettier'

To check that everything is working, open a solidity file and run


If you also want to autoformat every time you write the buffer, add these lines:

let g:prettier#autoformat = 0
autocmd BufWritePre *.sol Prettier

Now Prettier will be run every time the file is saved.


VSCode is not familiar with the solidity language, so

solidity support
needs to be installed.

code --install-extension JuanBlanco.solidity

Having done that you should proceed to install


code --install-extension esbenp.prettier-vscode

To interact with 3rd party plugins,

will look in the project's npm modules, so you'll need to have
in your
npm install --save-dev prettier prettier-plugin-solidity

As a final check, make sure that VSCode is configured to format files on save.

You'll notice now that

is formatting every time the files are saved but the indentation is using 2 spaces instead of 4. This has been reported and in the meantime you can use the following configuration in your
  "overrides": [
      "files": "*.sol",
      "options": {
        "printWidth": 80,
        "tabWidth": 4,
        "useTabs": false,
        "singleQuote": false,
        "bracketSpacing": false,
        "explicitTypes": "always"

Note: When you install the npm package

in your project and create a
file (which wasn't in your project before this), your VSCode's default settings or rules in
are ignored (prettier/prettier-vscode#1079).

If you want a different configuration for your javascript and solidity files, you can add an overrides property to your



  1. Fork it
  2. Create your feature branch (
    git checkout -b feature/fooBar
  3. Commit your changes (
    git commit -am 'Add some fooBar'
  4. Push to the branch (
    git push origin feature/fooBar
  5. Create a new Pull Request


Distributed under the MIT license. See LICENSE for more information.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.