Package Exports
- prettier-plugin-solidity
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (prettier-plugin-solidity) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
prettier-plugin-solidity
This is a work in progress Prettier Plugin for Solidity.
Installation and usage
Install both prettier and prettier-plugin-solidity:
npm install --save-dev prettier prettier-plugin-solidityYou can add a script for running prettier on all your contracts:
"prettier": "prettier --write **/*.sol"Or you can use it as part of your linting to check that all your code is prettified:
"lint": "prettier --list-different **/*.sol"Integrations
Vim
To integrate this plugin with vim, first install vim-prettier. These
instructions assume you are using vim-plug. 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 do 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 :Prettier.
If you also want to autoformat every time you write the buffer, add these lines:
let g:prettier#autoformat = 0
autocmd BufWritePre *.sol PrettierNow Prettier will be run every time the file is saved.
VSCode
VSCode is not familiar with the solidity language, so solidity support needs to be installed.
code --install-extension JuanBlanco.solidityHaving done that you should proceed to install prettier-vscode.
code --install-extension esbenp.prettier-vscodeTo interact with 3rd party plugins, prettier-vscode will look in the project's npm modules, so you'll need to have prettier and prettier-plugin-solidity in your package.json
npm install --save-dev prettier prettier-plugin-solidityAs a final check, make sure that VSCode is configured to format files on save.
You'll notice now that prettier 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 .prettierrc file:
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false,
"explicitTypes": "always"
}
}
]
}Contributing
- Fork it
- Create your feature branch (
git checkout -b feature/fooBar) - Commit your changes (
git commit -am 'Add some fooBar') - Push to the branch (
git push origin feature/fooBar) - Create a new Pull Request
License
Distributed under the MIT license. See LICENSE for more information.