plsqlwks 0.2.3__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/PKG-INFO +130 -54
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/README.md +127 -53
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/doc/API.md +121 -1
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/doc/ARCHITECTURE.md +27 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/doc/PLUGINS.md +26 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/doc/PLUGIN_CATALOG.md +153 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/__init__.py +1 -1
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/metadata.py +128 -7
- plsqlwks-0.2.4/plsqlwks/db/schema_compare.py +385 -0
- plsqlwks-0.2.4/plsqlwks/db/schema_diagram.py +118 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/session.py +7 -1
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/table_export.py +42 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/plugins/__init__.py +10 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/plugins/api.py +56 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/__init__.py +3 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/app.py +43 -7
- plsqlwks-0.2.4/plsqlwks/ui/browser.py +220 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/catalog.py +242 -30
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/clipboard.py +49 -15
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/commands.py +13 -12
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/constants.py +23 -11
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/dialogs.py +14 -6
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/editor_controller.py +28 -8
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/input_controller.py +9 -3
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/keys.py +8 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/plugin_host.py +36 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/renderer.py +6 -1
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/result_controller.py +27 -16
- plsqlwks-0.2.4/plsqlwks/ui/schema_compare.py +375 -0
- plsqlwks-0.2.4/plsqlwks/ui/schema_diagram.py +254 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/state.py +5 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/viewport.py +6 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks.egg-info/SOURCES.txt +14 -0
- plsqlwks-0.2.4/plugins/er-diagram/install.plw +7 -0
- plsqlwks-0.2.4/plugins/er-diagram/payload/plugin.py +36 -0
- plsqlwks-0.2.4/plugins/er-diagram/payload/writer.py +252 -0
- plsqlwks-0.2.4/plugins/packages/er-diagram-0.1.3.plwgn +0 -0
- plsqlwks-0.2.4/plugins/packages/schema-compare-0.1.0.plwgn +0 -0
- plsqlwks-0.2.4/plugins/schema-compare/install.plw +7 -0
- plsqlwks-0.2.4/plugins/schema-compare/payload/plugin.py +22 -0
- plsqlwks-0.2.4/plugins/schema-compare/payload/writer.py +172 -0
- plsqlwks-0.2.4/plugins/table-ddl-export/payload/__init__.py +0 -0
- plsqlwks-0.2.4/plugins/xlsx-export/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/pyproject.toml +3 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/tests/fixtures/ui_exports.txt +3 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/tools/putty_keys.ps1 +22 -7
- plsqlwks-0.2.3/plsqlwks/ui/browser.py +0 -124
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/doc/COMPATIBILITY.md +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/doc/QUICKSTART.html +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/doc/QUICKSTART.md +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/license.txt +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/__main__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/cli.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/config/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/config/loader.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/config/models.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/config/paths.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/config/session.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/config/settings.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/ddl_remap.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/dependencies.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/editing.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/execution.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/explain.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/health.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/identifiers.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/models.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/sql_analysis.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/table_export_catalog.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/timestamps.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/db/transactions.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/exporting.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/plugins/loader.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/plugins/management.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/sqlbinds.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/sqlsplit.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/application_controller.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/buffer.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/code_generation.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/command_dispatcher.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/completion.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/db_operations.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/db_session.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/db_worker.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/dependency_walker.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/display.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/documents.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/errors.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/help.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/key_reader.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/menu.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/output_selection.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/ports.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/query_controller.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/result_export.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/result_presenter.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/results.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/sql.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/sqlplus.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/syntax.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/ui/table_export.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plsqlwks/workspace.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/csv-export/install.plw +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/csv-export/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/csv-export/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/csv-export/payload/support.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/csv-export/payload/writer.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/csv2oratab/install.plw +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/csv2oratab/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/csv2oratab/payload/csv2oratab.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/csv2oratab/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/dependencies-walker/install.plw +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/dependencies-walker/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/dependencies-walker/payload/plugin.py +0 -0
- {plsqlwks-0.2.3/plugins/html-export → plsqlwks-0.2.4/plugins/er-diagram}/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/html-export/install.plw +0 -0
- {plsqlwks-0.2.3/plugins/sqlplus → plsqlwks-0.2.4/plugins/html-export}/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/html-export/payload/html_exporting.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/html-export/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/html-export/payload/support.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/html-export/payload/writer.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/packages/csv-export-1.0.0.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/packages/csv2oratab-0.1.0.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/packages/dependencies-walker-0.1.0.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/packages/html-export-1.0.0.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/packages/sqlplus-0.1.0.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/packages/table-ddl-export-0.1.1.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/packages/xlsx-export-1.0.0.plwgn +0 -0
- {plsqlwks-0.2.3/plugins/table-ddl-export → plsqlwks-0.2.4/plugins/schema-compare}/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/sqlplus/install.plw +0 -0
- {plsqlwks-0.2.3/plugins/xlsx-export → plsqlwks-0.2.4/plugins/sqlplus}/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/sqlplus/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/table-ddl-export/install.plw +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/table-ddl-export/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/xlsx-export/install.plw +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/xlsx-export/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/xlsx-export/payload/support.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/plugins/xlsx-export/payload/xlsx_exporting.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/pytest.ini +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/rchar.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/requirements.txt +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/setup.cfg +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/tests/conftest.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/tests/fixtures/config_exports.txt +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.4}/tools/windows_keys.cmd +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: plsqlwks
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: An ncurses SQL and PL/SQL workspace for Oracle databases.
|
|
5
5
|
Author: unu2000
|
|
6
6
|
License-Expression: LicenseRef-plsqlwks-Donationware
|
|
@@ -19,6 +19,8 @@ Requires-Python: >=3.10
|
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
License-File: license.txt
|
|
21
21
|
Requires-Dist: oracledb>=2.0
|
|
22
|
+
Provides-Extra: er-diagram
|
|
23
|
+
Requires-Dist: CairoSVG>=2.9.1; extra == "er-diagram"
|
|
22
24
|
Provides-Extra: csv2oratab
|
|
23
25
|
Requires-Dist: cryptography>=42; extra == "csv2oratab"
|
|
24
26
|
Provides-Extra: xlsx
|
|
@@ -617,10 +619,10 @@ Use left Alt for application shortcuts; AltGr remains available for characters
|
|
|
617
619
|
on international keyboards. Shortcut digits and symbols refer to the character
|
|
618
620
|
on the active Windows layout: for example, Czech top-row digits need Shift,
|
|
619
621
|
so Alt-1 is typed with Alt-Shift-1. Use the layout's `+` or `=` character for
|
|
620
|
-
autocomplete refresh.
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
internal paste. SSH does not expose the Windows clipboard to the host. Use
|
|
622
|
+
autocomplete refresh. Ctrl-C/Ctrl-P copy/paste internally, Ctrl-Shift-C/Ctrl-Shift-P
|
|
623
|
+
use the Windows system clipboard, and Alt-Shift-C/Alt-Shift-P use the Linux
|
|
624
|
+
clipboard. Ctrl-V and Ctrl-Shift-V retain their configured paste sources;
|
|
625
|
+
Ctrl-Shift-V defaults to internal paste. SSH does not expose the Windows clipboard to the host. Use
|
|
624
626
|
PuTTY's native paste (`Shift-Insert` or
|
|
625
627
|
right-click) to insert Windows clipboard text as bracketed paste, and PuTTY
|
|
626
628
|
mouse selection to copy to Windows. Leave plsqlwks' Ctrl-letter shortcuts
|
|
@@ -688,30 +690,31 @@ also works from Command Prompt and continues to support PuTTY.
|
|
|
688
690
|
|
|
689
691
|
### Windows Terminal and WSL clipboard shortcuts
|
|
690
692
|
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
693
|
+
PLSQLWKS provides three clipboard methods: System (Windows), WSL/Linux
|
|
694
|
+
(Wayland/X11), and Internal. WSLg can bridge Windows and Linux contents, so the
|
|
695
|
+
two external methods may access shared contents.
|
|
694
696
|
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
697
|
+
| Clipboard | Copy | Paste |
|
|
698
|
+
| --- | --- | --- |
|
|
699
|
+
| System (Windows) | `Ctrl-Shift-C` | `Ctrl-Shift-P` |
|
|
700
|
+
| WSL/Linux | `Alt-Shift-C` | `Alt-Shift-P` |
|
|
701
|
+
| Internal | `Ctrl-C` | `Ctrl-P` |
|
|
702
|
+
|
|
703
|
+
Each fixed shortcut uses only its assigned target. Copying externally leaves
|
|
704
|
+
the internal clipboard unchanged. `Ctrl-C` interrupts a running database
|
|
705
|
+
operation first; otherwise it copies internally. `Ctrl-Alt-C` still commits or
|
|
706
|
+
applies the active insert draft, and `Ctrl-Alt-R` rolls back.
|
|
707
|
+
The copy shortcuts work for editor selections, result cells/ranges,
|
|
708
|
+
DBMS_OUTPUT selections and schema-browser object names. Paste works in the
|
|
709
|
+
worksheet, paste-enabled prompts and editable cell text dialogs.
|
|
710
|
+
|
|
711
|
+
Open **Alt-O → Preferences → Clipboard** to inspect the fixed shortcuts and
|
|
712
|
+
backend capabilities, configure legacy copy/cut destinations and choose the
|
|
713
|
+
sources for `Ctrl-V` and `Ctrl-Shift-V`. Save persists settings in your workspace
|
|
714
|
+
`config.ini`; Cancel discards changes. The new C/P shortcuts ignore these
|
|
715
|
+
settings. `Ctrl-X` and legacy copy commands retain configured destinations and
|
|
716
|
+
an internal copy; cut remains one immediate Undo edit. New workspaces without
|
|
717
|
+
Windows tools default legacy copy/paste to Linux.
|
|
715
718
|
|
|
716
719
|
```ini
|
|
717
720
|
[clipboard]
|
|
@@ -724,20 +727,25 @@ ctrl_shift_v_source = internal
|
|
|
724
727
|
Paste sources are `windows`, `internal`, or `linux`. Windows paste reads Windows
|
|
725
728
|
exclusively: failure or empty contents causes no insertion and explicit
|
|
726
729
|
feedback. Internal paste performs no OS access and cancels a pending paste for
|
|
727
|
-
that target.
|
|
728
|
-
|
|
730
|
+
that target. The fixed copy shortcuts update only their selected clipboard;
|
|
731
|
+
legacy copy/cut updates internal text immediately and then attempts configured
|
|
732
|
+
external destinations in a background worker. Windows copy tries PowerShell,
|
|
729
733
|
then `clip.exe` on failure, and verifies contents by readback when a reader is
|
|
730
734
|
available. Copy-only Windows access is labelled unverified. Each Linux provider
|
|
731
735
|
is attempted when Linux copying is enabled. A Linux success does not conceal a
|
|
732
736
|
Windows failure.
|
|
733
737
|
|
|
734
|
-
Windows Terminal
|
|
735
|
-
To
|
|
738
|
+
If Windows Terminal consumes a shortcut, forward it to PLSQLWKS.
|
|
739
|
+
To configure explicit forwarding, open **Settings → Open JSON file** and add these
|
|
736
740
|
entries to `actions`, keeping the other actions:
|
|
737
741
|
|
|
738
742
|
```json
|
|
739
|
-
{ "command": { "action": "sendInput", "input": "\u0003" }, "id": "User.
|
|
740
|
-
{ "command": { "action": "sendInput", "input": "\
|
|
743
|
+
{ "command": { "action": "sendInput", "input": "\u0003" }, "id": "User.PlsqlwksInternalCopy" },
|
|
744
|
+
{ "command": { "action": "sendInput", "input": "\u0010" }, "id": "User.PlsqlwksInternalPaste" },
|
|
745
|
+
{ "command": { "action": "sendInput", "input": "\u001b[99;6u" }, "id": "User.PlsqlwksSystemCopy" },
|
|
746
|
+
{ "command": { "action": "sendInput", "input": "\u001b[112;6u" }, "id": "User.PlsqlwksSystemPaste" },
|
|
747
|
+
{ "command": { "action": "sendInput", "input": "\u001b[99;4u" }, "id": "User.PlsqlwksWslCopy" },
|
|
748
|
+
{ "command": { "action": "sendInput", "input": "\u001b[112;4u" }, "id": "User.PlsqlwksWslPaste" },
|
|
741
749
|
{ "command": { "action": "sendInput", "input": "\u0016" }, "id": "User.PlsqlwksPaste" },
|
|
742
750
|
{ "command": { "action": "sendInput", "input": "\u001b[118;6u" }, "id": "User.PlsqlwksAlternatePaste" }
|
|
743
751
|
```
|
|
@@ -746,8 +754,12 @@ Replace the existing copy/paste entries in `keybindings` with
|
|
|
746
754
|
the entries below, keeping the other keybindings:
|
|
747
755
|
|
|
748
756
|
```json
|
|
749
|
-
{ "id": "User.
|
|
750
|
-
{ "id": "User.
|
|
757
|
+
{ "id": "User.PlsqlwksInternalCopy", "keys": "ctrl+c" },
|
|
758
|
+
{ "id": "User.PlsqlwksInternalPaste", "keys": "ctrl+p" },
|
|
759
|
+
{ "id": "User.PlsqlwksSystemCopy", "keys": "ctrl+shift+c" },
|
|
760
|
+
{ "id": "User.PlsqlwksSystemPaste", "keys": "ctrl+shift+p" },
|
|
761
|
+
{ "id": "User.PlsqlwksWslCopy", "keys": "alt+shift+c" },
|
|
762
|
+
{ "id": "User.PlsqlwksWslPaste", "keys": "alt+shift+p" },
|
|
751
763
|
{ "id": "User.PlsqlwksPaste", "keys": "ctrl+v" },
|
|
752
764
|
{ "id": "User.PlsqlwksAlternatePaste", "keys": "ctrl+shift+v" }
|
|
753
765
|
```
|
|
@@ -755,7 +767,7 @@ the entries below, keeping the other keybindings:
|
|
|
755
767
|
This setting applies to every Windows Terminal profile and tab. Restart
|
|
756
768
|
plsqlwks after upgrading and reopen Windows Terminal if it retains old bindings.
|
|
757
769
|
The command menu offers equivalents when a terminal intercepts the shortcuts.
|
|
758
|
-
The optional `tools/putty_keys.ps1` helper also forwards
|
|
770
|
+
The optional `tools/putty_keys.ps1` helper also forwards these shortcuts when
|
|
759
771
|
enabled for the active Windows terminal window.
|
|
760
772
|
|
|
761
773
|
Keyboard navigation, resizing and dialogs remain available while clipboard
|
|
@@ -832,11 +844,13 @@ See Microsoft's [send input action](https://learn.microsoft.com/en-us/windows/te
|
|
|
832
844
|
| `Ctrl-F` | Open literal Find/Replace with the `Find next` action |
|
|
833
845
|
| `Alt-O` -> **Editor** -> **Replace text** | Open Find/Replace at the replacement field |
|
|
834
846
|
| `Ctrl-G` | Go to line |
|
|
835
|
-
| `Ctrl-N`
|
|
847
|
+
| `Ctrl-N` | Move to the next search occurrence |
|
|
848
|
+
| `Alt-O → Editor → Previous search match` | Move to the previous search occurrence |
|
|
836
849
|
| `Ctrl-U` | Uppercase selected SQL code |
|
|
837
850
|
| `Ctrl-L` | Lowercase selected SQL code |
|
|
838
|
-
| `Ctrl-C` | Copy
|
|
839
|
-
| `Ctrl-Shift-C` | Copy
|
|
851
|
+
| `Ctrl-C` / `Ctrl-P` | Copy/paste internally |
|
|
852
|
+
| `Ctrl-Shift-C` / `Ctrl-Shift-P` | Copy/paste the System (Windows) clipboard |
|
|
853
|
+
| `Alt-Shift-C` / `Alt-Shift-P` | Copy/paste the WSL/Linux clipboard |
|
|
840
854
|
| `Ctrl-X` | Cut selected text |
|
|
841
855
|
| `Ctrl-V` | Paste clipboard text, expanding each tab to two spaces |
|
|
842
856
|
| `Ctrl-Shift-V` | Paste the alternate source (internal by default) |
|
|
@@ -875,11 +889,12 @@ The dialog provides `Find next`, `Replace`, `Replace all`, and `Cancel` actions.
|
|
|
875
889
|
and lowercase letters. `Replace` changes the selected matching occurrence, or
|
|
876
890
|
the next match from the cursor, and then selects the following match. `Replace
|
|
877
891
|
all` changes every match in the current buffer. Either replacement operation is
|
|
878
|
-
recorded as one undoable edit. `Ctrl-N`
|
|
879
|
-
|
|
892
|
+
recorded as one undoable edit. `Ctrl-N` repeats the last search forward;
|
|
893
|
+
**Alt-O → Editor → Previous search match** repeats it backward. Both retain the
|
|
894
|
+
case setting and wrap around.
|
|
880
895
|
|
|
881
896
|
Editor paste expands every tab character to two spaces and keeps multiline
|
|
882
|
-
text in one undoable edit. This applies to
|
|
897
|
+
text in one undoable edit. This applies to all fixed and configured paste shortcuts and
|
|
883
898
|
to native terminal paste while the editor is focused;
|
|
884
899
|
clipboard contents themselves are not changed. Native paste requires a
|
|
885
900
|
terminal that supports the standard bracketed-paste protocol, with `Ctrl-V`
|
|
@@ -926,8 +941,9 @@ Read-only mode is a client-side guardrail that rejects statements which the SQL
|
|
|
926
941
|
| `Home` / `End` | Move to the first/last result-grid column |
|
|
927
942
|
| `Ctrl-Home` / `Ctrl-End` | Move to the first/last result-grid row |
|
|
928
943
|
| `F8` | Toggle result grid / row-detail output |
|
|
929
|
-
| `Ctrl-C` | Copy
|
|
930
|
-
| `Ctrl-Shift-C` | Copy the same cell/range
|
|
944
|
+
| `Ctrl-C` | Copy a cell/range internally; ranges offer header handling |
|
|
945
|
+
| `Ctrl-Shift-C` | Copy the same cell/range to System (Windows) |
|
|
946
|
+
| `Alt-Shift-C` | Copy the same cell/range to WSL/Linux |
|
|
931
947
|
| `F10` | View or edit a mapped text cell in a ROWID-backed result |
|
|
932
948
|
| `Enter` | Edit the selected ROWID-backed result cell when available |
|
|
933
949
|
| `INS` | Prepare a draft insert row for ROWID-backed results |
|
|
@@ -1016,8 +1032,9 @@ move within a displayed line; Ctrl+Home/End move to the output boundaries.
|
|
|
1016
1032
|
|
|
1017
1033
|
Copying preserves the stored text, whitespace, blank lines, and statement
|
|
1018
1034
|
headings, without screen wrapping or padding. The existing system clipboard
|
|
1019
|
-
|
|
1020
|
-
|
|
1035
|
+
backends are reused: Ctrl+C copies internally, Ctrl+Shift+C copies to Windows,
|
|
1036
|
+
and Alt+Shift+C copies to WSL/Linux. Fixed external shortcuts do not fall back
|
|
1037
|
+
to another clipboard. Ctrl+C still cancels a running operation
|
|
1021
1038
|
before performing a copy. Selection belongs to its file tab, survives appended
|
|
1022
1039
|
output and resizing, and resets when execution replaces the output.
|
|
1023
1040
|
|
|
@@ -1195,9 +1212,39 @@ validate this opt-in mode with the applications in use.
|
|
|
1195
1212
|
|
|
1196
1213
|
### Schema Browser
|
|
1197
1214
|
|
|
1198
|
-
The `F9` schema browser groups tables, views, procedures, functions,
|
|
1199
|
-
|
|
1200
|
-
Press `Enter` on a table or view to choose `Insert SELECT` (the default), `Load DDL`, or `Copy object name`. `Insert SELECT` adds a `select *` statement for the SQL-safe, unqualified object name to the current buffer and focuses the editor; it does not execute the query. `Copy object name` places that SQL-ready, unqualified identifier on the clipboard. For other object types, `Enter` offers `Load DDL` (the default) and `Copy object name`.
|
|
1215
|
+
The `F9` schema browser groups tables, views, procedures, functions, package specifications, package bodies, triggers, sequences, indexes, and private synonyms from the current schema. Type while the browser is focused to filter object names with a case-insensitive substring match; groups without matches are hidden and matching groups expand automatically without changing their saved expansion state. Exact quoted and mixed-case names are preserved when columns, routines or definitions are loaded, with Oracle-safe quoting applied to metadata requests.
|
|
1216
|
+
|
|
1217
|
+
Press `Enter` on a table or view to choose `Insert SELECT` (the default), `Load DDL`, or `Copy object name`. `Insert SELECT` adds a `select *` statement for the SQL-safe, unqualified object name to the current buffer and focuses the editor; it does not execute the query. `Copy object name` places that SQL-ready, unqualified identifier on the clipboard. For standalone procedures, functions and other object types, `Enter` offers `Load DDL` (the default) and `Copy object name`.
|
|
1218
|
+
|
|
1219
|
+
Package specifications and bodies show their own compilation status immediately
|
|
1220
|
+
before the package name: `C` means compiled, `I` means invalid compilation and
|
|
1221
|
+
`?` means status unavailable. A compiled specification can have an invalid body.
|
|
1222
|
+
Press `Enter` on either part to load the specification, body or both, or copy
|
|
1223
|
+
the package name. The selected part is the default; unavailable parts are
|
|
1224
|
+
omitted. Each loading mode has its own tab, and loading both puts the
|
|
1225
|
+
specification before the body in one SQL buffer.
|
|
1226
|
+
|
|
1227
|
+
Press `Space` on either package part to expand its public procedures and
|
|
1228
|
+
functions, including while filtering. The browser loads signatures in the
|
|
1229
|
+
background and shares the cache between the two package sections. `P` marks a
|
|
1230
|
+
procedure and `F` a function; overloads have separate signature rows. Private
|
|
1231
|
+
body routines are excluded because a worksheet cannot call them.
|
|
1232
|
+
Press `Enter` on a routine to insert a default PL/SQL call block at the current
|
|
1233
|
+
cursor, replacing selected text as one undoable edit, and focus the editor.
|
|
1234
|
+
The block declares typed variables for every parameter, including parameters
|
|
1235
|
+
with defaults and OUT/IN OUT parameters, and a result variable for functions.
|
|
1236
|
+
Edit the input values before running it. Insertion does not execute or compile
|
|
1237
|
+
the call. Unsupported or incomplete signatures report a reason and leave the
|
|
1238
|
+
buffer unchanged.
|
|
1239
|
+
|
|
1240
|
+
Press `Space` on a table or view to expand or collapse its column subtree,
|
|
1241
|
+
including while filtering. Column names appear in database order and are loaded
|
|
1242
|
+
in the background on first expansion, then cached. Columns are informational
|
|
1243
|
+
leaf rows; object actions apply to their parent table or view. `Ctrl-F` opens an
|
|
1244
|
+
object-name filter prompt that accepts spaces. Filtering matches object names
|
|
1245
|
+
and shows all children beneath expanded matching objects. `Ctrl-R` refreshes
|
|
1246
|
+
objects and package statuses, clears cached columns and routines, and collapses
|
|
1247
|
+
object branches, retaining the filter and group expansion state.
|
|
1201
1248
|
|
|
1202
1249
|
| Key | Action |
|
|
1203
1250
|
| --- | --- |
|
|
@@ -1206,9 +1253,10 @@ Press `Enter` on a table or view to choose `Insert SELECT` (the default), `Load
|
|
|
1206
1253
|
| `Esc` | Clear a nonempty filter, or return to the editor when the filter is empty |
|
|
1207
1254
|
| `Up` / `Down` | Move through browser entries |
|
|
1208
1255
|
| `PageUp` / `PageDown` | Move through browser entries by page |
|
|
1209
|
-
| `Enter` | Expand a group
|
|
1210
|
-
| `Space` | Expand/collapse
|
|
1211
|
-
| `Ctrl-
|
|
1256
|
+
| `Enter` | Expand a group, choose an object action, or insert a package routine call |
|
|
1257
|
+
| `Space` | Expand/collapse table/view columns or package routines; on groups, expand/collapse with an empty filter or add a space to an active filter |
|
|
1258
|
+
| `Ctrl-F` | Edit the object-name filter, including spaces |
|
|
1259
|
+
| `Ctrl-R` | Refresh database objects/statuses and clear column/routine subtrees and caches |
|
|
1212
1260
|
|
|
1213
1261
|
### Cell Viewer
|
|
1214
1262
|
|
|
@@ -1220,7 +1268,7 @@ Press `Enter` on a table or view to choose `Insert SELECT` (the default), `Load
|
|
|
1220
1268
|
| `PageUp` / `PageDown` | Scroll cell text by page |
|
|
1221
1269
|
| `Home` / `End` | Move to the first/last cell-viewer line |
|
|
1222
1270
|
| `Ctrl-S` (editor) | Save the multiline edit |
|
|
1223
|
-
| `Ctrl-
|
|
1271
|
+
| `Ctrl-P` / `Ctrl-Shift-P` / `Alt-Shift-P` / configured V keys / terminal paste (editor) | Paste exact clipboard text as one undoable edit |
|
|
1224
1272
|
| `Enter` (editor) | Insert a newline |
|
|
1225
1273
|
| `F10` / `Esc` / `Ctrl-Q` (editor) | Cancel the multiline edit |
|
|
1226
1274
|
|
|
@@ -1287,6 +1335,34 @@ for the exact manifest, source layout, validation, replacement, and trust rules.
|
|
|
1287
1335
|
|
|
1288
1336
|
### Table DDL Export
|
|
1289
1337
|
|
|
1338
|
+
### Schema Compare
|
|
1339
|
+
|
|
1340
|
+
Install `plugins/packages/schema-compare-0.1.0.plwgn` and restart the updated
|
|
1341
|
+
host. **Alt-O -> Database -> Compare schema objects** chooses two schemas on
|
|
1342
|
+
the current connection and compares visible object names/types and logical
|
|
1343
|
+
definitions. Browse changed, one-sided, equal and unavailable objects; filter
|
|
1344
|
+
by name/type/status, open unified differences with Enter, and cycle original
|
|
1345
|
+
definitions with Tab. **Ctrl-E** exports all or filtered differences to CSV,
|
|
1346
|
+
HTML or XLSX, including summaries, line numbers and visibility notes. CSV/HTML
|
|
1347
|
+
need no extra; XLSX uses `plsqlwks[xlsx]`. The comparison preserves transactions,
|
|
1348
|
+
sequence state and the original editor/results. See the
|
|
1349
|
+
[catalog guide](doc/PLUGIN_CATALOG.md#schema-compare) for rules and limits.
|
|
1350
|
+
|
|
1351
|
+
### E-R Diagram
|
|
1352
|
+
|
|
1353
|
+
Install `plugins/packages/er-diagram-0.1.3.plwgn` with `plsqlwks plugin install`
|
|
1354
|
+
and restart the updated host. **Alt-O -> Database -> Export E-R Diagram (SVG/PNG/PDF)**
|
|
1355
|
+
opens a **Bright / Dark** theme picker followed by an **SVG / PNG / PDF** format
|
|
1356
|
+
picker. Use arrow keys and Enter; defaults are Bright and SVG. Then filter and
|
|
1357
|
+
check current-schema tables and views and export their columns, keys and
|
|
1358
|
+
foreign-key relationships. Connectors show numbered foreign-key names matching
|
|
1359
|
+
the detailed relationship notes. Relative destinations use the results directory.
|
|
1360
|
+
SVG uses the standard library; PNG/PDF require the optional `er-diagram` extra
|
|
1361
|
+
and the Cairo library. See the catalog for installation instructions.
|
|
1362
|
+
See the [catalog guide](doc/PLUGIN_CATALOG.md#e-r-diagram) for controls and limits.
|
|
1363
|
+
|
|
1364
|
+
### Table DDL Export
|
|
1365
|
+
|
|
1290
1366
|
Install `plugins/packages/table-ddl-export-0.1.1.plwgn` with
|
|
1291
1367
|
`plsqlwks plugin install` and restart. **Alt-O -> Database -> Export table DDL**
|
|
1292
1368
|
lets you choose a schema, filter table names as you type, select tables, and
|
|
@@ -583,10 +583,10 @@ Use left Alt for application shortcuts; AltGr remains available for characters
|
|
|
583
583
|
on international keyboards. Shortcut digits and symbols refer to the character
|
|
584
584
|
on the active Windows layout: for example, Czech top-row digits need Shift,
|
|
585
585
|
so Alt-1 is typed with Alt-Shift-1. Use the layout's `+` or `=` character for
|
|
586
|
-
autocomplete refresh.
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
internal paste. SSH does not expose the Windows clipboard to the host. Use
|
|
586
|
+
autocomplete refresh. Ctrl-C/Ctrl-P copy/paste internally, Ctrl-Shift-C/Ctrl-Shift-P
|
|
587
|
+
use the Windows system clipboard, and Alt-Shift-C/Alt-Shift-P use the Linux
|
|
588
|
+
clipboard. Ctrl-V and Ctrl-Shift-V retain their configured paste sources;
|
|
589
|
+
Ctrl-Shift-V defaults to internal paste. SSH does not expose the Windows clipboard to the host. Use
|
|
590
590
|
PuTTY's native paste (`Shift-Insert` or
|
|
591
591
|
right-click) to insert Windows clipboard text as bracketed paste, and PuTTY
|
|
592
592
|
mouse selection to copy to Windows. Leave plsqlwks' Ctrl-letter shortcuts
|
|
@@ -654,30 +654,31 @@ also works from Command Prompt and continues to support PuTTY.
|
|
|
654
654
|
|
|
655
655
|
### Windows Terminal and WSL clipboard shortcuts
|
|
656
656
|
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
657
|
+
PLSQLWKS provides three clipboard methods: System (Windows), WSL/Linux
|
|
658
|
+
(Wayland/X11), and Internal. WSLg can bridge Windows and Linux contents, so the
|
|
659
|
+
two external methods may access shared contents.
|
|
660
660
|
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
661
|
+
| Clipboard | Copy | Paste |
|
|
662
|
+
| --- | --- | --- |
|
|
663
|
+
| System (Windows) | `Ctrl-Shift-C` | `Ctrl-Shift-P` |
|
|
664
|
+
| WSL/Linux | `Alt-Shift-C` | `Alt-Shift-P` |
|
|
665
|
+
| Internal | `Ctrl-C` | `Ctrl-P` |
|
|
666
|
+
|
|
667
|
+
Each fixed shortcut uses only its assigned target. Copying externally leaves
|
|
668
|
+
the internal clipboard unchanged. `Ctrl-C` interrupts a running database
|
|
669
|
+
operation first; otherwise it copies internally. `Ctrl-Alt-C` still commits or
|
|
670
|
+
applies the active insert draft, and `Ctrl-Alt-R` rolls back.
|
|
671
|
+
The copy shortcuts work for editor selections, result cells/ranges,
|
|
672
|
+
DBMS_OUTPUT selections and schema-browser object names. Paste works in the
|
|
673
|
+
worksheet, paste-enabled prompts and editable cell text dialogs.
|
|
674
|
+
|
|
675
|
+
Open **Alt-O → Preferences → Clipboard** to inspect the fixed shortcuts and
|
|
676
|
+
backend capabilities, configure legacy copy/cut destinations and choose the
|
|
677
|
+
sources for `Ctrl-V` and `Ctrl-Shift-V`. Save persists settings in your workspace
|
|
678
|
+
`config.ini`; Cancel discards changes. The new C/P shortcuts ignore these
|
|
679
|
+
settings. `Ctrl-X` and legacy copy commands retain configured destinations and
|
|
680
|
+
an internal copy; cut remains one immediate Undo edit. New workspaces without
|
|
681
|
+
Windows tools default legacy copy/paste to Linux.
|
|
681
682
|
|
|
682
683
|
```ini
|
|
683
684
|
[clipboard]
|
|
@@ -690,20 +691,25 @@ ctrl_shift_v_source = internal
|
|
|
690
691
|
Paste sources are `windows`, `internal`, or `linux`. Windows paste reads Windows
|
|
691
692
|
exclusively: failure or empty contents causes no insertion and explicit
|
|
692
693
|
feedback. Internal paste performs no OS access and cancels a pending paste for
|
|
693
|
-
that target.
|
|
694
|
-
|
|
694
|
+
that target. The fixed copy shortcuts update only their selected clipboard;
|
|
695
|
+
legacy copy/cut updates internal text immediately and then attempts configured
|
|
696
|
+
external destinations in a background worker. Windows copy tries PowerShell,
|
|
695
697
|
then `clip.exe` on failure, and verifies contents by readback when a reader is
|
|
696
698
|
available. Copy-only Windows access is labelled unverified. Each Linux provider
|
|
697
699
|
is attempted when Linux copying is enabled. A Linux success does not conceal a
|
|
698
700
|
Windows failure.
|
|
699
701
|
|
|
700
|
-
Windows Terminal
|
|
701
|
-
To
|
|
702
|
+
If Windows Terminal consumes a shortcut, forward it to PLSQLWKS.
|
|
703
|
+
To configure explicit forwarding, open **Settings → Open JSON file** and add these
|
|
702
704
|
entries to `actions`, keeping the other actions:
|
|
703
705
|
|
|
704
706
|
```json
|
|
705
|
-
{ "command": { "action": "sendInput", "input": "\u0003" }, "id": "User.
|
|
706
|
-
{ "command": { "action": "sendInput", "input": "\
|
|
707
|
+
{ "command": { "action": "sendInput", "input": "\u0003" }, "id": "User.PlsqlwksInternalCopy" },
|
|
708
|
+
{ "command": { "action": "sendInput", "input": "\u0010" }, "id": "User.PlsqlwksInternalPaste" },
|
|
709
|
+
{ "command": { "action": "sendInput", "input": "\u001b[99;6u" }, "id": "User.PlsqlwksSystemCopy" },
|
|
710
|
+
{ "command": { "action": "sendInput", "input": "\u001b[112;6u" }, "id": "User.PlsqlwksSystemPaste" },
|
|
711
|
+
{ "command": { "action": "sendInput", "input": "\u001b[99;4u" }, "id": "User.PlsqlwksWslCopy" },
|
|
712
|
+
{ "command": { "action": "sendInput", "input": "\u001b[112;4u" }, "id": "User.PlsqlwksWslPaste" },
|
|
707
713
|
{ "command": { "action": "sendInput", "input": "\u0016" }, "id": "User.PlsqlwksPaste" },
|
|
708
714
|
{ "command": { "action": "sendInput", "input": "\u001b[118;6u" }, "id": "User.PlsqlwksAlternatePaste" }
|
|
709
715
|
```
|
|
@@ -712,8 +718,12 @@ Replace the existing copy/paste entries in `keybindings` with
|
|
|
712
718
|
the entries below, keeping the other keybindings:
|
|
713
719
|
|
|
714
720
|
```json
|
|
715
|
-
{ "id": "User.
|
|
716
|
-
{ "id": "User.
|
|
721
|
+
{ "id": "User.PlsqlwksInternalCopy", "keys": "ctrl+c" },
|
|
722
|
+
{ "id": "User.PlsqlwksInternalPaste", "keys": "ctrl+p" },
|
|
723
|
+
{ "id": "User.PlsqlwksSystemCopy", "keys": "ctrl+shift+c" },
|
|
724
|
+
{ "id": "User.PlsqlwksSystemPaste", "keys": "ctrl+shift+p" },
|
|
725
|
+
{ "id": "User.PlsqlwksWslCopy", "keys": "alt+shift+c" },
|
|
726
|
+
{ "id": "User.PlsqlwksWslPaste", "keys": "alt+shift+p" },
|
|
717
727
|
{ "id": "User.PlsqlwksPaste", "keys": "ctrl+v" },
|
|
718
728
|
{ "id": "User.PlsqlwksAlternatePaste", "keys": "ctrl+shift+v" }
|
|
719
729
|
```
|
|
@@ -721,7 +731,7 @@ the entries below, keeping the other keybindings:
|
|
|
721
731
|
This setting applies to every Windows Terminal profile and tab. Restart
|
|
722
732
|
plsqlwks after upgrading and reopen Windows Terminal if it retains old bindings.
|
|
723
733
|
The command menu offers equivalents when a terminal intercepts the shortcuts.
|
|
724
|
-
The optional `tools/putty_keys.ps1` helper also forwards
|
|
734
|
+
The optional `tools/putty_keys.ps1` helper also forwards these shortcuts when
|
|
725
735
|
enabled for the active Windows terminal window.
|
|
726
736
|
|
|
727
737
|
Keyboard navigation, resizing and dialogs remain available while clipboard
|
|
@@ -798,11 +808,13 @@ See Microsoft's [send input action](https://learn.microsoft.com/en-us/windows/te
|
|
|
798
808
|
| `Ctrl-F` | Open literal Find/Replace with the `Find next` action |
|
|
799
809
|
| `Alt-O` -> **Editor** -> **Replace text** | Open Find/Replace at the replacement field |
|
|
800
810
|
| `Ctrl-G` | Go to line |
|
|
801
|
-
| `Ctrl-N`
|
|
811
|
+
| `Ctrl-N` | Move to the next search occurrence |
|
|
812
|
+
| `Alt-O → Editor → Previous search match` | Move to the previous search occurrence |
|
|
802
813
|
| `Ctrl-U` | Uppercase selected SQL code |
|
|
803
814
|
| `Ctrl-L` | Lowercase selected SQL code |
|
|
804
|
-
| `Ctrl-C` | Copy
|
|
805
|
-
| `Ctrl-Shift-C` | Copy
|
|
815
|
+
| `Ctrl-C` / `Ctrl-P` | Copy/paste internally |
|
|
816
|
+
| `Ctrl-Shift-C` / `Ctrl-Shift-P` | Copy/paste the System (Windows) clipboard |
|
|
817
|
+
| `Alt-Shift-C` / `Alt-Shift-P` | Copy/paste the WSL/Linux clipboard |
|
|
806
818
|
| `Ctrl-X` | Cut selected text |
|
|
807
819
|
| `Ctrl-V` | Paste clipboard text, expanding each tab to two spaces |
|
|
808
820
|
| `Ctrl-Shift-V` | Paste the alternate source (internal by default) |
|
|
@@ -841,11 +853,12 @@ The dialog provides `Find next`, `Replace`, `Replace all`, and `Cancel` actions.
|
|
|
841
853
|
and lowercase letters. `Replace` changes the selected matching occurrence, or
|
|
842
854
|
the next match from the cursor, and then selects the following match. `Replace
|
|
843
855
|
all` changes every match in the current buffer. Either replacement operation is
|
|
844
|
-
recorded as one undoable edit. `Ctrl-N`
|
|
845
|
-
|
|
856
|
+
recorded as one undoable edit. `Ctrl-N` repeats the last search forward;
|
|
857
|
+
**Alt-O → Editor → Previous search match** repeats it backward. Both retain the
|
|
858
|
+
case setting and wrap around.
|
|
846
859
|
|
|
847
860
|
Editor paste expands every tab character to two spaces and keeps multiline
|
|
848
|
-
text in one undoable edit. This applies to
|
|
861
|
+
text in one undoable edit. This applies to all fixed and configured paste shortcuts and
|
|
849
862
|
to native terminal paste while the editor is focused;
|
|
850
863
|
clipboard contents themselves are not changed. Native paste requires a
|
|
851
864
|
terminal that supports the standard bracketed-paste protocol, with `Ctrl-V`
|
|
@@ -892,8 +905,9 @@ Read-only mode is a client-side guardrail that rejects statements which the SQL
|
|
|
892
905
|
| `Home` / `End` | Move to the first/last result-grid column |
|
|
893
906
|
| `Ctrl-Home` / `Ctrl-End` | Move to the first/last result-grid row |
|
|
894
907
|
| `F8` | Toggle result grid / row-detail output |
|
|
895
|
-
| `Ctrl-C` | Copy
|
|
896
|
-
| `Ctrl-Shift-C` | Copy the same cell/range
|
|
908
|
+
| `Ctrl-C` | Copy a cell/range internally; ranges offer header handling |
|
|
909
|
+
| `Ctrl-Shift-C` | Copy the same cell/range to System (Windows) |
|
|
910
|
+
| `Alt-Shift-C` | Copy the same cell/range to WSL/Linux |
|
|
897
911
|
| `F10` | View or edit a mapped text cell in a ROWID-backed result |
|
|
898
912
|
| `Enter` | Edit the selected ROWID-backed result cell when available |
|
|
899
913
|
| `INS` | Prepare a draft insert row for ROWID-backed results |
|
|
@@ -982,8 +996,9 @@ move within a displayed line; Ctrl+Home/End move to the output boundaries.
|
|
|
982
996
|
|
|
983
997
|
Copying preserves the stored text, whitespace, blank lines, and statement
|
|
984
998
|
headings, without screen wrapping or padding. The existing system clipboard
|
|
985
|
-
|
|
986
|
-
|
|
999
|
+
backends are reused: Ctrl+C copies internally, Ctrl+Shift+C copies to Windows,
|
|
1000
|
+
and Alt+Shift+C copies to WSL/Linux. Fixed external shortcuts do not fall back
|
|
1001
|
+
to another clipboard. Ctrl+C still cancels a running operation
|
|
987
1002
|
before performing a copy. Selection belongs to its file tab, survives appended
|
|
988
1003
|
output and resizing, and resets when execution replaces the output.
|
|
989
1004
|
|
|
@@ -1161,9 +1176,39 @@ validate this opt-in mode with the applications in use.
|
|
|
1161
1176
|
|
|
1162
1177
|
### Schema Browser
|
|
1163
1178
|
|
|
1164
|
-
The `F9` schema browser groups tables, views, procedures, functions,
|
|
1165
|
-
|
|
1166
|
-
Press `Enter` on a table or view to choose `Insert SELECT` (the default), `Load DDL`, or `Copy object name`. `Insert SELECT` adds a `select *` statement for the SQL-safe, unqualified object name to the current buffer and focuses the editor; it does not execute the query. `Copy object name` places that SQL-ready, unqualified identifier on the clipboard. For other object types, `Enter` offers `Load DDL` (the default) and `Copy object name`.
|
|
1179
|
+
The `F9` schema browser groups tables, views, procedures, functions, package specifications, package bodies, triggers, sequences, indexes, and private synonyms from the current schema. Type while the browser is focused to filter object names with a case-insensitive substring match; groups without matches are hidden and matching groups expand automatically without changing their saved expansion state. Exact quoted and mixed-case names are preserved when columns, routines or definitions are loaded, with Oracle-safe quoting applied to metadata requests.
|
|
1180
|
+
|
|
1181
|
+
Press `Enter` on a table or view to choose `Insert SELECT` (the default), `Load DDL`, or `Copy object name`. `Insert SELECT` adds a `select *` statement for the SQL-safe, unqualified object name to the current buffer and focuses the editor; it does not execute the query. `Copy object name` places that SQL-ready, unqualified identifier on the clipboard. For standalone procedures, functions and other object types, `Enter` offers `Load DDL` (the default) and `Copy object name`.
|
|
1182
|
+
|
|
1183
|
+
Package specifications and bodies show their own compilation status immediately
|
|
1184
|
+
before the package name: `C` means compiled, `I` means invalid compilation and
|
|
1185
|
+
`?` means status unavailable. A compiled specification can have an invalid body.
|
|
1186
|
+
Press `Enter` on either part to load the specification, body or both, or copy
|
|
1187
|
+
the package name. The selected part is the default; unavailable parts are
|
|
1188
|
+
omitted. Each loading mode has its own tab, and loading both puts the
|
|
1189
|
+
specification before the body in one SQL buffer.
|
|
1190
|
+
|
|
1191
|
+
Press `Space` on either package part to expand its public procedures and
|
|
1192
|
+
functions, including while filtering. The browser loads signatures in the
|
|
1193
|
+
background and shares the cache between the two package sections. `P` marks a
|
|
1194
|
+
procedure and `F` a function; overloads have separate signature rows. Private
|
|
1195
|
+
body routines are excluded because a worksheet cannot call them.
|
|
1196
|
+
Press `Enter` on a routine to insert a default PL/SQL call block at the current
|
|
1197
|
+
cursor, replacing selected text as one undoable edit, and focus the editor.
|
|
1198
|
+
The block declares typed variables for every parameter, including parameters
|
|
1199
|
+
with defaults and OUT/IN OUT parameters, and a result variable for functions.
|
|
1200
|
+
Edit the input values before running it. Insertion does not execute or compile
|
|
1201
|
+
the call. Unsupported or incomplete signatures report a reason and leave the
|
|
1202
|
+
buffer unchanged.
|
|
1203
|
+
|
|
1204
|
+
Press `Space` on a table or view to expand or collapse its column subtree,
|
|
1205
|
+
including while filtering. Column names appear in database order and are loaded
|
|
1206
|
+
in the background on first expansion, then cached. Columns are informational
|
|
1207
|
+
leaf rows; object actions apply to their parent table or view. `Ctrl-F` opens an
|
|
1208
|
+
object-name filter prompt that accepts spaces. Filtering matches object names
|
|
1209
|
+
and shows all children beneath expanded matching objects. `Ctrl-R` refreshes
|
|
1210
|
+
objects and package statuses, clears cached columns and routines, and collapses
|
|
1211
|
+
object branches, retaining the filter and group expansion state.
|
|
1167
1212
|
|
|
1168
1213
|
| Key | Action |
|
|
1169
1214
|
| --- | --- |
|
|
@@ -1172,9 +1217,10 @@ Press `Enter` on a table or view to choose `Insert SELECT` (the default), `Load
|
|
|
1172
1217
|
| `Esc` | Clear a nonempty filter, or return to the editor when the filter is empty |
|
|
1173
1218
|
| `Up` / `Down` | Move through browser entries |
|
|
1174
1219
|
| `PageUp` / `PageDown` | Move through browser entries by page |
|
|
1175
|
-
| `Enter` | Expand a group
|
|
1176
|
-
| `Space` | Expand/collapse
|
|
1177
|
-
| `Ctrl-
|
|
1220
|
+
| `Enter` | Expand a group, choose an object action, or insert a package routine call |
|
|
1221
|
+
| `Space` | Expand/collapse table/view columns or package routines; on groups, expand/collapse with an empty filter or add a space to an active filter |
|
|
1222
|
+
| `Ctrl-F` | Edit the object-name filter, including spaces |
|
|
1223
|
+
| `Ctrl-R` | Refresh database objects/statuses and clear column/routine subtrees and caches |
|
|
1178
1224
|
|
|
1179
1225
|
### Cell Viewer
|
|
1180
1226
|
|
|
@@ -1186,7 +1232,7 @@ Press `Enter` on a table or view to choose `Insert SELECT` (the default), `Load
|
|
|
1186
1232
|
| `PageUp` / `PageDown` | Scroll cell text by page |
|
|
1187
1233
|
| `Home` / `End` | Move to the first/last cell-viewer line |
|
|
1188
1234
|
| `Ctrl-S` (editor) | Save the multiline edit |
|
|
1189
|
-
| `Ctrl-
|
|
1235
|
+
| `Ctrl-P` / `Ctrl-Shift-P` / `Alt-Shift-P` / configured V keys / terminal paste (editor) | Paste exact clipboard text as one undoable edit |
|
|
1190
1236
|
| `Enter` (editor) | Insert a newline |
|
|
1191
1237
|
| `F10` / `Esc` / `Ctrl-Q` (editor) | Cancel the multiline edit |
|
|
1192
1238
|
|
|
@@ -1253,6 +1299,34 @@ for the exact manifest, source layout, validation, replacement, and trust rules.
|
|
|
1253
1299
|
|
|
1254
1300
|
### Table DDL Export
|
|
1255
1301
|
|
|
1302
|
+
### Schema Compare
|
|
1303
|
+
|
|
1304
|
+
Install `plugins/packages/schema-compare-0.1.0.plwgn` and restart the updated
|
|
1305
|
+
host. **Alt-O -> Database -> Compare schema objects** chooses two schemas on
|
|
1306
|
+
the current connection and compares visible object names/types and logical
|
|
1307
|
+
definitions. Browse changed, one-sided, equal and unavailable objects; filter
|
|
1308
|
+
by name/type/status, open unified differences with Enter, and cycle original
|
|
1309
|
+
definitions with Tab. **Ctrl-E** exports all or filtered differences to CSV,
|
|
1310
|
+
HTML or XLSX, including summaries, line numbers and visibility notes. CSV/HTML
|
|
1311
|
+
need no extra; XLSX uses `plsqlwks[xlsx]`. The comparison preserves transactions,
|
|
1312
|
+
sequence state and the original editor/results. See the
|
|
1313
|
+
[catalog guide](doc/PLUGIN_CATALOG.md#schema-compare) for rules and limits.
|
|
1314
|
+
|
|
1315
|
+
### E-R Diagram
|
|
1316
|
+
|
|
1317
|
+
Install `plugins/packages/er-diagram-0.1.3.plwgn` with `plsqlwks plugin install`
|
|
1318
|
+
and restart the updated host. **Alt-O -> Database -> Export E-R Diagram (SVG/PNG/PDF)**
|
|
1319
|
+
opens a **Bright / Dark** theme picker followed by an **SVG / PNG / PDF** format
|
|
1320
|
+
picker. Use arrow keys and Enter; defaults are Bright and SVG. Then filter and
|
|
1321
|
+
check current-schema tables and views and export their columns, keys and
|
|
1322
|
+
foreign-key relationships. Connectors show numbered foreign-key names matching
|
|
1323
|
+
the detailed relationship notes. Relative destinations use the results directory.
|
|
1324
|
+
SVG uses the standard library; PNG/PDF require the optional `er-diagram` extra
|
|
1325
|
+
and the Cairo library. See the catalog for installation instructions.
|
|
1326
|
+
See the [catalog guide](doc/PLUGIN_CATALOG.md#e-r-diagram) for controls and limits.
|
|
1327
|
+
|
|
1328
|
+
### Table DDL Export
|
|
1329
|
+
|
|
1256
1330
|
Install `plugins/packages/table-ddl-export-0.1.1.plwgn` with
|
|
1257
1331
|
`plsqlwks plugin install` and restart. **Alt-O -> Database -> Export table DDL**
|
|
1258
1332
|
lets you choose a schema, filter table names as you type, select tables, and
|