Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
prettier-plugin-solidity
Advanced tools
A Prettier Plugin for automatically formatting your Solidity code.
A Prettier plugin for automatically formatting your Solidity code.
If you like this project, please consider contributing to our Gitcoin grant!
Install both prettier
and prettier-plugin-solidity
:
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'"
These are some of the projects using Prettier Solidity:
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 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 prettier-vscode
.
code --install-extension esbenp.prettier-vscode
To 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-solidity
As 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"
}
}
]
}
Note: When you install the npm package prettier
in your project and create a .prettierrc
file (which wasn't in your project before this), your VSCode's default settings or rules in settings.json
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 .prettierrc
.
git checkout -b feature/fooBar
)git commit -am 'Add some fooBar'
)npm run test:all
), if coverage drops below 100% add missing tests.git push origin feature/fooBar
)Distributed under the MIT license. See LICENSE for more information.
FAQs
A Prettier Plugin for automatically formatting your Solidity code.
The npm package prettier-plugin-solidity receives a total of 61,571 weekly downloads. As such, prettier-plugin-solidity popularity was classified as popular.
We found that prettier-plugin-solidity demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.