{"id":305656,"xmlId":"String Manipulation","name":"String Manipulation","description":"\n       Case switching, sorting, filtering, incrementing, aligning to columns, grepping, escaping, encoding...<br><br>\n        Sponsored by:<br>\n<p><a title=\"Try CodeStream\" href=\"https://sponsorlink.codestream.com/?utm_source=jbmarket&amp;utm_campaign=vojta_string&amp;utm_medium=banner\"><img src=\"https://alt-images.codestream.com/codestream_logo_vojta_string.png\"></a><br>\nManage pull requests and conduct code reviews in your IDE with full source-tree context. Comment on any line, not just the diffs. Use jump-to-definition, your favorite keybindings, and code intelligence with more of your workflow.<br>\n<a title=\"Try CodeStream\" href=\"https://sponsorlink.codestream.com/?utm_source=jbmarket&amp;utm_campaign=vojta_string&amp;utm_medium=banner\">Learn More</a></p>\n\n<br>\n      <p>\n        Features:\n        </p><p>\n            Case switching:\n\t\t\t</p><ul>\n\t\t\t\t<li>Switch 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\t\t\t\t</li>\n                <li>Toggle: SCREAMING_SNAKE_CASE / camelCase</li>\n                <li>Toggle: snake_case / camelCase</li>\n                <li>Toggle: kebab-case / snake_case</li>\n                <li>Toggle: kebab-case / camelCase</li>\n                <li>Toggle: dot.case / camelCase</li>\n                <li>Toggle: PascalCase / camelCase</li>\n                <li>Toggle: lowercase words / camelCase</li>\n                <li>Toggle: First word capitalized / camelCase</li>\n                <li>Toggle: Capitalized Words / camelCase</li>\n                <li>To camelCase</li>\n                <li>To snake_case</li>\n                <li>To kebab-case</li>\n                <li>To PascalCase</li>\n                <li>To SCREAMING_SNAKE_CASE</li>\n                <li>To Capitalized_Snake_Case</li>\n                <li>Capitalize</li>\n                <li>To lower case</li>\n                <li>To UPPER CASE</li>\n                <li>Invert case</li>\n                <li>To Spring Boot System Env Variable</li>\n\t\t\t</ul>\n\t\t\t-'Switch case' action can be customized, or new ones can be added in settings<br>\n            -when nothing is selected, then either nothing or 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)\n\t\t<p></p>\n\t\t<p>\n            Un/Escape:\n\t\t\t</p><ul>\n\t\t\t\t<li>Un/Escape selected Java text</li>\n\t\t\t\t<li>Un/Escape selected JavaScript text</li>\n                <li>Un/Escape selected C# text (regular, verbatim, interpolated)</li>\n\t\t\t\t<li>Un/Escape selected HTML text</li>\n\t\t\t\t<li>Un/Escape selected JSON text</li>\n\t\t\t\t<li>Un/Escape selected XML text</li>\n\t\t\t\t<li>Un/Escape selected SQL text</li>\n\t\t\t\t<li>Un/Escape selected PHP text</li>\n                <li>Convert diacritics (accents) to ASCII</li>\n                <li>Convert non-ASCII to escaped Unicode</li>\n                <li>Convert escaped Unicode to String</li>\n                <li>Unicode normalization (NFD, NFC, NFKC, NFKD)</li>\n\t\t\t</ul>\n\t\t<p></p>\n\t\t<p>\n            Encode/Decode:\n\t\t\t</p><ul>\n\t\t\t\t<li>Encode selected text to MD5 Hex</li>\n\t\t\t\t<li>Encode selected text to SHA-1 Hex</li>\n\t\t\t\t<li>Encode selected text to SHA-256 Hex</li>\n\t\t\t\t<li>Encode selected text to SHA-512 Hex</li>\n\t\t\t\t<li>Encode selected text to SHA3-256 Hex</li>\n\t\t\t\t<li>Encode selected text to SHA3-512 Hex</li>\n\t\t\t\t<li>De/Encode selected text as URL</li>\n\t\t\t\t<li>De/Encode selected text to Base64 (+ zip/deflate)</li>\n\t\t\t\t<li>De/Encode selected text to Hex</li>\n                <li>ISO Timestamp to Epoch Milliseconds</li>\n                <li>Epoch Milliseconds to ISO Timestamp</li>\n\t\t\t</ul>\n\t\t<p></p>\n\t\t<p>\n            Increment/Decrement:\n\t\t\t</p><ul>\n\t\t\t\t<li>Increment/decrement all numbers found.</li>\n\t\t\t\t<li>Duplicate selection and increment/decrement all numbers found.</li>\n\t\t\t\t<li>Create sequence - Keep first number, replace all other by incrementing</li>\n\t\t\t\t<li>Increment duplicate numbers</li>\n            </ul>\n\t\t<p></p>\n\t\t<p>\n            Sort with natural order or Collator:\n\t\t\t</p><ul>\n\t\t\t\t<li>Reversing order of lines</li>\n\t\t\t\t<li>Shuffle lines</li>\n\t\t\t\t<li>Sort case-sensitive A-z</li>\n\t\t\t\t<li>Sort case-sensitive z-A</li>\n\t\t\t\t<li>Sort case-insensitive A-Z</li>\n\t\t\t\t<li>Sort case-insensitive Z-A</li>\n\t\t\t\t<li>Sort line length asc., desc.</li>\n\t\t\t\t<li>Sort hexadecimally</li>\n\t\t\t\t<li>Sort lines by subselection - only one selection/caret per line is handled</li>\n\t\t\t\t<li>Sort tokens (delimited text)</li>\n\t\t\t\t<li>Shuffle Characters</li>\n\t\t\t\t<li>JSON sort</li>\n                <li><a href=\"https://github.com/krasa/StringManipulation/wiki/Hierarchical-sort/\">Hierarchical sort</a></li>\n\t\t\t</ul>\n\t\t<p></p>\n\t\t<p>\n            Align:\n\t\t\t</p><ul>\n\t\t\t\t<li>Align carets/selections into a vertical line by inserting spaces</li>\n\t\t\t\t<li>Format selected text to columns/table by a chosen separator/delimiter and sort by columns</li>\n\t\t\t\t<li>Align text to left/center/right</li>\n\t\t\t</ul>\n\t\t<p></p>\n\t\t<p>\n            Filter/Remove/Trim/Minify/Convert...:\n\t\t\t</p><ul>\n\t\t\t\t<li>Grep</li>\n\t\t\t\t<li>Inverted Grep</li>\n\t\t\t\t<li>Group by Grep - matched lines will be separated from not matched</li>\n\t\t\t\t<li>Trim</li>\n\t\t\t\t<li>Replace whitespaces with a single space char</li>\n\t\t\t\t<li>Remove all spaces</li>\n\t\t\t\t<li>Remove duplicates (supports multicaret subselection)</li>\n\t\t\t\t<li>Keep only duplicate lines</li>\n\t\t\t\t<li>Group and Count</li>\n\t\t\t\t<li>Remove empty lines</li>\n\t\t\t\t<li>Remove consecutive empty lines</li>\n\t\t\t\t<li>Remove all newlines</li>\n\t\t\t\t<li>Convert Between Char and Int</li>\n\t\t\t\t<li>Minify JSON</li>\n\t\t\t\t<li>Minify JavaScript</li>\n\t\t\t\t<li>Convert Between JSON and YAML</li>\n\t\t\t</ul>\n\t\t<p></p>\n\t\t<p>\n            Other:\n\t\t\t</p><ul>\n\t\t\t\t<li>Reverse Letters</li>\n\t\t\t\t<li>Swap Words</li>\n\t\t\t\t<li>Swap Characters/Selections/Lines/Tokens</li>\n\t\t\t\t<li>Wrap or shift double quotes to single quotes to backticks</li>\n\t\t\t\t<li>Swap between double quotes and single quotes</li>\n\t\t\t\t<li>Switch file path separators: Windows&lt;-&gt;UNIX</li>\n             <br>\n                <li>Select All Occurrences For All Carets</li>\n                <li>Extend Selection in Different \"CamelHumps\" Mode</li>\n                <li>Multi Replace</li>\n                <li>Duplicate and Multi Replace</li>\n                <li>Paste - camelCased</li>\n                <li>Paste - and Keep Selections</li>\n                <li>Create Border</li>\n                </ul>\n\t\t<p></p>\n\t\t<p>Actions are available under Edit menu, or via the shortcut \"alt M\" and \"alt shift M\".\n\t\t\t<br>You can setup your own shortcuts for better usability.\n\t\t\t<br>Popup can be customized in File | Settings | Appearance &amp; Behavior | Menus and Toolbars.\n\t\t</p>\n        <br> <br>\n        <a href=\"https://www.paypal.me/VojtechKrasa\">Donations</a> | <a href=\"https://github.com/krasa/StringManipulation/\">GitHub</a> | <a href=\"https://github.com/krasa/StringManipulation/issues\">Issues</a>\n\t<p></p>\n       \n    ","tags":["Code Editing"],"vendor":"Maintained by: Vojtech Krasa; original author: Olivier Smedile","version":"9.7.1","notes":"\n        \n\t<p>\n\t    </p><div>\n\t        <h4>Version 9.7.0</h4>\n\t        <ul>\n              <li>Multi replace improvements</li>\n              <li>Added: Remove consecutive empty lines</li>\n              <li>Fixed exception on EDT RepeatAction#update@EditorPopup</li>\n              <li>Added: Chinese localization</li>\n          </ul>\n\t    <div>\n\t    <div>\n\t        <h4>Version 9.6.0</h4>\n\t        <ul>\n              <li>JSON Sort action - made case sensitive, to prevent merging keys with different casing</li>\n              <li>Compatibility with IJ 2023</li>\n          </ul>\n\t    <div>\n\t    <div>\n\t        <h4>Version 9.5.1</h4>\n\t        <ul>\n              <li>Compatibility with IJ 2022.3</li>\n          </ul>\n\t    <div>\n\t        <h4>Version 9.5</h4>\n\t        <ul>\n              <li>Added: To kebab-case</li>\n              <li>Improved: Remove Duplicates - added support for multicaret subselections</li>\n          </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 9.4</h4>\n\t        <ul>\n              <li>Improved Align/Sort Lines by Columns UI</li>\n          </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 9.3</h4>\n\t        <ul>\n              <li>Fixed missing underscores in popups for IJ 2021+</li>\n          </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 9.2</h4>\n\t        <ul>\n              <li>Added: Group and Count</li>\n          </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 9.1</h4>\n\t        <ul>\n              <li>Toolwindow hidden by default</li>\n          </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 9.0</h4>\n\t        <ul>\n              <li>Improved switching for multicarets for: snake_case/camelCase and others</li>\n          </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 8.27</h4>\n\t        <ul>\n              <li>Improved: Create Border...</li>\n              <li>Improved: Paste - camelCased</li>\n          </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 8.26</h4>\n\t        <ul>\n                <li>Added: Paste - camelCased</li>\n                <li>Added: Paste - and Keep Selections</li>\n                <li>Added: Create Border...</li>\n                <li>Changed: specific sort actions no longer use a dialog</li>\n                <li>New settings: Normalize case switched text for (camel/pascal/kebab/dot/snake case)- apply 'Convert Diacritics (Accents) to ASCII'</li>\n                <li>New settings: 'Repeat Last Action' - use last settings without a dialog (hold ctrl/alt for showing the dialog anyway)</li>\n            </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 8.25</h4>\n\t        <ul>\n                <li>Fixed: Extend Selection in Different \"CamelHumps\" Mode</li>\n                <li>Added: Misc / Paste as PHP Array</li>\n                <li>Added: JSON sort</li>\n                <li>Added Intention: C++ conversion to/from raw string literal</li>\n                <li>Hierarchical sort - added closing group regex, to be able to sort JSON like formats</li>\n            </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 8.24</h4>\n\t        <ul>\n                <li>Support for Chinese localization <a href=\"https://github.com/krasa/StringManipulation/issues/162\">#162</a></li>\n                <li>Added: Extend Selection in Different \"CamelHumps\" Mode</li>\n                <li>Added: Shortcuts...</li>\n                <li>Added: Multi Replace - with a toolwindow for configuration of multiple replacements</li>\n                <li>Added: Duplicate and Multi Replace</li>\n            </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 8.23</h4>\n\t        <ul>\n                <li>Preview limits removed, computing on background</li>\n                <li>Added To Capitalized_Snake_Case</li>\n                <li>Added Action 'Select All Occurrences For All Carets' - <a href=\"https://youtrack.jetbrains.com/issue/IDEA-283466\">IDEA-283466</a> - bind at Keymap</li>\n            </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 8.22</h4>\n\t        <ul>\n                <li>Added: Quote/Unquote action</li>\n                <li>Swap words - edge case fix</li>\n            </ul>\n\t    </div>\n\t    <div>\n\t        <h4>Version 8.21</h4>\n\t        <ul>\n                <li>Hierarchical sort - added separator regex setting</li>\n            </ul>\n\t    </div>\n\t<p></p>\n    \n    </div></div></div></div></div>","dependencies":["com.intellij.modules.platform"],"optionalDependencies":["com.intellij.modules.java","com.intellij.properties"],"since":"222.3345.118","size":2007447,"url":"https://github.com/krasa/StringManipulation","sourceCodeUrl":"https://github.com/krasa/StringManipulation"}