在 VS 代码片段中插入明天的日期

Insert tomorrow's date in a VS Code Snippet

我有一个 Alfred Snippet 可以为我键入每周 Markdown 清单的大纲。结果如下:

## Week (4/25–4/29)
- [ ] 

### Monday Apr 25, 2022
- [ ] Snippet

----

我想将其移至 VS Code Snippet。 VS Code 定义了环境变量,如 $CURRENT_YEAR$CURRENT_MONTH_NAME_SHORT 可以填充其中的一些内容。但是对于“周 (4/25-4/29)”这一行,我真的很想知道下周五的日期(通常是从今天算起的四天)。有什么方法可以用 VS Code 片段来做到这一点吗?

作为参考,我的 Alfred 是这样定义的:

## Week ({date:M/d}–{date +4d:M/d})
- [ ] 

### Monday {date}
- [ ] Snippet

----

使用 VSC 片段是不可能的。

使用扩展名 File Templates (v1.10.0),您可以生成 dates/times 与 now.

的特定偏移量

您必须定义首选 dateTimeFormat 设置。

定义以下设置(我们有一个命名的日期格式:week-schedule

可以是全局的或在您的工作区中

  "templates.dateTimeFormat": {
    "locale": "en-US",
    "options": {
      "year": "numeric",
      "month": "2-digit",
      "day": "2-digit",
      "weekday": "long",
      "hour12": false,
      "hour": "2-digit",
      "minute": "2-digit",
      "second": "2-digit"
    },
    "template": "${month}/${day}"
    "week-schedule": {
      "options": {
        "year": "numeric",
        "month": "short",
        "day": "2-digit",
        "weekday": "long",
      },
      "template": "${weekday} ${month} ${day}, ${year}"
    }
  }

定义以下模板(全局或在您的工作区中)

week-schedule.md

##@@## ${dateTimeFormat#template=${year}-${month}-${day}#offset=+1WD0 +1D#}_${dateTimeFormat#template=${month}-${day}#offset=+1WD0 +5D#}${input#Additional#find=^(.+)$#replace=-#}
## Week (${dateTimeFormat:offset=+1WD0 +1D:}–${dateTimeFormat:offset=+1WD0 +5D:})
- [ ] 

### ${dateTimeFormat:week-schedule:offset=+1WD0 +1D:}
- [ ] Snippet

----

### ${dateTimeFormat:week-schedule:offset=+1WD0 +2D:}
- [ ] Snippet

----

### ${dateTimeFormat:week-schedule:offset=+1WD0 +3D:}
- [ ] Snippet

----

### ${dateTimeFormat:week-schedule:offset=+1WD0 +4D:}
- [ ] Snippet

----

### ${dateTimeFormat:week-schedule:offset=+1WD0 +5D:}
- [ ] Snippet

----

它将创建一个包含日期和一些(可选)附加文本的文件名。

第一行需要那么长。整个文件名模板必须在第 1 行。

该模板可以包含 VSC 片段和输入字段以及一些其他变量。


编辑

在 v1.11.0 中有一个命令templates.pasteTemplate,您可以在其中插入带有键绑定的模板

  {
    "key": "ctrl+alt+w",  // or any other combo
    "command": "templates.pasteTemplate",
    "args": {
      "text": [
        "## Week (${dateTimeFormat:week-schedule-head:offset=+1wd0 +1d:}–${dateTimeFormat:week-schedule-head:offset=+1wd0 +5d:})",
        "- [ ]",
        "",
        "### ${dateTimeFormat:week-schedule:offset=+1wd0 +1d:}",
        "- [ ] Snippet",
        "",
        "----"
      ]
    }
  }