summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2010-09-30 21:47:56 +0200
committerBram Moolenaar <bram@vim.org>2010-09-30 21:47:56 +0200
commit953daca4f67fd21d389b4c5a1339828d01383aa4 (patch)
tree5d44e4706597b86533ac17bf7ca113c8e72efc9c /runtime
parent010955d85636194b44c2459083d264366a5cd21d (diff)
downloadvim-953daca4f67fd21d389b4c5a1339828d01383aa4.tar.gz
Runtime file updates.
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/diff.txt6
-rw-r--r--runtime/doc/eval.txt9
-rw-r--r--runtime/doc/if_cscop.txt7
-rw-r--r--runtime/doc/insert.txt7
-rw-r--r--runtime/doc/intro.txt4
-rw-r--r--runtime/doc/map.txt4
-rw-r--r--runtime/doc/netbeans.txt4
-rw-r--r--runtime/doc/syntax.txt4
-rw-r--r--runtime/doc/tags5
-rw-r--r--runtime/doc/todo.txt59
-rw-r--r--runtime/doc/undo.txt4
-rw-r--r--runtime/doc/various.txt6
-rw-r--r--runtime/doc/vi_diff.txt3
-rw-r--r--runtime/filetype.vim5
-rw-r--r--runtime/ftplugin/falcon.vim43
-rw-r--r--runtime/indent/falcon.vim156
-rw-r--r--runtime/scripts.vim5
-rw-r--r--runtime/syntax/d.vim10
-rw-r--r--runtime/syntax/falcon.vim155
-rw-r--r--runtime/syntax/nasm.vim38
20 files changed, 454 insertions, 80 deletions
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 1d62e545..becbeb36 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt* For Vim version 7.3. Last change: 2010 Jul 31
+*diff.txt* For Vim version 7.3. Last change: 2010 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -261,10 +261,12 @@ that the buffers will be equal within the specified range.
*do*
do Same as ":diffget" without argument or range. The "o" stands
for "obtain" ("dg" can't be used, it could be the start of
- "dgg"!).
+ "dgg"!). Note: this doesn't work in Visual mode.
*dp*
dp Same as ":diffput" without argument or range.
+ Note: this doesn't work in Visual mode.
+
When no [range] is given, the diff at the cursor position or just above it is
affected. When [range] is used, Vim tries to only put or get the specified
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 9522d359..9928f8b5 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.3. Last change: 2010 Sep 14
+*eval.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1115,8 +1115,8 @@ See below |functions|.
==============================================================================
-3. Internal variable *internal-variables* *E121*
- *E461*
+3. Internal variable *internal-variables* *E461*
+
An internal variable name can be made up of letters, digits and '_'. But it
cannot start with a digit. It's also possible to use curly braces, see
|curly-braces-names|.
@@ -6741,7 +6741,8 @@ This would call the function "my_func_whizz(parameter)".
:let [{name}, ..., ; {lastname}] -= {expr1}
Like above, but append/add/subtract the value for each
|List| item.
- *E106*
+
+ *E121*
:let {var-name} .. List the value of variable {var-name}. Multiple
variable names may be given. Special names recognized
here: *E738*
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index 092f5f4f..91dd4c64 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -1,4 +1,4 @@
-*if_cscop.txt* For Vim version 7.3. Last change: 2009 Mar 18
+*if_cscop.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Andy Kahn
@@ -112,8 +112,7 @@ The available subcommands are:
:cscope add /projects/vim/cscope.out /usr/local/vim
:cscope add cscope.out /usr/local/vim -C
<
- *cscope-find* *cs-find*
- *E565* *E567*
+ *cscope-find* *cs-find* *E567*
find : Query cscope. All cscope query options are available
except option #5 ("Change this grep pattern").
@@ -198,7 +197,7 @@ The available subcommands are:
USAGE :cs help
- *E260* *E261*
+ *E261*
kill : Kill a cscope connection (or kill all cscope connections).
USAGE :cs kill {num|partial_name}
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 9fe55870..aa11ba78 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 7.3. Last change: 2010 Sep 15
+*insert.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1766,6 +1766,11 @@ These two commands will keep on asking for lines, until you type a line
containing only a ".". Watch out for lines starting with a backslash, see
|line-continuation|.
+When in Ex mode (see |-e|) a backslash at the end of the line can be used to
+insert a NUL character. To be able to have a line ending in a backslash use
+two backslashes. This means that the number of backslashes is halved, but
+only at the end of the line.
+
NOTE: These commands cannot be used with |:global| or |:vglobal|.
":append" and ":insert" don't work properly in between ":if" and
":endif", ":for" and ":endfor", ":while" and ":endwhile".
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 9fe88bbe..7519365d 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt* For Vim version 7.3. Last change: 2010 Jul 20
+*intro.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -300,7 +300,7 @@ and <> are part of what you type, the context should make this clear.
[] Characters in square brackets are optional.
- *count* *[count]* *E489*
+ *count* *[count]*
[count] An optional number that may precede the command to multiply
or iterate the command. If no number is given, a count of one
is used, unless otherwise noted. Note that in this manual the
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index b21dd420..055d3338 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 7.3. Last change: 2010 Jul 31
+*map.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1203,6 +1203,7 @@ completion can be enabled:
-complete=augroup autocmd groups
-complete=buffer buffer names
-complete=command Ex command (and arguments)
+ -complete=cscope |:cscope| suboptions
-complete=dir directory names
-complete=environment environment variable names
-complete=event autocommand events
@@ -1216,6 +1217,7 @@ completion can be enabled:
-complete=menu menus
-complete=option options
-complete=shellcmd Shell command
+ -complete=sign |:sign| suboptions
-complete=syntax syntax file names |'syntax'|
-complete=tag tags
-complete=tag_listfiles tags, file names are shown when CTRL-D is hit
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index 63f447e0..6b186b34 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,4 +1,4 @@
-*netbeans.txt* For Vim version 7.3. Last change: 2010 Aug 20
+*netbeans.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Gordon Prieur et al.
@@ -820,7 +820,7 @@ These errors occur when a message violates the protocol:
==============================================================================
7. NetBeans commands *netbeans-commands*
- *:nbstart* *E511*
+ *:nbstart* *E511* *E838*
:nbs[tart] {connection} Start a new Netbeans session with {connection} as the
socket connection parameters. The format of
{connection} is described in |netbeans-parameters|.
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 171933bc..b7a3fb68 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 7.3. Last change: 2010 Sep 14
+*syntax.txt* For Vim version 7.3. Last change: 2010 Sep 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2258,7 +2258,7 @@ For highlighted builtin functions: >
For highlighted standard exceptions: >
:let python_highlight_exceptions = 1
-For highlighted trailing whitespace and mix of spaces and tabs:
+For highlighted trailing whitespace and mix of spaces and tabs: >
:let python_highlight_space_errors = 1
If you want all possible Python highlighting (the same as setting the
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 3ebcf41f..c74b00a6 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -3420,7 +3420,6 @@ E102 diff.txt /*E102*
E103 diff.txt /*E103*
E104 digraph.txt /*E104*
E105 mbyte.txt /*E105*
-E106 eval.txt /*E106*
E107 eval.txt /*E107*
E108 eval.txt /*E108*
E109 eval.txt /*E109*
@@ -3587,7 +3586,6 @@ E257 if_cscop.txt /*E257*
E258 remote.txt /*E258*
E259 if_cscop.txt /*E259*
E26 rileft.txt /*E26*
-E260 if_cscop.txt /*E260*
E261 if_cscop.txt /*E261*
E262 if_cscop.txt /*E262*
E263 if_pyth.txt /*E263*
@@ -3836,7 +3834,6 @@ E485 message.txt /*E485*
E486 pattern.txt /*E486*
E487 options.txt /*E487*
E488 message.txt /*E488*
-E489 intro.txt /*E489*
E49 message.txt /*E49*
E490 fold.txt /*E490*
E492 message.txt /*E492*
@@ -3919,7 +3916,6 @@ E561 if_cscop.txt /*E561*
E562 if_cscop.txt /*E562*
E563 if_cscop.txt /*E563*
E564 if_cscop.txt /*E564*
-E565 if_cscop.txt /*E565*
E566 if_cscop.txt /*E566*
E567 if_cscop.txt /*E567*
E568 if_cscop.txt /*E568*
@@ -4219,6 +4215,7 @@ E834 options.txt /*E834*
E835 options.txt /*E835*
E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837*
+E838 netbeans.txt /*E838*
E84 windows.txt /*E84*
E85 options.txt /*E85*
E86 windows.txt /*E86*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 989fb9ca..d1b6c99c 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.3. Last change: 2010 Sep 21
+*todo.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,32 +30,18 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Patch for Mingw build file (Jon, 2010 Aug 22)
-Patch for loading different Ruby versions. (Jon, 2010 Aug 23)
-
-Document cscope and sign completion for user commands. (Peter Odding, 2010 Aug
-19)
-
-Problem with \NL in Ex script. (Ray Frish, 2010 Aug 10)
-
-":e ~br<Tab>" does not complete to ":e /home/bram/". Crash too?
-
-Runtime file for Falcon. (Steven Oliver, 2010 Sep 14)
-
-Patch to fix error tags in help files. (Dominique Pelle, 2010 Aug 25)
-
-Patch to fix :nbstart silently failing. (Xavier de Gaye, 2010 Aug 20)
-Another one for when Athena has netbeans support.
-
-patch for 3 bugs reported by smatch. (Dominique Pelle, 2010 Aug 23)
+Cursor position wrong when 'formatoptions' contains "a". (Moshe Kamensky, 2010
+Sep 7, Gary Johnson, 2010 Sep 14)
+Formatoptions cause cursor to jump. (ZyX, 2010 Aug 22)
+Caused by revision 2294, "Make joining a range of lines much faster. (Milan
+Vancura)" ?
+Patch by Carlo Teubner, 2010 Sep 25. Test Sep 26.
'cursorline' is displayed too short when there are concealed characters and
'list' is set, 'listchars' at default value. (Dennis Preiser, 2010 Aug 15)
Hang on slave PTY on Mac. Patch from Nikola Knezevic, 2010 Aug 29.
-Patch to support netbeans under Athena. (Xavier de Gaye, 2010 Aug 20)
-
Patch to fix sign type negative and memory not freed. (Xavier de Gaye, 2010
Aug 20)
@@ -69,8 +55,19 @@ only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
Patch for :mksession not escaping file name properly. (Peter Odding, 2010 Sep
19)
+Patch for CTRL-] in help file doing wrong escaping. (Carlo Teubner, 2010 Sep
+25)
+
+Patch to support List and Dict in .viminfo. (Christian Brabandt, 2010 Sep 24)
+Sep 26 with a test.
+
Patch for :grep docs. (Britton Kerin, 2010 Aug 31)
+Patch for dynamic loading Ruby on Unix. (Jon, 2010 Aug 23)
+Included, but also need a change to configure.
+
+Replacement R syntax file. (Jakson A. Aquino, 2010 Sep 29)
+
Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
maparg() doesn't return the flags, such as <buffer>, <script>, <silent>.
@@ -88,6 +85,8 @@ Patch to fix warning for accessing mediumVersion. (Dominique Pelle, 2010 Aug
Patch for 2html to support 'fileencoding'. (Benjamin Fritz, 2010 Sep 10)
+Patch to use 'previewheight' for popup menu. (Benjamin Haskell, 2010 Sep 29)
+
CTRL-] on help tag |/[\n]| doesn't jump to the right place. (Tony Mechelynck,
2010 Aug 8)
@@ -106,8 +105,12 @@ Beckett Aug 23)
GTK: drawing a double-width combining character over single-width characters
doesn't look right. (Dominique Pelle, 2010 Aug 8)
-copy/paste between Vim and Google chrome doesn't work well for multi-byte
+Copy/paste between Vim and Google chrome doesn't work well for multi-byte
characters. (Ben Haskell, 2010 Sep 17)
+When putting text in the cut buffer (when exiting) and conversion doesn't work
+properly, Prepend "ENC==={value of 'enc'}:" to the text and don't convert?
+Then it should at least work from Vim to Vim and in other applications it's
+clear why it doesn't work.
Editing a file with a ^M with 'ff' set to "mac", opening a help file, then the
^M is displayed as ^J sometimes. Getting 'ff' value from wrong window/buffer?
@@ -231,12 +234,18 @@ Disable updating folds while completion is active? (Peter Odding, 2010 Jun 9)
In command line window ":close" doesn't work properly. (Tony Mechelynck, 2009
Jun 1)
+Cannot use getchar() inside :normal and using an expression mapping. Is this
+supposed to work? (XyX, 2010 Sep 22)
+
When a:base in 'completefunc' starts with a number it's passed as a number,
not a string. (Sean Ma) Need to add flag to call_func_retlist() to force a
string value.
There is no command line completion for ":lmap".
+":e ~br<Tab>" does not complete to ":e /home/bram/". Would need to use
+getpwent() to find all the matches.
+
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
For running gvim on an USB stick: avoid the OLE registration. Use a command
@@ -245,12 +254,6 @@ line argument -noregister.
When a mapping exists both for insert mode and lang-insert mode, the last one
doesn't work. (Tyru, 2010 May 6) Or is this intended?
-Cursor position wrong when 'formatoptions' contains "a". (Moshe Kamensky, 2010
-Sep 7, Gary Johnson, 2010 Sep 14)
-Formatoptions cause cursor to jump. (ZyX, 2010 Aug 22)
-Caused by revision 2294, "Make joining a range of lines much faster. (Milan
-Vancura)" ?
-
Still a problem with ":make" in the wrong directory. Caused by ":bufdo".
(Ajit Thakkar, 2009 Jul 1) More information Jul 9, Jul 15.
Caused by "doautoall syntaxset BufEnter *" in syntax/nosyntax.vim ?
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index afa959b1..4b4104ec 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt* For Vim version 7.3. Last change: 2010 Sep 14
+*undo.txt* For Vim version 7.3. Last change: 2010 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -137,7 +137,7 @@ This is explained in the user manual: |usr_32.txt|.
The "time" column is the time this change was made.
The "saved" column specifies, if this change was
written to disk and which file write it was. This can
- be used with the |later| and |earlier| commands.
+ be used with the |:later| and |:earlier| commands.
For more details use the |undotree()| function.
*g-*
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 6569b257..cf35b743 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt* For Vim version 7.3. Last change: 2010 Sep 14
+*various.txt* For Vim version 7.3. Last change: 2010 Sep 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -167,8 +167,8 @@ g8 Print the hex values of the bytes used in the
:norm[al][!] {commands} *:norm* *:normal*
Execute Normal mode commands {commands}. This makes
it possible to execute Normal mode commands typed on
- the command-line. {commands} is executed like it is
- typed. For undo all commands are undone together.
+ the command-line. {commands} are executed like they
+ are typed. For undo all commands are undone together.
Execution stops when an error is encountered.
If the [!] is given, mappings will not be used.
{commands} should be a complete command. If
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 5d6706b5..d81e0e5f 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt* For Vim version 7.3. Last change: 2010 Jul 20
+*vi_diff.txt* For Vim version 7.3. Last change: 2010 Sep 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -90,6 +90,7 @@ Maximum lhs of a mapping 50 characters.
Number of different highlighting types: over 30000
Range of a Number variable: -2147483648 to 2147483647 (more on 64 bit
systems)
+Maximum length of a line in a tags file: 512 bytes.
Information for undo and text in registers is kept in memory, thus when making
(big) changes the amount of (virtual) memory available limits the number of
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index afc0740b..79090f0e 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: 2010 Jul 30
+" Last Change: 2010 Sep 29
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -677,6 +677,9 @@ au BufNewFile,BufRead *.exp setf expect
" Exports
au BufNewFile,BufRead exports setf exports
+" Falcon
+au BufNewFile,BufRead *.fal setf falcon
+
" Fantom
au BufNewFile,BufRead *.fan,*.fwt setf fan
diff --git a/runtime/ftplugin/falcon.vim b/runtime/ftplugin/falcon.vim
new file mode 100644
index 00000000..45fd0a45
--- /dev/null
+++ b/runtime/ftplugin/falcon.vim
@@ -0,0 +1,43 @@
+" Vim filetype plugin file
+" Language: Falcon
+" Author: Steven Oliver <oliver.steven@gmail.com>
+" Copyright: Copyright (c) 2009, 2010 Steven Oliver
+" License: You may redistribute this under the same terms as Vim itself
+" --------------------------------------------------------------------------
+" GetLatestVimScripts: 2762 1 :AutoInstall: falcon.vim
+
+" Only do this when not done yet for this buffer
+if (exists("b:did_ftplugin"))
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal tabstop=4 shiftwidth=4 expandtab fileencoding=utf-8
+setlocal suffixesadd=.fal
+
+" Matchit support
+if exists("loaded_matchit") && !exists("b:match_words")
+ let b:match_ignorecase = 0
+
+ let b:match_words =
+ \ '\<\%(if\|case\|while\|until\|for\|do\|class\)\>=\@!' .
+ \ ':' .
+ \ '\<\%(else\|elsif\|when\)\>' .
+ \ ':' .
+ \ '\<end\>' .
+ \ ',{:},\[:\],(:)'
+endif
+
+" Set comments to include dashed lines
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+
+" Windows allows you to filter the open file dialog
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "Falcon Source Files (*.fal)\t*.fal\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+" vim: set sw=4 sts=4 et tw=80 :
diff --git a/runtime/indent/falcon.vim b/runtime/indent/falcon.vim
new file mode 100644
index 00000000..933eb613
--- /dev/null
+++ b/runtime/indent/falcon.vim
@@ -0,0 +1,156 @@
+" Vim indent file
+" Language: Falcon
+" Maintainer: Steven Oliver <oliver.steven@gmail.com>
+" Website: https://steveno@github.com/steveno/falconpl-vim.git
+" Credits: Thanks to the ruby.vim authors, I borrow a lot!
+" Previous Maintainer: Brent A. Fulgham <bfulgham@debian.org>
+" -----------------------------------------------------------
+" GetLatestVimScripts: 2752 1 :AutoInstall: falcon.vim
+
+"======================================
+" SETUP
+"======================================
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+ finish
+endif
+let b:did_indent = 1
+
+setlocal nosmartindent
+
+" Setup indent function and when to use it
+setlocal indentexpr=FalconGetIndent()
+setlocal indentkeys=0{,0},0),0],!^F,o,O,e
+setlocal indentkeys+==~case,=~catch,=~default,=~elif,=~else,=~end,=~\"
+
+" Define the appropriate indent function but only once
+if exists("*FalconGetIndent")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+"======================================
+" VARIABLES
+"======================================
+
+" Regex of syntax group names that are strings AND comments
+let s:syng_strcom = '\<falcon\%(String\|StringEscape\|Comment\)\>'
+
+" Regex of syntax group names that are strings
+let s:syng_string = '\<falcon\%(String\|StringEscape\)\>'
+
+" Keywords to indent on
+let s:falcon_indent_keywords = '^\s*\(case\|catch\|class\|enum\|default\|elif\|else' .
+ \ '\|for\|function\|if.*"[^"]*:.*"\|if \(\(:\)\@!.\)*$\|loop\|object\|select' .
+ \ '\|switch\|try\|while\|\w*\s*=\s*\w*([$\)'
+
+" Keywords to deindent on
+let s:falcon_deindent_keywords = '^\s*\(case\|catch\|default\|elif\|else\|end\)'
+
+"======================================
+" FUNCTIONS
+"======================================
+
+" Check if the character at lnum:col is inside a string
+function s:IsInStringOrComment(lnum, col)
+ return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_strcom
+endfunction
+
+"======================================
+" INDENT ROUTINE
+"======================================
+
+function FalconGetIndent()
+ " Get the line to be indented
+ let cline = getline(v:lnum)
+
+ " Don't reindent comments on first column
+ if cline =~ '^\/\/'
+ return 0
+ endif
+
+ " Find the previous non-blank line
+ let lnum = prevnonblank(v:lnum - 1)
+
+ " Use zero indent at the top of the file
+ if lnum == 0
+ return 0
+ endif
+
+ let prevline=getline(lnum)
+ let ind = indent(lnum)
+ let chg = 0
+
+ " If we are in a multi-line string or line-comment, don't do anything
+ if s:IsInStringOrComment(v:lnum, matchend(cline, '^\s*') + 1 )
+ return indent('.')
+ endif
+
+ " If the start of the line equals a double quote, then indent to the
+ " previous lines first double quote
+ if cline =~? '^\s*"'
+ let chg = chg + &sw
+ endif
+
+ " If previous line started with a double quote and this one
+ " doesn't, unindent
+ if prevline =~? '^\s*"' && cline =~? '^\s*'
+ let chg = chg - &sw
+ endif
+
+ " Indent if proper keyword
+ if prevline =~? s:falcon_indent_keywords
+ let chg = &sw
+ " If previous line opened a parenthesis, and did not close it, indent
+ elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
+ " Make sure this isn't just a function split between two lines
+ if prevline =~ ',\s*$'
+ return indent(prevnonblank(v:lnum - 1)) + &sw
+ else
+ return match(prevline, '(.*\((.*)\|[^)]\)*.*$') + 1
+ endif
+ elseif prevline =~ '^[^(]*)\s*$'
+ " This line closes a parenthesis. Finds opening.
+ let curr_line = prevnonblank(lnum - 1)
+ while curr_line >= 0
+ let str = getline(curr_line)
+ if str !~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
+ let curr_line = prevnonblank(curr_line - 1)
+ else
+ break
+ endif
+ endwhile
+ if curr_line < 0
+ return -1
+ endif
+ let ind = indent(curr_line)
+ endif
+
+ " If previous line ends in a semi-colon reset indent to previous
+ " lines setting
+ if prevline =~? ';\s*$' && prevnonblank(prevline) =~? ',\s*$'
+ return chg = chg - (2 * &sw)
+ endif
+
+ " If previous line ended in a comma, indent again
+ if prevline =~? ',\s*$'
+ let chg = chg + &sw
+ endif
+
+ " If previous line ended in a =>, indent again
+ if prevline =~? '=>\s*$'
+ let chg = chg + &sw
+ endif
+
+ " Deindent on proper keywords
+ if cline =~? s:falcon_deindent_keywords
+ let chg = chg - &sw
+ endif
+
+ return ind + chg
+endfunction
+
+" vim: set sw=4 sts=4 et tw=80 :
diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index e30b5c43..75275785 100644
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types in scripts
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last change: 2010 Jul 29
+" Last change: 2010 Sep 22
" This file is called by an autocommand for every file that has just been
" loaded into a buffer. It checks if the type of file can be recognized by
@@ -168,7 +168,8 @@ else
call SetFileTypeSH(s:line1) " defined in filetype.vim
" Z shell scripts
- elseif s:line1 =~ '^#compdef\>' || s:line1 =~ '^#autoload\>'
+ elseif s:line1 =~ '^#compdef\>' || s:line1 =~ '^#autoload\>' ||
+ \ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~ '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
set ft=zsh
" ELM Mail files
diff --git a/runtime/syntax/d.vim b/runtime/syntax/d.vim
index e43487cd..b7f5ebac 100644
--- a/runtime/syntax/d.vim
+++ b/runtime/syntax/d.vim
@@ -2,8 +2,8 @@
"
" Language: D
" Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
-" Last Change: 2010 Sep 9
-" Version: 0.21
+" Last Change: 2010 Sep 21
+" Version: 0.22
"
" Contributors:
" - Jason Mills <jasonmills@nf.sympatico.ca>: original Maintainer
@@ -117,9 +117,9 @@ syn match dSharpBang "\%^#!.*" display
syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute
" Version Identifiers
-syn match dVersion "version\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+7 contains=dVersionIdentifier
-syn match dVersion "[^.]\s*\<version\>"
-syn match dVersion "^\<version\>"
+syn match dVersion "[^.]version" nextgroup=dVersionInside
+syn match dVersion "^version" nextgroup=dVersionInside
+syn match dVersionInside "([_a-zA-Z][_a-zA-Z0-9]*\>" transparent contained contains=dVersionIdentifier
" Scope StorageClass
syn match dStorageClass "scope"
diff --git a/runtime/syntax/falcon.vim b/runtime/syntax/falcon.vim
new file mode 100644
index 00000000..0ff500cc
--- /dev/null
+++ b/runtime/syntax/falcon.vim
@@ -0,0 +1,155 @@
+" Vim syntax file
+" Language: Falcon
+" Maintainer: Steven Oliver <oliver.steven@gmail.com>
+" Website: http://github.com/steveno/vim-files/blob/master/syntax/falcon.vim
+" Credits: Thanks the ruby.vim authors, I borrowed a lot!
+" -------------------------------------------------------------------------------
+" GetLatestVimScripts: 2745 1 :AutoInstall: falcon.vim
+
+" When wanted, highlight the trailing whitespace.
+if exists("c_space_errors")
+ if !exists("c_no_trail_space_error")
+ syn match falconSpaceError "\s\+$"
+ endif
+
+ if !exists("c_no_tab_space_error")
+ syn match falconSpaceError " \+\t"me=e-1
+ endif
+endif
+
+" Symbols
+syn match falconSymbol "\(;\|,\|\.\)"
+syn match falconSymbolOther "\(#\|@\)" display
+
+" Operators
+syn match falconOperator "\(+\|-\|\*\|/\|=\|<\|>\|\*\*\|!=\|\~=\)"
+syn match falconOperator "\(<=\|>=\|=>\|\.\.\|<<\|>>\|\"\)"
+
+" Clusters
+syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=@falconStringSpecial fold
+syn case match
+
+" Keywords
+syn keyword falconKeyword all allp any anyp as attributes brigade cascade catch choice class const
+syn keyword falconKeyword continue def directive do list dropping enum eq eval exit export from function
+syn keyword falconKeyword give global has hasnt in init innerfunc lambda launch launch len List list
+syn keyword falconKeyword load notin object pass print printl provides raise return self sender static to
+syn keyword falconKeyword try xamp
+
+" Error Type Keywords
+syn keyword falconKeyword CloneError CodeError Error InterruprtedError IoError MathError
+syn keyword falconKeyword ParamError RangeError SyntaxError TraceStep TypeError
+
+" Todo
+syn keyword falconTodo DEBUG FIXME NOTE TODO XXX
+
+" Conditionals
+syn keyword falconConditional and case default else end if iff
+syn keyword falconConditional elif or not switch select
+syn match falconConditional "end\s\if"
+
+" Loops
+syn keyword falconRepeat break for loop forfirst forlast formiddle while
+
+" Booleans
+syn keyword falconBool true false
+
+" Constants
+syn keyword falconConst PI E nil
+
+" Comments
+syn match falconCommentSkip contained "^\s*\*\($\|\s\+\)"
+syn region falconComment start="/\*" end="\*/" contains=@falconCommentGroup,falconSpaceError,falconTodo
+syn region falconCommentL start="//" end="$" keepend contains=@falconCommentGroup,falconSpaceError,falconTodo
+syn match falconSharpBang "\%^#!.*" display
+syn sync ccomment falconComment
+
+" Numbers
+syn match falconNumbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal
+syn match falconNumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal
+syn match falconHexadecimal contained "\<0x\x\+\>"
+syn match falconOctal contained "\<0\o\+\>"
+syn match falconIntLiteral contained "[+-]\<d\+\(\d\+\)\?\>"
+syn match falconFloatLiteral contained "[+-]\=\d\+\.\d*"
+syn match falconFloatLiteral contained "[+-]\=\d*\.\d*"
+
+" Includes
+syn keyword falconInclude load import
+
+" Expression Substitution and Backslash Notation
+syn match falconStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display
+syn match falconStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display
+syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold
+
+" Normal String and Shell Command Output
+syn region falconString matchgroup=falconStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="'" end="'" skip="\\\\\|\\'" fold
+syn region falconString matchgroup=falconStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=falconStringEscape fold
+
+" Generalized Single Quoted String, Symbol and Array of Strings
+syn region falconString matchgroup=falconStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
+syn region falconString matchgroup=falconStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape
+syn region falconString matchgroup=falconStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape
+syn region falconString matchgroup=falconStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape
+syn region falconString matchgroup=falconStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape
+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape
+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape
+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape
+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape
+
+" Generalized Double Quoted String and Array of Strings and Shell Command Output
+syn region falconString matchgroup=falconStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=falconStringEscape,falconDelimEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=falconStringEscape,falconDelimEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=falconStringEscape,falconDelimEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=falconStringEscape,falconDelimEscape fold
+
+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<\z(\h\w*\)\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<"\z([^"]*\)"\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<'\z([^']*\)'\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<`\z([^`]*\)`\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
+
+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-\z(\h\w*\)\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-"\z([^"]*\)"\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-'\z([^']*\)'\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-`\z([^`]*\)`\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
+
+" Syntax Synchronizing
+syn sync minlines=10 maxlines=100
+
+" Define the default highlighting
+if !exists("did_falcon_syn_inits")
+ command -nargs=+ HiLink hi def link <args>
+
+ HiLink falconKeyword Keyword
+ HiLink falconCommentString String
+ HiLink falconTodo Todo
+ HiLink falconConditional Keyword
+ HiLink falconRepeat Repeat
+ HiLink falconcommentSkip Comment
+ HiLink falconComment Comment
+ HiLink falconCommentL Comment
+ HiLink falconConst Constant
+ HiLink falconOperator Operator
+ HiLink falconSymbol Normal
+ HiLink falconSpaceError Error
+ HiLink falconHexadecimal Number
+ HiLink falconOctal Number
+ HiLink falconIntLiteral Number
+ HiLink falconFloatLiteral Float
+ HiLink falconStringEscape Special
+ HiLink falconStringDelimiter Delimiter
+ HiLink falconString String
+ HiLink falconBool Constant
+ HiLink falconSharpBang PreProc
+ HiLink falconInclude Include
+ HiLink falconSymbol Constant
+ HiLink falconSymbolOther Delimiter
+ delcommand HiLink
+endif
+
+let b:current_syntax = "falcon"
+
+" vim: set sw=4 sts=4 et tw=80 :
diff --git a/runtime/syntax/nasm.vim b/runtime/syntax/nasm.vim
index 6bbf33a9..50cbe1ca 100644
--- a/runtime/syntax/nasm.vim
+++ b/runtime/syntax/nasm.vim
@@ -1,9 +1,10 @@
" Vim syntax file
" Language: NASM - The Netwide Assembler (v0.98)
-" Maintainer: Manuel M.H. Stol <mmh.stol@gmx.net>
-" Last Change: 2003 May 11
-" Vim URL: http://www.vim.org/lang.html
-" NASM Home: http://www.cryogen.com/Nasm/
+" Maintainer: Andriy Sokolov <andriy145@gmail.com>
+" Original Author: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
+" Former Maintainer: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
+" Last Change: 2010 Sep 24
+" NASM Home: http://www.nasm.us/
@@ -160,6 +161,7 @@ syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure kee
"syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnMacro
"syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="\<IUNION\>" end="\<IEND\(UNION\)\=\>" contains=@nasmGrpCntnMacro,nasmInStructure
syn region nasmInMacPreConDef contained transparent matchgroup=nasmInMacPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(ctx\|def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(ctx\|def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnMacro,nasmInMacPreCondit,nasmInPreCondit
+" Todo: allow STRUC/ISTRUC to be used inside preprocessor conditional block
syn match nasmInMacPreCondit contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtx
syn match nasmInMacPreCondit contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtx
syn match nasmInMacPreCondit contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtx
@@ -210,15 +212,17 @@ syn cluster nasmGrpInPreCondits contains=nasmPreCondit,nasmInPreCondit,nasmCtxPr
syn cluster nasmGrpPreCondits contains=nasmPreConditDef,@nasmGrpInPreCondits,nasmCtxPreProc,nasmCtxLocLabel
" Other pre-processor statements
-syn match nasmPreProc "^\s*%rep\>"hs=e-3
+syn match nasmPreProc "^\s*%\(rep\|use\)\>"hs=e-3
syn match nasmPreProc "^\s*%line\>"hs=e-4
-syn match nasmPreProc "^\s*%\(clear\|error\)\>"hs=e-5
-syn match nasmPreProc "^\s*%endrep\>"hs=e-6
-syn match nasmPreProc "^\s*%exitrep\>"hs=e-7
+syn match nasmPreProc "^\s*%\(clear\|error\|fatal\)\>"hs=e-5
+syn match nasmPreProc "^\s*%\(endrep\|strlen\|substr\)\>"hs=e-6
+syn match nasmPreProc "^\s*%\(exitrep\|warning\)\>"hs=e-7
syn match nasmDefine "^\s*%undef\>"hs=e-5
syn match nasmDefine "^\s*%\(assign\|define\)\>"hs=e-6
syn match nasmDefine "^\s*%i\(assign\|define\)\>"hs=e-7
+syn match nasmDefine "^\s*%unmacro\>"hs=e-7
syn match nasmInclude "^\s*%include\>"hs=e-7
+" Todo: Treat the line tail after %fatal, %error, %warning as text
" Multiple pre-processor instructions on single line detection (obsolete)
"syn match nasmPreProcError +^\s*\([^\t "%';][^"%';]*\|[^\t "';][^"%';]\+\)%\a\+\>+
@@ -231,6 +235,7 @@ syn cluster nasmGrpPreProcs contains=nasmMacroDef,@nasmGrpInMacros,@nasmGrpPreCo
syn match nasmGen08Register "\<[A-D][HL]\>"
syn match nasmGen16Register "\<\([A-D]X\|[DS]I\|[BS]P\)\>"
syn match nasmGen32Register "\<E\([A-D]X\|[DS]I\|[BS]P\)\>"
+syn match nasmGen64Register "\<R\([A-D]X\|[DS]I\|[BS]P\|[89]\|1[0-5]\|[89][WD]\|1[0-5][WD]\)\>"
syn match nasmSegRegister "\<[C-GS]S\>"
syn match nasmSpcRegister "\<E\=IP\>"
syn match nasmFpuRegister "\<ST\o\>"
@@ -298,20 +303,21 @@ syn match nasmStdInstruction "\<\(CMOV\|J\|SET\)\(N\=\([ABGL]E\=\|[CEOSZ]\)\|P
syn match nasmStdInstruction "\<POP\>"
syn keyword nasmStdInstruction AAA AAD AAM AAS ADC ADD AND
syn keyword nasmStdInstruction BOUND BSF BSR BSWAP BT[C] BTR BTS
-syn keyword nasmStdInstruction CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW
-syn keyword nasmStdInstruction CMPXCHG CMPXCHG8B CPUID CWD[E]
+syn keyword nasmStdInstruction CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW CMPSQ
+syn keyword nasmStdInstruction CMPXCHG CMPXCHG8B CPUID CWD[E] CQO
syn keyword nasmStdInstruction DAA DAS DEC DIV ENTER
-syn keyword nasmStdInstruction IDIV IMUL INC INT[O] IRET[D] IRETW
+syn keyword nasmStdInstruction IDIV IMUL INC INT[O] IRET[D] IRETW IRETQ
syn keyword nasmStdInstruction JCXZ JECXZ JMP
-syn keyword nasmStdInstruction LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD
+syn keyword nasmStdInstruction LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD LODSQ
syn keyword nasmStdInstruction LODSW LOOP[E] LOOPNE LOOPNZ LOOPZ LSS
-syn keyword nasmStdInstruction MOVSB MOVSD MOVSW MOVSX MOVZX MUL NEG NOP NOT
-syn keyword nasmStdInstruction OR POPA[D] POPAW POPF[D] POPFW
-syn keyword nasmStdInstruction PUSH[AD] PUSHAW PUSHF[D] PUSHFW
+syn keyword nasmStdInstruction MOVSB MOVSD MOVSW MOVSX MOVSQ MOVZX MUL NEG NOP NOT
+syn keyword nasmStdInstruction OR POPA[D] POPAW POPF[D] POPFW POPFQ
+syn keyword nasmStdInstruction PUSH[AD] PUSHAW PUSHF[D] PUSHFW PUSHFQ
syn keyword nasmStdInstruction RCL RCR RETF RET[N] ROL ROR
syn keyword nasmStdInstruction SAHF SAL SAR SBB SCASB SCASD SCASW
-syn keyword nasmStdInstruction SHL[D] SHR[D] STC STD STOSB STOSD STOSW SUB
+syn keyword nasmStdInstruction SHL[D] SHR[D] STC STD STOSB STOSD STOSW STOSQ SUB
syn keyword nasmStdInstruction TEST XADD XCHG XLATB XOR
+syn keyword nasmStdInstruction LFENCE MFENCE SFENCE
" System Instructions: (usually privileged)