plsqlwks 0.2.3__tar.gz → 0.2.5__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.5}/PKG-INFO +193 -54
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/README.md +190 -53
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/doc/API.md +121 -1
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/doc/ARCHITECTURE.md +27 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/doc/PLUGINS.md +26 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/doc/PLUGIN_CATALOG.md +153 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/__init__.py +1 -1
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/metadata.py +175 -8
- plsqlwks-0.2.5/plsqlwks/db/schema_compare.py +385 -0
- plsqlwks-0.2.5/plsqlwks/db/schema_diagram.py +118 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/session.py +50 -1
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/table_export.py +42 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/plugins/__init__.py +10 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/plugins/api.py +56 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/__init__.py +8 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/app.py +46 -7
- plsqlwks-0.2.5/plsqlwks/ui/browser.py +225 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/catalog.py +337 -46
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/clipboard.py +49 -15
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/commands.py +18 -11
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/constants.py +41 -11
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/db_session.py +29 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/dialogs.py +73 -6
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/editor_controller.py +28 -8
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/input_controller.py +22 -2
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/keys.py +20 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/plugin_host.py +36 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/ports.py +2 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/renderer.py +16 -2
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/result_controller.py +27 -16
- plsqlwks-0.2.5/plsqlwks/ui/schema_compare.py +375 -0
- plsqlwks-0.2.5/plsqlwks/ui/schema_diagram.py +254 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/state.py +8 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/viewport.py +22 -2
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks.egg-info/SOURCES.txt +14 -0
- plsqlwks-0.2.5/plugins/er-diagram/install.plw +7 -0
- plsqlwks-0.2.5/plugins/er-diagram/payload/plugin.py +36 -0
- plsqlwks-0.2.5/plugins/er-diagram/payload/writer.py +252 -0
- plsqlwks-0.2.5/plugins/packages/er-diagram-0.1.3.plwgn +0 -0
- plsqlwks-0.2.5/plugins/packages/schema-compare-0.1.0.plwgn +0 -0
- plsqlwks-0.2.5/plugins/schema-compare/install.plw +7 -0
- plsqlwks-0.2.5/plugins/schema-compare/payload/plugin.py +22 -0
- plsqlwks-0.2.5/plugins/schema-compare/payload/writer.py +172 -0
- plsqlwks-0.2.5/plugins/table-ddl-export/payload/__init__.py +0 -0
- plsqlwks-0.2.5/plugins/xlsx-export/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/pyproject.toml +3 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/tests/fixtures/ui_exports.txt +8 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/tools/putty_keys.ps1 +43 -7
- plsqlwks-0.2.3/plsqlwks/ui/browser.py +0 -124
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/doc/COMPATIBILITY.md +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/doc/QUICKSTART.html +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/doc/QUICKSTART.md +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/license.txt +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/__main__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/cli.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/config/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/config/loader.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/config/models.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/config/paths.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/config/session.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/config/settings.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/ddl_remap.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/dependencies.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/editing.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/execution.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/explain.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/health.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/identifiers.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/models.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/sql_analysis.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/table_export_catalog.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/timestamps.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/db/transactions.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/exporting.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/plugins/loader.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/plugins/management.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/sqlbinds.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/sqlsplit.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/application_controller.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/buffer.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/code_generation.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/command_dispatcher.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/completion.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/db_operations.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/db_worker.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/dependency_walker.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/display.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/documents.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/errors.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/help.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/key_reader.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/menu.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/output_selection.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/query_controller.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/result_export.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/result_presenter.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/results.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/sql.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/sqlplus.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/syntax.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/ui/table_export.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plsqlwks/workspace.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/csv-export/install.plw +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/csv-export/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/csv-export/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/csv-export/payload/support.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/csv-export/payload/writer.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/csv2oratab/install.plw +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/csv2oratab/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/csv2oratab/payload/csv2oratab.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/csv2oratab/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/dependencies-walker/install.plw +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/dependencies-walker/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/dependencies-walker/payload/plugin.py +0 -0
- {plsqlwks-0.2.3/plugins/html-export → plsqlwks-0.2.5/plugins/er-diagram}/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/html-export/install.plw +0 -0
- {plsqlwks-0.2.3/plugins/sqlplus → plsqlwks-0.2.5/plugins/html-export}/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/html-export/payload/html_exporting.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/html-export/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/html-export/payload/support.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/html-export/payload/writer.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/packages/csv-export-1.0.0.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/packages/csv2oratab-0.1.0.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/packages/dependencies-walker-0.1.0.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/packages/html-export-1.0.0.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/packages/sqlplus-0.1.0.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/packages/table-ddl-export-0.1.1.plwgn +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/packages/xlsx-export-1.0.0.plwgn +0 -0
- {plsqlwks-0.2.3/plugins/table-ddl-export → plsqlwks-0.2.5/plugins/schema-compare}/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/sqlplus/install.plw +0 -0
- {plsqlwks-0.2.3/plugins/xlsx-export → plsqlwks-0.2.5/plugins/sqlplus}/payload/__init__.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/sqlplus/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/table-ddl-export/install.plw +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/table-ddl-export/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/xlsx-export/install.plw +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/xlsx-export/payload/plugin.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/xlsx-export/payload/support.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/plugins/xlsx-export/payload/xlsx_exporting.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/pytest.ini +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/rchar.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/requirements.txt +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/setup.cfg +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/tests/conftest.py +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/tests/fixtures/config_exports.txt +0 -0
- {plsqlwks-0.2.3 → plsqlwks-0.2.5}/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.5
|
|
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-Alt-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,33 @@ 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-Alt-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. `Ctrl-P` finds the
|
|
707
|
+
previous occurrence of the last search string, retaining case sensitivity and
|
|
708
|
+
wrapping at the start of the worksheet.
|
|
709
|
+
The copy shortcuts work for editor selections, result cells/ranges,
|
|
710
|
+
DBMS_OUTPUT selections and schema-browser object names. Paste works in the
|
|
711
|
+
worksheet, paste-enabled prompts and editable cell text dialogs.
|
|
712
|
+
|
|
713
|
+
Open **Alt-O → Preferences → Clipboard** to inspect the fixed shortcuts and
|
|
714
|
+
backend capabilities, configure legacy copy/cut destinations and choose the
|
|
715
|
+
sources for `Ctrl-V` and `Ctrl-Shift-V`. Save persists settings in your workspace
|
|
716
|
+
`config.ini`; Cancel discards changes. The new C/P shortcuts ignore these
|
|
717
|
+
settings. `Ctrl-X` and legacy copy commands retain configured destinations and
|
|
718
|
+
an internal copy; cut remains one immediate Undo edit. New workspaces without
|
|
719
|
+
Windows tools default legacy copy/paste to Linux.
|
|
715
720
|
|
|
716
721
|
```ini
|
|
717
722
|
[clipboard]
|
|
@@ -724,20 +729,26 @@ ctrl_shift_v_source = internal
|
|
|
724
729
|
Paste sources are `windows`, `internal`, or `linux`. Windows paste reads Windows
|
|
725
730
|
exclusively: failure or empty contents causes no insertion and explicit
|
|
726
731
|
feedback. Internal paste performs no OS access and cancels a pending paste for
|
|
727
|
-
that target.
|
|
728
|
-
|
|
732
|
+
that target. The fixed copy shortcuts update only their selected clipboard;
|
|
733
|
+
legacy copy/cut updates internal text immediately and then attempts configured
|
|
734
|
+
external destinations in a background worker. Windows copy tries PowerShell,
|
|
729
735
|
then `clip.exe` on failure, and verifies contents by readback when a reader is
|
|
730
736
|
available. Copy-only Windows access is labelled unverified. Each Linux provider
|
|
731
737
|
is attempted when Linux copying is enabled. A Linux success does not conceal a
|
|
732
738
|
Windows failure.
|
|
733
739
|
|
|
734
|
-
Windows Terminal
|
|
735
|
-
To
|
|
740
|
+
If Windows Terminal consumes a shortcut, forward it to PLSQLWKS.
|
|
741
|
+
To configure explicit forwarding, open **Settings → Open JSON file** and add these
|
|
736
742
|
entries to `actions`, keeping the other actions:
|
|
737
743
|
|
|
738
744
|
```json
|
|
739
|
-
{ "command": { "action": "sendInput", "input": "\u0003" }, "id": "User.
|
|
740
|
-
{ "command": { "action": "sendInput", "input": "\u001b[
|
|
745
|
+
{ "command": { "action": "sendInput", "input": "\u0003" }, "id": "User.PlsqlwksInternalCopy" },
|
|
746
|
+
{ "command": { "action": "sendInput", "input": "\u001b[112;7u" }, "id": "User.PlsqlwksInternalPaste" },
|
|
747
|
+
{ "command": { "action": "sendInput", "input": "\u0010" }, "id": "User.PlsqlwksPreviousMatch" },
|
|
748
|
+
{ "command": { "action": "sendInput", "input": "\u001b[99;6u" }, "id": "User.PlsqlwksSystemCopy" },
|
|
749
|
+
{ "command": { "action": "sendInput", "input": "\u001b[112;6u" }, "id": "User.PlsqlwksSystemPaste" },
|
|
750
|
+
{ "command": { "action": "sendInput", "input": "\u001b[99;4u" }, "id": "User.PlsqlwksWslCopy" },
|
|
751
|
+
{ "command": { "action": "sendInput", "input": "\u001b[112;4u" }, "id": "User.PlsqlwksWslPaste" },
|
|
741
752
|
{ "command": { "action": "sendInput", "input": "\u0016" }, "id": "User.PlsqlwksPaste" },
|
|
742
753
|
{ "command": { "action": "sendInput", "input": "\u001b[118;6u" }, "id": "User.PlsqlwksAlternatePaste" }
|
|
743
754
|
```
|
|
@@ -746,8 +757,13 @@ Replace the existing copy/paste entries in `keybindings` with
|
|
|
746
757
|
the entries below, keeping the other keybindings:
|
|
747
758
|
|
|
748
759
|
```json
|
|
749
|
-
{ "id": "User.
|
|
750
|
-
{ "id": "User.
|
|
760
|
+
{ "id": "User.PlsqlwksInternalCopy", "keys": "ctrl+c" },
|
|
761
|
+
{ "id": "User.PlsqlwksInternalPaste", "keys": "ctrl+alt+p" },
|
|
762
|
+
{ "id": "User.PlsqlwksPreviousMatch", "keys": "ctrl+p" },
|
|
763
|
+
{ "id": "User.PlsqlwksSystemCopy", "keys": "ctrl+shift+c" },
|
|
764
|
+
{ "id": "User.PlsqlwksSystemPaste", "keys": "ctrl+shift+p" },
|
|
765
|
+
{ "id": "User.PlsqlwksWslCopy", "keys": "alt+shift+c" },
|
|
766
|
+
{ "id": "User.PlsqlwksWslPaste", "keys": "alt+shift+p" },
|
|
751
767
|
{ "id": "User.PlsqlwksPaste", "keys": "ctrl+v" },
|
|
752
768
|
{ "id": "User.PlsqlwksAlternatePaste", "keys": "ctrl+shift+v" }
|
|
753
769
|
```
|
|
@@ -755,7 +771,7 @@ the entries below, keeping the other keybindings:
|
|
|
755
771
|
This setting applies to every Windows Terminal profile and tab. Restart
|
|
756
772
|
plsqlwks after upgrading and reopen Windows Terminal if it retains old bindings.
|
|
757
773
|
The command menu offers equivalents when a terminal intercepts the shortcuts.
|
|
758
|
-
The optional `tools/putty_keys.ps1` helper also forwards
|
|
774
|
+
The optional `tools/putty_keys.ps1` helper also forwards these shortcuts when
|
|
759
775
|
enabled for the active Windows terminal window.
|
|
760
776
|
|
|
761
777
|
Keyboard navigation, resizing and dialogs remain available while clipboard
|
|
@@ -781,11 +797,14 @@ See Microsoft's [send input action](https://learn.microsoft.com/en-us/windows/te
|
|
|
781
797
|
| Key | Action |
|
|
782
798
|
| --- | --- |
|
|
783
799
|
| `Alt-O` | Open the top-left commands menu |
|
|
800
|
+
| `Alt-I` | Show connection information for the active tab |
|
|
784
801
|
| `F1` | Help |
|
|
785
802
|
| `F6` | Switch between DBMS_OUTPUT and normal results |
|
|
786
803
|
| `F7` | Cycle fullscreen grid, fullscreen editor, and 2/3 editor + 1/3 grid |
|
|
787
804
|
| `F8` | Toggle result grid / row-detail output |
|
|
788
805
|
| `F9` | Show/focus/hide schema browser |
|
|
806
|
+
| `Shift-F9` | Toggle Schema Browser between normal and half-screen width |
|
|
807
|
+
| `Shift-Alt-F9` | Toggle Schema Browser between full-screen and its previous width |
|
|
789
808
|
| `F12` | Choose autocommit or manual transaction mode |
|
|
790
809
|
| `Ctrl-Up` / `Ctrl-Down` | Scroll the focused pane or visible DBMS_OUTPUT by one line |
|
|
791
810
|
| `Ctrl-W` | Close current file tab |
|
|
@@ -796,6 +815,25 @@ See Microsoft's [send input action](https://learn.microsoft.com/en-us/windows/te
|
|
|
796
815
|
| `Ctrl-Alt-C` | Insert the active result-grid draft, or commit when no draft is active |
|
|
797
816
|
| `Ctrl-Alt-R` | Roll back the current transaction |
|
|
798
817
|
|
|
818
|
+
### Connection information
|
|
819
|
+
|
|
820
|
+
Press `Alt-I`, or choose **Alt-O → Database → Connection information**, from the
|
|
821
|
+
editor, results or schema browser. A centered dialog shows the connected user,
|
|
822
|
+
current schema, service, database and unique database name, container, instance,
|
|
823
|
+
server host, session SID, server timestamp with fractional seconds and timezone,
|
|
824
|
+
database/session time zones, Oracle version, driver version and Thin/Thick mode,
|
|
825
|
+
autocommit and read-only mode. The information is refreshed from the active tab's
|
|
826
|
+
existing session without changing worksheet results, transactions or unread
|
|
827
|
+
DBMS_OUTPUT. A busy active session uses the existing operation-running feedback;
|
|
828
|
+
a disconnected session shows `Not connected` without reconnecting.
|
|
829
|
+
|
|
830
|
+
The dialog keeps **[ OK ]** visible. Press Enter or Space to accept, or Esc/Ctrl-Q
|
|
831
|
+
to close. Use Up/Down, PageUp/PageDown or Home/End to scroll long details; resize
|
|
832
|
+
the terminal to change the layout. Requests cancelled or completed after switching
|
|
833
|
+
away from their tab do not open a late dialog. The Windows keyboard helper forwards
|
|
834
|
+
Alt-I; a Windows Terminal profile that consumes it can forward `\u001bi` with a
|
|
835
|
+
`sendInput` action bound to `alt+i`.
|
|
836
|
+
|
|
799
837
|
### Editor
|
|
800
838
|
|
|
801
839
|
| Key | Action |
|
|
@@ -832,11 +870,13 @@ See Microsoft's [send input action](https://learn.microsoft.com/en-us/windows/te
|
|
|
832
870
|
| `Ctrl-F` | Open literal Find/Replace with the `Find next` action |
|
|
833
871
|
| `Alt-O` -> **Editor** -> **Replace text** | Open Find/Replace at the replacement field |
|
|
834
872
|
| `Ctrl-G` | Go to line |
|
|
835
|
-
| `Ctrl-N`
|
|
873
|
+
| `Ctrl-N` | Move to the next search occurrence |
|
|
874
|
+
| `Ctrl-P` / `Alt-O → Editor → Previous search match` | Move to the previous search occurrence |
|
|
836
875
|
| `Ctrl-U` | Uppercase selected SQL code |
|
|
837
876
|
| `Ctrl-L` | Lowercase selected SQL code |
|
|
838
|
-
| `Ctrl-C` | Copy
|
|
839
|
-
| `Ctrl-Shift-C` | Copy
|
|
877
|
+
| `Ctrl-C` / `Ctrl-Alt-P` | Copy/paste internally |
|
|
878
|
+
| `Ctrl-Shift-C` / `Ctrl-Shift-P` | Copy/paste the System (Windows) clipboard |
|
|
879
|
+
| `Alt-Shift-C` / `Alt-Shift-P` | Copy/paste the WSL/Linux clipboard |
|
|
840
880
|
| `Ctrl-X` | Cut selected text |
|
|
841
881
|
| `Ctrl-V` | Paste clipboard text, expanding each tab to two spaces |
|
|
842
882
|
| `Ctrl-Shift-V` | Paste the alternate source (internal by default) |
|
|
@@ -875,11 +915,12 @@ The dialog provides `Find next`, `Replace`, `Replace all`, and `Cancel` actions.
|
|
|
875
915
|
and lowercase letters. `Replace` changes the selected matching occurrence, or
|
|
876
916
|
the next match from the cursor, and then selects the following match. `Replace
|
|
877
917
|
all` changes every match in the current buffer. Either replacement operation is
|
|
878
|
-
recorded as one undoable edit. `Ctrl-N`
|
|
879
|
-
|
|
918
|
+
recorded as one undoable edit. `Ctrl-N` repeats the last search forward and
|
|
919
|
+
`Ctrl-P` repeats it backward. Both retain the case setting and wrap around.
|
|
920
|
+
**Alt-O → Editor → Previous search match** provides the same backward search.
|
|
880
921
|
|
|
881
922
|
Editor paste expands every tab character to two spaces and keeps multiline
|
|
882
|
-
text in one undoable edit. This applies to
|
|
923
|
+
text in one undoable edit. This applies to all fixed and configured paste shortcuts and
|
|
883
924
|
to native terminal paste while the editor is focused;
|
|
884
925
|
clipboard contents themselves are not changed. Native paste requires a
|
|
885
926
|
terminal that supports the standard bracketed-paste protocol, with `Ctrl-V`
|
|
@@ -926,8 +967,9 @@ Read-only mode is a client-side guardrail that rejects statements which the SQL
|
|
|
926
967
|
| `Home` / `End` | Move to the first/last result-grid column |
|
|
927
968
|
| `Ctrl-Home` / `Ctrl-End` | Move to the first/last result-grid row |
|
|
928
969
|
| `F8` | Toggle result grid / row-detail output |
|
|
929
|
-
| `Ctrl-C` | Copy
|
|
930
|
-
| `Ctrl-Shift-C` | Copy the same cell/range
|
|
970
|
+
| `Ctrl-C` | Copy a cell/range internally; ranges offer header handling |
|
|
971
|
+
| `Ctrl-Shift-C` | Copy the same cell/range to System (Windows) |
|
|
972
|
+
| `Alt-Shift-C` | Copy the same cell/range to WSL/Linux |
|
|
931
973
|
| `F10` | View or edit a mapped text cell in a ROWID-backed result |
|
|
932
974
|
| `Enter` | Edit the selected ROWID-backed result cell when available |
|
|
933
975
|
| `INS` | Prepare a draft insert row for ROWID-backed results |
|
|
@@ -1016,8 +1058,9 @@ move within a displayed line; Ctrl+Home/End move to the output boundaries.
|
|
|
1016
1058
|
|
|
1017
1059
|
Copying preserves the stored text, whitespace, blank lines, and statement
|
|
1018
1060
|
headings, without screen wrapping or padding. The existing system clipboard
|
|
1019
|
-
|
|
1020
|
-
|
|
1061
|
+
backends are reused: Ctrl+C copies internally, Ctrl+Shift+C copies to Windows,
|
|
1062
|
+
and Alt+Shift+C copies to WSL/Linux. Fixed external shortcuts do not fall back
|
|
1063
|
+
to another clipboard. Ctrl+C still cancels a running operation
|
|
1021
1064
|
before performing a copy. Selection belongs to its file tab, survives appended
|
|
1022
1065
|
output and resizing, and resets when execution replaces the output.
|
|
1023
1066
|
|
|
@@ -1195,9 +1238,72 @@ validate this opt-in mode with the applications in use.
|
|
|
1195
1238
|
|
|
1196
1239
|
### Schema Browser
|
|
1197
1240
|
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1241
|
+
Press `F9` to open or focus Schema Browser. While it is focused, `F9` closes it
|
|
1242
|
+
and returns to the SQL buffer. Press `Tab` to keep the browser open and focus
|
|
1243
|
+
the SQL buffer, so you can edit SQL beside the tree; press `F9` to return to it.
|
|
1244
|
+
Filters, selected objects, expanded branches and cached metadata are retained.
|
|
1245
|
+
|
|
1246
|
+
`Shift-F9` opens/focuses the browser and toggles its normal width with a left
|
|
1247
|
+
half-screen pane; the SQL buffer and results stay on the right. `Shift-Alt-F9`
|
|
1248
|
+
opens/focuses a full-screen browser with its filter header and status line, and
|
|
1249
|
+
pressing it again restores the previous normal or half-screen width. From a
|
|
1250
|
+
full-screen browser, Tab, returning to the editor with Esc, or loading/inserting
|
|
1251
|
+
SQL also restores that previous width. Shift-F9 switches a full-screen browser
|
|
1252
|
+
to half-screen. Closing it with F9 retains the side-by-side width for reopening.
|
|
1253
|
+
Browser sizes last for the current application session.
|
|
1254
|
+
|
|
1255
|
+
Opening/focusing the browser exits an incompatible F7 editor/grid fullscreen
|
|
1256
|
+
view, restoring the saved SQL/results split or the two-thirds-editor layout.
|
|
1257
|
+
F7 retains its existing editor/grid layout cycle. A terminal that consumes the
|
|
1258
|
+
new shortcuts can forward `\u001b[20;2~` for Shift-F9 and `\u001b[20;4~` for
|
|
1259
|
+
Shift-Alt-F9 with Windows Terminal `sendInput` actions. The Windows keyboard
|
|
1260
|
+
helper forwards both shortcuts while preserving AltGr combinations.
|
|
1261
|
+
|
|
1262
|
+
The `F9` schema browser groups tables, views, procedures, functions, package specifications, package bodies, types, type 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.
|
|
1263
|
+
|
|
1264
|
+
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`.
|
|
1265
|
+
|
|
1266
|
+
Package specifications and bodies show their own compilation status immediately
|
|
1267
|
+
before the package name: `C` means compiled, `I` means invalid compilation and
|
|
1268
|
+
`?` means status unavailable. A compiled specification can have an invalid body.
|
|
1269
|
+
Press `Enter` on either part to load the specification, body or both, or copy
|
|
1270
|
+
the package name. The selected part is the default; unavailable parts are
|
|
1271
|
+
omitted. Each loading mode has its own tab, and loading both puts the
|
|
1272
|
+
specification before the body in one SQL buffer.
|
|
1273
|
+
|
|
1274
|
+
Press `Space` on either package part to expand its public procedures and
|
|
1275
|
+
functions, including while filtering. The browser loads signatures in the
|
|
1276
|
+
background and shares the cache between the two package sections. `P` marks a
|
|
1277
|
+
procedure and `F` a function; overloads have separate signature rows. Private
|
|
1278
|
+
body routines are excluded because a worksheet cannot call them.
|
|
1279
|
+
Press `Enter` on a routine to insert a default PL/SQL call block at the current
|
|
1280
|
+
cursor, replacing selected text as one undoable edit, and focus the editor.
|
|
1281
|
+
The block declares typed variables for every parameter, including parameters
|
|
1282
|
+
with defaults and OUT/IN OUT parameters, and a result variable for functions.
|
|
1283
|
+
Edit the input values before running it. Insertion does not execute or compile
|
|
1284
|
+
the call. Unsupported or incomplete signatures report a reason and leave the
|
|
1285
|
+
buffer unchanged.
|
|
1286
|
+
|
|
1287
|
+
Press `Space` on a standalone procedure or function to expand its callable
|
|
1288
|
+
signature with parameter directions, types and the function return type. Press
|
|
1289
|
+
`Enter` on the signature to insert the same owner-qualified call template as for
|
|
1290
|
+
package routines. The parent object's Enter menu still offers Load DDL and Copy
|
|
1291
|
+
object name. Signatures load asynchronously and are cached until refresh.
|
|
1292
|
+
|
|
1293
|
+
The **Types** group includes object and collection types; **Type bodies** lists
|
|
1294
|
+
their implementations separately. Enter offers Load DDL or Copy object name.
|
|
1295
|
+
Loading a type fetches its specification only; loading a type body fetches its
|
|
1296
|
+
body only, with owner-qualified DDL and a single slash terminator. Type attributes
|
|
1297
|
+
and methods do not expand into child rows.
|
|
1298
|
+
|
|
1299
|
+
Press `Space` on a table or view to expand or collapse its column subtree,
|
|
1300
|
+
including while filtering. Column names appear in database order and are loaded
|
|
1301
|
+
in the background on first expansion, then cached. Columns are informational
|
|
1302
|
+
leaf rows; object actions apply to their parent table or view. `Ctrl-F` opens an
|
|
1303
|
+
object-name filter prompt that accepts spaces. Filtering matches object names
|
|
1304
|
+
and shows all children beneath expanded matching objects. `Ctrl-R` refreshes
|
|
1305
|
+
objects and package statuses, clears cached columns and routines, and collapses
|
|
1306
|
+
object branches, retaining the filter and group expansion state.
|
|
1201
1307
|
|
|
1202
1308
|
| Key | Action |
|
|
1203
1309
|
| --- | --- |
|
|
@@ -1206,9 +1312,14 @@ Press `Enter` on a table or view to choose `Insert SELECT` (the default), `Load
|
|
|
1206
1312
|
| `Esc` | Clear a nonempty filter, or return to the editor when the filter is empty |
|
|
1207
1313
|
| `Up` / `Down` | Move through browser entries |
|
|
1208
1314
|
| `PageUp` / `PageDown` | Move through browser entries by page |
|
|
1209
|
-
| `
|
|
1210
|
-
| `
|
|
1211
|
-
| `
|
|
1315
|
+
| `Tab` | Focus the SQL buffer, keeping the browser open |
|
|
1316
|
+
| `F9` | Close the browser and focus the SQL buffer |
|
|
1317
|
+
| `Shift-F9` | Toggle normal/half-screen width and focus the browser |
|
|
1318
|
+
| `Shift-Alt-F9` | Toggle full-screen/previous width and focus the browser |
|
|
1319
|
+
| `Enter` | Expand a group, choose an object action, or insert a routine call |
|
|
1320
|
+
| `Space` | Expand/collapse table/view columns, package routines or standalone signatures; on groups, expand/collapse with an empty filter or add a space to an active filter |
|
|
1321
|
+
| `Ctrl-F` | Edit the object-name filter, including spaces |
|
|
1322
|
+
| `Ctrl-R` | Refresh database objects/statuses and clear column/routine subtrees and caches |
|
|
1212
1323
|
|
|
1213
1324
|
### Cell Viewer
|
|
1214
1325
|
|
|
@@ -1220,7 +1331,7 @@ Press `Enter` on a table or view to choose `Insert SELECT` (the default), `Load
|
|
|
1220
1331
|
| `PageUp` / `PageDown` | Scroll cell text by page |
|
|
1221
1332
|
| `Home` / `End` | Move to the first/last cell-viewer line |
|
|
1222
1333
|
| `Ctrl-S` (editor) | Save the multiline edit |
|
|
1223
|
-
| `Ctrl-
|
|
1334
|
+
| `Ctrl-Alt-P` / `Ctrl-Shift-P` / `Alt-Shift-P` / configured V keys / terminal paste (editor) | Paste exact clipboard text as one undoable edit |
|
|
1224
1335
|
| `Enter` (editor) | Insert a newline |
|
|
1225
1336
|
| `F10` / `Esc` / `Ctrl-Q` (editor) | Cancel the multiline edit |
|
|
1226
1337
|
|
|
@@ -1287,6 +1398,34 @@ for the exact manifest, source layout, validation, replacement, and trust rules.
|
|
|
1287
1398
|
|
|
1288
1399
|
### Table DDL Export
|
|
1289
1400
|
|
|
1401
|
+
### Schema Compare
|
|
1402
|
+
|
|
1403
|
+
Install `plugins/packages/schema-compare-0.1.0.plwgn` and restart the updated
|
|
1404
|
+
host. **Alt-O -> Database -> Compare schema objects** chooses two schemas on
|
|
1405
|
+
the current connection and compares visible object names/types and logical
|
|
1406
|
+
definitions. Browse changed, one-sided, equal and unavailable objects; filter
|
|
1407
|
+
by name/type/status, open unified differences with Enter, and cycle original
|
|
1408
|
+
definitions with Tab. **Ctrl-E** exports all or filtered differences to CSV,
|
|
1409
|
+
HTML or XLSX, including summaries, line numbers and visibility notes. CSV/HTML
|
|
1410
|
+
need no extra; XLSX uses `plsqlwks[xlsx]`. The comparison preserves transactions,
|
|
1411
|
+
sequence state and the original editor/results. See the
|
|
1412
|
+
[catalog guide](doc/PLUGIN_CATALOG.md#schema-compare) for rules and limits.
|
|
1413
|
+
|
|
1414
|
+
### E-R Diagram
|
|
1415
|
+
|
|
1416
|
+
Install `plugins/packages/er-diagram-0.1.3.plwgn` with `plsqlwks plugin install`
|
|
1417
|
+
and restart the updated host. **Alt-O -> Database -> Export E-R Diagram (SVG/PNG/PDF)**
|
|
1418
|
+
opens a **Bright / Dark** theme picker followed by an **SVG / PNG / PDF** format
|
|
1419
|
+
picker. Use arrow keys and Enter; defaults are Bright and SVG. Then filter and
|
|
1420
|
+
check current-schema tables and views and export their columns, keys and
|
|
1421
|
+
foreign-key relationships. Connectors show numbered foreign-key names matching
|
|
1422
|
+
the detailed relationship notes. Relative destinations use the results directory.
|
|
1423
|
+
SVG uses the standard library; PNG/PDF require the optional `er-diagram` extra
|
|
1424
|
+
and the Cairo library. See the catalog for installation instructions.
|
|
1425
|
+
See the [catalog guide](doc/PLUGIN_CATALOG.md#e-r-diagram) for controls and limits.
|
|
1426
|
+
|
|
1427
|
+
### Table DDL Export
|
|
1428
|
+
|
|
1290
1429
|
Install `plugins/packages/table-ddl-export-0.1.1.plwgn` with
|
|
1291
1430
|
`plsqlwks plugin install` and restart. **Alt-O -> Database -> Export table DDL**
|
|
1292
1431
|
lets you choose a schema, filter table names as you type, select tables, and
|