Commit: patch 9.2.0612: Cannot render images in popup windows

4 views
Skip to first unread message

Christian Brabandt

unread,
4:30 PM (6 hours ago) 4:30 PM
to vim...@googlegroups.com
patch 9.2.0612: Cannot render images in popup windows

Commit: https://github.com/vim/vim/commit/9d9bad24ad3721f55c5369131b68eb6896f17af1
Author: Yasuhiro Matsumoto <matt...@gmail.com>
Date: Tue Jun 9 20:13:28 2026 +0000

patch 9.2.0612: Cannot render images in popup windows

Problem: Cannot render images in popup windows
Solution: Add support for rendering images using the kitty, sixel, cairo
and GDI backend (Yasuhiro Matsumoto).

Add an "image" attribute to popup_create()/popup_setoptions() that
renders a raw RGB/RGBA pixel buffer inside a popup window. Terminal
backends emit the buffer as DEC sixel or kitty graphics sequences; the
MS-Windows GUI uses GDI and the GTK GUI uses Cairo. The popup auto-sizes
its cell box from the image dimensions. getbgcolor() returns the current
background colour so scripts can pre-composite RGBA pixels.

closes: #20136

Signed-off-by: Yasuhiro Matsumoto <matt...@gmail.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/Filelist b/Filelist
index 2f8e4f021..15f4711b9 100644
--- a/Filelist
+++ b/Filelist
@@ -149,6 +149,9 @@ SRC_ALL = \
src/session.c \
src/sha256.c \
src/sign.c \
+ src/sixel.c \
+ src/kitty.c \
+ src/cairo.c \
src/socketserver.c \
src/sound.c \
src/spell.c \
@@ -349,6 +352,9 @@ SRC_ALL = \
src/proto/session.pro \
src/proto/sha256.pro \
src/proto/sign.pro \
+ src/proto/sixel.pro \
+ src/proto/kitty.pro \
+ src/proto/cairo.pro \
src/proto/socketserver.pro \
src/proto/sound.pro \
src/proto/spell.pro \
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 219737f2d..e8b9518e5 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -231,6 +231,7 @@ garbagecollect([{atexit}]) none free memory, breaking cyclic
get({list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
get({dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
get({func}, {what}) any get property of funcref/partial {func}
+getbgcolor() List get background colour as [r, g, b]
getbufinfo([{buf}]) List information about buffers
getbufline({buf}, {lnum} [, {end}])
List lines {lnum} to {end} of buffer {buf}
@@ -4034,6 +4035,25 @@ getbufvar({buf}, {varname} [, {def}]) *getbufvar()*
Return type: any, depending on {varname}


+getbgcolor() *getbgcolor()*
+ Returns a |List| describing the current background colour
+ as [red, green, blue], each component in the range 0..255.
+
+ In the GUI (or with 'termguicolors' set) the value comes
+ from the |hl-Normal| highlight group's background. In a
+ terminal it comes from the OSC 11 response (also available
+ as |v:termrbgresp|).
+ Returns [] when no value is available, e.g. before the
+ terminal has answered the OSC 11 query, or when |hl-Normal|
+ has no background colour set.
+
+ Useful when manually crafting RGB image data and you want
+ to flatten alpha onto the same colour the terminal will
+ actually display behind the image.
+
+ Return type: list<any>
+
+
getcellpixels() *getcellpixels()*
Returns a |List| of terminal cell pixel size.
List format is [xpixel, ypixel].
@@ -13280,6 +13300,13 @@ hangul_input Compiled with Hangul input support. |hangul|
hpux HP-UX version of Vim.
hurd GNU/Hurd version of Vim
iconv Can use iconv() for conversion.
+image Compiled with the popup window "image" attribute.
+ See |popup-image|.
+image_cairo Compiled with the Cairo image backend (GTK GUI).
+image_gdi Compiled with the GDI image backend (Windows GUI).
+image_kitty Compiled with the kitty graphics protocol image backend
+ (terminal).
+image_sixel Compiled with the DEC sixel image backend (terminal).
insert_expand Compiled with support for CTRL-X expansion commands in
Insert mode. (always true)
job Compiled with support for |channel| and |job|
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index 2e9124477..a06924b99 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -1,4 +1,4 @@
-*popup.txt* For Vim version 9.2. Last change: 2026 May 17
+*popup.txt* For Vim version 9.2. Last change: 2026 Jun 09


VIM REFERENCE MANUAL by Bram Moolenaar
@@ -23,6 +23,7 @@ Displaying text in a popup window. *popup* *popup-window* *popupwin*
Popup scrollbar |popup-scrollbar|
Popup opacity |popup-opacity|
Popup mask |popup-mask|
+ Popup image |popup-image|
4. Examples |popup-examples|


@@ -798,6 +799,18 @@ The second argument of |popup_create()| is a dictionary with options:
underlying text, making it partially transparent.
Requires 'termguicolors' to be set.
Also see |popup-opacity|.
+ image Dictionary describing a raw RGB or RGBA pixel buffer
+ to render inside the popup. When set the popup
+ auto-sizes its cell box from the image's pixel
+ dimensions, so "minwidth" / "minheight" / "maxwidth" /
+ "maxheight" do not need to be set by hand. Keys:
+ data |Blob| of bytes; length must equal
+ width*height*3 (RGB) or width*height*4
+ (RGBA).
+ width image width in pixels.
+ height image height in pixels.
+ Use an empty dictionary to remove a previously set
+ image. See |popup-image|.
padding List with numbers, defining the padding
above/right/below/left of the popup (similar to CSS).
An empty list uses a padding of 1 all around. The
@@ -1155,6 +1168,76 @@ For example, to make the last 10 columns of the last line transparent:
To make the four corners transparent:
[[1, 1, 1, 1], [-1, -1, 1, 1], [1, 1, -1, -1], [-1, -1, -1, -1]]

+POPUP IMAGE *popup-image*
+
+A popup window can render an image instead of (or on top of) text by passing
+an "image" dictionary to |popup_create()| or |popup_setoptions()|. The
+caller supplies an already-decoded raw pixel buffer and Vim emits it through
+whichever backend is available at runtime:
+
+ sixel DEC sixel DCS sequence on a sixel-capable terminal.
+ |+image_sixel|. Detected automatically; the buffer is also
+ cropped one cell above the screen edge to avoid sixel-induced
+ terminal scrolling.
+ kitty kitty graphics protocol APC sequence on terminals that support
+ it (kitty, ghostty, WezTerm, Konsole, ...). |+image_kitty|.
+ Detected by actively querying the terminal.
+ GDI StretchDIBits onto the GUI canvas on the MS-Windows GUI.
+ |+image_gdi|.
+ Cairo composite onto a cairo_image_surface_t on the GTK GUI
+ (covers GTK 2 and GTK 3). |+image_cairo|.
+
+Vim itself does NOT link against libpng, libjpeg, libwebp or any image
+decoder. Format decoding is left to the caller, who can pipe the file
+through any external tool (GraphicsMagick, ImageMagick, ffmpeg, a custom
+converter, ...) and pass the resulting bytes via a |Blob|.
+
+The "image" dictionary accepts:
+ data |Blob| of bytes. Length must equal width*height*3 for RGB,
+ or width*height*4 for RGBA. RGBA buffers are alpha-composited
+ over the popup's background.
+ width image width in pixels.
+ height image height in pixels.
+
+The popup's cell box is derived from the pixel dimensions and the terminal /
+GUI cell metrics, so the caller does not normally have to set "minwidth" /
+"minheight" / "maxwidth" / "maxheight".
+
+For RGBA buffers that need to blend cleanly into the editor's actual
+backdrop the script can call |getbgcolor()| to obtain the current background
+colour as [r, g, b] and pre-composite anti-aliased edges against it.
+
+Minimal RGB example - a 4x4 red square popped at the cursor: >
+ let pixels = repeat([0xff, 0x00, 0x00], 4 * 4)->list2blob()
+ call popup_create('', #{
+ \ image: #{ data: pixels, width: 4, height: 4 },
+ \ line: 'cursor+1', col: 'cursor',
+ \ })
+
+Real-world example - pipe a PNG through GraphicsMagick and pop the resulting
+raw RGB bytes: >
+ let png = 'cat.png'
+ let dim = split(system('gm identify -format "%w %h" '
+ \ .. shellescape(png)))
+ let [w, h] = [str2nr(dim[0]), str2nr(dim[1])]
+ call system('gm convert ' .. shellescape(png)
+ \ .. ' -depth 8 rgb:/tmp/cat.rgb')
+ let blob = readblob('/tmp/cat.rgb')
+ call popup_create('', #{
+ \ image: #{ data: blob, width: w, height: h },
+ \ line: 1, col: 1, border: [], padding: [0, 0, 0, 0],
+ \ })
+
+The image can be replaced at runtime via |popup_setoptions()|. When the new
+buffer has the same width and height as the current one the pixels are
+swapped in place, which is fast enough to drive frame-by-frame animation
+from a |timer|. |popup_getoptions()| returns the same dictionary back; the
+"data" entry is a fresh blob copy independent of the popup's internal
+buffer.
+
+To remove a previously set image pass an empty dictionary: >
+ call popup_setoptions(winid, #{image: {}})
+
==============================================================================
4. Examples *popup-examples*

diff --git a/runtime/doc/tags b/runtime/doc/tags
index a2b4743a8..086af1973 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1470,6 +1470,11 @@ $quote eval.txt /*$quote*
+hangul_input various.txt /*+hangul_input*
+iconv various.txt /*+iconv*
+iconv/dyn various.txt /*+iconv\/dyn*
++image various.txt /*+image*
++image_cairo various.txt /*+image_cairo*
++image_gdi various.txt /*+image_gdi*
++image_kitty various.txt /*+image_kitty*
++image_sixel various.txt /*+image_sixel*
+insert_expand various.txt /*+insert_expand*
+ipv6 various.txt /*+ipv6*
+job various.txt /*+job*
@@ -8124,6 +8129,7 @@ get()-func builtin.txt /*get()-func*
get()-list builtin.txt /*get()-list*
get()-tuple builtin.txt /*get()-tuple*
get-ms-debuggers debug.txt /*get-ms-debuggers*
+getbgcolor() builtin.txt /*getbgcolor()*
getbufinfo() builtin.txt /*getbufinfo()*
getbufline() builtin.txt /*getbufline()*
getbufoneline() builtin.txt /*getbufoneline()*
@@ -9803,6 +9809,7 @@ popup-filter-errors popup.txt /*popup-filter-errors*
popup-filter-mode popup.txt /*popup-filter-mode*
popup-function-details popup.txt /*popup-function-details*
popup-functions popup.txt /*popup-functions*
+popup-image popup.txt /*popup-image*
popup-intro popup.txt /*popup-intro*
popup-mapping popup.txt /*popup-mapping*
popup-mask popup.txt /*popup-mask*
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 560f01c70..cb816a0cb 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt* For Vim version 9.2. Last change: 2026 Apr 28
+*usr_41.txt* For Vim version 9.2. Last change: 2026 Jun 09


VIM USER MANUAL by Bram Moolenaar
@@ -1203,6 +1203,7 @@ Interactive: *interactive-functions*
inputrestore() restore typeahead

GUI: *gui-functions*
+ getbgcolor() get current background colour as [r, g, b]
getfontname() get name of current font being used
getwinpos() position of the Vim window
getwinposx() X position of the Vim window
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 34815811f..cc3ef1075 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt* For Vim version 9.2. Last change: 2026 Jun 07
+*various.txt* For Vim version 9.2. Last change: 2026 Jun 09


VIM REFERENCE MANUAL by Bram Moolenaar
@@ -423,6 +423,11 @@ N *+gettext* message translations |multi-lang|
m *+hangul_input* Hangul input support |hangul|
*+iconv* Compiled with the |iconv()| function
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
+H *+image* popup window image attribute, see |popup-image|
+H *+image_cairo* |+image| Cairo backend (GTK GUI)
+H *+image_gdi* |+image| GDI backend (Windows GUI)
+H *+image_kitty* |+image| kitty graphics protocol backend (terminal)
+H *+image_sixel* |+image| DEC sixel backend (terminal)
T *+insert_expand* |insert_expand| Insert mode completion
m *+ipv6* Support for IPv6 networking |channel|
m *+job* starting and stopping jobs |job|
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index b0c95e50f..937bf4f21 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -52600,6 +52600,8 @@ Popups ~
- Support for clipping textproperty popups |popup-clipwindow|.
- Completion popup menu can be scrolled with the mouse or using keys
|popupmenu-keys|.
+- Support for loading images in popups using the cairo, GDI, kitty, or sixel
+ backend |popup-image|.

Diff mode ~
---------
@@ -52685,6 +52687,7 @@ Various syntax, indent and other plugins were added.
Functions: ~

|ch_listen()| listen on {address}
+|getbgcolor()| return background color as RGB value
|tabpanel_getinfo()| get current state of the |tabpanel|
|tabpanel_scroll()| scroll the |tabpanel|

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index e4538dd8d..656fc3f12 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -2,7 +2,7 @@
" Language: Vim script
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
" Doug Kearns <dougk...@gmail.com>
-" Last Change: 2026 May 24
+" Last Change: 2026 Jun 09
" Former Maintainer: Charles E. Campbell

" DO NOT CHANGE DIRECTLY.
@@ -154,14 +154,14 @@ syn case match
" Function Names {{{2
" GEN_SYN_VIM: vimFuncName, START_STR='syn keyword vimFuncName contained', END_STR=''
syn keyword vimFuncName contained abs acos add and append appendbufline argc argidx arglistid argv asin assert_beeps assert_equal assert_equalfile assert_exception assert_fails assert_false assert_inrange assert_match assert_nobeep assert_notequal assert_notmatch assert_report assert_true atan atan2 autocmd_add autocmd_delete autocmd_get balloon_gettext balloon_show balloon_split base64_decode base64_encode bindtextdomain blob2list blob2str browse browsedir bufadd bufexists buflisted bufload bufloaded bufname bufnr bufwinid bufwinnr byte2line byteidx byteidxcomp call ceil ch_canread ch_close ch_close_in ch_evalexpr ch_evalraw ch_getbufnr ch_getjob ch_info ch_listen ch_log ch_logfile ch_open ch_read ch_readblob ch_readraw ch_sendexpr ch_sendraw ch_setoptions ch_status
-syn keyword vimFuncName contained changenr char2nr charclass charcol charidx chdir cindent clearmatches cmdcomplete_info col complete complete_add complete_check complete_info confirm copy cos cosh count cscope_connection cursor debugbreak deepcopy delete deletebufline did_filetype diff diff_filler diff_hlID digraph_get digraph_getlist digraph_set digraph_setlist echoraw empty environ err_teapot escape eval eventhandler executable execute exepath exists exists_compiled exp expand expandcmd extend extendnew feedkeys filecopy filereadable filewritable filter finddir findfile flatten flattennew float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreach foreground fullcommand funcref function garbagecollect get getbufinfo
-syn keyword vimFuncName contained getbufline getbufoneline getbufvar getcellpixels getcellwidths getchangelist getchar getcharmod getcharpos getcharsearch getcharstr getcmdcomplpat getcmdcompltype getcmdline getcmdpos getcmdprompt getcmdscreenpos getcmdtype getcmdwintype getcompletion getcompletiontype getcurpos getcursorcharpos getcwd getenv getfontname getfperm getfsize getftime getftype getimstatus getjumplist getline getloclist getmarklist getmatches getmousepos getmouseshape getpid getpos getqflist getreg getreginfo getregion getregionpos getregtype getscriptinfo getstacktrace gettabinfo gettabvar gettabwinvar gettagstack gettext getwininfo getwinpos getwinposx getwinposy getwinvar glob glob2regpat globpath has has_key haslocaldir hasmapto histadd histdel
-syn keyword vimFuncName contained histget histnr hlID hlexists hlget hlset hostname iconv id indent index indexof input inputdialog inputlist inputrestore inputsave inputsecret insert instanceof interrupt invert isabsolutepath isdirectory isinf islocked isnan items job_getchannel job_info job_setoptions job_start job_status job_stop join js_decode js_encode json_decode json_encode keys keytrans len libcall libcallnr line line2byte lispindent list2blob list2str list2tuple listener_add listener_flush listener_remove localtime log log10 luaeval map maparg mapcheck maplist mapnew mapset match matchadd matchaddpos matcharg matchbufline matchdelete matchend matchfuzzy matchfuzzypos matchlist matchstr matchstrlist matchstrpos max menu_info min mkdir mode mzeval nextnonblank
-syn keyword vimFuncName contained ngettext nr2char or pathshorten perleval popup_atcursor popup_beval popup_clear popup_close popup_create popup_dialog popup_filter_menu popup_filter_yesno popup_findecho popup_findinfo popup_findpreview popup_getoptions popup_getpos popup_hide popup_list popup_locate popup_menu popup_move popup_notification popup_setbuf popup_setoptions popup_settext popup_show pow preinserted prevnonblank printf prompt_getprompt prompt_setcallback prompt_setinterrupt prompt_setprompt prop_add prop_add_list prop_clear prop_find prop_list prop_remove prop_type_add prop_type_change prop_type_delete prop_type_get prop_type_list pum_getpos pumvisible py3eval pyeval pyxeval rand range readblob readdir readdirex readfile redraw_listener_add redraw_listener_remove
-syn keyword vimFuncName contained reduce reg_executing reg_recording reltime reltimefloat reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remote_startserver remove rename repeat resolve reverse round rubyeval screenattr screenchar screenchars screencol screenpos screenrow screenstring search searchcount searchdecl searchpair searchpairpos searchpos server2client serverlist setbufline setbufvar setcellwidths setcharpos setcharsearch setcmdline setcmdpos setcursorcharpos setenv setfperm setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar settagstack setwinvar sha256 shellescape shiftwidth sign_define sign_getdefined sign_getplaced sign_jump sign_place sign_placelist sign_undefine sign_unplace sign_unplacelist
-syn keyword vimFuncName contained simplify sin sinh slice sort sound_clear sound_playevent sound_playfile sound_stop soundfold spellbadword spellsuggest split sqrt srand state str2blob str2float str2list str2nr strcharlen strcharpart strchars strdisplaywidth strftime strgetchar stridx string strlen strpart strptime strridx strtrans strutf16len strwidth submatch substitute swapfilelist swapinfo swapname synID synIDattr synIDtrans synconcealed synstack system systemlist tabpagebuflist tabpagenr tabpagewinnr tabpanel_getinfo tabpanel_scroll tagfiles taglist tan tanh tempname term_dumpdiff term_dumpload term_dumpwrite term_getaltscreen term_getansicolors term_getattr term_getcursor term_getjob term_getline term_getscrolled term_getsize term_getstatus term_gettitle
-syn keyword vimFuncName contained term_gettty term_list term_scrape term_sendkeys term_setansicolors term_setapi term_setkill term_setrestore term_setsize term_start term_wait terminalprops test_alloc_fail test_autochdir test_feedinput test_garbagecollect_now test_garbagecollect_soon test_getvalue test_gui_event test_ignore_error test_mswin_event test_null_blob test_null_channel test_null_dict test_null_function test_null_job test_null_list test_null_partial test_null_string test_null_tuple test_option_not_set test_override test_refcount test_setmouse test_settime test_srand_seed test_unknown test_void timer_info timer_pause timer_start timer_stop timer_stopall tolower toupper tr trim trunc tuple2list type typename undofile undotree uniq uri_decode uri_encode
-syn keyword vimFuncName contained utf16idx values virtcol virtcol2col visualmode wildmenumode wildtrigger win_execute win_findbuf win_getid win_gettype win_gotoid win_id2tabwin win_id2win win_move_separator win_move_statusline win_screenpos win_splitmove winbufnr wincol windowsversion winheight winlayout winline winnr winrestcmd winrestview winsaveview winwidth wordcount writefile xor
+syn keyword vimFuncName contained changenr char2nr charclass charcol charidx chdir cindent clearmatches cmdcomplete_info col complete complete_add complete_check complete_info confirm copy cos cosh count cscope_connection cursor debugbreak deepcopy delete deletebufline did_filetype diff diff_filler diff_hlID digraph_get digraph_getlist digraph_set digraph_setlist echoraw empty environ err_teapot escape eval eventhandler executable execute exepath exists exists_compiled exp expand expandcmd extend extendnew feedkeys filecopy filereadable filewritable filter finddir findfile flatten flattennew float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreach foreground fullcommand funcref function garbagecollect get getbgcolor
+syn keyword vimFuncName contained getbufinfo getbufline getbufoneline getbufvar getcellpixels getcellwidths getchangelist getchar getcharmod getcharpos getcharsearch getcharstr getcmdcomplpat getcmdcompltype getcmdline getcmdpos getcmdprompt getcmdscreenpos getcmdtype getcmdwintype getcompletion getcompletiontype getcurpos getcursorcharpos getcwd getenv getfontname getfperm getfsize getftime getftype getimstatus getjumplist getline getloclist getmarklist getmatches getmousepos getmouseshape getpid getpos getqflist getreg getreginfo getregion getregionpos getregtype getscriptinfo getstacktrace gettabinfo gettabvar gettabwinvar gettagstack gettext getwininfo getwinpos getwinposx getwinposy getwinvar glob glob2regpat globpath has has_key haslocaldir hasmapto histadd
+syn keyword vimFuncName contained histdel histget histnr hlID hlexists hlget hlset hostname iconv id indent index indexof input inputdialog inputlist inputrestore inputsave inputsecret insert instanceof interrupt invert isabsolutepath isdirectory isinf islocked isnan items job_getchannel job_info job_setoptions job_start job_status job_stop join js_decode js_encode json_decode json_encode keys keytrans len libcall libcallnr line line2byte lispindent list2blob list2str list2tuple listener_add listener_flush listener_remove localtime log log10 luaeval map maparg mapcheck maplist mapnew mapset match matchadd matchaddpos matcharg matchbufline matchdelete matchend matchfuzzy matchfuzzypos matchlist matchstr matchstrlist matchstrpos max menu_info min mkdir mode mzeval
+syn keyword vimFuncName contained nextnonblank ngettext nr2char or pathshorten perleval popup_atcursor popup_beval popup_clear popup_close popup_create popup_dialog popup_filter_menu popup_filter_yesno popup_findecho popup_findinfo popup_findpreview popup_getoptions popup_getpos popup_hide popup_list popup_locate popup_menu popup_move popup_notification popup_setbuf popup_setoptions popup_settext popup_show pow preinserted prevnonblank printf prompt_getprompt prompt_setcallback prompt_setinterrupt prompt_setprompt prop_add prop_add_list prop_clear prop_find prop_list prop_remove prop_type_add prop_type_change prop_type_delete prop_type_get prop_type_list pum_getpos pumvisible py3eval pyeval pyxeval rand range readblob readdir readdirex readfile redraw_listener_add
+syn keyword vimFuncName contained redraw_listener_remove reduce reg_executing reg_recording reltime reltimefloat reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remote_startserver remove rename repeat resolve reverse round rubyeval screenattr screenchar screenchars screencol screenpos screenrow screenstring search searchcount searchdecl searchpair searchpairpos searchpos server2client serverlist setbufline setbufvar setcellwidths setcharpos setcharsearch setcmdline setcmdpos setcursorcharpos setenv setfperm setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar settagstack setwinvar sha256 shellescape shiftwidth sign_define sign_getdefined sign_getplaced sign_jump sign_place sign_placelist sign_undefine sign_unplace
+syn keyword vimFuncName contained sign_unplacelist simplify sin sinh slice sort sound_clear sound_playevent sound_playfile sound_stop soundfold spellbadword spellsuggest split sqrt srand state str2blob str2float str2list str2nr strcharlen strcharpart strchars strdisplaywidth strftime strgetchar stridx string strlen strpart strptime strridx strtrans strutf16len strwidth submatch substitute swapfilelist swapinfo swapname synID synIDattr synIDtrans synconcealed synstack system systemlist tabpagebuflist tabpagenr tabpagewinnr tabpanel_getinfo tabpanel_scroll tagfiles taglist tan tanh tempname term_dumpdiff term_dumpload term_dumpwrite term_getaltscreen term_getansicolors term_getattr term_getcursor term_getjob term_getline term_getscrolled term_getsize term_getstatus
+syn keyword vimFuncName contained term_gettitle term_gettty term_list term_scrape term_sendkeys term_setansicolors term_setapi term_setkill term_setrestore term_setsize term_start term_wait terminalprops test_alloc_fail test_autochdir test_feedinput test_garbagecollect_now test_garbagecollect_soon test_getvalue test_gui_event test_ignore_error test_mswin_event test_null_blob test_null_channel test_null_dict test_null_function test_null_job test_null_list test_null_partial test_null_string test_null_tuple test_option_not_set test_override test_refcount test_setmouse test_settime test_srand_seed test_unknown test_void timer_info timer_pause timer_start timer_stop timer_stopall tolower toupper tr trim trunc tuple2list type typename undofile undotree uniq uri_decode
+syn keyword vimFuncName contained uri_encode utf16idx values virtcol virtcol2col visualmode wildmenumode wildtrigger win_execute win_findbuf win_getid win_gettype win_gotoid win_id2tabwin win_id2win win_move_separator win_move_statusline win_screenpos win_splitmove winbufnr wincol windowsversion winheight winlayout winline winnr winrestcmd winrestview winsaveview winwidth wordcount writefile xor

" Predefined variable names {{{2
" GEN_SYN_VIM: vimVarName, START_STR='syn keyword vimVimVarName contained', END_STR=''
diff --git a/src/Make_ami.mak b/src/Make_ami.mak
index 5211e6559..8f02dbbec 100644
--- a/src/Make_ami.mak
+++ b/src/Make_ami.mak
@@ -169,6 +169,9 @@ SRC += \
session.c \
sha256.c \
sign.c \
+ sixel.c \
+ kitty.c \
+ cairo.c \
spell.c \
spellfile.c \
spellsuggest.c \
diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak
index 24db4ccff..0fcfb94c2 100644
--- a/src/Make_cyg_ming.mak
+++ b/src/Make_cyg_ming.mak
@@ -877,6 +877,9 @@ OBJ = \
$(OUTDIR)/session.o \
$(OUTDIR)/sha256.o \
$(OUTDIR)/sign.o \
+ $(OUTDIR)/sixel.o \
+ $(OUTDIR)/kitty.o \
+ $(OUTDIR)/cairo.o \
$(OUTDIR)/socketserver.o \
$(OUTDIR)/spell.o \
$(OUTDIR)/spellfile.o \
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index 3b9ccb98f..c646f8ec3 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -772,6 +772,9 @@ OBJ = \
$(OUTDIR)\session.obj \
$(OUTDIR)\sha256.obj \
$(OUTDIR)\sign.obj \
+ $(OUTDIR)\sixel.obj \
+ $(OUTDIR)\kitty.obj \
+ $(OUTDIR)
Reply all
Reply to author
Forward
0 new messages