Patch 8.1.1329
Problem:    Plans for popup window support are spread out.
Solution:   Add a first version of the popup window help.
Files:      runtime/doc/popup.txt, runtime/doc/Makefile, runtime/doc/help.txt


*** ../vim-8.1.1328/runtime/doc/popup.txt       2019-05-12 21:43:02.490679879 
+0200
--- runtime/doc/popup.txt       2019-05-12 21:36:26.116844754 +0200
***************
*** 0 ****
--- 1,274 ----
+ *popup.txt*  For Vim version 8.1.  Last change: 2019 May 12
+ 
+ 
+                 VIM REFERENCE MANUAL    by Bram Moolenaar
+ 
+ 
+ Displaying text with properties attached.     *popup* *popup-window*
+ 
+ THIS IS UNDER DESIGN - ANYTHING MAY STILL CHANGE  
+ 
+ 1. Introduction                       |popup-intro|
+ 2. Functions                  |popup-functions|
+ 3. Examples                   |popup-examples|
+ 
+ 
+ {not able to use text properties when the |+textprop| feature was
+ disabled at compile time}
+ 
+ ==============================================================================
+ 1. Introduction                                               *popup-intro*
+ 
+ We are talking about popup windows here, text that goes on top of the buffer
+ text and is under control of a plugin.  Other popup functionality:
+ - popup menu, see |popup-menu|
+ - balloon, see |balloon-eval|
+ 
+ TODO
+ 
+ ==============================================================================
+ 2. Functions                                          *popup-functions*
+ 
+ THIS IS UNDER DESIGN - ANYTHING MAY STILL CHANGE  
+ 
+ Proposal and discussion on issue #4063: https://github.com/vim/vim/issues/4063
+ 
+ [to be moved to eval.txt later]
+ 
+ popup_show({lines}, {options})                                *popup_show()*
+               Open a popup window showing {lines}, which is a list of lines,
+               where each line has text and text properties.
+ 
+               {options} is a dictionary with many possible entries.
+ 
+               Returns a unique ID to be used with |popup_close()|.
+ 
+               See |popup_show-usage| for details.
+ 
+ 
+ popup_dialog({lines}, {options})                      *popup_dialog()*
+               Just like |popup_show()| but with different default options:
+                       pos             "center"
+                       zindex          200
+                       border          []
+ 
+ 
+ popup_notification({text}, {options})                  *popup_notification()*
+               Show the string {text} for 3 seconds at the top of the Vim
+               window.  This works like: >
+                       call popup_show([{'text': {text}}], {
+                               \ 'line': 1,
+                               \ 'col': 10,
+                               \ 'time': 3000,
+                               \ 'zindex': 200,
+                               \ 'highlight': 'WarningMsg',
+                               \ 'border: [],
+                               \ })
+ <             Use {options} to change the properties.
+ 
+ popup_atcursor({text}, {options})                      *popup_atcursor()*
+               Show the string {text} above the cursor, and close it when the
+               cursor moves.  This works like: >
+                       call popup_show([{'text': {text}}], {
+                               \ 'line': 'cursor-1',
+                               \ 'col': 'cursor',
+                               \ 'zindex': 50,
+                               \ 'moved': 'WORD',
+                               \ })
+ <             Use {options} to change the properties.
+ 
+ 
+ popup_menu({lines}, {options})                         *popup_atcursor()*
+               Show the {lines} near the cursor, handle selecting one of the
+               items with cursorkeys, and close it an item is selected with
+               Space or Enter.  This works like: >
+                       call popup_show({lines}, {
+                               \ 'pos': 'center',
+                               \ 'zindex': 200,
+                               \ 'wrap': 0,
+                               \ 'border': [],
+                               \ 'filter': 'popup_filter_menu',
+                               \ })
+ <             Use {options} to change the properties.  Should at least set
+               "callback" to a function that handles the selected item.
+ 
+ 
+ popup_move({id}, {options})                                   *popup_move()*
+               Move popup {id} to the position speficied with {options}.
+               {options} may contain the items from |popup_show()| that
+               specify the popup position: "line", "col", "pos", "maxheight",
+               "minheight", "maxwidth" and "minwidth".
+ 
+ 
+ popup_filter_menu({id}, {key})                                
*popup_filter_menu()*
+               Filter that can be used for a popup. It handles the cursor
+               keys to move the selected index in the popup. Space and Enter
+               can be used to select an item.  Invokes the "callback" of the
+               popup menu with the index of the selected line as the second
+               argument.
+ 
+ 
+ popup_filter_yesno({id}, {key})                               
*popup_filter_yesno()*
+               Filter that can be used for a popup. It handles only the keys
+               'y', 'Y' and 'n' or 'N'.  Invokes the "callback" of the
+               popup menu with the 1 for 'y' or 'Y' and zero for 'n' or 'N'
+               as the second argument.  Pressing Esc and CTRL-C works like
+               pressing 'n'.
+ 
+ 
+ popup_setlines({id}, {lnum}, {lines})                 *popup_setlines()*
+               In popup {id} set line {lnum} and following to {lines}.
+ 
+               {lnum} is one-based and must be either an existing line or
+               just one below the last line, in which case the line gets
+               appended.
+ 
+               {lines} has the same format as one item in {lines} of
+               |popup_show()|.  Existing lines are replaced. When {lines}
+               extends below the last line of the popup lines are appended.
+ 
+ popup_getlines({id})                                  *popup_getlines()*
+               Return the {lines} for popup {id}.
+ 
+ 
+ popup_setoptions({id}, {options})                     *popup_setoptions()*
+               Override options in popup {id} with entries in {options}.
+ 
+ 
+ popup_getoptions({id})                                        
*popup_getoptions()*
+               Return the {options} for popup {id}.
+ 
+ 
+ popup_close({id})                                     *popup_close()*
+               Close popup {id}.
+ 
+ 
+ POPUP_SHOW() ARGUMENTS                                        
*popup_show-usage*
+ 
+ The first argument of |popup_show()| is a list of text lines.  Each item in
+ the list is a dictionary with these entries:
+       text            The text to display.
+       props           A list of text properties.  Optional.
+                       Each entry is a dictionary, like the third argument of
+                       |prop_add()|, but specifying the column in the
+                       dictionary with a "col" entry, see below:
+                       |popup-props|.
+ 
+ The second argument of |popup_show()| is a dictionary with options:
+       line            screen line where to position the popup; can use
+                       "cursor", "cursor+1" or "cursor-1" to use the line of
+                       the cursor and add or subtract a number of lines;
+                       default is "cursor-1".
+       col             screen column where to position the popup; can use
+                       "cursor" to use the column of the cursor, "cursor+99"
+                       and "cursor-99" to add or subtract a number of
+                       columns; default is "cursor"
+       pos             "topleft", "topright", "botleft" or "botright":
+                       defines what corner of the popup "line" and "col" are
+                       used for.  Default is "botleft".  Alternatively
+                       "center" can be used to position the popup somewhere
+                       near the cursor.
+       maxheight       maximum height
+       minheight       minimum height
+       maxwidth        maximum width
+       minwidth        minimum width
+       title           text to be displayed above the first item in the
+                       popup, on top of any border
+       wrap            TRUE to make the lines wrap (default TRUE)
+       highlight       highlight group name to use for the text, defines the
+                       background and foreground color
+       border          list with numbers, defining the border thickness
+                       above/right/below/left of the popup; an empty list
+                       uses a border of 1 all around
+       borderhighlight highlight group name to use for the border
+       borderchars     list with characters, defining the character to use
+                       for the top/right/bottom/left border; optionally
+                       followed by the character to use for the
+                       topright/botright/botleft/topleft corner; an empty
+                       list can be used to show a double line all around
+       zindex          priority for the popup, default 50
+       time            time in milliseconds after which the popup will close;
+                       when omitted |popup_close()| must be used.
+       moved           "cell": close the popup if the cursor moved at least
+                       one screen cell; "word" allows for moving within
+                       |<cword>|, "WORD" allows for moving within |<cWORD>|,
+                       a list with two numbers specifies the start and end
+                       column
+       filter          a callback that can filter typed characters, see 
+                       |popup-filter|
+       callback        a callback to be used when the popup closes, e.g. when
+                       using |popup_filter_menu()|, see |popup-callback|.
+ 
+ Depending on the "zindex" the popup goes under or above other popups.  The
+ completion menu (|popup-menu|) has zindex 100.  For messages that occur for a
+ short time the suggestion is to use zindex 1000.
+ 
+ By default text wraps, which causes a line in {lines} to occupy more than one
+ screen line.  When "wrap" is FALSE then the text outside of the popup or
+ outside of the Vim window will not be displayed, thus truncated.
+ 
+ 
+ POPUP TEXT PROPERTIES                                 *popup-props*
+ 
+ These are similar to the third argument of |prop_add()|, but not exactly the
+ same, since they only apply to one line.
+       col             starting column, counted in bytes, use one for the
+                       first column.
+       length          length of text in bytes; can be zero
+       end_col         column just after the text; not used when "length" is
+                       present; when {col} and "end_col" are equal, this is a
+                       zero-width text property
+       id              user defined ID for the property; when omitted zero is
+                       used
+       type            name of the text property type, as added with
+                       |prop_type_add()|
+       transparent     do not show these characters, show the text under it;
+                       if there is an border character to the right or below
+                       it will be made transparent as well
+ 
+ 
+ POPUP FILTER                                          *popup-filter*
+ 
+ A callback that gets any typed keys while a popup is displayed.  It can return
+ TRUE to indicate the key has been handled and is to be discarded, or FALSE to
+ let Vim handle the key as usual in the current state.
+ 
+ The filter function is called with two arguments: the ID of the popup and the
+ key.
+ 
+ Some common key actions:
+       Esc             close the popup
+       cursor keys     select another entry
+       Tab             accept current suggestion
+ 
+ Vim provides standard filters |popup_filter_menu()| and
+ |popup_filter_yesno()|.
+ 
+ 
+ POPUP CALLBACK                                                *popup-callback*
+ 
+ A callback that is invoked when the popup closes.  Used by
+ |popup_filter_menu()|.  Invoked with two arguments: the ID of the popup and
+ the result, which would usually be an index in the popup lines, or whatever
+ the filter wants to pass.
+ 
+ ==============================================================================
+ 3. Examples                                           *popup-examples*
+ 
+ TODO
+ 
+ Prompt the user to press y/Y or n/N: >
+ 
+       func MyDialogHandler(id, result)
+          if a:result
+             " ... 'y' or 'Y' was pressed
+          endif
+       endfunc
+ 
+       call popup_show([{'text': 'Continue? y/n'}], {
+               \ 'filter': 'popup_filter_yesno',
+               \ 'callback': 'MyDialogHandler',
+               \ })
+ <
+ 
+  vim:tw=78:ts=8:noet:ft=help:norl:
*** ../vim-8.1.1328/runtime/doc/Makefile        2018-12-13 22:17:52.865941558 
+0100
--- runtime/doc/Makefile        2019-05-12 17:14:48.011704406 +0200
***************
*** 83,88 ****
--- 83,89 ----
        pi_tar.txt \
        pi_vimball.txt \
        pi_zip.txt \
+       popup.txt \
        print.txt \
        quickfix.txt \
        quickref.txt \
***************
*** 220,225 ****
--- 221,227 ----
        pi_tar.html \
        pi_vimball.html \
        pi_zip.html \
+       popup.html \
        print.html \
        quickfix.html \
        quickref.html \
*** ../vim-8.1.1328/runtime/doc/help.txt        2019-05-05 18:11:46.312590682 
+0200
--- runtime/doc/help.txt        2019-05-12 16:52:31.295380271 +0200
***************
*** 143,148 ****
--- 143,149 ----
  |remote.txt|  using Vim as a server or client
  |term.txt|    using different terminals and mice
  |terminal.txt|        Terminal window support
+ |popup.txt|   popop window support
  
  Programming language support ~
  |indent.txt|  automatic indenting for C and other languages
*** ../vim-8.1.1328/src/version.c       2019-05-12 14:36:22.938437845 +0200
--- src/version.c       2019-05-12 21:42:27.510870927 +0200
***************
*** 769,770 ****
--- 769,772 ----
  {   /* Add new patch number below this line */
+ /**/
+     1329,
  /**/

-- 
If you don't get everything you want, think of
everything you didn't get and don't want.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/201905121944.x4CJiO3q025114%40masaka.moolenaar.net.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui