Switch between Spec and Body only with keys. How can I switch between Body and Spec only with the Keys in Version 6.2
Open Spec-Object at cursor I define a Cursor in the Spec of a Package. Then I make a Proc. In the body. Finally I try to go to this cursor via context menu “Go to Definition”. This doesn’t work in Version 6.2:
See Alex002.jpg and Alex002.jpg
Here my code:
CREATE OR REPLACE PACKAGE TESTPCK
IS
See Alex001.jpg
But in Version 5.5 it works fine
CURSOR c IS
SELECT Sysdate dat from dual;
END; – Package spec
/
CREATE OR REPLACE PACKAGE BODY TESTPCK
IS
PROCEDURE TEST
IS
BEGIN
FOR r IN c LOOP
–DO SOMETHING
DBMS_OUTPUT.Put_Line( r.dat);
END LOOP;
END;
END;
/
Ghost-Spec entry after change declaration and
I define a Procedure in a Package than I use the use the context menu in the code explorer
and put the declaration with “Publish in Spec in the Spec. Next I change the declaration of my Procedure like this:
PROCEDURE TEST(invar VARCHAR2))
Now the code explorer shows me that the proc. Is only in the body. When I now use “Publish in Spec” again,
I have two declarations of my proc. in the Spec. Trying to compile the Package I will get an error,
because of the ghost spec of the former version of my proc (PLS-00323).
In former Version 5.5 this couldn’t be happen, because after changing the declaration of the proc.
you first had to use “Unpublish in Spec.
Is there a reason to implement this in another way in Version 6.2?
This is what Alex wrote to me:
if I use Shift+Ctrl+up/down arrow it works not in every case. Only the switch from a Body to a Spec works. I cant switch from a Spec to a Body with Keys.
However, I found a somewhat different behavior.
I have packages where it works like a charme and also those where it not does.
I was unable so find any systematic for this behavior.
Please so kind and review this functionality ones more.
An arbitary working feature leads unnecessarily to stress und anger …
The only consistency I found of it not working (and I tried in my own packages and ones owned by another user) and if you have the following:
****** function** ins_app_errorsand you have the cursor on the 1st or second line in the first position I can not get the ctl-shift up and down to work but if I move to the third line and press ctl-shift up and down it works fine, but if I am in the first position of the word Function (in this case the 3 position) it works. Also the “end;” does not toggle. All other situations seem to work for me… Not much help here…
I had a look again and found out that Ctrl+shift+up/down arrow is used to jump between declaration and implementation of procedure/function in a package. So if I have a package like this
package test is
– comment
procedure test1;
function test2 return number;
end;
If the cursor is on any line above the func/proc declaration or the last line, the shortcut will not work. 5.5 used Alt+f11 for this case. I have raised a CR to have it fixed. As a work-around, please make sure the cursor is on a member function/procedure so you can switch between spec/body.