Runtime file updates.

This commit is contained in:
Bram Moolenaar
2010-09-30 21:47:56 +02:00
parent c2a406b317
commit 4a74803ef8
20 changed files with 454 additions and 80 deletions

View File

@ -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

View File

@ -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*

View File

@ -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}

View File

@ -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".

View File

@ -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

View File

@ -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

View File

@ -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|.

View File

@ -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

View File

@ -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*

View File

@ -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 ?

View File

@ -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-*

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 :

156
runtime/indent/falcon.vim Normal file
View File

@ -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 :

View File

@ -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

View File

@ -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"

155
runtime/syntax/falcon.vim Normal file
View File

@ -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 :

View File

@ -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)