changeset 17372:b9bc47742df6

Update runtime files commit https://github.com/vim/vim/commit/396e829fa355ebc92a618ef18266a3fed71b7042 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jul 13 23:04:31 2019 +0200 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Sat, 13 Jul 2019 23:15:05 +0200
parents 1062026cb98c
children c7763af24f8d
files runtime/compiler/gcc.vim runtime/doc/change.txt runtime/doc/debugger.txt runtime/doc/mbyte.txt runtime/doc/options.txt runtime/doc/popup.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/usr_41.txt runtime/filetype.vim runtime/makemenu.vim runtime/pack/dist/opt/termdebug/plugin/termdebug.vim runtime/synmenu.vim runtime/syntax/json.vim runtime/syntax/vuejs.vim
diffstat 15 files changed, 204 insertions(+), 164 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/compiler/gcc.vim
+++ b/runtime/compiler/gcc.vim
@@ -2,6 +2,8 @@
 " Compiler:             GNU C Compiler
 " Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
 " Latest Revision:      2010-10-14
+" 			changed pattern for entering/leaving directories
+" 			by Daniel Hahler, 2019 Jul 12
 " 			added line suggested by Anton Lindqvist 2016 Mar 31
 
 if exists("current_compiler")
@@ -27,10 +29,10 @@ CompilerSet errorformat=
       \%f:%l:\ %m,
       \%f:\\(%*[^\\)]\\):\ %m,
       \\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
-      \%D%*\\a[%*\\d]:\ Entering\ directory\ [`']%f',
-      \%X%*\\a[%*\\d]:\ Leaving\ directory\ [`']%f',
-      \%D%*\\a:\ Entering\ directory\ [`']%f',
-      \%X%*\\a:\ Leaving\ directory\ [`']%f',
+      \%D%*\\a[%*\\d]:\ Entering\ directory\ %*[`']%f',
+      \%X%*\\a[%*\\d]:\ Leaving\ directory\ %*[`']%f',
+      \%D%*\\a:\ Entering\ directory\ %*[`']%f',
+      \%X%*\\a:\ Leaving\ directory\ %*[`']%f',
       \%DMaking\ %*\\a\ in\ %f
 
 if exists('g:compiler_gcc_ignore_unmatched_lines')
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.1.  Last change: 2019 May 07
+*change.txt*    For Vim version 8.1.  Last change: 2019 Jul 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1179,9 +1179,9 @@ 1. The unnamed register ""
 2. 10 numbered registers "0 to "9
 3. The small delete register "-
 4. 26 named registers "a to "z or "A to "Z
-5. three read-only registers ":, "., "%
-6. alternate buffer register "#
-7. the expression register "=
+5. Three read-only registers ":, "., "%
+6. Alternate buffer register "#
+7. The expression register "=
 8. The selection and drop registers "*, "+ and "~ 
 9. The black hole register "_
 10. Last search pattern register "/
--- a/runtime/doc/debugger.txt
+++ b/runtime/doc/debugger.txt
@@ -1,4 +1,4 @@
-*debugger.txt*  For Vim version 8.1.  Last change: 2019 May 12
+*debugger.txt*  For Vim version 8.1.  Last change: 2019 Jul 06
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
@@ -6,6 +6,10 @@
 
 Debugger Support Features				*debugger-support*
 
+These features are for integration with a debugger or an Integrated
+Programming Environment (IPE) or Integrated Development Environment (IDE).
+For the debugger running in a Vim terminal window see |terminal-debugger|.
+
 1. Debugger Features		|debugger-features|
 2. Vim Compile Options		|debugger-compilation|
 3. Integrated Debuggers		|debugger-integration|
@@ -14,9 +18,7 @@ 3. Integrated Debuggers		|debugger-integ
 ==============================================================================
 1. Debugger Features					*debugger-features*
 
-The following features are available for an integration with a debugger or
-an Integrated Programming Environment (IPE) or Integrated Development
-Environment (IDE):
+The following features are available:
 
 	Alternate Command Input				|alt-input|
 	Debug Signs					|debug-signs|
@@ -90,6 +92,9 @@ However, the feature was implemented in 
 could be used for displaying other information as well.  The functionality is
 limited though, for advanced popups see |popup-window|.
 
+Another way to use the balloon is with the 'balloonexpr' option.  This is
+completely user definable.
+
 The Balloon Evaluation has some settable parameters too.  For Motif the font
 list and colors can be set via X resources (XmNballoonEvalFontList,
 XmNballoonEvalBackground, and XmNballoonEvalForeground).
@@ -106,9 +111,6 @@ The Balloon evaluation functions are als
 toolbar.  The 'ballooneval' option does not need to be set for this.  But the
 other settings apply.
 
-Another way to use the balloon is with the 'balloonexpr' option.  This is
-completely user definable.
-
 ==============================================================================
 2. Vim Compile Options					*debugger-compilation*
 
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt*     For Vim version 8.1.  Last change: 2019 Apr 28
+*mbyte.txt*     For Vim version 8.1.  Last change: 2019 Jul 04
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.
@@ -943,11 +943,12 @@ To input multibyte characters on Windows
 IME many many many times.  Because IME with status on is hooking all of your
 key inputs, you cannot input 'j', 'k', or almost all of keys to Vim directly.
 
-This |+multi_byte_ime| feature help this.  It reduce times of switch status of
-IME manually.  In normal mode, there are almost no need working IME, even
-editing multibyte text.  So exiting insert mode with ESC, Vim memorize last
-status of IME and force turn off IME.  When re-enter insert mode, Vim revert
-IME status to that memorized automatically.
+The |+multi_byte_ime| feature helps for this.  It reduces the number of times
+the IME status has to be switched manually.  In Normal mode, there is almost
+no need to use IME, even when editing multibyte text.  So when exiting Insert
+mode, Vim memorizes the last status of IME and turns off IME.  When
+re-entering Insert mode, Vim sets the IME status to that memorized status
+automatically.
 
 This works on not only insert-normal mode, but also search-command input and
 replace mode.
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.1.  Last change: 2019 Jun 27
+*options.txt*	For Vim version 8.1.  Last change: 2019 Jul 06
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1142,8 +1142,10 @@ A jump table for the options with a shor
     set bexpr=MyBalloonExpr()
     set ballooneval
 <
-	Also see |balloon_show()|, can be used if the content of the balloon
-	is to be fetched asynchronously.
+	Also see |balloon_show()|, it can be used if the content of the balloon
+	is to be fetched asynchronously.  In that case evaluating
+	'balloonexpr' should result in an empty string.  If you get a balloon
+	with only "0" you probably didn't return anything from your function.
 
 	NOTE: The balloon is displayed only if the cursor is on a text
 	character.  If the result of evaluating 'balloonexpr' is not empty,
@@ -1155,7 +1157,7 @@ A jump table for the options with a shor
 	This option cannot be set in a modeline when 'modelineexpr' is off.
 
 	It is not allowed to change text or jump to another window while
-	evaluating 'balloonexpr' |textlock|.
+	evaluating 'balloonexpr', see |textlock|.
 
 	To check whether line breaks in the balloon text work use this check: >
 		if has("balloon_multiline")
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -1,4 +1,4 @@
-*popup.txt*  For Vim version 8.1.  Last change: 2019 Jul 04
+*popup.txt*  For Vim version 8.1.  Last change: 2019 Jul 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -178,11 +178,11 @@ DETAILS						*popup-function-details*
 popup_atcursor({what}, {options})			*popup_atcursor()*
 		Show the {what} above the cursor, and close it when the cursor
 		moves.  This works like: >
-			call popup_create({what}, {
-				\ 'pos': 'botleft',
-				\ 'line': 'cursor-1',
-				\ 'col': 'cursor',
-				\ 'moved': 'WORD',
+			call popup_create({what}, *{
+				\ pos: 'botleft',
+				\ line: 'cursor-1',
+				\ col: 'cursor',
+				\ moved: 'WORD',
 				\ })
 <		Use {options} to change the properties.
 
@@ -191,11 +191,11 @@ popup_beval({what}, {options})			*popup_
 		Show the {what} above the position from 'ballooneval' and
 		close it when the mouse moves.  This works like: >
 		  let pos = screenpos(v:beval_winnr, v:beval_lnum, v:beval_col)
-		  call popup_create({what}, {
-			\ 'pos': 'botleft',
-			\ 'line': pos.row - 1,
-			\ 'col': pos.col,
-			\ 'mousemoved': 'WORD',
+		  call popup_create({what}, *{
+			\ pos: 'botleft',
+			\ line: pos.row - 1,
+			\ col: pos.col,
+			\ mousemoved: 'WORD',
 			\ })
 <		Use {options} to change the properties.
 		See |popup_beval_example| for an example use.
@@ -240,18 +240,18 @@ popup_create({what}, {options})				*popu
 
 popup_dialog({what}, {options})				*popup_dialog()*
 		Just like |popup_create()| but with these default options: >
-			call popup_create({what}, {
-				\ 'pos': 'center',
-				\ 'zindex': 200,
-				\ 'drag': 1,
-				\ 'border': [],
-				\ 'padding': [],
+			call popup_create({what}, *{
+				\ pos: 'center',
+				\ zindex: 200,
+				\ drag: 1,
+				\ border: [],
+				\ padding: [],
 				\})
 <		Use {options} to change the properties. E.g. add a 'filter'
 		option with value 'popup_filter_yesno'.  Example: >
-			call popup_create('do you want to quit (Yes/no)?', {
-				\ 'filter': 'popup_filter_yesno',
-				\ 'callback': 'QuitCallback',
+			call popup_create('do you want to quit (Yes/no)?', *{
+				\ filter: 'popup_filter_yesno',
+				\ callback: 'QuitCallback',
 				\ })
 
 <		By default the dialog can be dragged, so that text below it
@@ -356,14 +356,14 @@ popup_menu({what}, {options})				 *popup
 		items with cursorkeys, and close it an item is selected with
 		Space or Enter. {what} should have multiple lines to make this
 		useful.  This works like: >
-			call popup_create({what}, {
-				\ 'pos': 'center',
-				\ 'zindex': 200,
-				\ 'drag': 1,
-				\ 'wrap': 0,
-				\ 'border': [],
-				\ 'padding': [],
-				\ 'filter': 'popup_filter_menu',
+			call popup_create({what}, *{
+				\ pos: 'center',
+				\ zindex: 200,
+				\ drag: 1,
+				\ wrap: 0,
+				\ border: [],
+				\ padding: [],
+				\ filter: 'popup_filter_menu',
 				\ })
 <		The current line is highlighted with a match using
 		"PopupSelected", or "PmenuSel" if that is not defined.
@@ -391,18 +391,18 @@ popup_move({id}, {options})					*popup_m
 popup_notification({what}, {options})			 *popup_notification()*
 		Show the {what} for 3 seconds at the top of the Vim window.
 		This works like: >
-			call popup_create({what}, {
-				\ 'line': 1,
-				\ 'col': 10,
-				\ 'minwidth': 20,
-				\ 'time': 3000,
-				\ 'tabpage': -1,
-				\ 'zindex': 300,
-				\ 'drag': 1,
-				\ 'highlight': 'WarningMsg',
-				\ 'border': [],
-				\ 'close': 'click',
-				\ 'padding': [0,1,0,1],
+			call popup_create({what}, *{
+				\ line: 1,
+				\ col: 10,
+				\ minwidth: 20,
+				\ time: 3000,
+				\ tabpage: -1,
+				\ zindex: 300,
+				\ drag: 1,
+				\ highlight: 'WarningMsg',
+				\ border: [],
+				\ close: 'click',
+				\ padding: [0,1,0,1],
 				\ })
 <		The PopupNotification highlight group is used instead of
 		WarningMsg if it is defined.
@@ -732,17 +732,17 @@ Prompt the user to press y/Y or n/N: >
 	   endif
 	endfunc
 
-	call popup_dialog('Continue? y/n', {
-		\ 'filter': 'popup_filter_yesno',
-		\ 'callback': 'MyDialogHandler',
+	call popup_dialog('Continue? y/n', *{
+		\ filter: 'popup_filter_yesno',
+		\ callback: 'MyDialogHandler',
 		\ })
 <
 					*popup_menu-shortcut-example*
 Extend popup_filter_menu() with shortcut keys: >
 
-	call popup_menu(['Save', 'Cancel', 'Discard'], {
-		\ 'filter': 'MyMenuFilter',
-		\ 'callback': 'MyMenuHandler',
+	call popup_menu(['Save', 'Cancel', 'Discard'], *{
+		\ filter: 'MyMenuFilter',
+		\ callback: 'MyMenuHandler',
 		\ })
 
 	func MyMenuFilter(id, key)
@@ -781,7 +781,7 @@ Example for using a popup window for 'ba
 	    endif
 	    call popup_close(s:winid)
 	  endif
-	  let s:winid = popup_beval(v:beval_text, {'mousemoved': 'word'})
+	  let s:winid = popup_beval(v:beval_text, *{mousemoved: 'word'})
 	  let s:last_text = v:beval_text
 	  return ''
 	endfunc
@@ -812,7 +812,7 @@ this example simulated with a timer call
 	endfunc
 
 	func ShowPopup(id)
-	  let s:winid = popup_beval(s:balloonText, {'mousemoved': 'word'})
+	  let s:winid = popup_beval(s:balloonText, *{mousemoved: 'word'})
 	endfunc
 <
 
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7468,6 +7468,7 @@ listener_add()	eval.txt	/*listener_add()
 listener_flush()	eval.txt	/*listener_flush()*
 listener_remove()	eval.txt	/*listener_remove()*
 lite.vim	syntax.txt	/*lite.vim*
+literal-Dict	eval.txt	/*literal-Dict*
 literal-string	eval.txt	/*literal-string*
 lnum-variable	eval.txt	/*lnum-variable*
 load-plugins	starting.txt	/*load-plugins*
@@ -8241,6 +8242,8 @@ popup-window	popup.txt	/*popup-window*
 popup-window-functions	usr_41.txt	/*popup-window-functions*
 popup.txt	popup.txt	/*popup.txt*
 popup_atcursor()	popup.txt	/*popup_atcursor()*
+popup_beval()	popup.txt	/*popup_beval()*
+popup_beval_example	popup.txt	/*popup_beval_example*
 popup_clear()	popup.txt	/*popup_clear()*
 popup_close()	popup.txt	/*popup_close()*
 popup_create()	popup.txt	/*popup_create()*
@@ -8252,6 +8255,7 @@ popup_filter_yesno()	popup.txt	/*popup_f
 popup_getoptions()	popup.txt	/*popup_getoptions()*
 popup_getpos()	popup.txt	/*popup_getpos()*
 popup_hide()	popup.txt	/*popup_hide()*
+popup_locate()	popup.txt	/*popup_locate()*
 popup_menu()	popup.txt	/*popup_menu()*
 popup_menu-shortcut-example	popup.txt	/*popup_menu-shortcut-example*
 popup_move()	popup.txt	/*popup_move()*
@@ -8590,6 +8594,7 @@ screenattr()	eval.txt	/*screenattr()*
 screenchar()	eval.txt	/*screenchar()*
 screenchars()	eval.txt	/*screenchars()*
 screencol()	eval.txt	/*screencol()*
+screenpos()	eval.txt	/*screenpos()*
 screenrow()	eval.txt	/*screenrow()*
 screenstring()	eval.txt	/*screenstring()*
 script	usr_41.txt	/*script*
@@ -8693,8 +8698,10 @@ sign_getdefined()	eval.txt	/*sign_getdef
 sign_getplaced()	eval.txt	/*sign_getplaced()*
 sign_jump()	eval.txt	/*sign_jump()*
 sign_place()	eval.txt	/*sign_place()*
+sign_placelist()	eval.txt	/*sign_placelist()*
 sign_undefine()	eval.txt	/*sign_undefine()*
 sign_unplace()	eval.txt	/*sign_unplace()*
+sign_unplacelist()	eval.txt	/*sign_unplacelist()*
 signs	sign.txt	/*signs*
 simple-change	change.txt	/*simple-change*
 simplify()	eval.txt	/*simplify()*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.1.  Last change: 2019 Jul 04
+*todo.txt*      For Vim version 8.1.  Last change: 2019 Jul 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,33 +38,26 @@ browser use: https://github.com/vim/vim/
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Ongoing work on text properties, see src/textprop.c
-
-Popup windows are being implemented, see |popup-window|.
-
 Patch to fix session file when using multiple tabs. (Jason Franklin, 2019 May
 20)
 Also put :argadd commands at the start for all buffers, so that their order
 remains equal?  Then %argdel to clean it up.  Do try this with 'hidden' set.
 
-Listener causes extra } to be inserted. (Paul Jolly, #4455)
+Shorten the command used in test Makefile. (Daniel Hahler, #4643)
 
 Refactor: Move common things out of evalfunc.c, it's too big.
-
-Template string: review #4491
-
-Terminal test fails when vim is configured with some features. (Dominique,
-#4597)
+Move function specs out of eval.txt, it's too big.
 
 Popup windows:
+- Default popup_menu padding: only left&right.
+- Add 'previewpopup': open preview in a popupwindow.
+  Values: dict options as a string?  "line:20,maxwidth:60,maxheight:20"
 - Implement flip option
-- Have a way to scroll to the bottom? (#4577)
+- Have a way to scroll to the bottom, e.g. set 'firstline' to -1? (#4577)
 - Why does 'nrformats' leak from the popup window buffer???
+  Happens in Test_simple_popup() at the second screendump.
 - Disable commands, feedkeys(), CTRL-W, etc. in a popup window.
   Use ERROR_IF_POPUP_WINDOW for more commands.
-- Add 'balloonpopup': instead of showing text, let the callback open a popup
-  window and return the window ID.   The popup will then be closed when the
-  mouse moves, except when it moves inside the popup.
 - For the "moved" property also include mouse movement?
 - Can the buffer be re-used if it was the last one, to avoid using up lots of
   buffer numbers?
@@ -150,6 +143,11 @@ Terminal emulator window:
 - When 'encoding' is not utf-8, or the job is using another encoding, setup
   conversions.
 
+Error numbers available: E172, E221, E242, E249, E260, E274, E275, E276,
+E278, E279, E281, E290, E291, E292, E361, E362, E366, E396, E450, E451, E452,
+E453, E454, E460, E489, E491, E56, E57, E565, E569, E578, E610, E611, E653,
+E654, E693, E706, E856, E857, E860, E861, E863, E889, E900, E959
+
 Sound: support on Mac?  Or does libcanberra work there?
 
 Patch to use forward slash for completion even when 'shellslash' is set.
@@ -157,6 +155,8 @@ Adds 'completepathslash'.  (Yasuhiro Mat
 
 Patch to add win_splitmove() function. (Andy Massimino, #4561)
 
+Resolve() works incorrectly under windows. (#4661)
+
 Completion mixes results from the current buffer with tags and other files.
 Happens when typing CTRL-N while still search for results.  E.g., type "b_" in
 terminal.c and then CTRL-N twice.
@@ -169,7 +169,7 @@ Ready to include now?
 Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
 (#4087)
 
-Patch to the code to get sign information. (Yegappan Lakshmanan, #4586)
+Patch for Template string: #4491  Not ready yet.  New pull: #4634
 
 ":bnext" in a help buffer is supposed to go to the next help buffer, but it
 goes to any buffer, and then :bnext skips help buffers, since they are
@@ -227,6 +227,25 @@ Patch for ambiguous width characters in 
 
 Problem with colors in terminal window. (Jason Franklin, 2019 May 12)
 
+Lifepillar: Updated/cleaned up color schemes:
+https://github.com/lifepillar/vim8-colorschemes.
+
+Include a few color schemes, based on popularity:
+http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
+http://vimawesome.com/?q=tag:color-scheme
+Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
+- monokai - Xia Crusoe (2017 Aug 4) 
+- seoul256 - Christian Brabandt (2017 Aug 3)
+- gruvbox -  Christian Brabandt (2017 Aug 3) (simplified version from
+      Lifepillar, 2018 Jan 22, #2573)
+- janah - Marco Hinz (2017 Aug 4)
+- apprentice - Romain Lafourcade (2017 Aug 6)  remarks about help file #1964
+Suggested by Hiroki Kokubun:
+- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
+- [hybrid](https://github.com/w0ng/vim-hybrid)
+Include solarized color scheme?, it does not support termguicolors.
+- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
+
 Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019
 Mar 5)
 
@@ -309,6 +328,10 @@ nvo-mode mapping works on Windows, not o
 Missing tests for:
 - add_termcap_entry()
 
+Redo only remembers the last change.  Could use "{count}g." to redo an older
+change.  How does the user know which change?  At least have a way to list
+them: ":repeats".  Add to history, like search history and command line history.
+
 When using exclusive selection and vi" that fails, cursor moves to the left.
 Cursor should not move. (#4024)
 
@@ -791,22 +814,6 @@ Seems to happen when the selection is re
 clip_x11_convert_selection_cb() is invoked, thus in X library code.
 Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)
 
-Include a few color schemes, based on popularity:
-http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
-http://vimawesome.com/?q=tag:color-scheme
-Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
-- monokai - Xia Crusoe (2017 Aug 4) 
-- seoul256 - Christian Brabandt (2017 Aug 3)
-- gruvbox -  Christian Brabandt (2017 Aug 3) (simplified version from
-      Lifepillar, 2018 Jan 22, #2573)
-- janah - Marco Hinz (2017 Aug 4)
-- apprentice - Romain Lafourcade (2017 Aug 6)  remarks about help file #1964
-Suggested by Hiroki Kokubun:
-- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
-- [hybrid](https://github.com/w0ng/vim-hybrid)
-Include solarized color scheme?, it does not support termguicolors.
-- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
-
 Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
 
 Creating a partial with an autoload function is confused about the "self"
@@ -1521,10 +1528,6 @@ Patch for building a 32bit Vim with 64bi
 Patch: On MS-Windows shellescape() may have to triple double quotes.
 (Ingo Karkat, 2015 Jan 16)
 
-Redo only remembers the last change.  Could use "{count}g." to redo an older
-change.  How does the user know which change?  At least have a way to list
-them: ":repeats".
-
 Patch for glob(), adding slash to normal files. (Ingo Karkat, 2014 Dec 22)
 
 When entering and leaving the preview window autocommands are triggered, but
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.1.  Last change: 2019 Jul 04
+*usr_41.txt*	For Vim version 8.1.  Last change: 2019 Jul 06
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -707,6 +707,9 @@ au BufNewFile,BufRead *.t.html			setf ti
 " HTML (.shtml and .stm for server side)
 au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm  call dist#ft#FThtml()
 
+" Vue.js Single File Component
+au BufNewFile,BufRead *.vue			setf vuejs
+
 " HTML with Ruby - eRuby
 au BufNewFile,BufRead *.erb,*.rhtml		setf eruby
 
--- a/runtime/makemenu.vim
+++ b/runtime/makemenu.vim
@@ -272,6 +272,7 @@ SynMenu HIJK.HTML.HTML\ with\ M4:htmlm4
 SynMenu HIJK.HTML.HTML\ with\ Ruby\ (eRuby):eruby
 SynMenu HIJK.HTML.Cheetah\ HTML\ template:htmlcheetah
 SynMenu HIJK.HTML.Django\ HTML\ template:htmldjango
+SynMenu HIJK.HTML.Vue.js\ HTML\ template:vuejs
 SynMenu HIJK.HTML.HTML/OS:htmlos
 SynMenu HIJK.HTML.XHTML:xhtml
 SynMenu HIJK.Host\.conf:hostconf
--- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
+++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
@@ -838,12 +838,12 @@ endfunc
 " if there is any.
 func TermDebugBalloonExpr()
   if v:beval_winid != s:sourcewin
-    return
+    return ''
   endif
   if !s:stopped
     " Only evaluate when stopped, otherwise setting a breakpoint using the
     " mouse triggers a balloon.
-    return
+    return ''
   endif
   let s:evalFromBalloonExpr = 1
   let s:evalFromBalloonExprResult = ''
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -252,48 +252,49 @@ an 50.50.220 &Syntax.HIJK.HTML.HTML\ wit
 an 50.50.230 &Syntax.HIJK.HTML.HTML\ with\ Ruby\ (eRuby) :cal SetSyn("eruby")<CR>
 an 50.50.240 &Syntax.HIJK.HTML.Cheetah\ HTML\ template :cal SetSyn("htmlcheetah")<CR>
 an 50.50.250 &Syntax.HIJK.HTML.Django\ HTML\ template :cal SetSyn("htmldjango")<CR>
-an 50.50.260 &Syntax.HIJK.HTML.HTML/OS :cal SetSyn("htmlos")<CR>
-an 50.50.270 &Syntax.HIJK.HTML.XHTML :cal SetSyn("xhtml")<CR>
-an 50.50.280 &Syntax.HIJK.Host\.conf :cal SetSyn("hostconf")<CR>
-an 50.50.290 &Syntax.HIJK.Hosts\ access :cal SetSyn("hostsaccess")<CR>
-an 50.50.300 &Syntax.HIJK.Hyper\ Builder :cal SetSyn("hb")<CR>
-an 50.50.320 &Syntax.HIJK.Icewm\ menu :cal SetSyn("icemenu")<CR>
-an 50.50.330 &Syntax.HIJK.Icon :cal SetSyn("icon")<CR>
-an 50.50.340 &Syntax.HIJK.IDL\Generic\ IDL :cal SetSyn("idl")<CR>
-an 50.50.350 &Syntax.HIJK.IDL\Microsoft\ IDL :cal SetSyn("msidl")<CR>
-an 50.50.360 &Syntax.HIJK.Indent\ profile :cal SetSyn("indent")<CR>
-an 50.50.370 &Syntax.HIJK.Inform :cal SetSyn("inform")<CR>
-an 50.50.380 &Syntax.HIJK.Informix\ 4GL :cal SetSyn("fgl")<CR>
-an 50.50.390 &Syntax.HIJK.Initng :cal SetSyn("initng")<CR>
-an 50.50.400 &Syntax.HIJK.Inittab :cal SetSyn("inittab")<CR>
-an 50.50.410 &Syntax.HIJK.Inno\ setup :cal SetSyn("iss")<CR>
-an 50.50.420 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ dat :cal SetSyn("upstreamdat")<CR>
-an 50.50.430 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ log :cal SetSyn("upstreamlog")<CR>
-an 50.50.440 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ rpt :cal SetSyn("upstreamrpt")<CR>
-an 50.50.450 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ Install\ log :cal SetSyn("upstreaminstalllog")<CR>
-an 50.50.460 &Syntax.HIJK.Innovation\ Data\ Processing.Usserver\ log :cal SetSyn("usserverlog")<CR>
-an 50.50.470 &Syntax.HIJK.Innovation\ Data\ Processing.USW2KAgt\ log :cal SetSyn("usw2kagtlog")<CR>
-an 50.50.480 &Syntax.HIJK.InstallShield\ script :cal SetSyn("ishd")<CR>
-an 50.50.490 &Syntax.HIJK.Interactive\ Data\ Lang :cal SetSyn("idlang")<CR>
-an 50.50.500 &Syntax.HIJK.IPfilter :cal SetSyn("ipfilter")<CR>
-an 50.50.520 &Syntax.HIJK.J :cal SetSyn("j")<CR>
-an 50.50.530 &Syntax.HIJK.JAL :cal SetSyn("jal")<CR>
-an 50.50.540 &Syntax.HIJK.JAM :cal SetSyn("jam")<CR>
-an 50.50.550 &Syntax.HIJK.Jargon :cal SetSyn("jargon")<CR>
-an 50.50.560 &Syntax.HIJK.Java.Java :cal SetSyn("java")<CR>
-an 50.50.570 &Syntax.HIJK.Java.JavaCC :cal SetSyn("javacc")<CR>
-an 50.50.580 &Syntax.HIJK.Java.Java\ Server\ Pages :cal SetSyn("jsp")<CR>
-an 50.50.590 &Syntax.HIJK.Java.Java\ Properties :cal SetSyn("jproperties")<CR>
-an 50.50.600 &Syntax.HIJK.JavaScript :cal SetSyn("javascript")<CR>
-an 50.50.610 &Syntax.HIJK.Jess :cal SetSyn("jess")<CR>
-an 50.50.620 &Syntax.HIJK.Jgraph :cal SetSyn("jgraph")<CR>
-an 50.50.630 &Syntax.HIJK.Jovial :cal SetSyn("jovial")<CR>
-an 50.50.640 &Syntax.HIJK.JSON :cal SetSyn("json")<CR>
-an 50.50.660 &Syntax.HIJK.Kconfig :cal SetSyn("kconfig")<CR>
-an 50.50.670 &Syntax.HIJK.KDE\ script :cal SetSyn("kscript")<CR>
-an 50.50.680 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR>
-an 50.50.690 &Syntax.HIJK.Kivy :cal SetSyn("kivy")<CR>
-an 50.50.700 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR>
+an 50.50.260 &Syntax.HIJK.HTML.Vue.js\ HTML\ template :cal SetSyn("vuejs")<CR>
+an 50.50.270 &Syntax.HIJK.HTML.HTML/OS :cal SetSyn("htmlos")<CR>
+an 50.50.280 &Syntax.HIJK.HTML.XHTML :cal SetSyn("xhtml")<CR>
+an 50.50.290 &Syntax.HIJK.Host\.conf :cal SetSyn("hostconf")<CR>
+an 50.50.300 &Syntax.HIJK.Hosts\ access :cal SetSyn("hostsaccess")<CR>
+an 50.50.310 &Syntax.HIJK.Hyper\ Builder :cal SetSyn("hb")<CR>
+an 50.50.330 &Syntax.HIJK.Icewm\ menu :cal SetSyn("icemenu")<CR>
+an 50.50.340 &Syntax.HIJK.Icon :cal SetSyn("icon")<CR>
+an 50.50.350 &Syntax.HIJK.IDL\Generic\ IDL :cal SetSyn("idl")<CR>
+an 50.50.360 &Syntax.HIJK.IDL\Microsoft\ IDL :cal SetSyn("msidl")<CR>
+an 50.50.370 &Syntax.HIJK.Indent\ profile :cal SetSyn("indent")<CR>
+an 50.50.380 &Syntax.HIJK.Inform :cal SetSyn("inform")<CR>
+an 50.50.390 &Syntax.HIJK.Informix\ 4GL :cal SetSyn("fgl")<CR>
+an 50.50.400 &Syntax.HIJK.Initng :cal SetSyn("initng")<CR>
+an 50.50.410 &Syntax.HIJK.Inittab :cal SetSyn("inittab")<CR>
+an 50.50.420 &Syntax.HIJK.Inno\ setup :cal SetSyn("iss")<CR>
+an 50.50.430 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ dat :cal SetSyn("upstreamdat")<CR>
+an 50.50.440 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ log :cal SetSyn("upstreamlog")<CR>
+an 50.50.450 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ rpt :cal SetSyn("upstreamrpt")<CR>
+an 50.50.460 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ Install\ log :cal SetSyn("upstreaminstalllog")<CR>
+an 50.50.470 &Syntax.HIJK.Innovation\ Data\ Processing.Usserver\ log :cal SetSyn("usserverlog")<CR>
+an 50.50.480 &Syntax.HIJK.Innovation\ Data\ Processing.USW2KAgt\ log :cal SetSyn("usw2kagtlog")<CR>
+an 50.50.490 &Syntax.HIJK.InstallShield\ script :cal SetSyn("ishd")<CR>
+an 50.50.500 &Syntax.HIJK.Interactive\ Data\ Lang :cal SetSyn("idlang")<CR>
+an 50.50.510 &Syntax.HIJK.IPfilter :cal SetSyn("ipfilter")<CR>
+an 50.50.530 &Syntax.HIJK.J :cal SetSyn("j")<CR>
+an 50.50.540 &Syntax.HIJK.JAL :cal SetSyn("jal")<CR>
+an 50.50.550 &Syntax.HIJK.JAM :cal SetSyn("jam")<CR>
+an 50.50.560 &Syntax.HIJK.Jargon :cal SetSyn("jargon")<CR>
+an 50.50.570 &Syntax.HIJK.Java.Java :cal SetSyn("java")<CR>
+an 50.50.580 &Syntax.HIJK.Java.JavaCC :cal SetSyn("javacc")<CR>
+an 50.50.590 &Syntax.HIJK.Java.Java\ Server\ Pages :cal SetSyn("jsp")<CR>
+an 50.50.600 &Syntax.HIJK.Java.Java\ Properties :cal SetSyn("jproperties")<CR>
+an 50.50.610 &Syntax.HIJK.JavaScript :cal SetSyn("javascript")<CR>
+an 50.50.620 &Syntax.HIJK.Jess :cal SetSyn("jess")<CR>
+an 50.50.630 &Syntax.HIJK.Jgraph :cal SetSyn("jgraph")<CR>
+an 50.50.640 &Syntax.HIJK.Jovial :cal SetSyn("jovial")<CR>
+an 50.50.650 &Syntax.HIJK.JSON :cal SetSyn("json")<CR>
+an 50.50.670 &Syntax.HIJK.Kconfig :cal SetSyn("kconfig")<CR>
+an 50.50.680 &Syntax.HIJK.KDE\ script :cal SetSyn("kscript")<CR>
+an 50.50.690 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR>
+an 50.50.700 &Syntax.HIJK.Kivy :cal SetSyn("kivy")<CR>
+an 50.50.710 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR>
 an 50.60.100 &Syntax.L.Lace :cal SetSyn("lace")<CR>
 an 50.60.110 &Syntax.L.LamdaProlog :cal SetSyn("lprolog")<CR>
 an 50.60.120 &Syntax.L.Latte :cal SetSyn("latte")<CR>
--- a/runtime/syntax/json.vim
+++ b/runtime/syntax/json.vim
@@ -1,7 +1,8 @@
 " Vim syntax file
 " Language:	JSON
-" Maintainer:	Eli Parra <eli@elzr.com>
-" Last Change:	2014 Aug 23
+" Maintainer:	vacancy
+" Previous Maintainer:	Eli Parra <eli@elzr.com>
+" Last Change:	2019 Jul 08
 " Version:      0.12
 
 if !exists("main_syntax")
@@ -16,8 +17,19 @@ syntax match   jsonNoise           /\%(:
 
 " NOTE that for the concealing to work your conceallevel should be set to 2
 
+" Syntax: JSON Keywords
+" Separated into a match and region because a region by itself is always greedy
+syn match  jsonKeywordMatch /"\([^"]\|\\\"\)\+"[[:blank:]\r\n]*\:/ contains=jsonKeyword
+if has('conceal')
+   syn region  jsonKeyword matchgroup=jsonQuote start=/"/  end=/"\ze[[:blank:]\r\n]*\:/ concealends contained
+else
+   syn region  jsonKeyword matchgroup=jsonQuote start=/"/  end=/"\ze[[:blank:]\r\n]*\:/ contained
+endif
+
 " Syntax: Strings
 " Separated into a match and region because a region by itself is always greedy
+" Needs to come after keywords or else a json encoded string will break the
+" syntax
 syn match  jsonStringMatch /"\([^"]\|\\\"\)\+"\ze[[:blank:]\r\n]*[,}\]]/ contains=jsonString
 if has('conceal')
 	syn region  jsonString oneline matchgroup=jsonQuote start=/"/  skip=/\\\\\|\\"/  end=/"/ concealends contains=jsonEscape contained
@@ -28,14 +40,6 @@ endif
 " Syntax: JSON does not allow strings with single quotes, unlike JavaScript.
 syn region  jsonStringSQError oneline  start=+'+  skip=+\\\\\|\\"+  end=+'+
 
-" Syntax: JSON Keywords
-" Separated into a match and region because a region by itself is always greedy
-syn match  jsonKeywordMatch /"\([^"]\|\\\"\)\+"[[:blank:]\r\n]*\:/ contains=jsonKeyword
-if has('conceal')
-   syn region  jsonKeyword matchgroup=jsonQuote start=/"/  end=/"\ze[[:blank:]\r\n]*\:/ concealends contained
-else
-   syn region  jsonKeyword matchgroup=jsonQuote start=/"/  end=/"\ze[[:blank:]\r\n]*\:/ contained
-endif
 
 " Syntax: Escape sequences
 syn match   jsonEscape    "\\["\\/bfnrt]" contained
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/vuejs.vim
@@ -0,0 +1,14 @@
+" Vim syntax file
+" Language:	Vue.js Single File Component
+" Maintainer:	Ralph Giles <giles@thaumas.net>
+" URL:		https://vuejs.org/v2/guide/single-file-components.html
+" Last Change:	2019 Jul 8
+
+" Quit if a syntax file was already loaded.
+if exists("b:current_syntax")
+  finish
+endif
+
+" We have a collection of html, css and javascript wrapped in
+" tags. The default HTML syntax highlight works well enough.
+runtime! syntax/html.vim