{"id":16103744,"url":"https://github.com/fwdekker/intellij-randomness","last_synced_at":"2025-03-16T08:32:34.707Z","repository":{"id":22600997,"uuid":"96791256","full_name":"FWDekker/intellij-randomness","owner":"FWDekker","description":"IntelliJ plugin for inserting random numbers, UUIDs, names, IP addresses, and much more","archived":false,"fork":false,"pushed_at":"2025-02-15T18:33:50.000Z","size":22110,"stargazers_count":47,"open_issues_count":13,"forks_count":7,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-09T02:07:16.979Z","etag":null,"topics":["idea","intellij","intellij-platform","intellij-plugin","jetbrains","random","random-generation","random-number-generator"],"latest_commit_sha":null,"homepage":"https://plugins.jetbrains.com/plugin/9836-randomness","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FWDekker.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-10T15:11:23.000Z","updated_at":"2025-03-05T09:34:20.000Z","dependencies_parsed_at":"2024-01-03T15:45:45.420Z","dependency_job_id":"a6818de2-5edd-44c5-a131-4f00b0de808b","html_url":"https://github.com/FWDekker/intellij-randomness","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FWDekker%2Fintellij-randomness","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FWDekker%2Fintellij-randomness/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FWDekker%2Fintellij-randomness/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FWDekker%2Fintellij-randomness/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FWDekker","download_url":"https://codeload.github.com/FWDekker/intellij-randomness/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243806071,"owners_count":20350775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["idea","intellij","intellij-platform","intellij-plugin","jetbrains","random","random-generation","random-number-generator"],"created_at":"2024-10-09T18:58:35.856Z","updated_at":"2025-03-16T08:32:34.700Z","avatar_url":"https://github.com/FWDekker.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg src=\".github/img/logo.png\" width=\"150\"/\u003e\n    \u003cbr /\u003e\n    Randomness\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://plugins.jetbrains.com/plugin/9836-randomness\"\u003e\u003cimg src=\"https://img.shields.io/jetbrains/plugin/d/9836?style=for-the-badge\" alt=\"Downloads\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://plugins.jetbrains.com/plugin/9836-randomness/reviews\"\u003e\u003cimg src=\"https://img.shields.io/jetbrains/plugin/r/rating/9836?style=for-the-badge\" alt=\"Rating\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://plugins.jetbrains.com/plugin/9836-randomness\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/FWDekker/intellij-randomness?style=for-the-badge\" alt=\"Release\" /\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/FWDekker/intellij-randomness/actions/workflows/ci.yml?query=branch%3Amain\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/FWDekker/intellij-randomness/ci.yml?branch=main\u0026style=for-the-badge\" alt=\"CI status\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://app.codecov.io/gh/FWDekker/intellij-randomness\"\u003e\u003cimg src=\"https://img.shields.io/codecov/c/github/FWDekker/intellij-randomness?style=for-the-badge\" alt=\"Coverage\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://fwdekker.github.io/intellij-randomness/\"\u003e\u003cimg src=\"https://img.shields.io/badge/kdoc-ready-blue?style=for-the-badge\" alt=\"Documentation\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nRather than going to [random.org](https://www.random.org/) or making up your own random data, you can now insert random numbers, UUIDs, names, IP addresses, and much more using an IntelliJ action!\n\nThis plugin is also available on the [plugin repository](https://plugins.jetbrains.com/plugin/9836-randomness)!\n\n\n## 📖 How to use\nTo insert random data, press \u003ckbd\u003eAlt + R\u003c/kbd\u003e (\u003ckbd\u003eor ⌥R\u003c/kbd\u003e) to open the list of available templates and choose one that suits your task.\nBy default, a different value is inserted at each caret.\n\nYou can modify this behavior by holding a key while selecting the type of data to insert:\n* **Array**: Hold \u003ckbd\u003eShift\u003c/kbd\u003e to insert a customisable array of values.\n* **Repeat**: Hold \u003ckbd\u003eAlt\u003c/kbd\u003e (or \u003ckbd\u003e⌥\u003c/kbd\u003e) to insert the same value at each caret.\n* **Settings**: Hold \u003ckbd\u003eCtrl\u003c/kbd\u003e to open the settings of that data type.\n\nYou can hold multiple modifier keys to combine their effects.\n\nRandomness can also be found in the main menu under \u003ckbd\u003eTools\u003c/kbd\u003e or in \u003ckbd\u003eCode \u003e Generate\u003c/kbd\u003e.\n\n\u003cimg width=\"450px\" src=\".github/img/insertion-sample.gif\" alt=\"Animation of how to insert data\" /\u003e\n\n## ✨ Features\n* 🕸 **Data Types**\u003cbr /\u003e\n  There are six basic data types that can be inserted and customised:\n    1. **Integers**, such as `7,826,922`, from a custom range, in any base from binary to hexatrigesimal.\n    2. **Decimals**, such as `8,816,573.10`, using customisable separators.\n    3. **Strings**, such as `\"PaQDQqSBEH\"`, with support for reverse regex.\n    4. **Words**, such as `\"Bridge\"`, with predefined or custom word lists.\n    5. **UUIDs**, such as `0caa7b28-fe58-4ba6-a25a-9e5beaaf8f4b`, with or without dashes.\n    6. **Date-times**, such as `2022-02-03 19:03`, or any other format you want.\n* 🧬 **Templates**\u003cbr /\u003e\n  For complex kinds of data, you can use templates.\n  A template is a list of data types that should be concatenated to create random data.\n  Insert **phone numbers**, **email addresses**, **URLs**, **IP addresses**, or any **custom data type** you can think of.\n  Of course, Randomness comes bundled with a whole array of predefined templates to help you out.\n  If needed, you can reuse a template by including it in another template using a **reference**.\n\n  \u003cimg width=\"450px\" src=\".github/img/configuration-sample.gif\" alt=\"Animation of how to configure templates\" /\u003e\n* 🗃️ **Arrays**\u003cbr /\u003e\n  Need a lot of data?\n  Insert an **entire array** of any template you want.\n  For example, an array of integers might look like `[978, 881, 118, 286, 288]`.\n  You can customise the brackets, delimiter, and number of elements to your liking every time you insert an array, because no two arrays are the same.\n\n  \u003cimg width=\"450px\" src=\".github/img/array-insertion-sample.gif\" alt=\"Animation of how to insert arrays\" /\u003e\n* ⌨️ **Shortcuts**\u003cbr /\u003e\n  Instead of using up all your shortcuts, Randomness only uses the \u003ckbd\u003eAlt + R\u003c/kbd\u003e (or \u003ckbd\u003e⌥R\u003c/kbd\u003e) shortcut by default.\n  However, to **streamline your workflow**, you can assign shortcuts to any template under your IDE's \u003ckbd\u003eKeymap\u003c/kbd\u003e settings.\n\n  \u003cimg width=\"450px\" src=\".github/img/shortcuts.png\" alt=\"Shortcut settings for Randomness\" /\u003e\n* 💨 **Fast insertion**\u003cbr /\u003e\n  The insertion popup (shown when you press \u003ckbd\u003eAlt + R\u003c/kbd\u003e (or \u003ckbd\u003e⌥R\u003c/kbd\u003e) by default) is **searchable**:\n  Just type something in the popup and relevant templates will be filtered out.\n  Or use the **hotkeys** that are assigned to the first 10 templates in the list:\n  Press any digit to directly insert the corresponding template.\n  **Reorder templates** in the settings menu to change which template uses which hotkey.\n\n  \u003cimg src=\".github/img/fast-insertion.png\" alt=\"Insertion popup\" /\u003e\n* 👀 **Previews**\u003cbr /\u003e\n  To **help you decide** what settings to choose, a preview of the template is shown while you're editing.\n\n  \u003cimg width=\"450px\" src=\".github/img/previews.gif\" alt=\"Preview window in Randomness\" /\u003e\n\n\n## 💻 Development\nThis section contains instructions in case you want to build the plugin from source or want to help with development.\nPlease also check the [contribution guidelines](.github/CONTRIBUTING.md).\n\n### 🔨 Build/run\n```bash\n$ gradlew runIde                       # Open a sandbox IntelliJ instance running the plugin\n$ gradlew buildPlugin                  # Build an installable zip of the plugin\n$ gradlew buildPlugin -Pbuild.hotswap  # Same as above, but allow hot-swapping the plugin during development\n$ gradlew signPlugin                   # Sign built plugin\n```\n\nSigning the plugin requires specific environment variables to be set to refer to appropriate key files.\nSee [Plugin Signing](https://plugins.jetbrains.com/docs/intellij/plugin-signing.html) for more information.\n\n### 🧪 Quality assurance\n```bash\n$ gradlew test                    # Run tests (and collect coverage)\n$ gradlew test --tests X          # Run tests in class X (package name optional)\n$ gradlew test -Pkotest.tags=\"X\"  # Run tests matching tag(s) X (also supports not (!), and (\u0026), or (|))\n$ gradlew koverHtmlReport         # Create HTML coverage report for previous test run\n$ gradlew detekt                  # Run static analysis\n$ gradlew check                   # Run all tests and static analysis\n$ gradlew verifyPlugin            # Check for compatibility issues\n```\n\n#### 🏷️ Tagging and filtering tests\n[Kotest tests can be tagged](https://kotest.io/docs/framework/tags.html) to allow selectively running tests.\nSimply run Gradle with argument `-Pkotest.tags=\"X\"` to run only tests tagged with tag `X`.\nThe tags for Randomness are statically defined in [`Tags`](https://github.com/FWDekker/intellij-randomness/blob/main/src/test/kotlin/com/fwdekker/randomness/testhelpers/Tags.kt).\nIf you want to debug a test, you can tag it with the `Focus` tag to ensure only those tests run.\nAlternatively, prefix the description with the string `f:`.\nMake sure you remove the tag afterwards!\n\nYou can tag an entire test class by adding `tags(...)` to the class definition, or tag an individual test `context` by writing `context(\"foo\").config(tags = setOf(...)) {`.\nDue to limitations in Kotest, you can only tag the outer level of `context`s; you cannot tag a nested `context` or an individual `test`.\nThis is also true for prefixing with `f:`.\n\n### 📚 Documentation\n```bash\n$ gradlew dokkaHtml                        # Generate documentation\n$ gradlew dokkaHtml -Pdokka.pagesDir=/foo  # Generate linked documentation\n```\n\nWhenever a release is created on GitHub, [GitHub Actions generates new documentation](https://github.com/FWDekker/intellij-randomness/actions/workflows/cd.yml), after which this is deployed to [GitHub Pages](https://fwdekker.github.io/intellij-randomness/).\n\nDocumentation pages link to each other using a version dropdown menu.\nSimply running `gradlew dokkaHtml` does not generate a dropdown menu, because Dokka is not automatically aware of all previous versions.\nTo link the versions together, check out the `gh-branch` of this repository in a separate directory, and point `dokka.pagesDir` to that directory.\n\n### 🖼 Icons\nThe icons used by the plugin are found in [the file `icons.sketch`](.github/img/icons.sketch).\nYou can open this file with [Sketch](https://www.sketch.com/) (macOS), [Lunacy](https://icons8.com/lunacy) (Windows), or [Figma](https://github.com/Figma-Linux/figma-linux) (Linux).\n\n\n## 🙏 Acknowledgements\nI want to thank everyone who contributed something to Randomness, no matter the size of that contribution.\n\nIn chronological order of contribution:\n* Thanks to [Casper Boone](https://github.com/casperboone) for [reporting a bug](https://github.com/FWDekker/intellij-randomness/issues/25) and for [suggesting emoji support](https://github.com/FWDekker/intellij-randomness/issues/192)!\n* Thanks to [Victor Tyazhelnikov](https://github.com/zenwarr) for [suggesting the array data type](https://github.com/FWDekker/intellij-randomness/issues/54)!\n* Thanks to [Georgios Andreadis](https://github.com/gandreadis) for the [original logo](https://github.com/FWDekker/intellij-randomness/pull/86)!\n* Thanks to [Oleksii](https://github.com/ok3141) for [suggesting the UUID data type](https://github.com/FWDekker/intellij-randomness/issues/88) and for [suggesting the hex symbol set](https://github.com/FWDekker/intellij-randomness/issues/89)!\n* Thanks to [Meilina Reksoprodjo](https://github.com/meilinar) for help with macOS user testing!\n* Thanks to [Wouter van Vliet](https://github.com/woutervanvliet) for [helping me clarify the \"repeat\" action](https://github.com/FWDekker/intellij-randomness/issues/307)!\n* Thanks to [Paweł Lipski](https://github.com/PawelLipski) for [reporting two](https://github.com/FWDekker/intellij-randomness/issues/328) [bugs in the verification script](https://github.com/FWDekker/intellij-randomness/issues/332)!\n* Thanks to [opticyclic](https://github.com/opticyclic) for [suggesting two](https://github.com/FWDekker/intellij-randomness/issues/338) [improvements to the verification script](https://github.com/FWDekker/intellij-randomness/issues/339)!\n* Thanks to [Niraj Jadhav](https://github.com/niraj-toad) for [reporting a bug and demonstrating that the error reporter works](https://github.com/FWDekker/intellij-randomness/issues/343)!\n* Thanks to [jrborases](https://github.com/jrborases) for [suggesting a configurable popup](https://github.com/FWDekker/intellij-randomness/issues/305#issuecomment-661530711)!\n* Thanks to [Alex Pernot](https://github.com/AlexPernot) for [participating in the data type discussion](https://github.com/FWDekker/intellij-randomness/issues/305#issuecomment-662499058)!\n* Thanks to [solo](https://github.com/solonovamax) for [his contributions](https://github.com/FWDekker/intellij-randomness/issues/305#issuecomment-804415489) [to the data type discussion](https://github.com/FWDekker/intellij-randomness/issues/363#issuecomment-804976008) [in several places](https://github.com/FWDekker/intellij-randomness/issues/365#issuecomment-805052007), [suggesting the removal of the integer range limit](https://github.com/FWDekker/intellij-randomness/issues/367), and [suggesting the byte preset](https://github.com/FWDekker/intellij-randomness/issues/368)!\n* Thanks to [Martin Kaspar van Laak](https://github.com/MartinKvL) for [reporting that symbol sets didn't get saved](https://github.com/FWDekker/intellij-randomness/issues/382)!\n* Thanks to [Aleksey Bobyr](https://github.com/Alexsey) for [reporting a critical UI bug in WebStorm EAP](https://github.com/FWDekker/intellij-randomness/issues/418)!\n* Thanks to [Lukas](https://github.com/LukasAppleFan) for [helping me find a bug in IntelliJ](https://github.com/FWDekker/intellij-randomness/issues/421)!\n* Thanks to [Pascal](https://github.com/theMunichDev) for [reporting a bug with custom shortcuts](https://github.com/FWDekker/intellij-randomness/issues/423)!\n* Thanks to [Rishi Maharaj](https://github.com/rshmhrj) for [suggesting to add prefix and postfix options to strings](https://github.com/FWDekker/intellij-randomness/issues/431)!\n* Thanks to [Christian Baune](https://github.com/programaths) for [reporting recurring issues](https://github.com/FWDekker/intellij-randomness/issues/441) [with load](https://github.com/FWDekker/intellij-randomness/issues/442) [corrupted settings](https://github.com/FWDekker/intellij-randomness/issues/444)!\n* Thanks to [Vladislav Rassokhin](https://github.com/VladRassokhin) for [reporting an issue with slow actions during indexing](https://github.com/FWDekker/intellij-randomness/issues/445)!\n* Thanks to [Luc Everse](https://github.com/cmpsb) for [suggesting generating non-matching strings](https://github.com/FWDekker/intellij-randomness/issues/447)!\n* Thanks to [ForNeVeR](https://github.com/ForNeVeR) for [reporting a compatibility issue with the IntelliJ EAP](https://github.com/FWDekker/intellij-randomness/issues/459)!\n* Thanks to [Vitaly Provodin](https://github.com/vprovodin) for [also reporting that compatibility issue](https://github.com/FWDekker/intellij-randomness/issues/460)!\n* Thanks to [Juraj Jurčo](https://github.com/JiangHongTiao) for [suggesting adding support for newer UUID versions](https://github.com/FWDekker/intellij-randomness/issues/513)!\n* Thanks to [iKa1ns](https://github.com/iKa1ns) for [reporting a bug with resetting settings](https://github.com/FWDekker/intellij-randomness/issues/549)!\n* Thanks to [everyone who clicked \"see details and submit report\" and sent an anonymous bug report](https://github.com/FWDekkerBot/intellij-randomness-issues/issues)!\n\nIf I should add, remove, or change anything here, just open an issue or email me!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffwdekker%2Fintellij-randomness","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffwdekker%2Fintellij-randomness","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffwdekker%2Fintellij-randomness/lists"}