Disabling code completion during macro execution?

So how I like to debug is to insert a ton of Debug.Log statements (working on a Unity project) in the code to see what is being executed when, and what the state of some variables are. I got tired of typing the whole thing, so I made a macro.

Now usually, I type:

Debug.Log($

And Rider autocompletes the double quotes, and the ); at the end, leaving me with Debug.Log($""); and my cursor positioned between the quotes.

So I made a Macro to type that. But when the macro runs, the semicolon at the end is lost. I think because the macro is adding the $ so quickly it interrupts the semicolon.

So I changed the macro to be Debug.Log($[end key];[left arrow three times]

Now, that worked for about a day.

Then something happened, a timing issue I am sure, and suddenly when I run the macro, I'm getting something like this:

Debug.Log($""");"";

Its like the autocomplete is fighting the macro. Now the macro is useless.

Is there a way to just turn the autocomplete off during the macro?

In addition, is there a way to EDIT the macros once recorded? Under the edit macro window, I can REMOVE steps that are recorded, but I cannot move them, or add new ones. If I need to tweak something, I need to re-record the entire thing.

1 comment
Comment actions Permalink

This gets weirder. After some googling I thought I could use the macro to turn off the "Preselect the best match to insert by pressing dot, space, etc" option in Options->Editor->General->Code Completion.

With that off, not only does nothing change, and I still get a result of:

Debug.Log($""");")

Now, when I get to the open (, and type the $... it takes about a full second before the quotes appear. Why would turning off auto-word completion on dot, space, and () make the "" after a $ take longer?

This is absurd that code completion happens DURING a macro.

 

0

Please sign in to leave a comment.