Missing In Actions

Compatible with: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion GoLand DataGrip Rider MPS Android Studio
Mar 10, 2018
2 692
Missing In Actions

Adds missing editor actions for end of word navigation but that is just the beginning:

  • Automatic Selection stack, stores last 5 selections by default. Recall last selection or any previous selection from a list.
  • Enable Auto Indent Lines after move line/selection up or down actions to have lines indented automatically.
  • Use Smart Paste to eliminate case change and prefix edits when pasting identifiers. MIA will match case and style of identifier at destination when you paste. Undo to get results before MIA adjusted them.

    Copy myColumnData and paste it over DEFAULT_VALUE to get COLUMN_DATA, reverse the order and get myDefaultValue.

    Works when pasting at the beginning, end and middle of identifiers.

    Supports: camelCase, PascalCase, snake_case, SCREAMING_SNAKE_CASE, dash-case, dot.case, slash/case

    Default prefixes: my, our, is, get, set to allow pasting over member fields, static fields, getters and setters.

  • Enable Auto Line Selections and select full lines without loosing time or column position by moving the caret to the start of line when selecting or pasting. Choose whether you want to paste full line selections: above or below the current line regardless of the caret’s column.
  • Toggle between selection and multiple carets on selected lines to save time re-selecting the same text again.
  • Filter multiple carets saves you time when creating multiple carets by removing carets on blank or comment lines so you can edit only code lines.
  • Enhanced Paste from History dialog:
    • combine, arrange and reverse the order of content entries
    • combine multiple clipboard contents with caret information intact
    • paste and re-create multiple carets from information already stored on the clipboard
    • duplicate line/block for each caret in the clipboard content and put a caret on the first line of the block, ready for multi-caret select and paste
    • see caret information stored on the clipboard for each content entry
  • Many more options and adjustments to make multiple caret text editing fast, efficient and easy.

Plugin website: Missing In Actions GitHub Repo

Bug tracking & feature requests: Missing In Actions GitHub Issues

Download plugin

Recent change notes

1.4.6 - Bug Fix Release
  • Fix: change “Recall Selection from List” to “Recall Selection” to shorten toolbar real-estate
  • Fix: change “Swap Selection Text from List” to “Swap Text” to shorten toolbar real-estate
  • Fix: newly opened files would not show word highlights until they were modified.
1.4.4 - Bug Fix Release
  • Fix: removed “Swap Text” action which did nothing because it was for internal use. Added “Swap Selection Text from List” which was the original intention to show the available list of selections to use for swapping currently selected text and one selected from a list.

  • Fix: removed “Selections” action which did nothing because it was for internal use. Added “Recall Selection from List” which was the original intention to show the available list of selections to recall one of them.

  • Fix: renamed “Pop Last Selection” to “Recall Last Selection”

  • Fix: editor not disposed in renumber dialog

1.4.2 - Enhancement Release
  • Add: replace arbitrary string to another string on paste. Useful for quick pasting of template code with changes without needing to edit after paste (treat this as a user provided macro variable).

    Can add RegEx search or plain string. Plain string search is case sensitive.

  • Add: replace user string on paste and duplicate for every character caret of another content. Plain string search is not case sensitive.

    For example: if pasting int FormatAbc(int abc) { myAbc = abc; return myAbc; } with the user search string set to Abc, with clipboard data for the replacement contains 3 carets with def, myHij and setKlmnop then the paste will result in the following being pasted in:

    int FormatDef(int def) { myDef = def; return myDef; }
    int FormatHij(int hij) { myHij = hij; return myHij; }
    int FormatKlmnop(int klmnop) { myKlmnop = klmnop; return myKlmnop; }
  • Add: Replace Macro Variables on Enhanced paste and on duplicate for carets paste. Currently only file name derivations are supported. When pasting in a file with name multi-line-image-url the following will be changed as shown:

    • __Filename__ to multi-line-image-url (as is)
    • __FILENAME__ to MULTILINEIMAGEURL (uppercase)
    • __filename__ to multilineimageurl (lowercase)
    • __FileName__ to MultiLineImageUrl (pascal case)
    • __fileName__ to multiLineImageUrl (camel case)
    • __file-name__ to multi-line-image-url (dash case)
    • __FILE-NAME__ to MULTI-LINE-IMAGE-URL (screaming dash case)
    • __file.name__ to multi.line.image.url (dot case)
    • __FILE.NAME__ to MULTI.LINE.IMAGE.URL (screaming dot case)
    • __file_name__ to multi_line_image_url (snake case)
    • __FILE_NAME__ to MULTI_LINE_IMAGE_URL (screaming snake case)
    • __file/name__ to multi/line/image/url (slash case)
    • __FILE/NAME__ to MULTI/LINE/IMAGE/URL (screaming slash case)
1.4.0 - Bug Fix Release
  • Fix: NPE when projects are being rapidly opened and closed.

  • Fix: #17, Caret don’t move across tab-indented lines

  • Fix: Remove highlighted word carets would not remove the last selection if all carets contained highlighted word selections

  • Fix: size of color chip when using HiDPI displays that need scaling.

General usage instructions

Install and map keys to provided actions and configure in Tools > Missing In Actions