diff options
author | Bram Moolenaar <Bram@vim.org> | 2010-09-30 21:47:56 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2010-09-30 21:47:56 +0200 |
commit | 4a74803ef837eeb4d4fc799ac9a26fc93e584111 (patch) | |
tree | 49d3d0a083a47078ae42a3b353a691e005d71ab6 | |
parent | c2a406b3179af3a77fb059288ead7266cdce2ac8 (diff) | |
download | vim-git-4a74803ef837eeb4d4fc799ac9a26fc93e584111.tar.gz |
Runtime file updates.
-rw-r--r-- | runtime/doc/diff.txt | 6 | ||||
-rw-r--r-- | runtime/doc/eval.txt | 9 | ||||
-rw-r--r-- | runtime/doc/if_cscop.txt | 7 | ||||
-rw-r--r-- | runtime/doc/insert.txt | 7 | ||||
-rw-r--r-- | runtime/doc/intro.txt | 4 | ||||
-rw-r--r-- | runtime/doc/map.txt | 4 | ||||
-rw-r--r-- | runtime/doc/netbeans.txt | 4 | ||||
-rw-r--r-- | runtime/doc/syntax.txt | 4 | ||||
-rw-r--r-- | runtime/doc/tags | 5 | ||||
-rw-r--r-- | runtime/doc/todo.txt | 59 | ||||
-rw-r--r-- | runtime/doc/undo.txt | 4 | ||||
-rw-r--r-- | runtime/doc/various.txt | 6 | ||||
-rw-r--r-- | runtime/doc/vi_diff.txt | 3 | ||||
-rw-r--r-- | runtime/filetype.vim | 5 | ||||
-rw-r--r-- | runtime/ftplugin/falcon.vim | 43 | ||||
-rw-r--r-- | runtime/indent/falcon.vim | 156 | ||||
-rw-r--r-- | runtime/scripts.vim | 5 | ||||
-rw-r--r-- | runtime/syntax/d.vim | 10 | ||||
-rw-r--r-- | runtime/syntax/falcon.vim | 155 | ||||
-rw-r--r-- | runtime/syntax/nasm.vim | 38 |
20 files changed, 454 insertions, 80 deletions
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt index 1d62e545c..becbeb362 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 9522d3596..9928f8b54 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 092f5f4fa..91dd4c64e 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 9fe55870b..aa11ba787 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 9fe88bbe5..7519365de 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 b21dd4202..055d33383 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 63f447e0b..6b186b344 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 171933bc6..b7a3fb68d 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 3ebcf41fd..c74b00a68 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 989fb9cae..d1b6c99ca 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 afa959b1a..4b4104ecd 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 6569b2577..cf35b7433 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 5d6706b5d..d81e0e5fd 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 afc0740b1..79090f0ee 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 000000000..45fd0a458 --- /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 000000000..933eb6130 --- /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 e30b5c43f..75275785f 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 e43487cd1..b7f5ebac8 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 000000000..0ff500ccc --- /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 6bbf33a9c..50cbe1ca0 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) |