July 28, 2021
By: Syh
vs code 用户模板
-打开用户模板
- 文件-》首选项-》用户片段
- Ctrl + Shift +p [输入 :snippets]
全局和局部

- 全局:创建代码片段文件
- 局部:如:clojure.json,java.json 。局部只能用于.Java,或.clj文件
创建自己的代码模板
{
"clj-routes": {
"prefix": "clj-r",
"body": [
"(defn ${CLIPBOARD}",
" \"\"",
" [param]",
" $0",
")",
],
"description": "Log output to console"
}
}
clj-routes: 代码片段的名称。如果没有提供描述,则通过智能感知显示。
description :是智能感知显示的代码片段的可选描述。
prefix:触发器词,在智能感知中显示代码片段,可以一个或多个【多个用 ["clj-r", "clj"]】。
body: 代码片段。
$0:当前光标的位置
| ${} | 格式 |
|---|---|
| CLIPBOARD | 剪贴板的内容 |
| TM_SELECTED_TEXT | 当前选中的文本或空字符串 |
| TM_CURRENT_LINE | 当前行的内容 |
| TM_CURRENT_WORD | 光标下单词的内容或空字符串 |
| TM_LINE_INDEX | 基于零索引的行号 |
| TM_LINE_NUMBER | 基于一个索引的行号 |
| TM_FILENAME | 当前文档的文件名 |
| TM_FILENAME_BASE | 当前文档的文件名,不带扩展名 |
| TM_DIRECTORY | 当前文档的目录 |
| TM_FILEPATH | 当前文档的完整文件路径 |
| RELATIVE_FILEPATH | 当前文档的相对(相对于打开的工作区或文件夹)文件路径 |
| WORKSPACE_NAME | 打开的工作区或文件夹的名称 |
| WORKSPACE_FOLDER | 打开的工作区或文件夹的路径 |
| CURRENT_YEAR | 本年度 |
| CURRENT_YEAR_SHORT | 当前年份的最后两位数字 |
| CURRENT_MONTH | 月份为两位数(例如“02”) |
| CURRENT_MONTH_NAME | 月份的全名(例如“七月”) |
| CURRENT_MONTH_NAME_SHORT | 月份的简称(例如“Jul”) |
| CURRENT_DATE | 一个月中的哪一天 |
| CURRENT_DAY_NAME | 日期名称(例如“星期一”) |
| CURRENT_DAY_NAME_SHORT | 一天的简称(例如“星期一”) |
| CURRENT_HOUR | 24 小时制的当前小时 |
| CURRENT_MINUTE | 当前分钟 |
| CURRENT_SECOND | 当前秒 |
| CURRENT_SECONDS_UNIX | 自 Unix 纪元以来的秒数 |
| RANDOM | 6 位随机 Base-10 数字 |
| UUID | 版本 4 UUI |
| RANDOM_HEX | 6 位随机 Base-16 数字 |
模板片段
"clj-routes":{
"prefix": "clj-routes",
"body": [
"(defn ${TM_FILENAME_BASE/[\\_]/-/g} []",
"[\"\"",
" {:swagger {:tags [\"\"]}}",
" [\"\"",
" {:post {:summary \"\" ",
" :parameters {:body }",
" :handler (fn [{{:keys [body]} :parameters",
" user :current-user}]",
" (success ))}",
"",
" :put {:summary \"\" ",
" :parameters {:body }",
" :handler (fn [{{:keys [body]} :parameters",
" user :current-user}]",
" (success ))}",
"",
" :delete {:summary \"\" ",
" :parameters {:body }",
" :handler (fn [{{:keys [body]} :parameters",
" user :current-user}]",
" (success ))}",
"",
" :get {:summary \"\" ",
" :parameters {:query }",
" :handler (fn [{{:keys [query]} :parameters",
" user :current-user}]",
" (success ))}}]])",
],
"description": "clojure-routes"
},
"clj-service":{
"prefix": "clj-service",
"body": [
"(defn ${CLIPBOARD}",
" \"${1:注释}\"",
" [param]",
" $2",
")",
]
},
"clj-sql-list":{
"prefix": "clj-sql-list",
"body": [
"(-> (select :*)",
" (from :user)",
" (where (OR (eq :name \"嘿嘿\")",
" (like :email \"@163.om\")))",
" (red-db/get-list))"
]
},
"clj-sql-insert":{
"prefix": "clj-sql-insert",
"body": [
"(red-db/insert!",
":user",
"{:id 2 })",
]
},
"clj-sql-update":{
"prefix": "clj-sql-update",
"body": [
"(-> (update-table :user)",
" (sset {:name \"嘿嘿\"})",
" (where (eq :id 1))",
" (red-db/update!))",
]
},
"clj-sql-delete":{
"prefix": "clj-sql-delete",
"body": [
"(-> (delete-from :user)",
" (where (eq :name \"嘿嘿\"))",
" (red-db/delete!))",
]
},
"clj-sql-one":{
"prefix": "clj-sql-one",
"body": [
"(-> (select :*)",
" (from :user)",
" (where (eq :name \"嘿嘿\"))",
" (red-db/get-one))"
]
},
"clj-sql-page":{
"prefix": "clj-sql-page",
"body": [
"(-> (select :*)",
" (from :user)",
" (where (eq :name \"嘿嘿\"))",
" (pagination 0 10)",
" (red-db/get-page))"
]
},
"clj-sql-count":{
"prefix": "clj-sql-count",
"body": [
"(-> (from :user)",
" (where (eq :name \"嘿嘿\"))",
" (red-db/get-count))"
]
},
"cljs-controller":{
"prefix": "cljs-controller",
"body": [
"(kf/reg-controller",
"${1:controller}",
"{:params (fn [route]",
" (when (-> route :path-params :path (= \"${2:path}\")) true))",
" :start (fn [])",
" :stop (fn [])})"
]
},
"cljs-page":{
"prefix": "cljs-page",
"body": [
"(kf/reg-event-fx",
"::fetch-page",
"(fn [{:keys [db]} [query]]",
" (let [par (if query query {:page 0 :size 10})",
" param (into {} (remove (fn [[k v]] (or (string/blank? v) (nil? v))) par))]",
" {:db (update-in db [:model :page-list]",
" #(assoc % :loading true))",
" :dispatch [:request/get",
" {:url (:page-list model-url)",
" :params param",
" :callback-event :model/fetch-page-success}]})))",
"",
"(kf/reg-event-db",
":model/fetch-page-success",
"(fn [db [data]]",
" (update-in",
" db",
" [:model :page-list]",
" #(assoc % :loading false",
" :data (:rows data)",
" :pagination {:total (:total-count data)",
" :pageSize (:size data)",
" :current (inc (:page data))}))))",
]
},
"cljs-clear":{
"prefix": "cljs-clear",
"body": [
"(kf/reg-event-db",
":model/clear-fabrics",
" (fn [db [data]]",
" (update-in",
" db",
" [:model :fabrics]",
" #(assoc % :loading false",
" :data nil))))",
]
},
"cljs-sub":{
"prefix": "cljs-sub",
"body": [
"(rf/reg-sub",
":model/fetch-category-id-info",
" (fn [db]",
" (get-in db [:model :category-id :data])))",
]
},
"cljs-request":{
"prefix": "cljs-request",
"body": [
"(kf/reg-event-fx",
":model/remove",
" (fn [{:keys [db]} [query]]",
" {:dispatch [:request/delete",
" {:url (:remove model-url)",
" :params query",
" :callback-event :model/remove-success}]}))",
"",
"(kf/reg-event-fx",
":model/remove-success",
" (fn [{:keys [db]} [data]]",
" (.success ant/message \"删除成功\")",
" {:dispatch [:model/fetch-page]}))",
]
},
"cljs-model":{
"prefix": "cljs-model",
"body": [
"(reg-model",
"{:ns ${1:db-name}",
" :init ${2:db}",
" :db-events {}",
" :fx-events {}",
" :subs {}})",
]
},