- Commands, settings, and the context menu now follow VS Code's display language. Every command title, the Insert Random submenu label, the extension's own name and description, and every setting's title, description, and dropdown descriptions render in Simplified Chinese, Spanish, French, Brazilian Portuguese, Russian, German, Japanese, or Turkish. English is the fallback for every other display language.
- Palette search still works with a single term in any language. Each locale translates the category prefix along with the command —
Insert Random: First NamereadsZufällig einfügen: Vornamein German and随机插入: 名字in Simplified Chinese — and the right-click submenu carries the same phrase. Generators reachable under both their originalextension.insert*id and the moderninsertRandomText.*id share one translation, so the two ids can never show different titles.
- What stays English, on purpose. Setting values —
Cursor/Top/Clipboard, the output formats, the faker locale ids — are matched at runtime, so only their descriptions are translated. Prompts, Quick Picks, and notifications shown while the extension is running are English too. insertRandomText.localeis unrelated to the display language. It picks the language the generated data is drawn from, and this release doesn't change it; the specification now says so explicitly.- Open VSX is now linked directly from the README — a version badge, an Open VSX listing line under Installation, and a link to the publisher's other extensions on the registry. Compatibility notes that the listing is published by WinterNova5, a verified Open VSX publisher, and now records which display languages the extension ships in — separately from
insertRandomText.locale, which governs the generated data instead. - The publisher reads as WinterNova5 throughout the README. Install commands, URLs, and the extension id are unchanged.
- GitHub Sponsors now sits alongside the existing donation options.
- Now on Open VSX. The extension is published to the Open VSX registry, so it installs directly in VSCodium, Cursor, Windsurf, Gitpod, and other editors that don't use the Visual Studio Marketplace — and the README's Installation and Compatibility sections now cover those hosts.
- Namespaced command ids for the fourteen original generators. Animal, Person, Date, Country, Number, String, Lorem and its size variants, and Hash and its size variants are now reachable as
insertRandomText.<name>— so every generator carries a modern id, matching the rest of the catalog. The originalextension.insert*ids stay registered permanently (existing keybindings andtasks.jsonreferences keep working untouched); they're hidden from the Command Palette so no generator is listed twice. - A support guide. New SUPPORT.md walks the common symptoms — a command that inserts nothing, a value in an unexpected shape, a setting that doesn't seem to apply — from symptom to cause to fix, plus an FAQ and the build/contributing guide. The README's Troubleshooting and Contributing sections link into it.
- Documentation links now work from the Marketplace listing. The README's links into the specification — the data catalog, the configuration reference, the command list — resolved only when read on GitHub; on the extension's Marketplace page they led nowhere, and the demo GIFs didn't load. Both now resolve from either surface.
- Marketplace metadata. The gallery banner was recolored to match the icon, and
homepagenow points at the repository root. - README refresh. A restructured Quick Start, a consistent badge set, and installation steps covering both registries.
- New GitHub issue forms (bug report / feature request) with contact links, replacing free-form issues.
The first stable release — a ground-up relaunch as Random, Fake & Mock Data Generator.
- Switched the random engine to
@faker-js/fakerfor realistic, coherent data. - Expanded the catalog to ~130 data types — on top of the originals (names, dates, numbers, strings, lorem, hashes, …), added email, UUID, company, commerce, finance (credit card, IBAN, currency, crypto), git, system/files, vehicle, food, music, travel, color variants, and richer identity / location / date / number / internet types, plus IDs like ULID & nanoid. Every type is a searchable command and a grouped Quick Pick entry.
- Multi-cursor fill — insert a different value at every cursor in one step.
- New Insert Random: Pick… command — choose any type from a searchable, grouped menu.
- Clipboard insert type — set
insertTypetoClipboardto copy a generated value to the clipboard instead of inserting it (no editor needed; resolves #4). - Automatic quoting — inserted values wrap in the correct quote for the file's language with zero configuration, so they're always valid syntax: SQL dialects use single quotes and escape an embedded quote by doubling it (
'O''Brien'); every other language (JSON, Go, Java, Rust, JS/TS, Python, and the rest) uses double quotes. No quote settings to configure. - Multi-field records — new Insert Random: Record… command: multi-select any fields and insert them together as one record — a JSON object, a SQL
INSERTrow, or a CSV line — at every cursor. Set the shape withinsertRandomText.recordFormat(json/sql/csv) and the SQL table name withinsertRandomText.recordSqlTable. Respects bulk count (a JSON array / repeated rows), multi-cursor, seed, and the insert type (cursors / top of file / clipboard). - Generate whole datasets — new Insert Random: Generate Dataset… command: pick fields (custom lists included), a format, and a row count, and up to 100,000 rows open as a new untitled file — a JSON array (one record per line), SQL
INSERTstatements, or CSV with a header row. The format pick starts on yourrecordFormat, the row count on your bulk count (large counts confirm first); locale, seed, and date format apply, so a seeded run regenerates the identical dataset. Instant and offline, works with no editor open. - New settings:
insertRandomText.uniquePerCursor,insertRandomText.strictUnique,insertRandomText.seed(reproducible output),insertRandomText.locale,insertRandomText.bulkCount,insertRandomText.outputFormat(plain/jsonArray/quotedList),insertRandomText.dateFormat,insertRandomText.recordFormat,insertRandomText.recordSqlTable, and an opt-in editor context-menu submenu (insertRandomText.contextMenu.enabled). - Settings commands — change any setting from the Command Palette: Insert Random: Set Insert Type / Output Format / Date Format / Record Format / Record SQL Table / Bulk Count / Seed / Locale, Toggle commands for each boolean setting (Wrap With Quotes, Trailing New Line, Unique Value Per Cursor, Strict Unique, Editor Context Menu), and Reset Settings to Defaults.
- New Image URL and Avatar URL types (new Media category) — UI placeholders and Storybook props — plus MongoDB ObjectId under IDs.
- Parameterized types — new Insert Random: Number (Range…), Float (Range…), String (Length…), Date (Between…), Words (Count…), Sentences (Count…), and Paragraphs (Count…) commands ask for a min & max, a length up to 1000, a from/to date (
YYYY-MM-DDor full ISO 8601), or a lorem count up to 100 in validated input boxes, then insert through the normal pipeline (multi-cursor, bulk, quoting, seed all apply). Last-used inputs are remembered and prefilled; Esc cancels cleanly. - Format variants — new Insert Random: UUID (Format…), Password (Options…), and Phone (Format…) commands: pick a UUID rendering (lowercase / UPPERCASE / braced / no dashes / UPPERCASE without dashes), a password length (8–128) with or without symbols, or a phone style (human / national / international) from a Quick Pick. The last pick is remembered and floats to the top next time; same pipeline and clean Esc-cancel as the other parameterized types.
- Templates & patterns — new Insert Random: From Template… and From Pattern… commands expose faker's entire surface through one input box: a mustache template (
{{person.firstName}} <{{internet.email}}>) or a regex-like pattern ([A-Z]{3}-[0-9]{4}, faker's limited regex subset) is re-rendered with fresh values at every cursor and bulk item. Input is proven by test-rendering as you type — a typo shows faker's error plus a working example inline, and nothing inserts until it renders; the last template and pattern are remembered and prefilled. - Your own data — two new settings put your data in the picker:
insertRandomText.templates(named faker templates) andinsertRandomText.customLists(named value lists) appear as Templates and Custom Lists groups at the top of Insert Random: Pick…, and custom lists double as Record… fields (the name becomes the field key). Everything rides the normal pipeline — multi-cursor, bulk, quoting, seed. New Insert Random: Manage Templates / Manage Custom Lists commands jump straight to the settings; malformed entries are skipped safely (logged to the console), and both settings survive Reset Settings to Defaults. - Sequences — new Insert Random: Sequence (Start/Step…) command fills cursors with incrementing values: enter a start and a step (negative counts down) and 1, 2, 3… lands down your column — one counter runs through the cursors and bulk items of an insert, and the next insert restarts at your start. Deliberately not random — the multi-cursor machinery makes numbered columns free.
- Runs in the browser — the extension now ships a web build alongside the desktop one, so it works on vscode.dev and github.dev; the web bundle carries no Node dependencies and generates everything in the browser, still fully offline.
- Restricted Mode & virtual workspaces — the extension now runs in untrusted (Restricted Mode) and virtual workspaces: every value is generated in-process, with no project-file reads and no network calls.
- Six locales — new
insertRandomText.localesetting (en/de/fr/es/pt_BR/ja): names, addresses, words and more come out in the chosen language, across everything — single inserts, records, templates and patterns. Switching applies to the next insert with no reload, seeded runs stay reproducible per locale, and a type without localized data falls back to English. Change it from the palette with Insert Random: Set Locale. - Anonymize in place, type-aware — new Insert Random: Randomize Selection command replaces each selection where it stands: a selection that is an email, UUID, or ISO date/timestamp becomes a fresh realistic fake of the same type (a UUID stays a valid UUID — case and braces preserved; a date stays a real calendar date at its own precision), and everything else gets a same-shape randomization — digits become digits, letters keep their case, punctuation and layout don't move (
3.14→8.77). Works across a multi-selection in one step, honors the seed for reproducible scrubs, and joins the editor right-click submenu. - Date format control — new
insertRandomText.dateFormatsetting (iso/isoDate/isoTime/unixSeconds/unixMillis) renders every timestamp Time type (Date, Past/Future/Recent/Soon Date, Birthdate, Date (Between…)) as a full ISO 8601 timestamp, date only, time only, or Unix seconds/milliseconds — in single inserts and record fields alike (Weekday/Month are unaffected). Change it from the palette with Insert Random: Set Date Format. - Strict unique (opt-in) — new
insertRandomText.strictUniquesetting: duplicates are re-drawn so values meant to differ within one insert really do — bulk values at a cursor, and values across cursors whenuniquePerCursoris on. Honestly bounded: after 25 re-draws a small pool (booleans, weekdays) keeps its duplicate rather than hanging, and seeded runs stay reproducible. Flip it from the palette with Insert Random: Toggle Strict Unique.
- Inserted text no longer stays selected: after a Cursor-mode insert over a selection, the cursor now sits right after the inserted block — same as typing.
- Lorem is now genuinely randomized (previously a fixed substring of one hardcoded string).
- Random string is alphanumeric, so it no longer breaks quote-wrapping.
- Quote-wrapped values are now escaped, so a value containing the active quote character (e.g.
O'Brien) stays a valid string literal. - Removed the global notification-clearing side effect and a duplicate-draw bug in the animal command.
- Removed the
loremSize,hashSize, anddisableNotifssettings — the base Lorem and Hash commands no longer take a configurable length (the Small / Medium / Large variants still cover the sizes), and inserts no longer show notifications, so there is nothing left to disable. - Removed the
quoteStylesetting — quoting is now automatic and language-aware (see Automatic quoting): SQL keeps single quotes, every other language now gets double quotes where the old default wrapped in single, and a savedquoteStylevalue is no longer read. - Existing
extension.insertRandom*andextension.insertLorem*commands continue to work unchanged. - Modernized the build (esbuild bundle; now requires VS Code 1.97+).
- Refreshed the marketplace listing: new icon, new description, added the Testing category, finalized the keyword set, a Sponsor button linking to the README's Support section, and a gallery banner tuned to the icon.
- New demo GIFs — the multi-cursor hero, records → whole datasets, and the smart trio (language-aware quotes, locales, anonymize in place) — replacing the 2020-era demo.
- Expanded the README — clearer step-by-step installation instructions, contributing notes, and a new Support section with donation options.
- Polished the README — tidied the installation steps and links.
- Trailing new line — new
withNewLinesetting appends a newline after the inserted value, so back-to-back inserts land on their own lines.
The first release, as Insert Random Text — insert random text on the fly, powered by Chance.
- 14 insert commands — Insert Random: Animal / Person / Date / Country / Number / String, plus Lorem and Hash in four sizes each (base, Small, Medium, Large).
- Insert type — the
insertTypesetting places the value at the cursor (Cursor) or on line 1 of the file (Top). - Quote wrapping —
withQuotewraps inserted values in quotes;quoteStylechooses single or double. - Length controls —
loremSizeandhashSizeset the generated length for the base Lorem and Hash commands. - Notifications toggle —
disableNotifssilences the insert confirmation notifications.