当前位置: 首页 > news >正文

区块链——代码格式检查(prettier、solhint)

一、引入依赖

// 导入prettier prettier-plugin-solidity
yarn add --dev prettier prettier-plugin-solidity
yarn add --dev solhint

二、创建.prettierrc文件

{"tabWidth": 2,"semi": false,"useTabs": false,"singleQuote": false
}

三、创建忽略文件.prettierignore文件

node_modules
package.json
img
artifacts
cache
coverage
.env
.*
README.md
coverage.json

三、prettierrc配置解释

.prettierrc 文件(或其 JavaScript 版本 .prettierrc.js)是用于配置 Prettier 代码格式化工具的规则文件。Prettier 是一个流行的代码格式化工具,旨在通过提供一致的代码风格来简化开发人员的工作流程。以下是 .prettierrc 文件中一些常见的配置项及其含义:

  • printWidth
    类型:整数
    默认值:80
    含义:指定一行代码的最大字符数,超过此数则会自动换行。

  • tabWidth
    类型:整数
    默认值:2
    含义:指定一个制表符(Tab)应该等于多少个空格。

  • useTabs
    类型:布尔值
    默认值:false
    含义:是否使用制表符(Tab)进行缩进,而不是空格。

  • semi
    类型:布尔值
    默认值:true
    含义:是否在语句末尾添加分号。

  • singleQuote
    类型:布尔值
    默认值:false(在 .prettierrc.js 示例中可能是 true,但默认是 false)
    含义:是否使用单引号而不是双引号。

  • quoteProps
    类型:字符串
    默认值:“as-needed”
    含义:属性名是否使用引号,可选值为 “as-needed”(必要时加引号)或 “consistent”(保持一致性)。

  • trailingComma
    类型:字符串
    默认值:“none”
    含义:对象或数组最后一个元素后是否加逗号,可选值为 “none”(不加逗号)、“es5”(在ES5中有效的地方加逗号)、“all”(所有地方都加逗号)。

  • bracketSpacing
    类型:布尔值
    默认值:true
    含义:对象字面量的括号间是否加空格。

  • jsxBracketSameLine
    类型:布尔值
    默认值:false
    含义:在JSX中,是否将 ‘>’ 符号与标签的最后一行末尾对齐。

  • arrowParens
    类型:字符串
    默认值:“avoid”
    含义:是否总是给箭头函数的参数加上括号,可选值为 “avoid”(只在需要时添加括号)或 “always”(总是添加括号)。

  • endOfLine
    类型:字符串
    默认值:“lf”
    含义:换行符的样式,可选值为 “lf”(\n)、“crlf”(\r\n)、“cr”(\r)或 “auto”(根据文件中的第一行决定)。

  • embeddedLanguageFormatting
    类型:字符串
    默认值:“auto”
    含义:是否格式化内嵌的代码语言,可选值为 “auto”(自动)、“off”(不格式化内嵌的代码语言)、“on”(始终格式化内嵌的代码语言)。

  • proseWrap
    类型:字符串
    默认值:“preserve”
    含义:在 Markdown 中,是否要换行符折行,可选值为 “preserve”(保持原样)、“always”(始终折行)、“never”(从不折行)。

四、创建.solhint.json配置文件

{"extends": "solhint:recommended", // 继承推荐的规则集"rules": {"avoid-sha3": "warn", // 警告使用 SHA3 函数"compiler-version": ["error", "^0.8.0"], // 错误:编译器版本必须为 0.8.x"no-unused-vars": "off", // 禁用未使用变量的规则"no-global-import": "off", // 禁止全局导入"func-visibility": ["warn",{"ignoreConstructors":false}] // 函数的可见性,构造函数排除},"plugins": [] // 目前没有加载任何插件
}

五、创建.solhintignore,设置需要忽视的文件

六、在命令行中,使用yarn solhint contract/*.sol来查看代码是否合规

http://www.lryc.cn/news/409942.html

相关文章:

  • 搭建自动化 Web 页面性能检测系统 —— 部署篇
  • 知识图谱增强的RAG(KG-RAG)详细解析
  • python中list的深拷贝和浅拷贝
  • 【LeetCode】字母异位词分组
  • Golang | Leetcode Golang题解之第295题数据流的中位数
  • 【C语言】C语言期末突击/考研--数据的输入输出
  • How can I fix my Flask server‘s 405 error that includes OpenAi api?
  • LeetCode Hot100 将有序数组转换为二叉搜索树
  • 【Linux】线程的控制
  • Vue3自研开源Tree组件:人性化的拖拽API设计
  • MYSQL--触发器详解
  • C++实用指南:Lambda 表达式的妙用
  • FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 评论
  • 基于springboot+vue+uniapp的居民健康监测小程序
  • TypeScript基础【学习笔记】
  • 树莓派物联网服务器搭建流程:集成 Node.js、InfluxDB、Grafana 和 MQTT 协议
  • typescript 断言
  • 期刊评价指标及其查询方法
  • 巴斯勒相机(Basler) ACE2 dart 系列说明和软件
  • 【Pycharm中anaconda使用介绍】
  • 2024下半年,前端的技术风口来了
  • Spock Unit Test in Java
  • := 符号python
  • UPLOAD-LABS靶场[超详细通关教程,通关攻略]
  • 测试面试宝典(三十七)—— 接口测试中的加密参数如何处理?
  • 秋招突击——7/23——百度提前批面试准备和正式面试
  • 学习日记:数据类型2
  • Django Web框架——05
  • 【React】项目的目录结构全面指南
  • Django学习(二)