diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index c52a7f5..43f7f40 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.4.  Last change: 2015 Jul 20
+*autocmd.txt*   For Vim version 7.4.  Last change: 2015 Aug 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1072,7 +1072,7 @@
 Examples: >
     :au CursorHold <buffer>  echo 'hold'
     :au CursorHold <buffer=33>  echo 'hold'
-    :au CursorHold <buffer=abuf>  echo 'hold'
+    :au BufNewFile * CursorHold <buffer=abuf>  echo 'hold'
 
 All the commands for autocommands also work with buffer-local autocommands,
 simply use the special string instead of the pattern.  Examples: >
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 79aa179..a7c8a27 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.4.  Last change: 2015 Jun 25
+*change.txt*    For Vim version 7.4.  Last change: 2015 Aug 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -634,9 +634,9 @@
 			may add [flags], see |:s_flags|.
 			Note that after `:substitute` the '&' flag can't be
 			used, it's recognized as a pattern separator.
-			The space between `:substitute` and the 'c', 'g' and
-			'r' flags isn't required, but in scripts it's a good
-			idea to keep it to avoid confusion.
+			The space between `:substitute` and the 'c', 'g',
+			'i', 'I' and 'r' flags isn't required, but in scripts
+			it's a good idea to keep it to avoid confusion.
 
 :[range]~[&][flags] [count]					*:~*
 			Repeat last substitute with same substitute string
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 27d9e42..94fe977 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 7.4.  Last change: 2015 Jul 21
+*cmdline.txt*   For Vim version 7.4.  Last change: 2015 Jul 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -750,13 +750,13 @@
 example, "%" stands for the current file name, while CTRL-R % inserts the
 current file name right away.  See |c_CTRL-R|.
 
-Note: If you want to avoid the special characters in a Vim script you may want
-to use |fnameescape()|.  Also see |`=|.
+Note:  If you want to avoid the effects of special characters in a Vim script
+you may want to use |fnameescape()|.  Also see |`=|.
 
 
 In Ex commands, at places where a file name can be used, the following
 characters have a special meaning.  These can also be used in the expression
-function expand() |expand()|.
+function |expand()|.
 	%	Is replaced with the current file name.		  *:_%* *c_%*
 	#	Is replaced with the alternate file name.	  *:_#* *c_#*
 		This is remembered for every window.
@@ -792,6 +792,7 @@
 	   \#			#
 	   \\#			\#
 Also see |`=|.
+
 			       *:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
 			       *:<sfile>* *<sfile>* *:<afile>* *<afile>*
 			       *:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
@@ -812,7 +813,7 @@
 		   <afile> only when the file name isn't used to match with
 		   (for FileType, Syntax and SpellFileMissing events).
 	<sfile>    When executing a ":source" command, is replaced with the
-		   file name of the sourced file.  *E498* 
+		   file name of the sourced file.  *E498*
 		   When executing a function, is replaced with
 		   "function {function-name}"; function call nesting is
 		   indicated like this:
@@ -881,7 +882,7 @@
 	:gs?pat?sub?
 		Substitute all occurrences of "pat" with "sub".  Otherwise
 		this works like ":s".
-	:S	Escape special characters for use with a shell command (see 
+	:S	Escape special characters for use with a shell command (see
 		|shellescape()|). Must be the last one. Examples: >
 		    :!dir <cfile>:S
 		    :call system('chmod +w -- ' . expand('%:S'))
@@ -934,9 +935,8 @@
 
 Note: Where a file name is expected wildcards expansion is done.  On Unix the
 shell is used for this, unless it can be done internally (for speed).
-Backticks also work, like in >
+Unless in |restricted-mode|, backticks work also, like in >
 	:n `echo *.c`
-(backtick expansion is not possible in |restricted-mode|)
 But expansion is only done if there are any wildcards before expanding the
 '%', '#', etc..  This avoids expanding wildcards inside a file name.  If you
 want to expand the result of <cfile>, add a wildcard character to it.
@@ -973,6 +973,7 @@
 	\$home		file "$home" in current directory
 	/\$home		file "$home" in root directory
 	\\$home		file "\\", followed by expanded $home
+
 Also see |`=|.
 
 ==============================================================================
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 1ac7f64..1be6a6d 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.4.  Last change: 2015 Jul 21
+*editing.txt*   For Vim version 7.4.  Last change: 2015 Jul 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -412,22 +412,34 @@
 	/usr/include/sys/types.h
 	/usr/inc_old/types.h
 					*backtick-expansion* *`-expansion*
-On Unix and a few other systems you can also use backticks in the file name,
-for example: >
-	:e `find . -name ver\\*.c -print`
-The backslashes before the star are required to prevent "ver*.c" to be
-expanded by the shell before executing the find program.
+On Unix and a few other systems you can also use backticks for the file name
+argument, for example: >
+	:next `find . -name ver\\*.c -print`
+The backslashes before the star are required to prevent the shell from
+expanding "ver*.c" prior to execution of the find program.  The backslash
+before the shell pipe symbol "|" prevents Vim from parsing it as command
+termination.
 This also works for most other systems, with the restriction that the
 backticks must be around the whole item.  It is not possible to have text
 directly before the first or just after the last backtick.
 
 							*`=*
-You can have the backticks expanded as a Vim expression, instead of an
-external command, by using the syntax `={expr}` e.g.: >
+You can have the backticks expanded as a Vim expression, instead of as an
+external command, by putting an equal sign right after the first backtick,
+e.g.: >
 	:e `=tempname()`
 The expression can contain just about anything, thus this can also be used to
 avoid the special meaning of '"', '|', '%' and '#'.  However, 'wildignore'
 does apply like to other wildcards.
+
+Environment variables are expanded before evaluating the expression, thus this
+does not work: >
+	:e `=$HOME . '.vimrc'`
+Because $HOME is expanding early, resulting in: >
+	:e `=/home/user . '.vimrc'`
+This does work: >
+	:e `=expand('$HOME') . '.vimrc'`
+
 If the expression returns a string then names are to be separated with line
 breaks.  When the result is a |List| then each item is used as a name.  Line
 breaks also separate names.
@@ -1365,7 +1377,7 @@
 - <Nul> characters are shown on the screen as ^@.  You can enter them with
   "CTRL-V CTRL-@" or "CTRL-V 000" {Vi cannot handle <Nul> characters in the
   file}
-- To insert a <NL> character in the file split up a line.  When writing the
+- To insert a <NL> character in the file split a line.  When writing the
   buffer to a file a <NL> will be written for the <EOL>.
 - Vim normally appends an <EOL> at the end of the file if there is none.
   Setting the 'binary' option prevents this.  If you want to add the final
@@ -1395,7 +1407,8 @@
 You could do this to edit very secret text: >
 	:set noundofile viminfo=
 	:noswapfile edit secrets.txt
-Keep in mind that without a swap file you risk losing your work in a crash.
+Keep in mind that without a swap file you risk loosing your work in the event
+of a crash or a power failure.
 
 WARNING: If you make a typo when entering the key and then write the file and
 exit, the text will be lost!
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 85149b5..893624a 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1822,6 +1822,7 @@
 				any	variable {varname} in buffer {expr}
 getchar( [expr])		Number	get one character from the user
 getcharmod( )			Number	modifiers for the last typed character
+getcharsearch()			Dict	last character search
 getcmdline()			String	return the current command-line
 getcmdpos()			Number	return cursor position in command-line
 getcmdtype()			String	return current command-line type
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 83a73d6..6969354 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6183,6 +6183,7 @@
 getbufvar()	eval.txt	/*getbufvar()*
 getchar()	eval.txt	/*getchar()*
 getcharmod()	eval.txt	/*getcharmod()*
+getcharsearch()	eval.txt	/*getcharsearch()*
 getcmdline()	eval.txt	/*getcmdline()*
 getcmdpos()	eval.txt	/*getcmdpos()*
 getcmdtype()	eval.txt	/*getcmdtype()*
@@ -7793,6 +7794,7 @@
 set-option	options.txt	/*set-option*
 set-spc-auto	spell.txt	/*set-spc-auto*
 setbufvar()	eval.txt	/*setbufvar()*
+setcharsearch()	eval.txt	/*setcharsearch()*
 setcmdpos()	eval.txt	/*setcmdpos()*
 setline()	eval.txt	/*setline()*
 setloclist()	eval.txt	/*setloclist()*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 42f2e58..66e9351 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2015 Jul 21
+*todo.txt*      For Vim version 7.4.  Last change: 2015 Aug 11
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -73,29 +73,23 @@
 Still using freed memory after using setloclist(). (lcd, 2014 Jul 23)
 More info Jul 24.  Not clear why.
 
-RXVT sends a different background color response. (Higashi, 2015 Jul 5)
-
-More tests for :diffoff. Olaf Dabrunz, (2015 Jul 4)
-
 Problem that a previous silent ":throw" causes a following try/catch not to
 work. (ZyX, 2013 Sep 28)
 
 Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
 
-Regression for v_b_A. (Ingo Karkat, 2015 May 18)
-
 ":cd C:\Windows\System32\drivers\etc*" does not work, even though the
 directory exists. (Sergio Gallelli, 2013 Dec 29)
 
-Invalid memory access in regexp.c. (Dominique Pelle, 2015 May 23)
-
 Using ":windo" to set options in all windows has the side effect that it
 changes the window layout and the current window.  Make a variant that saves
 and restores.  Use in the matchparen plugin.
 Perhaps we can use ":silent window"?
 
-C indent: should recognize C11 raw strings. (Mark Lodato, 2015 Mar 1)
-Need to recognize R"string" for 'cindent'.
+Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
+
+Patch for better documentaiton of cmdline expansion. (Pavol Juhas, 2015 Jul
+24)
 
 Crash when changing the 'tags' option from a remote command.
 (Benjamin Fritz, 2015 Mar 18, stack trace Mar 20)
@@ -107,6 +101,9 @@
 
 Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
 
+Patch to add CTRL-g U to not break undo for the following cursor movement
+command. (Christian Brabandt, 2015 Aug 4)
+
 MS-Windows: When editing a file with a leading space, writing it uses the
 wrong name. (Aram, 2014 Nov 7)  Vim 7.4.
 
@@ -130,25 +127,46 @@
 MS-Windows: Crash opening very long file name starting with "\\".
 (Christian Brock, 2012 Jun 29)
 
+Patch to improve IME handling in the MS-Windows console.
+(Ken Takata, 2015 Aug 8)
+
+Patch to support Unicode I/O in the MS-Windows console.
+(Ken Takata, 2015 Aug 8)  Also by Yasuhiro Matsumoto.
+
 The argument for "-S" is not taken literally, the ":so" command expands
 wildcards.  Add a ":nowild" command modifier?  (ZyX, 2015 March 4)
 
+Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5)
+
 Build with Python on Mac does not always use the right library.
 (Kazunobu Kuriyama, 2015 Mar 28)
 
 ml_updatechunk() is slow when retrying for another encoding. (John Little,
 2014 Sep 11)
 
+Patch to fix that "zt" in diff mode doesn't always work properly.
+(Christian Brabandt, 2015 Aug 6)  Doesn't fix the problem?
+
+Patch to fix checking global option value when not using it.
+(Arnaud Decara, 2015 Jul 23)
+
 When 'showbreak' is set repeating a Visual operation counts the size of the
 'showbreak' text as part of the operation. (Axel Bender, 2015 Jul 20)
 
+Patch to apply 'fileformats' when starting Vim. (Mike Williams, 2015 Jul 22)
+
+Patch for matchit plugin related to multibyte chars. (Ken Takata, 2015 Jul 22)
+
 Patch for multi-byte characters in langmap and applying a mapping on them.
-(Christian Brabandt, 2015 Jun 12)
+(Christian Brabandt, 2015 Jun 12, update July 25)
 Is this the right solution?
 
 Patch to add grepfile(). (Scott Prager, 2015 May 26)
 Work in progress.
 
+Patch for global-local options consistency. (Arnaud Decara, 2015 Jul 22)
+Is this right?
+
 Patch to make getregtype() return the right size for non-linux systems.
 (Yasuhiro Matsumoto, 2014 Jul 8)
 Breaks test_eval.  Inefficient, can we only compute y_width when needed?
@@ -162,6 +180,8 @@
 Patch for man.vim. (SungHyun Nam, 2015 May 20)
 Doesn't work completely (Dominique Orban)
 
+Patch to add a "literal" argument to bufnr().  (Olaf Dabrunz, 2015 Aug 4)
+
 When a session file is created and there are "nofile" buffers, these are not
 filled.  Need to trigger BufReadCmd autocommands.  Also handle deleting the
 initial empty buffer better. (ZyX, 2015 March 8)
@@ -608,7 +628,7 @@
 Patch to add ":ldo" and ":cdo", execute commands over quickfix list and
 location list. (Yegappan Lakshmanan, 2013 Jun 2, update 2015 Mar 21)
 Update by Florian Walch, 2015 Jul 1.
-Yegappan will send an update in July.
+Update by Yegappan, 2015 Jul 24.
 
 8   "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters.
     Patch by Christian Wellenbrock, 2013 Jul 5.
@@ -794,7 +814,7 @@
 Would also need to do this for spellbadword() and spellsuggest().
 
 Patch for variable tabstops.  On github (Christian Brabandt, 2014 May 15)
-Update Aug 16 (email).
+Update 2015 Jul 25 (email).
 
 On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
 64 bits value.  Change all number options to use nropt_T and define it to the
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 4d8b7d8..6bdedfd 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2015 Jun 06
+" Last Change:	2015 Aug 11
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -1168,7 +1168,7 @@
   let n = 1
   while n < 10
     let line = getline(n)
-    if line =~ '^\s*\(#\s*\(include\|import\)\>\|/\*\|//\)'
+    if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\|//\)'
       setf objc
       return
     endif
@@ -1336,7 +1336,7 @@
   let n = 1
   while n < 10
     let line = getline(n)
-    if line =~ '^\s*\(#\s*\(include\|import\)\>\|/\*\)'
+    if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
       setf objcpp
       return
     endif
@@ -1858,7 +1858,7 @@
 
 " Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
 " Gentoo ebuilds are actually bash scripts
-au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,.bash_aliases*,*.bash,*.ebuild call SetFileTypeSH("bash")
+au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass call SetFileTypeSH("bash")
 au BufNewFile,BufRead .kshrc*,*.ksh call SetFileTypeSH("ksh")
 au BufNewFile,BufRead */etc/profile,.profile*,*.sh,*.env call SetFileTypeSH(getline(1))
 
diff --git a/runtime/indent/sh.vim b/runtime/indent/sh.vim
index 29a25a2..b2f35b2 100644
--- a/runtime/indent/sh.vim
+++ b/runtime/indent/sh.vim
@@ -1,10 +1,11 @@
 " Vim indent file
-" Language:         Shell Script
-" Maintainer:       Currently unmaintained. If you want to take it, please
-" 		    email Bram
+" Language:            Shell Script
+" Maintainer:          Christian Brabandt <cb@256bit.org>
 " Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
-" Original Author:  Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2014-08-22
+" Original Author:     Nikolai Weibull <now@bitwi.se>
+" Latest Revision:     2015-07-28
+" License:             Vim (see :h license)
+" Repository:          https://github.com/chrisbra/vim-sh-indent
 
 if exists("b:did_indent")
   finish
@@ -12,7 +13,7 @@
 let b:did_indent = 1
 
 setlocal indentexpr=GetShIndent()
-setlocal indentkeys+=0=then,0=do,0=else,0=elif,0=fi,0=esac,0=done,),0=;;,0=;&
+setlocal indentkeys+=0=then,0=do,0=else,0=elif,0=fi,0=esac,0=done,0=end,),0=;;,0=;&
 setlocal indentkeys+=0=fin,0=fil,0=fip,0=fir,0=fix
 setlocal indentkeys-=:,0#
 setlocal nosmartindent
@@ -56,8 +57,8 @@
 
   let ind = indent(lnum)
   let line = getline(lnum)
-  if line =~ '^\s*\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\)\>'
-    if line !~ '\<\%(fi\|esac\|done\)\>\s*\%(#.*\)\=$'
+  if line =~ '^\s*\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>'
+    if line !~ '\<\%(fi\|esac\|done\|end\)\>\s*\%(#.*\)\=$'
       let ind += s:indent_value('default')
     endif
   elseif s:is_case_label(line, pnum)
@@ -78,7 +79,7 @@
 
   let pine = line
   let line = getline(v:lnum)
-  if line =~ '^\s*\%(then\|do\|else\|elif\|fi\|done\)\>' || line =~ '^\s*}'
+  if line =~ '^\s*\%(then\|do\|else\|elif\|fi\|done\|end\)\>' || line =~ '^\s*}'
     let ind -= s:indent_value('default')
   elseif line =~ '^\s*esac\>' && s:is_case_empty(getline(v:lnum - 1))
     let ind -= s:indent_value('default')
diff --git a/runtime/macros/matchit.vim b/runtime/macros/matchit.vim
index 74c1a1e..70867b1 100644
--- a/runtime/macros/matchit.vim
+++ b/runtime/macros/matchit.vim
@@ -303,7 +303,7 @@
       let regexp = s:Wholematch(matchline, a:1, currcol-1)
       let endcol = matchend(matchline, regexp)
       if endcol > currcol  " This is NOT off by one!
-	execute "normal!" . (endcol - currcol) . "l"
+	call cursor(0, endcol)
       endif
     endif " a:0
   endif " a:mode != "o" && etc.
diff --git a/runtime/makemenu.vim b/runtime/makemenu.vim
index b78fdfd..839dbda 100644
--- a/runtime/makemenu.vim
+++ b/runtime/makemenu.vim
@@ -177,6 +177,7 @@
 SynMenu DE.Doxygen.C++\ with\ doxygen:cpp.doxygen
 SynMenu DE.Doxygen.IDL\ with\ doxygen:idl.doxygen
 SynMenu DE.Doxygen.Java\ with\ doxygen:java.doxygen
+SynMenu DE.Doxygen.DataScript\ with\ doxygen:datascript.doxygen
 SynMenu DE.Dracula:dracula
 SynMenu DE.DSSSL:dsl
 SynMenu DE.DTD:dtd
diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim
index 2db72a2..76f6013 100644
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -161,6 +161,7 @@
 an 50.30.300 &Syntax.DE.Doxygen.C++\ with\ doxygen :cal SetSyn("cpp.doxygen")<CR>
 an 50.30.310 &Syntax.DE.Doxygen.IDL\ with\ doxygen :cal SetSyn("idl.doxygen")<CR>
 an 50.30.320 &Syntax.DE.Doxygen.Java\ with\ doxygen :cal SetSyn("java.doxygen")<CR>
+an 50.30.320 &Syntax.DE.Doxygen.DataScript\ with\ doxygen :cal SetSyn("datascript.doxygen")<CR>
 an 50.30.330 &Syntax.DE.Dracula :cal SetSyn("dracula")<CR>
 an 50.30.340 &Syntax.DE.DSSSL :cal SetSyn("dsl")<CR>
 an 50.30.350 &Syntax.DE.DTD :cal SetSyn("dtd")<CR>
diff --git a/runtime/syntax/datascript.vim b/runtime/syntax/datascript.vim
index 2b4ec51..a983b8e 100644
--- a/runtime/syntax/datascript.vim
+++ b/runtime/syntax/datascript.vim
@@ -1,11 +1,12 @@
 " Vim syntax file
-" Language:	Datascript
+" Language:	DataScript
 " Maintainer:	Dominique Pelle <dominique.pelle@gmail.com>
-" Last Change:	2014 Feb 26
+" Last Change:	2015 Jul 30
 "
 " DataScript is a formal language for modelling binary datatypes,
 " bitstreams or file formats. For more information, see:
-" http://datascript.berlios.de/DataScriptLanguageOverview.html
+"
+" http://dstools.sourceforge.net/DataScriptLanguageOverview.html
 
 if version < 600
   syntax clear
@@ -19,6 +20,8 @@
 syn keyword dsType         bit bool string
 syn keyword dsType         int int8 int16 int32 int64
 syn keyword dsType         uint8 uint16 uint32 uint64
+syn keyword dsType         varint16 varint32 varint64
+syn keyword dsType         varuint16 varuint32 varuint64
 syn keyword dsType         leint16 leint32 leint64
 syn keyword dsType         leuint16 leuint32 leuint64
 syn keyword dsEndian       little big
@@ -32,7 +35,8 @@
 syn keyword dsStorageClass const
 syn keyword dsTodo         contained TODO FIXME XXX
 syn keyword dsSql          sql sql_table sql_database sql_pragma sql_index
-syn keyword dsSql          sql_integer sql_metadata sql_key foreign_key
+syn keyword dsSql          sql_integer sql_metadata sql_key sql_virtual
+syn keyword dsSql          using reference_key foreign_key to
 
 " dsCommentGroup allows adding matches for special things in comments.
 syn cluster dsCommentGroup  contains=dsTodo
@@ -61,6 +65,8 @@
 syn region  dsString
   \ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
 
+syn sync ccomment dsComment
+
 " Define the default highlighting.
 hi def link dsType              Type
 hi def link dsEndian            StorageClass
diff --git a/runtime/syntax/synload.vim b/runtime/syntax/synload.vim
index 48b5956..6183f33 100644
--- a/runtime/syntax/synload.vim
+++ b/runtime/syntax/synload.vim
@@ -60,8 +60,8 @@
 endfun
 
 
-" Handle adding doxygen to other languages (C, C++, C#, IDL)
-au Syntax c,cpp,cs,idl,php
+" Handle adding doxygen to other languages (C, C++, C#, IDL, java, php, DataScript)
+au Syntax c,cpp,cs,idl,java,php,datascript
 	\ if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)
 	\	|| (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)
 	\   | runtime! syntax/doxygen.vim
