IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> VSCode 用户代码片段 最佳实践 -> 正文阅读

[开发工具]VSCode 用户代码片段 最佳实践

语法

1. 光标位置

使用tab键来逐一切换位置

$1 第一个位置
$2 第二个位置
... 以此类推

$0 光标最终位置,并退出"片段模式"
${1:value1}
${2:value1}
...

2. 默认值

使用字符串"MyName" (直接按tab,即可自动填写默认值)

${1:MyName}

枚举选择

${1|one,two,three|}

使用内置的变量 (下一部分中介绍)

${1:TM_FILENAME_BASE}

3. 变量

变量名说明例子
TM_SELECTED_TEXT当前选择的文本 或 空字符
TM_CURRENT_LINE当前行的内容
TM_CURRENT_WORD光标或空字符串下单词的内容
TM_LINE_INDEX从0开始的行索引261
TM_LINE_NUMBER从1开始的行号262
TM_FILENAME当前文档的文件名index.tsx
TM_FILENAME_BASE不带扩展名的当前文档的文件名index
TM_DIRECTORY当前文档的目录E:\ReactProject\hello-react\src\product
TM_FILEPATH当前文档的完整文件路径E:\ReactProject\hello-react\src\product\index.tsx
RELATIVE_FILEPATH当前文档的相对(打开的工作区或文件夹)文件路径src\product\index.tsx
CLIPBOARD剪贴板上的内容
WORKSPACE_NAME开的工作区或文件夹的名称hello-react
WORKSPACE_FOLDER打开的工作区或文件夹的路径E:\ReactProject\hello-react

当前日期与时间

变量名说明例子 (英|中)
CURRENT_YEAR年份2022
CURRENT_YEAR_SHORT年份的最后两位22
CURRENT_MONTH月份的两位数 ( 例如: “02” )02
CURRENT_MONTH_NAME月份的全名July | 5月
CURRENT_MONTH_NAME_SHORT月份的简称Jul | 5月
CURRENT_DATE日期的两位数08
CURRENT_DAY_NAME天的名称 ( 例如: “Monday” )Monday | 星期一
CURRENT_DAY_NAME_SHORT天的短名称 ( 例如: “Mon” )Mon | 周一
CURRENT_HOUR以24小时时钟格式显示的当前小时数22
CURRENT_MINUTE分钟的两位数50
CURRENT_SECOND秒的两位数26
CURRENT_SECONDS_UNIX自Unix时代以来的秒数1651503086

随机数

变量名说明例子
RANDOM6位随机数 ( 10进制 )962381
RANDOM_HEX6位随机数 ( 16进制 )bcf06a
UUID版本4 UUIDdecf8023-7e3c-4455-a05e-a3758c530fea

行注释 / 块注释

变量名说明
BLOCK_COMMENT_START输出示例:PHP /* 或 HTML <!--
BLOCK_COMMENT_END输出示例:PHP */ 或 HTML -->
LINE_COMMENT输出示例:PHP //

例子:

下面的代码段在JavaScript文件中插入/* Hello World */

在HTML 文件中插入<!-- Hello World -->

{
  "hello": {
    "scope": "javascript,html",
    "prefix": "hello",
    "body": "$BLOCK_COMMENT_START Hello World $BLOCK_COMMENT_END"
  }
}

4. 正则处理内容

表达式分为3部分,

${ 普通的变量 / 过滤符合条件的内容 / 输出的格式 /}

常用的表达式

首字母大写

${1/(.*)/${1:/capitalize}/}

 (输入小写单词,然后按tab键,即可自动转换结果)
 输出:
 index -> Index

文件名首字母大写 – (不包含扩展名)

${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}

输出:
index.tsx -> Index

替换第一个._

${TM_FILENAME/[\\.]/_/}

输出:
example-123.456-TEST.js ----> example-123_456-TEST.js

字母全部大写

${TM_FILENAME/(.*)/${1:/upcase}/}

输出:
example-123.456-TEST.js ----> EXAMPLE-123.456-TEST.JS

替换所有的.-_

${TM_FILENAME/[\\.-]/_/g}

输出:
example-123.456-TEST.js ---->  example_123_456_TEST_js

删除非数字字母

${TM_FILENAME/[^0-9^a-z]//gi}

输出:
example-123.456-TEST.js ----> example123456TESTjs

5. 一些例子

一些 scope (请举一反三)
"scope": "typescript,typescriptreact,javascript,javascriptreact,vue"
"创建 React 17 ts 函数组件": {
  "prefix": "rit17",
  "body": [
    "import { FC, memo } from 'react';",
    "",
    "interface IProps {}",
    "let ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}: FC<IProps> = function (props) {",
    "    return (",
    "        <>",
    "            <h1>$TM_FILENAME_BASE</h1>",
    "        </>",
    "    );",
    "};",
    "",
    "export default memo(${TM_FILENAME_BASE/(.*)/${1:/capitalize}/});"
  ],
  "scope": "typescriptreact"
"创建 React 18 ts 函数组件": {
  "prefix": "rit",
  "body": [
    "import { FC, memo, PropsWithChildren } from 'react';",
    "",
    "interface IProps {}",
    "let ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}: FC<PropsWithChildren<IProps>> = function (props) {",
    "    return (",
    "        <>",
    "            <h1>$TM_FILENAME_BASE</h1>",
    "        </>",
    "    );",
    "};",
    "",
    "export default memo(${TM_FILENAME_BASE/(.*)/${1:/capitalize}/});"
  ],
  "scope": "typescriptreact"
},
"for计次循环": {
  "prefix": "fori",
  "body": ["for (let i = 0; i < $1; i++) {", "    ", "}"]
},
"react测试组件Render刷新次数": {
  "prefix": "rcr",
  "body": [
    "let renderCountRef = useRef(0);",
    "renderCountRef.current++;",
    "console.log(\"$TM_FILENAME_BASE: \", renderCountRef.current);"
  ],
  "scope": "typescriptreact"
},

更多的代码片段

https://github.com/dsznajder/vscode-react-javascript-snippets

6. 快速生成代码片段

源码: https://github.com/pawelgrzybek/snippet-generator

网站: https://snippet-generator.app

7. 更多用户代码片段高级内容 到 官方原文 查看

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:40:32  更:2022-05-05 11:42:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:40:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码