{"id":13472601,"url":"https://github.com/krasa/StringManipulation","last_synced_at":"2025-03-26T17:30:58.007Z","repository":{"id":15035510,"uuid":"17761386","full_name":"krasa/StringManipulation","owner":"krasa","description":"IntelliJ plugin - https://plugins.jetbrains.com/plugin/2162","archived":false,"fork":false,"pushed_at":"2024-11-27T17:05:38.000Z","size":6165,"stargazers_count":713,"open_issues_count":62,"forks_count":82,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-23T23:13:22.905Z","etag":null,"topics":["intellij","intellij-plugin","java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"hacklabr/cultural","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krasa.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["krasa"]}},"created_at":"2014-03-14T21:45:47.000Z","updated_at":"2025-03-23T22:47:13.000Z","dependencies_parsed_at":"2024-01-16T06:10:01.990Z","dependency_job_id":"604bd524-0265-41da-8b4f-6f2cc9b0df1e","html_url":"https://github.com/krasa/StringManipulation","commit_stats":{"total_commits":548,"total_committers":14,"mean_commits":"39.142857142857146","dds":"0.038321167883211715","last_synced_commit":"cc802959e8c39ad8b8161c6b560658b8c482ee8e"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krasa%2FStringManipulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krasa%2FStringManipulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krasa%2FStringManipulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krasa%2FStringManipulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krasa","download_url":"https://codeload.github.com/krasa/StringManipulation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245702159,"owners_count":20658557,"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":["intellij","intellij-plugin","java"],"created_at":"2024-07-31T16:00:56.140Z","updated_at":"2025-03-26T17:30:56.738Z","avatar_url":"https://github.com/krasa.png","language":"Java","readme":"String\nManipulation [![Donate][badge-paypal-img]][badge-paypal] [![Version](http://phpstorm.espend.de/badge/2162/version)](https://plugins.jetbrains.com/plugin/2162)\n[![Downloads](http://phpstorm.espend.de/badge/2162/downloads)](https://plugins.jetbrains.com/plugin/2162)\n==================\n\nIntelliJ plugin - https://plugins.jetbrains.com/plugin/2162\n\n\n![](images/case.gif)\n\n![](images/alignCaretsSelections.gif)\n\n![](images/alignCarets.gif)\n\n![](images/alignColumns.gif)\n\n\n***    \n\n## Main features\n\nProvides actions for text manipulation:\n\n\u003cp\u003e\n    \u003cp\u003e\n        Switch case:\n        \u003cul\u003e\n            \u003cli\u003eSwitch case (camelCase, kebab-lowercase, KEBAB-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case,\n\t\t\t\t\twords lowercase, First word capitalized, Words Capitalized, PascalCase)\n            \u003c/li\u003e\n               \u003cli\u003eToggle: SCREAMING_SNAKE_CASE / camelCase\u003c/li\u003e\n               \u003cli\u003eToggle: snake_case / camelCase\u003c/li\u003e\n               \u003cli\u003eToggle: kebab-case / snake_case\u003c/li\u003e\n               \u003cli\u003eToggle: kebab-case / camelCase\u003c/li\u003e\n               \u003cli\u003eToggle: dot.case / camelCase\u003c/li\u003e\n               \u003cli\u003eToggle: PascalCase / camelCase\u003c/li\u003e\n               \u003cli\u003eToggle: lowercase words / camelCase\u003c/li\u003e\n               \u003cli\u003eToggle: First word capitalized / camelCase\u003c/li\u003e\n               \u003cli\u003eToggle: Capitalized Words / camelCase\u003c/li\u003e\n               \u003cli\u003eTo camelCase\u003c/li\u003e\n               \u003cli\u003eTo snake_case\u003c/li\u003e\n               \u003cli\u003eTo kebab-case\u003c/li\u003e\n               \u003cli\u003eTo SCREAMING_SNAKE_CASE\u003c/li\u003e\n               \u003cli\u003eTo Capitalized_Snake_Case\u003c/li\u003e\n               \u003cli\u003eCapitalize\u003c/li\u003e\n               \u003cli\u003eTo lower case\u003c/li\u003e\n            \u003cli\u003eTo UPPER CASE\u003c/li\u003e\n            \u003cli\u003eInvert case\u003c/li\u003e\n            \u003cli\u003eTo Spring Boot System Env Variable\u003c/li\u003e\n        \u003c/ul\u003e\n- 'Switch case' action can be customized, or new ones can be added in settings\u003cbr\u003e\n- when nothing is selected, then either nothing or a whole line or a particular element is selected (report an issue if you find something to improve, each file type needs its own implementation to work flawlessly)\u003c/li\u003e\n    \u003c/p\u003e\n    \u003cp\u003e\n        Un/Escape:\n        \u003cul\u003e\n            \u003cli\u003eUn/Escape selected Java text\u003c/li\u003e\n            \u003cli\u003eUn/Escape selected JavaScript text\u003c/li\u003e\n            \u003cli\u003eUn/Escape selected C# text (regular, verbatim, interpolated)\u003c/li\u003e\n            \u003cli\u003eUn/Escape selected HTML text\u003c/li\u003e\n            \u003cli\u003eUn/Escape selected JSON text\u003c/li\u003e\n            \u003cli\u003eUn/Escape selected XML text\u003c/li\u003e\n            \u003cli\u003eUn/Escape selected SQL text\u003c/li\u003e\n            \u003cli\u003eUn/Escape selected PHP text\u003c/li\u003e\n            \u003cli\u003eConvert diacritics (accents) to ASCII\u003c/li\u003e\n            \u003cli\u003eConvert non-ASCII to escaped Unicode\u003c/li\u003e\n            \u003cli\u003eConvert escaped Unicode to String\u003c/li\u003e\n            \u003cli\u003eUnicode normalization (NFD, NFC, NFKC, NFKD)\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/p\u003e\n    \u003cp\u003e\n        Encode/Decode:\n        \u003cul\u003e\n            \u003cli\u003eEncode selected text to MD5 Hex\u003c/li\u003e\n            \u003cli\u003eEncode selected text to SHA-1 Hex\u003c/li\u003e\n            \u003cli\u003eEncode selected text to SHA-256 Hex\u003c/li\u003e\n            \u003cli\u003eEncode selected text to SHA-512 Hex\u003c/li\u003e\n            \u003cli\u003eEncode selected text to SHA3-256 Hex\u003c/li\u003e\n            \u003cli\u003eEncode selected text to SHA3-512 Hex\u003c/li\u003e\n            \u003cli\u003eDe/Encode selected text as URL\u003c/li\u003e\n            \u003cli\u003eDe/Encode selected text to Base64\u003c/li\u003e           \n            \u003cli\u003eDe/Encode selected text to Hex\u003c/li\u003e\n            \u003cli\u003eISO Timestamp to Epoch Milliseconds\u003c/li\u003e\n            \u003cli\u003eEpoch Milliseconds to ISO Timestamp\u003c/li\u003e\n    \u003c/ul\u003e\n    \u003c/p\u003e\n    \u003cp\u003e\n        Increment/Decrement:\n        \u003cul\u003e\n            \u003cli\u003eIncrement/decrement all numbers found.\u003c/li\u003e\n            \u003cli\u003eDuplicate selection and increment/decrement all numbers found.\u003c/li\u003e\t\n            \u003cli\u003eCreate sequence - Keep first number, replace all other by incrementing\u003c/li\u003e\t\n            \u003cli\u003eIncrement duplicate numbers\u003c/li\u003e\t\n        \u003c/ul\u003e\n    \u003c/p\u003e\n    \u003cp\u003e\n        Sort with natural order or Collator:\n        \u003cul\u003e\n            \u003cli\u003eReversing order of lines\u003c/li\u003e\n            \u003cli\u003eShuffle lines\u003c/li\u003e\n            \u003cli\u003eSort case-sensitive A-z\u003c/li\u003e\n            \u003cli\u003eSort case-sensitive z-A\u003c/li\u003e\n            \u003cli\u003eSort case-insensitive A-Z\u003c/li\u003e\n            \u003cli\u003eSort case-insensitive Z-A\u003c/li\u003e\n            \u003cli\u003eSort line length asc., desc.\u003c/li\u003e\n            \u003cli\u003eSort hexadecimally\u003c/li\u003e\n            \u003cli\u003eSort lines by subselection - only one selection/caret per line is handled\u003c/li\u003e\n            \u003cli\u003eSort tokens (delimited text)\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"https://github.com/krasa/StringManipulation/wiki/Hierarchical-sort/\"\u003eHierarchical sort\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003eShuffle Characters\u003c/li\u003e\n            \u003cli\u003eJSON sort\u003c/li\u003e\n       \u003c/ul\u003e\n    \u003c/p\u003e\n    \u003cp\u003e\n        Align:\n        \u003cul\u003e\n            \u003cli\u003eAlign carets/selections into a vertical line by inserting spaces\u003c/li\u003e\n            \u003cli\u003eFormat selected text to columns/table by a chosen separator/delimiter and sort by columns\u003c/li\u003e\n            \u003cli\u003eAlign text to left/center/right\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/p\u003e\n    \u003cp\u003e\n        Filter/Remove/Trim/Convert...:\n        \u003cul\u003e\n            \u003cli\u003eGrep\u003c/li\u003e\n            \u003cli\u003eInverted Grep\u003c/li\u003e\n            \u003cli\u003eGroup by Grep - matched lines will be separated from not matched\u003c/li\u003e\n            \u003cli\u003eTrim\u003c/li\u003e\n            \u003cli\u003eTrim Trailing\u003c/li\u003e\n            \u003cli\u003eTrim Leading\u003c/li\u003e\n            \u003cli\u003eReplace whitespaces with a single space char\u003c/li\u003e\n            \u003cli\u003eRemove all spaces\u003c/li\u003e\n            \u003cli\u003eRemove duplicates - supports multicaret subselection\u003c/li\u003e\n            \u003cli\u003eKeep only duplicate lines\u003c/li\u003e\n            \u003cli\u003eRemove empty lines\u003c/li\u003e\n            \u003cli\u003eRemove consecutive empty lines\u003c/li\u003e\n            \u003cli\u003eRemove all newlines\u003c/li\u003e\n            \u003cli\u003eMinify JSON\u003c/li\u003e\n            \u003cli\u003eConvert Between JSON and YAML\u003c/li\u003e\n   \u003c/ul\u003e\n    \u003c/p\u003e\n    \u003cp\u003e\n        Other:\n        \u003cul\u003e\n            \u003cli\u003eReverse Letters\u003c/li\u003e\n            \u003cli\u003eSwap Words\u003c/li\u003e\n            \u003cli\u003eSwap Characters/Selections/Lines/Tokens\u003c/li\u003e\n            \u003cli\u003eWrap or shift double quotes to single quotes to backticks\u003c/li\u003e\n            \u003cli\u003eSwap between double quotes and single quotes\u003c/li\u003e\n            \u003cli\u003eStraighten/Educate quotes\u003c/li\u003e\n            \u003cli\u003eSwitch file path separators: Windows\u0026lt;-\u0026gt;UNIX\u003c/li\u003e\n            \u003cli\u003eSelect All Occurrences For All Carets\u003c/li\u003e\n            \u003cli\u003eDuplicate Line or Selection And Replace\u003c/li\u003e\n            \u003cli\u003eExtend Selection in Different \"CamelHumps\" Mode\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/p\u003e\n    \u003cp\u003eActions are available under Edit menu, or via the shortcut \"alt M\" and \"alt shift M\".\n\t\t\t\u003cbr\u003eYou can setup your own shortcuts for better usability.\n\t\t\t\u003cbr\u003ePopup can be customized in File | Settings | Appearance \u0026 Behavior | Menus and Toolbars.\n    \u003c/p\u003e\n\u003c/p\u003e\n\n------\n\nPrivacy Notice: No personal data is collected and no source code is transmitted to any server\n\n------\n![YourKit-Logo](https://www.yourkit.com/images/yklogo.png)\n\nYourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator\nof [YourKit Java Profiler](https://www.yourkit.com/java/profiler/)\nand [YourKit .NET Profiler](https://www.yourkit.com/.net/profiler/), innovative and intelligent tools for profiling Java\nand .NET applications.\n\n\n[badge-paypal-img]:       https://img.shields.io/badge/donate-paypal-green.svg\n\n[badge-paypal]:           https://www.paypal.me/VojtechKrasa\n","funding_links":["https://github.com/sponsors/krasa","https://www.paypal.me/VojtechKrasa"],"categories":["Java"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrasa%2FStringManipulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrasa%2FStringManipulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrasa%2FStringManipulation/lists"}