VSCode 添加TS代码片段

问题

在用VSCode写Laya的时候发现一个问题,每次都会忘记模板代码,查找一些资料后得知VSCode中可以自定义代码片段,记录下来

底部增加Cocos代码片段

自定义代码片段

VsCode菜单栏 文件>首选项>用户片段
新建全局代码
输入片段名称
laya_module(或者cocos_module)
之后粘贴下面部分即可完成自定义代码片段

{
    "React-Native Class":{
        "scope": "javascript,typescript",
        "prefix": "laya_module",
        "body": [
            "/**",
            "* $TM_FILENAME_BASE",
            "* @ author: yourName",
            "* @ wechat: yourWeChat",
            "* @ data: $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE",
            "*/",
            "export default class $TM_FILENAME_BASE extends Laya.Script {",
            "",
            "\t/** @prop {name:intType, tips: \"整数类型示例\", type: Int, default: 1000}*/",
            "\tpublic intType: number = 1000;",
            "\t/** @prop {name:numberType, tips: \"数字类型示例\", type: Number, default: 1000}*/",
            "\tpublic numType: number = 1000;",
            "\t/** @prop {name:strType, tips: \"字符串类型示例\", type: String, default: \"Hello Laya\"}*/",
            "\tpublic strType: number = 1000;",
            "\t/** @prop {name:boolType, tips: \"布尔类型示例\", type: Bool, default: true}*/",
            "\tpublic boolType: number = 1000;",
            "\t/** @prop {name:prefabType, tips: \"预制体类型示例\", type: Prefab}*/",
            "\tpublic prefabType: Laya.Prefab;",
            "\t/** Log */",
            "\tprivate LOG_TAG: string=\"$TM_FILENAME_BASE\";",
            "",
            "\tconstructor() { super(); }",
            "",
            "\tonAwake() :void{",
            "",
            "\t}",
            "\tonEnable() :void{",
            "",
            "\t}",
            "\tonUpdate() :void{",
            "",
            "\t}",
            "\tonDisable() :void{",
            "",
            "\t}",
            "\tonDestroy() :void{",
            "",
            "\t}",
            "}"
        ],
        "description": "快速创建一个Laya模板类"
    }
}
描述
scope支持的脚本类型
prefix快捷输入
body代码片段
description描述(提示)

使用代码片段

在正常脚本中输入自定义片段名称按下tab即可自动补全
输入laya_module即可自动生成以下内容

/**
* GameControl
* @ author: yourName
* @ wechat: yourWeChat
* @ data: 2020-06-16 10:26
*/
export default class GameControl extends Laya.Script {

    /** @prop {name:intType, tips: "整数类型示例", type: Int, default: 1000}*/
    public intType: number = 1000;
    /** @prop {name:numberType, tips: "数字类型示例", type: Number, default: 1000}*/
    public numType: number = 1000;
    /** @prop {name:strType, tips: "字符串类型示例", type: String, default: "Hello Laya"}*/
    public strType: number = 1000;
    /** @prop {name:boolType, tips: "布尔类型示例", type: Bool, default: true}*/
    public boolType: number = 1000;

    constructor() { super(); }

    onAwake() :void{

    }
    onEnable() :void{

    }
    onUpdate() :void{

    }
    onDisable() :void{

    }
    onDestroy() :void{

    }
}

Cocos代码片段

{
    "React-Native Class":{
        "scope": "javascript,typescript",
        "prefix": "cocos_module",
        "body": [
            "/**",
            "* $TM_FILENAME_BASE",
            "* @ author: SlowFeather",
            "* @ email: slowfeather@163.com",
            "* @ data: $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE",
            "*/",
            "const {ccclass, property} = cc._decorator;",
            "@ccclass",
            "export default class $TM_FILENAME_BASE extends cc.Component {",
            "",
            "\t@property({ type: cc.Integer, displayName: \"整数类型示例\" })",
            "\tpublic intType: number = 1000;",
            "\t@property({ type: cc.Float, displayName: \"数字类型示例\" })",
            "\tpublic numType: number = 100.1;",
            "\t@property({ type: cc.String, displayName: \"字符串类型示例\" })",
            "\tpublic strType: string = \"Hello CC\";",
            "\t@property({ type: cc.Boolean, displayName: \"布尔类型示例\" })",
            "\tpublic boolType: Boolean = true;",
            "\t@property({ type: cc.Prefab, displayName: \"预制体类型示例\" })",
            "\tpublic prefabType: cc.Prefab;",
            "\t/** Log */",
            "\tprivate LOG_TAG: string=\"$TM_FILENAME_BASE\";",
            "",
            "\tconstructor() { super(); }",
            "",
            "\tonAwake() :void{",
            "",
            "\t}",
            "\tonEnable() :void{",
            "",
            "\t}",
            "\tonUpdate() :void{",
            "",
            "\t}",
            "\tonDisable() :void{",
            "",
            "\t}",
            "\tonDestroy() :void{",
            "",
            "\t}",
            "}"
        ],
        "description": "快速创建一个Cocos模板类"
    }
}

V3之后

{
    "React-Native Class":{
        "scope": "javascript,typescript",
        "prefix": "cocos_module",
        "body": [
            "/**",
            "* $TM_FILENAME_BASE",
            "* @ author: SlowFeather",
            "* @ email: slowfeather@163.com",
            "* @ data: $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE",
            "*/",
            "const {ccclass, property} = cc._decorator;",
            "",
            "@ccclass",
            "export default class $TM_FILENAME_BASE extends cc.Component {",
            "",
            "\t@property({ type: cc.Integer, displayName: \"整数类型示例\" })",
            "\tpublic intType: number = 1000;",
            "\t@property({ type: cc.Float, displayName: \"数字类型示例\" })",
            "\tpublic numType: number = 100.1;",
            "\t@property({ type: cc.String, displayName: \"字符串类型示例\" })",
            "\tpublic strType: string = \"Hello CC\";",
            "\t@property({ type: cc.Boolean, displayName: \"布尔类型示例\" })",
            "\tpublic boolType: Boolean = true;",
            "\t@property({ type: cc.Prefab, displayName: \"预制体类型示例\" })",
            "\tpublic prefabType: cc.Prefab;",
            "",
            "\t/**",
            "\t* Log tag",
            "\t* 日志标签",
            "\t* @private",
            "\t* @type {string}",
            "\t* @memberof \"$TM_FILENAME_BASE\"",
            "\t*/",
            "\tprivate LOG_TAG: string=\"$TM_FILENAME_BASE\";",
            "",
            "\tconstructor() { super(); }",
            "",
            "\tonLoad(){}",
            "\tonEnable(){}",
            "\tstart(){}",
            "\tupdate(deltaTime: number){}",
            "\tonDisable(){}",
            "\tonDestroy(){}",
            "}"
        ],
        "description": "快速创建一个Cocos模板类"
    }
}
### 创建 Vue 3 Setup 语法的代码片段 为了在 Visual Studio Code (VSCode) 中创建支持 Vue 3 `setup` 语法的代码片段,可以按照如下方式配置: #### 定义用户代码片段 通过编辑器内置功能来添加新的用户代码片段。具体操作是在 VSCode 的菜单栏中依次点击文件 -> 首选项 -> 用户代码片段 -> 新建全局代码片段文件 或者特定于项目的代码片段文件。 对于 Vue 3 使用场景下的 `setup` 函数模板,可参照以下 JSON 格式的定义[^1]: ```json { "Create Vue 3 Component with Setup": { "prefix": "vue3setup", "body": [ "<template>", "\t<!-- Your template here -->", "</template>", "", "<script lang=\"ts\">", "import { defineComponent, ref, reactive } from 'vue';", "export default defineComponent({", "\tname: '${TM_FILENAME_BASE}',", "\tprops: {},", "\temits: [],", "\tsetup(props, context) {", "\t\t// Reactive state", "\t\tconst count = ref(0);", "\t\treturn {", "\t\t\tcount", "\t\t};", "\t}", "});", "</script>", "", "<style scoped>", "\t/* Add your styles here */", "</style>" ], "description": "A snippet to create a new Vue 3 component using the Composition API's setup function." } } ``` 这段代码提供了一个完整的 Vue 组件结构,其中包含了 `<template>`、`<script>` 和 `<style>` 部分,并且特别强调了如何利用 TypeScript 来编写带有 `ref()` 及其他组合式API特性的逻辑部分[^2]。 当输入前缀 `vue3setup` 并按下 Tab 键或 Enter 键时,上述模板将会被自动填充到当前文档中,从而大大提高了开发效率并减少了重复劳动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值