Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Super InsertNew to Visual Studio Code? Get it now.
Super Insert

Super Insert

KristinZhang

|
30 installs
| (1) | Free
Insert Sequences/Numbers/Dates/UUID/NanoID, and customizable via vscode settings
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Super Insert for Visual Studio Code

An extension to insert sequences, numbers, uuids or dates.

Table of Contents
  • Super Insert for Visual Studio Code
    • Why another insert numbers extension?
    • Installation
    • Usage
      • Command: Super insert: Number
      • Command: Super insert: Random
      • Command: Super insert: Date
      • Command: Super insert: Sequences
      • Command: Super insert: UUID
      • Command: Super insert: NanoID
      • Command: Super insert: (Shortcut)
      • Command: Super insert: (History)
    • Input
    • Format
      • Some of the Number format
      • Conditional format
      • Some of the Date format
      • Pre-defined sequences
    • Settings
      • customSequences example
      • shortcuts example
    • Trouble Shooting
      • Nothing output with some formats
    • Development
      • Build
      • Debug tests
      • Add new types
    • Thanks
    • For more information or bug reports

Why another insert numbers extension?

There are already quite a few extensions with similar features, but I prefer Excel’s formatting approach — it’s more intuitive, especially for non-programmers.

Furthermore, those extensions is not easy to extend, especially If I only want to insert same simple fixed sequences, e.g. Monday/Thuesday etc.

So I created my own tool. It supports:

  • Excel-like format
  • Inserting numbers or random numbers
  • Inserting dates
  • Inserting UUID or NanoID
  • Inserting built-in or custom sequences, and allows to add custom sequences by only configuring vscode settings

Installation

  1. Search "Super Insert" in vscode Extensions pane or
  2. Download from Visual Studio Marketplace or
  3. Download from openvsx

Usage

Command: Super insert: Number

Insert numbers

  • Keybindings: (ctrl|cmd)+alt+n

  • Basic numbers

    Numbers

  • Decimals/Fraction numbers

    Numbers

Command: Super insert: Random

Insert random numbers

Random numbers

Command: Super insert: Date

Insert dates starts from now

Dates

Command: Super insert: Sequences

Insert built-in or custom sequences

Sequences

Command: Super insert: UUID

Insert uuid or guid

Command: Super insert: NanoID

Insert nano id

Command: Super insert: (Shortcut)

Do the insertion with predefined shortcuts

  • Keybindings: (ctrl|cmd)+alt+y

    Shortcuts

Command: Super insert: (History)

Do the insertion from input history, allows editing before run

History

Input

Usage Input Example Output Notes
Numbers <start>:<step>:<format> 1:1:00# 001 formats documented in the following sections
1:00# 001 Default step is 1
1 1 Default step is 1
0 Default start is 0, default step is 1
Randoms <min>:<max>:<format> 1:100:# 32 Generate random numbers between 1 and 100, output with format #
1:100 32.0225... Generate random numbers between 1 and 100, output raw numbers
100 32.0225... Generate random numbers between 0 and 100, output raw numbers
0.225... Generate random numbers between 0 and 1, output raw numbers
Dates <step>:<format> 1d:yyyy-mm-dd 2025-09-19 step can be numbers as seconds, or can be numbers with one of "dhms", e.g. d for days, h for hours, m for minutes, s for seconds
yyyy-mm-dd 2025-09-19 Default step is 1d
yyyy-mm-dd 2025-09-19 Default step is 1d
UUID <format> u BAA60E3D-CF21... u or U stands for upper case, default is lower case, { or } will force to add brackets around
Nano ID <format>:<size> YcWb_wDm4M_v6... default size is 21. format can be: h means only use hex characters 0-9 and a-f, in this case, the default size is 10
10 UHh-G_X3FZ force size to 10
h 3307f3d51e default size is 10 for hex characters
Sequence (one of the
pre- or custom-defined
sequence item)
Monday Monday Tuesday … There are built-in sequences or user defined sequences

Format

The format is controlled by a Excel cell format string, i.e. excel's TEXT function.

excel cell format

More please consult examples given in the Excel text function documentation.

Some of the Number format

Symbol Inerpretation
# A # is a placeholder for a digit, but it will not display if there are no digits to fill that place
0 A 0 forces to display a digit in that position, even if it is a leading or trailing zero.
% A percent makes the value to be a percentage, e.g. 1 to be 100%
, comma, numeric seperator, to make the result separate thousands
. decimal separator
/ fraction seperator

Exampes:

Original Fixed Fraction
# 0 0.00 00.0 #.## 0.## 0,0.##
#,#00.##
#,#.##
#,###.##
#/# # #/# # #/40
4000 4000 4000 4000.00 4000.0 4000. 4000. 4,000. 4,000. 4000/1 4000 4000
-8.8 -9 -9 -8.80 -08.8 -8.8 -8.8 -08.8 -8.8 -44/5 -8 4/5 -8 32/40
-5.6 -6 -6 -5.60 -05.6 -5.6 -5.6 -05.6 -5.6 -28/5 -5 3/5 -5 24/40
-2.4 -2 -2 -2.40 -02.4 -2.4 -2.4 -02.4 -2.4 -12/5 -2 2/5 -2 16/40
0.8 1 1 0.80 00.8 .8 0.8 00.8 .8 4/5 4/5 32/40
4 4 4 4.00 04.0 4. 4. 04. 4. 4/1 4 4
7.2 7 7 7.20 07.2 7.2 7.2 07.2 7.2 36/5 7 1/5 7 8/40
Original Thousand and Percent As Literal Scientific Literals
#,k #.#% #,0.#% ,#.#-,
,,#.#-,
%#.# 0.00E+00 0.00E-0 ##.#E-0 #-#.# #"abc"#.# #中#.#
4000 4k 400000.% 400,000.% ,4000.-, %4000. 4.00E+3 4.00E3 40.E2 400-0. 400abc0. 400中0.
-8.8 -k -880.% -880.% -,8.8-, -%8.8 -8.80E+0 -8.80E0 -8.8E0 --8.8 -abc8.8 -中8.8
-5.6 -k -560.% -560.% -,5.6-, -%5.6 -5.60E+0 -5.60E0 -5.6E0 --5.6 -abc5.6 -中5.6
-2.4 -k -240.% -240.% -,2.4-, -%2.4 -2.40E+0 -2.40E0 -2.4E0 --2.4 -abc2.4 -中2.4
0.8 k 80.% 80.% ,.8-, %.8 8.00E-1 8.00E-1 80.E-2 -.8 abc.8 中.8
4 k 400.% 400.% ,4.-, %4. 4.00E+0 4.00E0 4.E0 -4. abc4. 中4.
7.2 k 720.% 720.% ,7.2-, %7.2 7.20E+0 7.20E0 7.2E0 -7.2 abc7.2 中7.2

Counting time examples: e.g. how may hours or minutes for n dates, n is the input number:

Original
[h] [m] [h] m [h] m s
4000 96000 5760000 96000 0 96000 0 0
-8.8 -211 -12672 -212 48 -212 48 0
-5.6 -134 -8064 -135 36 -135 36 0
-2.4 -57 -3456 -58 24 -58 24 0
0.8 19 1152 19 12 19 12 0
4 96 5760 96 0 96 0 0
7.2 172 10368 172 48 172 48 0

Note: Some versions of Excel will output "#####..." for negative numbers with format "[h] m" and "[h] m s"

Conditional format

Conditions can be specified in square brackets, like this: [<comparator> <numberic constant>]<format>, e.g. [>3]# (means value greater than 3 will be output as integer, that is 3.1 will be converted to "3", but 1.1 will remains "1.1"), which is called conditional format.

A format can contain multiple conditional formats, seperated by semi-colon. e.g. [>3]#;[<2]#.#;0.00 means value greater than 3 will use # format, less than 2 will use #.#, and others 0.00.

comparator listed below:

comparator meaning notes
<> not equal
<= less than or equal
< less than
>= greater than or equal
> greater than
= equal
% mod, 0 for true, others for false not supported by excel

Example:

Original
1.5:0.5:[%1]#;#.#0
1.5 1.50
2 2
2.5 2.50
3 3
3.5 3.50
4 4

Some of the Date format

Symbol Inerpretation
d day of the month, as a single digit
dd two-digit day of the month, possibly with a leading zero
ddd Abbreviated day of the week, represented by the thee initial letters
dddd Day of the week
m single digit month number if the last seen symbol was a date part, otherwise single digit minute
mm two-digit month number if the last seen symbols was a date part, otherwise two-digit minute
mmm Abbreviated of the month, represented by the thee initial letters
mmmm Month full name
y or yy Two digit year
yyy+ Four digit year
h single digit hour
hh+ two-digit hour, possibly with leading zero
s single digit second
ss+ two-digit second
A/P Instead of 24h time, use 12h with A or P suffix
am/pm Use 12h time with AM or PM suffix

Examples:

yyyy/m/d hh\:mm\:ss yyyy-mm-dd hhmmss ddd, mmm dd - yyyy dddd, dd of mmmm of yyyy m/d/yyyy h\:mm AM/PM hham/pm hh a/p mm
2025/9/3 10:02:00 2025-09-03 100200 Wed, Sep 03 - 2025 Wednesday, 03 of September of 2025 9/3/2025 10:02 AM 10am 10 a 02
2025/9/3 19:02:00 2025-09-03 190200 Wed, Sep 03 - 2025 Wednesday, 03 of September of 2025 9/3/2025 7:02 PM 07pm 07 p 02

Note: colon (:) must be escaped with backslash (\), because colon is the default seperator in format.

Pre-defined sequences

Weekday Weekday Music Symbol Roman Astro Alphabet 中午周 中文数字 中文数字 大写货币 星座 节气 天干 地支 60甲子 生物 颜色
Sun Sunday Do I Aries a A 周日 日 零 零 零 零 白羊 立春 甲 子 甲子 域 红
Mon Monday Re II Taurus b B 周一 一 一 一 壹 壹 金牛 雨水 乙 丑 乙丑 界 橙
Tue Tuesday Mi III Gemini c C 周二 二 二 二 貳 貳 双子 惊蛰 丙 寅 丙寅 门 黄
Wed Wednesday Fa IV Cancer d D 周三 三 三 三 叁 叁 巨蟹 春分 丁 卯 丁卯 纲 绿
Thu Thursday Sol V Leo e E 周四 四 四 四 肆 肆 狮子 清明 戊 辰 戊辰 目 蓝
Fri Friday La VI Virgo f F 周五 五 五 五 伍 伍 处女 谷雨 己 巳 己巳 科 靛
Sat Saturday Si VII Libra g G 周六 六 六 六 陆 陆 天秤 立夏 庚 午 庚午 属 紫
VIII Scorpio h H 七 七 柒 柒 天蝎 小满 辛 未 辛未 种
IX Sagittarius i I 八 八 捌 捌 射手 芒种 壬 申 壬申
X Capricorn j J 九 九 玖 玖 摩羯 夏至 癸 酉 癸酉
Aquarius k K 十 十 拾 拾 水瓶 小暑 戌 甲戌
Pisces l L 百 佰 双鱼 大暑 亥 乙亥
m M 千 仟 立秋 丙子
n N 万 萬 处暑 丁丑
o O 亿 億 白露 戊寅
… … … …

Note: Consult BuiltInSequences.ts for more.

Settings

All settings are under superinsert property.

Setting Key type Description default
start number Will be used when user inputs nothing 0
step number Will be used when user does not input step for numbers 1
defaultRandomFormat string Will be used when only input 'rand' or 'random'
defaultDateFormat string Will be used when only input 'now' or 'today' yyyy-mm-dd
defaultDateStep number or string Will be used when the start is 'now' or 'today', number stands for seconds 1d
defaultLocale "en-US" or "zh-CN" Will be used to control weekday and month name
customSequences {
sequence?: string[],
caseSensitive?: boolean
}[]
Will be used when user wants to input sequence
shortcuts {
input?: string,
label?: string,
format?: string,
step?: number,
start?: number,
locale?: string,
}[]
Will be used when invoke the "Shortcut" command. "locale" is used for weekday and month name

customSequences example

"superinsert": {
    "customSequences": [
        {
            "sequence": [
                "风",
                "雷",
                "雨"
            ],
            "caseSensitive": false,
        }
    ],
}

shortcuts example

"superinsert": {
    "shortcuts": [
        {
            "input": "yyyy-MM-dd hh\\:MM\\:ss",
            "type": "date",
            "label": "date and time"
        },
        {
            "input": "yyyyMMdd",
            "type": "date",
            "label": "date simple"
        },
        {
            "input": "dddd, dd of mmmm of yyyy",
            "type": "date",
            "label": "date complex",
            "locale": "zh-CN"
        },
        {
            "input": "1:100:#",
            "type": "random",
            "label": "random number between 1 and 100"
        },
        {
            "input": "1234:##\\,##",
            "type": "number",
            "label": "4 digits with comma in the middle"
        }
    ],
}

NOTE: the old version (before 0.1.0) can have a prefix before format, like below:

"superinsert": {
    "shortcuts": [
        {
            "input": "yyyy-MM-dd hh\\:MM\\:ss",
            "label": "date and time"
        },
        {
            "input": "rand:1:100:#",
            "label": "random number between 1 and 100"
        },
        {
            "input": "1234:##\\,##",
            "label": "4 digits with comma in the middle"
        }
    ],
}

Though it is still supported, but recommended to add a type field, to reflect the changes to the UI

these are the available types:

date, nanoid, number, random, sequence, guid, uuid

Trouble Shooting

Nothing output with some formats

Sometimes there is nothing output, you can open OUTPUT panel, and select "Extension Host", there should be some error information, follow it to fix your format.

Output of extension

Examples:

input error description fix output
[hh\:mm\:ss] SyntaxError: Expected "<", "<=", "<>", ">=", "h", "m", "s", or [%=->] but "y" found. square brackets indicates condition of conditional format, so it is expected to be a comparer at the start use backslash to escape square brackets to be normal "text" like this: \[hh\:mm\:ss\] [13:17:15]

NOTE:

  • \n is not support in prompt input, but supported in shortcut mode.

Development

Build

This project depends on a fork repo of datadocs/rose-formatter, for customizations.

So I added the fork repo as submodule, to correctly build it, you need to clone and build the submodule as well.

Below is the example steps:

git clone --recurse-submodules https://github.com/QueenKunkun/super-insert.git
cd super-insert

# build the submodule first
cd rose-formatter
npm i
npm run build

# build this extension
cd ..
npm i
npm run package # or debug directly, more information please see vscode's development guide

Debug tests

There are rare cases you want to debug tests, e.g. changing test infrastructures causes no tests to run etc.

To debug tests, it needs some configurations.

launch.json example, note: VSCODE_TEST_OPTIONS is a must env (found after debugging from package.json, maybe there are better ways, e.g. create a custom runner, I will leave with it for now)

{
    "name": "Extension Tests",
    "type": "extensionHost",
    "request": "launch",
    "runtimeExecutable": "${execPath}",
    "args": [
        "--extensionDevelopmentPath=${workspaceFolder}",
        "--extensionTestsPath=/Users/apple/code/kk/github/super-insert/node_modules/@vscode/test-cli/out/runner.cjs"
    ],
    "outFiles": [
        "${workspaceFolder}/out/src/test/**/*.js"
    ],
    "env": {
        "VSCODE_TEST_OPTIONS": "{\"mochaOpts\":{\"_\":[\"/Users/apple/.nvm/versions/node/v22.14.0/bin/node\",\"/Users/apple/code/kk/github/super-insert/node_modules/.bin/vscode-test\"],\"config\":\"nearest .vscode-test.js\",\"skip-extension-dependencies\":false,\"skipExtensionDependencies\":false,\"jobs\":19,\"j\":19,\"slow\":75,\"s\":75,\"timeout\":2000,\"t\":2000,\"diff\":true,\"reporter\":\"spec\",\"R\":\"spec\",\"$0\":\"/Users/apple/code/kk/github/super-insert/node_modules/.bin/vscode-test\"},\"colorDefault\":{\"level\":3,\"hasBasic\":true,\"has256\":true,\"has16m\":true},\"preload\":[],\"files\":[\"/Users/apple/code/kk/github/super-insert/out/src/test/parser.test.js\"]}"
    }
}

Note: Before debug, run npm run compile-tests or automatically compile tests by npm run watch-tests, to make test code updated.

Add new types

If you want to support more types, follow this guide:

  1. Implement a IValue class and put it under values folder

  2. Implement a IInsertMetaBuilder class under builders folder

    1. use @Builder decorator to register the class, given the builder name which should be the same as the command name
    2. import the class in builders/index.ts
    3. add the builder name in BUILDER_NAMES for command registering when activating
  3. Optionally, you may need to create a IRenderer under renderers folder, to render the IValue with a custom format

  4. Register the command in package.json under contributes/commands node

    1. example: <command type> should be the same as builder name, <Command Name> is the given name
      {
        "command": "super-insert.<command type>",
        "title": "Super insert: <Command Name>"
      },
    

Thanks

Inspired from or made use of these projects:

  • Inori/vscode-InsertNumbers: Insert Numbers extension for vscode
  • datadocs/rose-formatter: A port of Excel's numerical formatting...

For more information or bug reports

  • GitHub
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft