From 428dafa568923d5632101c716fb20a3de35d27be Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sat, 15 Feb 2025 01:32:05 +0300 Subject: support mouse interaction with popup windows * Curses allows scrolling with the scroll wheel at least if mouse support is enabled via ED flags. Gtk always supported that. * Allow clicking on popup entries to fully autocomplete them. Since this behavior - just like auto completions - is parser state-dependant, I introduced a new state method (insert_completion_cb). All the implementations are currently in cmdline.c since there is some overlap with the process_edit_cmd_cb implementations. * Fixed pressing undefined function keys while showing the popup. The popup area is no longer redrawn/replaced with the Scintilla view. Instead, continue to show the popup. --- doc/sciteco.7.template | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/sciteco.7.template b/doc/sciteco.7.template index 97e1fd7..95c3503 100644 --- a/doc/sciteco.7.template +++ b/doc/sciteco.7.template @@ -303,7 +303,7 @@ current parser state (see below). .SCITECO_TOPIC ^KMOUSE .B ^KMOUSE Mouse event occurred. -This may not be delivered unless bit 7 (64) is set in the +This will not be delivered on Curses unless bit 7 (64) is set in the \fBED\fP flags. You can use \fBEJ\fP with negative keys to retrieve the event type, mouse coordinates and other information @@ -755,10 +755,12 @@ Global and local Q-Registers are not affected by command line termination. .SS Auto Completion . .SCITECO_TOPIC autocomplete -The immediate editing commands that perform auto-completions, do +The immediate editing commands, that perform auto-completions, do so in a manner similar to Posix shells. Upon first invocation they try to fully or partially complete the file name (or token). +If the token can be fully completed, the current command or Q-Register +specification will also usually be terminated automatically. If no completion can be performed, the invocation will display a list of file names (or tokens) that begin with the token to complete in \*(ST's popup area. @@ -770,6 +772,15 @@ of file names or tokens is displayed in the popup area. I.e. it is possible to cycle through long lists of possible auto-completions. .LP +You can also scroll through the popup area with the mouse wheel. +Furthermore, you can click on entries in the popup area with the +mouse in order to fully complete them. +Often this will also automatically terminate the current command or +Q-Register specification, just like an unambiguous completion via +immediate editing commands. +On Curses, mouse events are not processed unless bit 7 (64) is set +in the \fBED\fP flags. +.LP When completing file names, hidden files are not considered for completion unless a prefix of the hidden file's name has already been typed. @@ -789,6 +800,13 @@ file names with \(lq./\(rq. This is useful for writing cross-platform \*(ST macros (see .BR "FILE NAMES AND DIRECTORIES" ). .LP +File name completions are case-sensitive or insensitive depending +on operating system defaults. +On some operating systems \*(ST can determine the case-sensitivity +of individual directories as well. +\# Should be supported on Mac OS and newer versions of Windows, +\# but it's still untested. +.LP Note that completions take place after string building and tilde-expansion is also performed by file name completions, so for instance both \(lq~/foo\(rq and \(lq^EQ[$HOME]/foo\(rq -- cgit v1.2.3