Средство форматирования исходного кода для Solidity?

В большинстве языков программирования есть инструменты для форматирования исходного кода в соответствии с соглашением: например, в Python есть autopep8 и yapf , а в Go — gofmt .

Существует ли аналогичный инструмент для исходного кода Solidity, в идеале в соответствии с Руководством по стилю Solidity ?

Возможно, лучше спросить об этом на softwarerecs.stackexchange.com .
Будет по теме для обоих сайтов. Мне это нравится.
хотелось бы увидеть это в пакете JetBrains, особенно в PyCharm!

Ответы (7)

Недавно я опубликовал Линтер для Solidity, целью которого является соответствие официальному Руководству по стилю.

Вот репозиторий

Архитектура очень похожа на ESLint, поэтому я пытаюсь сделать ее такой же простой в использовании и настраиваемой (включая подключение пользовательских правил), как и ESLint.

Сейчас он находится в активной разработке.

Для начала вы можете установить его через npm:

npm install -g solium

Перейдите в корневой каталог вашего проекта и запустите

solium --init

Это создает .soliumrc.json(определяет, какие правила включить и обрабатывает подключение пользовательских правил) и .soliumignore(указывает, какие файлы и папки игнорировать)

Чтобы запустить линтер для одного файла, просто используйте: solium --file path/to/myfile.sol

Чтобы проверить весь проект (все файлы .sol), используйте:

solium

ИЛИ ЖЕ

solium --hotвключить горячую перезагрузку.

Надеюсь, это улучшит рабочий процесс и производительность разработчиков, поскольку я столкнулся с множеством проблем при разработке для платформы Ethereum из-за отсутствия инструментов разработки. Надеюсь, что вы найдете ее полезной!

Спасибо, что поделились этим! Solium выполняет только линтинг или может переформатировать файлы?
@PiDelport Я не уверен, что вы подразумеваете под переформатированием. Вы имеете в виду автоматическое исправление ошибок lint? (Если да, то) В настоящее время я занимаюсь внедрением механизма исправления, так что примерно через неделю, да, он будет поддерживать исправление.
По сути, да: чтение кода, а затем его переформатирование в соответствии с руководством по стилю (например, autopep8 и yapf, gofmt и т. д.).
Есть ли какой-нибудь более красивый плагин для кода VS, например, для javascript. Я столкнулся с этой проблемой. Я все время получаю сообщение об ошибке из-за того, что отступ в моем коде прочности не соответствует стандарту (4 пробела)

Ведется работа над плагином для более красивого , который форматирует код солидности: https://github.com/prettier-solidity/prettier-plugin-solidity . его AST и печатает его снова.

(Отказ от ответственности: я один из участников)

Я думаю, что это больше, чем WIP сейчас! Только что попробовал, и все работает безупречно.

Если вы используете atom.io, есть линтер: https://atom.io/packages/linter-solidity

И для подсветки синтаксиса: https://atom.io/packages/language-ethereum

Спасибо! Однако это показывает только вывод lint и не форматирует код, верно?
обновлено, чтобы добавить средство форматирования кода
Подсветчик выполняет подсветку синтаксиса, но не форматирует код.
Вы правы, я думал, что это тот пакет, но это был другой пакет: atom.io/packages/atom-beautify , который я настроил для солидности.
Ах, как вы его настроили?
Посмотрите инструкции по настройке на этой странице, вы сможете настроить его так, чтобы он делал большинство вещей, которые вы хотите.

https://github.com/alexstep/SublimeLinter-contrib-solium

Плагин Solium linter для возвышенного текста

Теперь это доступно для IntelliJ (и связанных IDE):

https://plugins.jetbrains.com/plugin/9475-intellij-solidity

Это линтер , который обеспечивает безопасность, стиль и проверку передового опыта.

Вы можете установить его с помощью

npm install -g solhint

Для проверки вам нужно указать в аргументах глобальное выражение пути к вашему коду.

solhint *.sol

Я считаю, что этот инструмент будет полезен для вашего проекта!

добро пожаловать в сообщество :) смотрите здесь дополнительные руководства по форматированию
Solhint великолепен, но ОП попросил форматтер, а не линтер.

Вы можете использовать YAKINDU Soliditiy Tools, его открытый исходный код и некоторые другие интересные функции, даже если он в настоящее время находится в стадии бета-тестирования.

https://medium.com/solidity-ide/yakindu-solidity-tools-beta-released-dbcc76307bc0