首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 Prettier 美化代码

Prettier 是一款流行代码格式化工具。它支持语言相当多。 它很纯粹,就一个代码格式化工具,并不会做代码质量检查(比如声明了一个未被使用变量)。...Prettier 会强制使用统一代码风格,原理就是解析语言生成 AST 抽象语法树,然后用自己一套风格写回到文件。 Prettier 优点: 开箱即用。它本身就自带了一套代码风格,风格还很好看。...但 Prettier 坚持自己品味,它更希望用户使用它精心挑选出来代码风格,只提供较少自定义配置规则。...prettier 并不保证主版本相同版本下风格是一致使用命令对项目下所有文件进行格式: npx prettier --write ....代码质量,比如启用 "no-unused-vars",变量如果声明却未被使用会被认为不正确。

1.9K10

手摸手实现一个编译器(上)

认识 PEG.js PEG.js 是一个简单 JavaScript 解析器生成器,可以生成具有出色错误报告快速解析器。.../simple-arithmetics.pegjs 生成解析器再来解析上述代码: const { parse } = require('..../ast.js ,那么生成解析器中就会引入 ast.js 文件,你可以使用模块中导出任意方法。 --export-var 当没有检测到模块加载器时解析器对象被分配到全局变量名称。...--optimize 在优化生成解析器解析速度 ( speed) 或代码大小 ( size) 之间进行选择(默认值: speed) --plugin 指定 PEG.js 使用具体插件。...总结 先是了解完解释器和编译器定义以及它们区别,让我们知道了 PEG.js 是一个 JavaScript 解析器生成器。

68310
您找到你想要的搜索结果了吗?
是的
没有找到

使用ESLint & Prettier美化Vue代码

Prettier 是一个有见识代码格式化工具。它通过解析代码使用自己规则重新打印它,并考虑最大行长来强制执行一致样式,并在必要时包装代码。...备注,此文首发于使用 Vuepress 搭建新 Web 应用:静晴轩别苑;如果您对此感兴趣,可以移步查看:使用ESLint & Prettier美化Vue代码。...本文就如何使用 ESLint & Prettier,来格式并美化 Vue 代码做下探讨;如果您使用其他类型框架,这份经验绝大部份依旧适用。...;eslint-config-prettier 即为解决此问题存在,可以使用它关闭所有可能引起冲突规则。...Pre-commit Hook 约束代码提交 以上探讨了如何运用 ESLint & Prettier 写出优质代码,这都是针对个人推荐性行为;为保证团队统一代码风格,则必须采取些手段以强制约束;假如您团队使用

3.4K71

代码美化艺术

为了衬托“艺术”二字,可能叫“代码美化”更贴切一点,但是本文深度远没有标题那么宏大。 在我看来,代码质量不仅体现在逻辑上,也要体现在形式上。...本文范例主要以 Angular 为主,但是代码美化建议同样适用于 React 和 Vue。 每行代码多少字符合适? 关于代码字符数一直是一个争论不休问题。...下面是一段使用 80 字符宽度格式化 TS 代码: ? 我们再看一下扩大到 100 字符之后效果: ?...模板格式化 代码宽度对模板(html)影响也很大,下面我们重点聊一下关于模板格式化问题。以下是使用 Prettier 默认设置格式化效果: ?...总结 代码美化只是一种形式,它不会对逻辑产生任何影响,但是好代码格式会间接影响我们编码速度,甚至影响到代码质量。

1.9K20

代码美化艺术

为了衬托“艺术”二字,可能叫“代码美化”更贴切一点,但是本文深度远没有标题那么宏大。 在我看来,代码质量不仅体现在逻辑上,也要体现在形式上。...本文范例主要以 Angular 为主,但是代码美化建议同样适用于 React 和 Vue。...下面是一段使用 80 字符宽度格式化 TS 代码: 我们再看一下扩大到 100 字符之后效果: 这段代码或许还不是最典型例子,但是也能看出两者不同,在实际业务当中,类似的折行可能更多,而从我个人角度来看...模板格式化 代码宽度对模板(html)影响也很大,下面我们重点聊一下关于模板格式化问题。以下是使用 Prettier 默认设置格式化效果。...总结 代码美化只是一种形式,它不会对逻辑产生任何影响,但是好代码格式会间接影响我们编码速度,甚至影响到代码质量。 本文篇幅有限,也有很多不当之处,如果读者对代码美化有更好建议,欢迎留言评论。

1.9K20

技术分享 | 使用 TiDB SQL 解析器生成 SQL 指纹

本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。...; pt-fingerprint 实现 从 pt-fingerprint 代码实现看,它主要是通过正则匹配 SQL 字符串来替换对应字符。...通过 TiDB SQL 解析器将 SQL 解析成语法树 解析出语法树大致如下,其中"..." 代表之前存在多级。 &ast.SelectStmt { Fields: ......修改语法树上节点对应值 TiDB 语法解析器代码实现了一套访问者设计模式,可以通过实现一个Visitor 来遍历语法树。...} 总结 使用 TiDB SQL parser 可以快速准确实现 SQL 指纹,相比字符串解析降低了阅读复杂度; 额外你需要花时间了解 TiDB 语法树结构。 ----

1.6K20

使用CodeSmith 生成代码

CodeSmith是一款优秀代码生成工具。在ORM中,它能帮助我们生成实体类、XML配置文件,从而简化了我们一部分开发工作。下面简要说说它基本用法。...,NameSpace--生成代码中对应命名空间。...5、生成代码存储到指定文件夹 1、添加一个Main.cst模板,并编写如下代码。 Main.cst与Entity.cst在同一个目录下。代码中有比较全注释,可以仔细看一下。..." %> 该模板中定义了三个变量:Namespace--指定生成代码命名空间,SourceDatabase--存储数据库,Directory--指定生成代码存储路径(该变量在模板底部定义) 2、编译模板...,在属性窗口中给变量赋值,然后生成即可看到生成代码

1.6K30

​Python 之父解析器系列之三:生成一个 PEG 解析器

我已经在本系列第二篇文章中简述了解析器基础结构,并展示了一个简单手写解析器,根据承诺,我们将转向从语法中生成解析器。我还将展示如何使用@memoize装饰器,以实现packrat 解析。...参见第1篇、第2篇】 上篇文章我们以一个手写解析器结束。给语法加上一些限制的话,我们很容易从语法中自动生成这样解析器。(我们稍后会解除那些限制。)...,那就创建代码生成器吧。...注意@memoize 装饰器:我“偷运”(smuggle)它进来,以便转向另一个主题:使用记忆法(memoization)来加速生成解析器。...我仍然在抓头发中(译注:极度发愁),如何以最佳方式将协同工作标记生成器缓冲、解析器和记忆缓存作出可视化。或许我会设法生成动画 ASCII 作品,而不仅仅是跟踪日志输出。

72520

使用 Emit 生成 IL 代码

使用 Emit 生成 IL 代码 发布于 2018-04-22 13:14 更新于 2018-09-01...利用这项能力,我们能够在运行时生成一段代码/一个方法/一个类/一个程序集。 本文将介绍使用 Emit 生成 IL 代码方法,以及在此过程中可能遇到各种问题。...---- 在编写以下代码时如果遇到一些意料之外错误,希望调试生成 IL 代码,可以尝试阅读 如何快速编写和调试 Emit 生成 IL 代码 了解如何调试和解决。...定义方法签名 在 IL 中,方法名称可以使用比 C# 更多字符,例如“”,这也是 C# 编译闭包时喜欢使用字符。...所以,如果需要编写 Emit 生成代码代码,需要注意这些隐式产生局部变量,它们需要和普通变量一样被初始化。 Emit 代码为: // 这就声明了两个局部变量。

1K20

使用注解自动生成代码

然后通过小明发明注解代码生成器 就可以自定生成以下代码 class CardFactory { fun produceCar(brand: String): Car { when...对,和刚刚我们手写代码一模一样,只不过这一切都是自动生成,后面如果有新增品牌汽车,只需要在新子类上面,加上 CarAnnotation 注解即可,再也不用担心忘记在工厂类中新增模板代码问题。...编译器首先会读取 Java/Kotin 源文件,然后查看文件中是否有使用注解,如果有使用,则调用其对应注释处理器,这个注解处理器(可能会)生成带有注解 Java 源文件,生成新文件也会参与编译...生成代码 JavaPoet 和 KotlinPoet 是一个生成 Java/Kotlin 代码库 在上面的例子中,我们需要扫描出所有标注了 @CarAnnotation 注解类,然后自动生成一个...方法,所以: 如果代码中根本没有使用到注解,process 方法是不执行 如果使用注解代码是 Kotlin 代码,那么必须使用 kapt {your_porcessor_module} 方式依赖

82900

使用YAKINDU STATECHART TOOLSTypeScript代码生成

我们可以使用状态机建模web应用 行为,然后直接转换为TypeScript代码。所生成代码很容易集成到现代web开发框架,例如Angular或Ionic。 ?...这些框架利用了TypeScript优势来建造可扩展单页web应用。 随着更多逻辑被移到前端,单页web应用很容易变得复杂,特别是交互逻辑。通过状态机建模生成代码是一个好解决方案。...最后,定义4个回调操作显示相应特性。 生成TypeScript工件 为了配置代码生成过程,YAKINDU STATECHART TOOLS使用一个文本生成器模型,称为SGen。...使用Outlet 特性,我们制定目标项目为ycar_app。所生成工件放在ycar_app项目的src/app/gen/statemachine目录下。...所生成状态机要依赖库,也生成在目标文件夹src/app/gen/stateutils下。

2K10

使用Visual Python自动生成代码

#不需要再看着matplotlib文档,写一段画图代码了:) 官网:https://www.visualpython.ai/ (鼠标点击设置参数,生成代码) 安装和使用 visual python...• Machine Learning:主要使用sklearn。包括常用机器学习方法(分类、回归、聚类) 使用案例 使用Visualization中wordcloud功能生成词云。...(图片经过加速,实际操作大概30秒) 使用起来非常简单,点击WordCloud,然后选择数据(可选择use file使用文件),设置词数量等信息。设置完成后点击Run就可以生成代码并运行了。...使用前需要导入。可以点击WordCloud图标,选择Imoort Library导入。 通过点击、设置参数,Visual Pyhton自动生成代码,这个过程不到1分钟。...操作非常简单,大多数情况你只需要点击,无需手写代码就可以完成一些常见任务。如果有特殊要求,可在它生成代码基础上修改。

1K30

定制SAX解析器使用方式

本章介绍用于控制系统间IRIS SAX解析器选项。关于IRIS SAX解析器每当InterSystems IRIS读取XML文档时,都会使用InterSystems IRIS SAX解析器。...解析器使用标准Xerces-C++库,该库符合XML1.0推荐标准和许多相关标准。可用解析器选项可以通过以下方式控制SAX解析器行为:可以设置标志来指定要执行验证和处理类型。...可以使用特殊用途实体解析器禁用实体解析。可以指定实体解析超时期限。如果需要控制解析器如何查找文档中任何实体定义,则可以指定更通用自定义实体解析器。...not supportednot supportednot supportedsupported指定解析器选项指定不同解析器行为取决于你如何使用InterSystems IRIS SAX解析器:如果使用...具体地说,在读取XML文档时,请使用%XML.SAX.NullEntityResolver实例作为实体解析器

1.2K10

使用 Swift Package 插件生成代码

我们考虑过自动化该过程,但由于我们代码性质,我们遇到了一些问题,代码库高度模块化,混合了Xcode项目和Swift Package。...图片取自 Xcode Beta 2 版发布说明 在过去几周里,我一直在研究如何使用软件包插件生成单元测试,在这篇文章中,我将解释我在向哪个方向尝试以及它涉及了什么。...获得这些类型后,生成一个带有XCTestCase.swift文件,其中包含每种类型单元测试。...这创建了两个目标,一个是包含Fetchable协议定义和符合该定义类型实现代码,另一个是应用插件为此类类型生成单元测试测试目标。...第一个是SourceKitten——特别是其SourceKitten框架库,这是一个Swift包装器,用于帮助使用Swift代码编写sourcekit请求,第二个是快速参数解析器,这是苹果提供软件包,

2.2K20

dotnet 使用 IndentedTextWriter 辅助生成代码生成带缩进内容

随着源代码生成越来越多应用,自然也遇到了越来越多开发上坑,例如源代码缩进是一个绕不过去问题。如果源代码生成是人类可见代码,我期望生成代码最好是比较符合人类编写代码规范。...为了能让人类在阅读机器生成代码时候,不会想着拿刀砍那个编写代码生成代码开发者,最好,或者说至少代码也应该有个缩进和换行吧。...本文将安利大家通过 IndentedTextWriter 这个辅助类,用来辅助生成带缩进内容 使用 IndentedTextWriter 辅助类核心用途在于自动加上缩进,缩进等级由代码设置,可以通过加等和减等控制缩进等级...,这就可以让大家更加开森,可以将 IndentedTextWriter 用来除代码之外其他生成内容里 本文代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文代码,先创建一个空文件夹...,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文代码 git init git remote add origin https://gitee.com/lindexi

36910
领券