Bad pkg/proc parameter copy/paste behavior

I've actually noticed this issue as far back as probably 13, but have never bothered to submit a post about it. I figured since I'm on a roll today, I might as well see if it can be fixed in 24.2.

Whenever I am writing a procedure or package and I include a call to a standalone proc or proc within a package, this is what happens:

  • Type out the proc name, followed by an open parenthesis.
  • This fills-in the list of input parameters for the proc with the first parameter "selected".
  • If I then copy some other text (ctrl-C), the previously selected first parameter disappears.
  • If I try to paste the copied text anywhere, the pasted text is either the prior copied text (not latest copied text), or nothing, if nothing was copied previously.
  • You can recover from this by doing a ctrl-Z, which makes the first parameter reappear. Then you can re-copy the text you wanted and the subsequent paste will be successful, and the first parameter doesn't disappear.

Hopefully you can recreate this, John and figure it out! I has bugged me for a long time!

Thanks!
Chris

I see this. I believe the defect here is that clicking elsewhere does not remove the blocks around the parameters. When you click outside of the inline parameter assistance the assistance should cancel, leaving all text that you see in place. You should be able to click outside and copy text and then paste, but will no longer be able to use the Tab key to move through the parameters as you can when the inline assistant is active. I will log this.

Next week's beta will see improvements here. Disregard my earlier reply. After thinking about your use case I no longer feel that clicking away from the inline parameter assistance should cancel it. I have changed it such that Copy to Clipboard will will not cancel the assistance and the copy action will actually work. I've also made it such that clicking back into a parameter that's shown via the assistance will select all of the text that was automatically added, i.e. everything within the highlighted border will be selected. This allows you to click elsewhere, copy to clipboard, click within a parameter and paste. It feels more natural. Try it out next week and let me know what you think.

Michael,

I tried this in 24.2.79 and it's close to what you described, but not quite. I could live with it as is, but it would be much better if it worked as you described.

As of now, when you highlight some other text outside of the function or proc that you have parameter assistance for, the whole parameters stay boxed, including the parameter name, the direction, and the type. But as soon as you actually copy the new text, the only thing that remains boxed in the parameters list are the direction values (IN/OUT). So if you click in one of those boxes, only the direction value is highlighted and would be replaced with the copied data. So I still had to manually highlight the entire parameter/direction/type to be able to replace it with the copied text.

But, big improvement since the copy actually works and can be pasted, as long as you manually highlight the entire parameter info to replace.

Thanks for testing. I will check it out tomorrow. When I tested I had a simple example without the direction specifiers.

Actually my tests did specify IN as the direction. I tried with IN OUT as well as OUT and always see the same behavior. For me the entire param, direction, and datatype are marked and when I click within the entire range is selected. Here is a video showing what I see. I've tried different directions as well as with and without the "Use named notation" option.

ParamAssist

Please provide an example that shows the behavior you experience.

My procedure text is...

CREATE OR REPLACE PROCEDURE param_test (p1 OUT NUMBER, p2 OUT NUMBER) AS
BEGIN
    NULL;
END;
/

Initial:

After selecting some text:

After Ctrl-C:

I cannot reproduce. If you zip your user files folder and email them to me at michael.staszewski@quest.com I'll try with your configuration. You can omit Connection*.xml from the zip if you'd like. The User Files folder is beneath the appdata directory.