durka-vscode v1.0.1
功能
智能代码片段自动完成
轻松提升编码效率,享受智能代码片段自动完成的便利。
支持两种自动补全:
- vscode 默认支持的,输入关键词,出现补全提示;目前主要配置了一些简单的 json 和 react 相关的提示词
- json 中的提示词主要是控制生成 snippet 的
react 中的提示词主要是控制生成 className 和 style 的
- 输出特定的
trigger(支持通过durka.smartSnippetTriggers配置)才会触发内置的补全提示,这些提示有如下特点:
支持文件名称匹配,如在通过 ts 文件内输入
trigger会出现一些通用的脚本补全,而在 "*.test.ts" 文件内输入trigger,才会出现jest相关的补全支持通过
durka.smartSnippetResources配置自定义补全,支持json和js两种格式,通过js格式配置文件可以快速生成大量补全提示词在 vscode 上更新
durka.smartSnippetResources配置时,能自动创建对应的模板配置文件
剪贴板内容智能替换
在剪贴板上体验内容的平滑转换,实现粘贴时的智能替换。
在
css、less、scss文件中粘贴苹方相关字体时,会自动替换成字重,如将font-family: PingFangSC-Medium;替换成font-weight: 500;;但使用默认的粘贴快捷键时,不会替换,需要使用cmd+k cmd+v快捷键(或执行Durka: Paste and Replace命令)才行;如果希望直接覆盖默认快捷键,可以更新 vscode 配置durka.pasteReplaceOverwrite = true来达到按默认粘贴快捷键即可自动替换的目的。背景:移动端设计师喜欢使用苹方字体,此字体是 iOS 默认字体,在 Android 上是没有的,Android 上也应该使用 Android 系统字体,所以前端要还原时,不要设置 font-family,默认即会使用系统字体即可,只需要调整 font-weight 即可。
除了自带的字体替换功能,可以通过配置
durka.pasteReplaceResources来配置自己的替换规则(在更新配置时,如果对应的资源文件不存在,会自动创建)
文件和文件夹级别模板
使用文件和文件夹级别的模板,快速创建模板文件,简化项目设置。
- 通过配置
durka.templates能指定模板文件,及对应的匹配规则,如果新建文件时命中匹配规则,会使用指定的模板文件来创建新文件 - 除了支持支持配置文件模板外,也支持配置文件夹模板,配置方式和匹配规则都和普通文件模板一样
- 如果内置的模板变量满足不了你的需求,可以通过配置
durka.templateScript来生成自定义的模板变量;此配置除了生成模板变量外,还支持配置模板文件创建完后的回调函数,可以方便你在文件生成后执行你想要的操作
模板支持的内置变量有:
| 名称 | 类型 | 描述 |
|---|---|---|
| date | string | 当前日期,格式:yyyy-mm-dd |
| time | string | 当前时间,格式: hh-mm |
| datetime | string | 当前日期和时间,格式:yyyy-mm-dd hh-mm |
| user | string | 当前用户名,通过读取环境变量中的 USER 字段而获取到的 |
| rootPath | string | 项目根目录的绝对路径,即 vscode 打开的 Workspace 根目录(路径分隔符和系统相关) |
| rootPathUnix | string | 项目根目录的绝对路径,即 vscode 打开的 Workspace 根目录(路径分隔符固定为 "/") |
| relativeFilePath | string | 当前文件相对于根目录(rootPath)的路径(路径分隔符和系统相关) |
| relativeFilePathUnix | string | 当前文件相对于根目录(rootPath)的路径(路径分隔符固定为 "/") |
| pkg | any | 从当前文件所在目录向上查找到的第一个 package.json 文件所对应的 JSON 对象 |
| dirPath | string | 当前文件所在的目录的绝对路径(路径分隔符和系统相关) |
| dirPathUnix | string | 当前文件所在的目录的绝对路径(路径分隔符固定为 "/") |
| dirName | string | 当前文件所在的目录的名称,不带路径 |
| filePath | string | 当前文件的绝对路径(路径分隔符和系统相关) |
| filePathUnix | string | 当前文件的绝对路径(路径分隔符固定为 "/") |
| fileName | string | 当前文件的名称,不带路径和文件后缀 |
| fileExtension | string | 当前文件的后缀名(前面没有".") |
| templatePath | string | 当前文件所对应的模板文件的绝对路径(路径分隔符和系统相关) |
| templatePathUnix | string | 当前文件所对应的模板文件的绝对路径(路径分隔符固定为 "/") |
| rawModuleName | string | fileName 的别名,即当前文件的名称,不带路径和文件后缀 |
| moduleName | string | 驼峰形式的 fileName |
| ModuleName | string | pascal形式的 fileName |
| module_name | string | 所有字母都小写,中间以下划线连接形式的 fileName |
| MODULE_NAME | string | 所有字母都大写,中间以下划线连接形式的 fileName |
| moduleCamelName | string | 驼峰形式的 fileName,和 moduleName 变量一样 |
| modulePascalName | string | pascal形式的 fileName,和 ModuleName 变量一样 |
| moduleCapitalizeName | string | 首字母大写形式的 fileName |
| moduleDashName | string | 所有字母都小写,中间以中划线连接形式的 fileName |
| moduleSnakeName | string | 所有字母都小写,中间以下划线连接形式的 fileName,和 module_name 变量一样 |
| moduleUpperName | string | 所有字母都大写,中间以下划线连接形式的 fileName,和 MODULE_NAME 变量一样 |
| moduleTitleName | string | 所有单词首字母大写,中间以空格连接形式的 fileName |
| dir | any | 或者创建文件夹模板内的文件时,文件夹所关联的所有变量 |