Update runtime files
diff --git a/runtime/compiler/gcc.vim b/runtime/compiler/gcc.vim
index 1af568d..30e5149 100644
--- 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 @@
       \%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')
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index baecc92..4c87726 100644
--- 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 @@
 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 "/
diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt
index 772aac0..47369d6 100644
--- 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 @@
 ==============================================================================
 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 @@
 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 @@
 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*
 
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 7b8c21f..4ed01ac 100644
--- 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 @@
 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.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index e6c9992..ad50bfc 100644
--- 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 @@
     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 @@
 	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")
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index b0397a3..f74a7c2 100644
--- 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 @@
 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 @@
 		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_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 @@
 		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_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 @@
 	   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 @@
 	    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 @@
 	endfunc
 
 	func ShowPopup(id)
-	  let s:winid = popup_beval(s:balloonText, {'mousemoved': 'word'})
+	  let s:winid = popup_beval(s:balloonText, *{mousemoved: 'word'})
 	endfunc
 <
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 123c1de..25fd332 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7468,6 +7468,7 @@
 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-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_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 @@
 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_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()*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index be712ae..5ff226b 100644
--- 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 @@
 							*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 @@
 - 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 @@
 
 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 @@
 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 @@
 
 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 @@
 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 @@
 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: 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
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 0f677e4..9e290dd 100644
--- 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
 
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 36a5163..80fa021 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -707,6 +707,9 @@
 " 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
 
diff --git a/runtime/makemenu.vim b/runtime/makemenu.vim
index 3d76b42..7fb1269 100644
--- a/runtime/makemenu.vim
+++ b/runtime/makemenu.vim
@@ -272,6 +272,7 @@
 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
diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
index 8c4395c..db44e69 100644
--- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
+++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
@@ -838,12 +838,12 @@
 " 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 = ''
diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim
index ec4c48b..e8c9933 100644
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -252,48 +252,49 @@
 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>
diff --git a/runtime/syntax/json.vim b/runtime/syntax/json.vim
index d80af84..e3210a9 100644
--- 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 @@
 
 " 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 @@
 " 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
diff --git a/runtime/syntax/vuejs.vim b/runtime/syntax/vuejs.vim
new file mode 100644
index 0000000..bad0e26
--- /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