]> granicus.if.org Git - vim/commitdiff
Updated runtime files.
authorBram Moolenaar <Bram@vim.org>
Sat, 15 Jun 2013 19:39:51 +0000 (21:39 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 15 Jun 2013 19:39:51 +0000 (21:39 +0200)
runtime/doc/autocmd.txt
runtime/doc/if_lua.txt
runtime/doc/indent.txt
runtime/doc/tags
runtime/doc/todo.txt
runtime/indent/html.vim
runtime/syntax/abap.vim
runtime/syntax/objc.vim

index b9d23b359be6b0fb13b3fe914880f76677e0be1d..6acb81414dba69d6eec06964dcd3651c1f149164 100644 (file)
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.3.  Last change: 2013 May 19
+*autocmd.txt*   For Vim version 7.3.  Last change: 2013 Jun 15
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -513,9 +513,9 @@ CursorHold                  When the user doesn't press a key for the time
 CursorHoldI                    Just like CursorHold, but in Insert mode.
 
                                                        *CursorMoved*
-CursorMoved                    After the cursor was moved in Normal mode.
-                               Also when the text of the cursor line has been
-                               changed, e.g., with "x", "rx" or "p".
+CursorMoved                    After the cursor was moved in Normal or Visual
+                               mode.  Also when the text of the cursor line
+                               has been changed, e.g., with "x", "rx" or "p".
                                Not triggered when there is typeahead or when
                                an operator is pending.
                                For an example see |match-parens|.
index f6f56048a7e21ff0091f460ee7992e9d00c5a10d..56685d0f144617810187be32ac95da4349a2d3c8 100644 (file)
@@ -10,9 +10,10 @@ The Lua Interface to Vim                             *lua* *Lua*
 2. The vim module              |lua-vim|
 3. List userdata               |lua-list|
 4. Dict userdata               |lua-dict|
-5. Buffer userdata             |lua-buffer|
-6. Window userdata             |lua-window|
-7. The luaeval function                |lua-luaeval|
+5. Funcref userdata            |lua-funcref|
+6. Buffer userdata             |lua-buffer|
+7. Window userdata             |lua-window|
+8. The luaeval function                |lua-luaeval|
 
 {Vi does not have any of these commands}
 
@@ -110,9 +111,31 @@ input range are stored in "vim.firstline" and "vim.lastline" respectively. The
 module also includes routines for buffer, window, and current line queries,
 Vim evaluation and command execution, and others.
 
-       vim.list()              Returns an empty list (see |List|).
-
-       vim.dict()              Returns an empty dictionary (see |Dictionary|).
+       vim.list([arg])         Returns an empty list or, if "arg" is a Lua
+                               table with numeric keys 1, ..., n (a
+                               "sequence"), returns a list l such that l[i] =
+                               arg[i] for i = 1, ..., n (see |List|).
+                               Non-numeric keys are not used to initialize
+                               the list. See also |lua-eval| for conversion
+                               rules. Example: >
+                                       :lua t = {math.pi, false, say = 'hi'}
+                                       :echo luaeval('vim.list(t)')
+                                       :" [3.141593, 0], 'say' is ignored
+<
+       vim.dict([arg])         Returns an empty dictionary or, if "arg" is a
+                               Lua table, returns a dict d such that d[k] =
+                               arg[k] for all string keys k in "arg" (see
+                               |Dictionary|). Number keys are converted to
+                               strings. Keys that are not strings are not
+                               used to initialize the dictionary. See also
+                               |lua-eval| for conversion rules. Example: >
+                                       :lua t = {math.pi, false, say = 'hi'}
+                                       :echo luaeval('vim.dict(t)')
+                                       :" {'say': 'hi'}, numeric keys ignored
+<
+       vim.funcref({name})     Returns a Funcref to function {name} (see
+                               |Funcref|). It is equivalent to Vim's
+                               "function".
 
        vim.buffer([arg])       If "arg" is a number, returns buffer with
                                number "arg" in the buffer list or, if "arg"
@@ -131,9 +154,9 @@ Vim evaluation and command execution, and others.
 
        vim.type({arg})         Returns the type of {arg}. It is equivalent to
                                Lua's "type" function, but returns "list",
-                               "dict", "buffer", or "window" if {arg} is a
-                               list, dictionary, buffer, or window,
-                               respectively. Examples: >
+                               "dict", "funcref", "buffer", or "window" if
+                               {arg} is a list, dictionary, funcref, buffer,
+                               or window, respectively. Examples: >
                                        :lua l = vim.list()
                                        :lua print(type(l), vim.type(l))
                                        :" userdata list
@@ -229,7 +252,40 @@ Examples:
 <
 
 ==============================================================================
-5. Buffer userdata                                     *lua-buffer*
+5. Funcref userdata                                    *lua-funcref*
+
+Funcref userdata represent funcref variables in Vim. Funcrefs that were
+defined with a "dict" attribute need to be obtained as a dictionary key
+in order to have "self" properly assigned to the dictionary (see examples
+below.) A funcref "f" has the following properties:
+
+Properties
+----------
+       o "#f" is the name of the function referenced by "f"
+       o "f(...)" calls the function referenced by "f" (with arguments)
+
+Examples:
+>
+       :function I(x)
+       :  return a:x
+       :  endfunction
+       :let R = function('I')
+       :lua i1 = vim.funcref('I')
+       :lua i2 = vim.eval('R')
+       :lua print(#i1, #i2) -- both 'I'
+       :lua print(i1, i2, #i2(i1) == #i1(i2))
+       :function Mylen() dict
+       :  return len(self.data)
+       :  endfunction
+       :let mydict = {'data': [0, 1, 2, 3]}
+       :lua d = vim.eval('mydict'); d.len = vim.funcref('Mylen')
+       :echo mydict.len()
+       :lua l = d.len -- assign d as 'self'
+       :lua print(l())
+<
+
+==============================================================================
+6. Buffer userdata                                     *lua-buffer*
 
 Buffer userdata represent vim buffers. A buffer userdata "b" has the following
 properties and methods:
@@ -281,7 +337,7 @@ Examples:
 <
 
 ==============================================================================
-6. Window userdata                                     *lua-window*
+7. Window userdata                                     *lua-window*
 
 Window objects represent vim windows. A window userdata "w" has the following
 properties and methods:
@@ -313,7 +369,7 @@ Examples:
 <
 
 ==============================================================================
-7. The luaeval function                                        *lua-luaeval* *lua-eval*
+8. The luaeval function                                        *lua-luaeval* *lua-eval*
 
 The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
 "luaeval". "luaeval" takes an expression string and an optional argument and
@@ -325,7 +381,13 @@ returns the result of the expression. It is semantically equivalent in Lua to:
            return chunk(arg) -- return typval
        end
 <
-Note that "_A" receives the argument to "luaeval". Examples: >
+Note that "_A" receives the argument to "luaeval". Lua numbers, strings, and
+list, dict, and funcref userdata are converted to their Vim respective types,
+while Lua booleans are converted to numbers. An error is thrown if conversion
+of any of the remaining Lua types, including userdata other than lists, dicts,
+and funcrefs, is attempted.
+
+Examples: >
 
        :echo luaeval('math.pi')
        :lua a = vim.list():add('newlist')
index 7e89059b1978d6c757bbbbcf1b7cdff3089de8fe..5bb2459a6d3435ec221bf5d979af5c249ce4d696 100644 (file)
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 7.3.  Last change: 2013 Jun 12
+*indent.txt*    For Vim version 7.3.  Last change: 2013 Jun 13
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -745,7 +745,7 @@ You can set the indent for the first line after <script> and <style>
       "inc"    auto indent + one indent step
 
 Many tags increase the indent for what follows per default (see "Add Indent
-Tags" below in this script).  You can add further tags with: >
+Tags" in the script).  You can add further tags with: >
 
       :let g:html_indent_inctags = "html,body,head,tbody"
 
@@ -757,7 +757,7 @@ Default value is empty for both variables.  Note: the initial "inctags" are
 only defined once per Vim session.
 
 User variables are only read when the script is sourced.  To enable your
-changes during a session, without reloaind the html file, you can manually
+changes during a session, without reloading the HTML file, you can manually
 do: >
 
       :call HtmlIndent_CheckUserSettings()
@@ -765,11 +765,11 @@ do: >
 Detail:
   Calculation of indent inside "blocktags" with "alien" content:
       BLOCKTAG   INDENT EXPR       WHEN APPLICABLE ~
-      <script> : {customizable}   if first line of block
-        : cindent(v:lnum)  if attributes empty or contain "java"
-        : -1               else (vbscript, tcl, ...)
-      <style>  : {customizable}   if first line of block
-        : GetCSSIndent()   else
+      <script> : {customizable}            if first line of block
+              : cindent(v:lnum)    if attributes empty or contain "java"
+              : -1                 else (vbscript, tcl, ...)
+      <style>  : {customizable}            if first line of block
+              : GetCSSIndent()     else
       <!-- --> : -1
 
 
index f41f74d2c00cde4c1199a2090b83ac9468b47e4f..2ebdf3b0cfeb14c373afe94c517971e4c24a3e78 100644 (file)
@@ -6674,6 +6674,7 @@ lua-buffer        if_lua.txt      /*lua-buffer*
 lua-commands   if_lua.txt      /*lua-commands*
 lua-dict       if_lua.txt      /*lua-dict*
 lua-eval       if_lua.txt      /*lua-eval*
+lua-funcref    if_lua.txt      /*lua-funcref*
 lua-list       if_lua.txt      /*lua-list*
 lua-luaeval    if_lua.txt      /*lua-luaeval*
 lua-vim        if_lua.txt      /*lua-vim*
index f5ac22d69d5c3dfc7a249285236e13e219ff0067..5e38724720949e1b4b5f96038263e2a42a80e109 100644 (file)
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3.  Last change: 2013 Jun 12
+*todo.txt*      For Vim version 7.3.  Last change: 2013 Jun 15
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -36,9 +36,6 @@ not be repeated below, unless there is extra information.
 
 --- Python interface
 
-Test 87 fails.
-Test 86 fails on some systems.
-
 Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
 
 Win32: The Python interface only works with one version of Python, selected at
@@ -54,30 +51,6 @@ Does not work, tests fail.
 
 --- bug fixes
 
-:wviminfo does not write old history entries. (Roland Eggner, 2013 Jun 5)
-Another message Jun 6.
-
-Patch to avoid wrong error message for 1.0[0]. (Yasuhiro Matsumoto, 2013 May
-1)
-
-Patch for if_lua. (Luis Carvalho, 2012 Aug 26, update Aug 29, another Aug 30,
-then Sep 1, reminder Oct 14)
-
-Patch for if_perl.  (Ike Devolder, May 27)
-
-Patch to check if 'foldexpr' sets did_emsg. (Christian Brabandt, 2013 Mar 20)
-
-Patch for 'backupcopy' default behavior for symlinks on Windows. (David Pope,
-2012 Mar 21, update Mar 31)
-With fix for memory leak: Ken Takata, 2012 Aug 24
-Another update Sep 24.
-Also patch from Joerg Bornemann, 2013 Apr 30.
-
-Undo problem: line not removed as expected when using setline() from Insert
-mode. (Israel Chauca, 2010 May 13, more in second msg)
-Break undo when CTRL-R = changes the text?  Or save more lines?
-Patch by Christian Brabandt, 2012 Nov 16.
-
 Do allow real tags above the !_TAG entries. Undo older patch. Issue 90.
 
 Matches might be highlighted correctly. Inefficient patch by Christian
index d9a3d4f5148081fa3af212bb78366f1f2ac96439..601aad89fd96631b012de3a660fc222415a15012 100644 (file)
@@ -3,8 +3,8 @@
 " File:                html.vim (Vimscript #2075)
 " Author:      Andy Wokula <anwoku@yahoo.de>
 " Last Change: 2013 Jun 12
-" Rev Days:     9
-" Version:     0.8
+" Rev Days:     13
+" Version:     0.9
 " Vim Version: Vim7
 " Description:
 "   Improved version of the distributed html indent script, faster on a
 "      indent/css.vim (2006 Dec 20) from N. Weibull
 "
 " History:
-" 2011 Sep 09  added HTML5 tags (thx to J. Zuckerman)
+" 2012 Oct 21  (v0.9) added support for shiftwidth()
+" 2011 Sep 09  (v0.8) added HTML5 tags (thx to J. Zuckerman)
+" 2008 Apr 28  (v0.6) revised customization
+" 2008 Mar 09  (v0.5) fixed 'indk' issue (thx to C.J. Robinson)
 " }}}
 
 " Init Folklore, check user settings (2nd time ++) "{{{
@@ -36,6 +39,15 @@ if exists("*HtmlIndent")
     finish
 endif
 
+" Patch 7.3.694
+if exists('*shiftwidth')
+    let s:ShiftWidth = function('shiftwidth')
+else
+    func! s:ShiftWidth()
+       return &shiftwidth
+    endfunc
+endif
+
 let s:cpo_save = &cpo
 set cpo-=C
 "}}}
@@ -50,7 +62,7 @@ func! HtmlIndent_CheckUserSettings() "{{{
 
     let indone = {"zero": 0
                \,"auto": "indent(prevnonblank(v:lnum-1))"
-               \,"inc": "b:indent.blocktagind + &shiftwidth"}
+               \,"inc": "b:indent.blocktagind + s:ShiftWidth()"}
     if exists("g:html_indent_script1")
        let s:js1indent = get(indone, g:html_indent_script1, indone.zero)
     endif
@@ -196,7 +208,7 @@ func! s:Blocktag(blocktag, ind) "{{{
        endif
        let s:newstate.blocklnr = v:lnum
        " save allover indent for the endtag
-       let s:newstate.blocktagind = b:indent.baseindent + (s:nextrel + s:curind) * &shiftwidth
+       let s:newstate.blocktagind = b:indent.baseindent + (s:nextrel + s:curind) * s:ShiftWidth()
        if a:ind == 3
            return "SCRIPT"    " all except this must be lowercase
            " line is to be checked again for the type attribute
@@ -277,7 +289,7 @@ func! s:FreshState(lnum) "{{{
        " check preceding tags in the line:
        let s:altline = tagline[: stopcol-2]
        call s:CountITags(1)
-       let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * &shiftwidth
+       let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * s:ShiftWidth()
        return state
     elseif stopline == state.lnum
        " handle special case: previous line (= state.lnum) contains a
@@ -288,7 +300,7 @@ func! s:FreshState(lnum) "{{{
            let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bW")
            let s:altline = tolower(getline(bline)[: bcol-2])
            call s:CountITags(1)
-           let state.baseindent = indent(bline) + (s:nextrel+s:curline) * &shiftwidth
+           let state.baseindent = indent(bline) + (s:nextrel+s:curline) * s:ShiftWidth()
            return state
        endif
     endif
@@ -303,7 +315,7 @@ func! s:FreshState(lnum) "{{{
        " check preceding tags in the line:
        let s:altline = tolower(getline(comline)[: comcol-2])
        call s:CountITags(1)
-       let state.blocktagind = indent(comline) + (s:curind + s:nextrel) * &shiftwidth
+       let state.blocktagind = indent(comline) + (s:curind + s:nextrel) * s:ShiftWidth()
        return state
     endif
 
@@ -320,18 +332,18 @@ func! s:FreshState(lnum) "{{{
            let s:altline = tolower(getline(comline)[: comcol-2])
        endif
        call s:CountITags(1)
-       let state.baseindent = indent(comline) + (s:nextrel+s:curline) * &shiftwidth
+       let state.baseindent = indent(comline) + (s:nextrel+s:curline) * s:ShiftWidth()
        return state
        " TODO check tags that follow "-->"
     endif
 
     " else no comments
     call s:CountITags(1)
-    let state.baseindent = indent(state.lnum) + s:nextrel * &shiftwidth
+    let state.baseindent = indent(state.lnum) + s:nextrel * s:ShiftWidth()
     " line starts with end tag
     let swendtag = match(s:altline, '^\s*</') >= 0
     if !swendtag
-       let state.baseindent += s:curind * &shiftwidth
+       let state.baseindent += s:curind * s:ShiftWidth()
     endif
     return state
 endfunc "}}}
@@ -373,10 +385,10 @@ func! s:CSSIndent() "{{{
        " indent for first content line after comments
        return eval(s:css1indent)
     endif
-    let ind = indent(pnum) + s:css_countbraces(pnum, 1) * &sw
+    let ind = indent(pnum) + s:css_countbraces(pnum, 1) * s:ShiftWidth()
     let pline = getline(pnum)
     if pline =~ '}\s*$'
-       let ind -= (s:css_countbraces(pnum, 0) - (pline =~ '^\s*}')) * &sw
+       let ind -= (s:css_countbraces(pnum, 0) - (pline =~ '^\s*}')) * s:ShiftWidth()
     endif
     return ind
 endfunc "}}}
@@ -421,11 +433,12 @@ endfunc "}}}
 
 func! HtmlIndent() "{{{
     let s:curline = tolower(getline(v:lnum))
+    let indentunit = s:ShiftWidth()
 
     let s:newstate = {}
     let s:newstate.lnum = v:lnum
 
-    " is the first non-blank in the line the start of a tag?
+    " does the line start with a closing tag?
     let swendtag = match(s:curline, '^\s*</') >= 0
 
     if prevnonblank(v:lnum-1) == b:indent.lnum && s:usestate
@@ -446,11 +459,11 @@ func! HtmlIndent() "{{{
            let s:curline = strpart(s:curline, blockend+strlen(endtag))
            call s:CountITags()
            if swendtag && b:indent.block != 5
-               let indent = b:indent.blocktagind + s:curind * &shiftwidth
-               let s:newstate.baseindent = indent + s:nextrel * &shiftwidth
+               let indent = b:indent.blocktagind + s:curind * indentunit
+               let s:newstate.baseindent = indent + s:nextrel * indentunit
            else
                let indent = s:Alien{b:indent.block}()
-               let s:newstate.baseindent = b:indent.blocktagind + s:nextrel * &shiftwidth
+               let s:newstate.baseindent = b:indent.blocktagind + s:nextrel * indentunit
            endif
            call extend(b:indent, s:newstate, "force")
            return indent
@@ -467,11 +480,11 @@ func! HtmlIndent() "{{{
        let s:newstate.block = b:indent.block
        call s:CountITags()
        if swendtag
-           let indent = b:indent.baseindent + s:curind * &shiftwidth
-           let s:newstate.baseindent = indent + s:nextrel * &shiftwidth
+           let indent = b:indent.baseindent + s:curind * indentunit
+           let s:newstate.baseindent = indent + s:nextrel * indentunit
        else
            let indent = b:indent.baseindent
-           let s:newstate.baseindent = indent + (s:curind + s:nextrel) * &shiftwidth
+           let s:newstate.baseindent = indent + (s:curind + s:nextrel) * indentunit
        endif
        call extend(b:indent, s:newstate, "force")
        return indent
index fd4b48003455ac7454c29b3040a04bb8ebd81d83..1d1f6afd0df4d57ed903f10c8cae1dfd8c26e4a5 100644 (file)
@@ -2,7 +2,7 @@
 "    Language: SAP - ABAP/R4
 "    Revision: 2.1
 "  Maintainer: Marius Piedallu van Wyk <lailoken@gmail.com>
-" Last Change: 2012 Oct 23
+" Last Change: 2013 Jun 13
 "     Comment: Thanks to EPI-USE Labs for all your assistance. :)
 
 " For version  < 6.0: Clear all syntax items
@@ -140,7 +140,7 @@ syn keyword abapStatement CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT
 syn keyword abapStatement ID NUMBER FOR TITLE OUTPUT
 
 " Special ABAP specific tables:
-syn match   abapSpecialTables "\<\(sy\|\(p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)-"me=e-1 contained
+syn match   abapSpecialTables "\<\(sy\|\(hrp\|p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)-"me=e-1 contained
 syn match   abapStructure     "\<\w\+-[^\>]"me=e-2 contains=abapSpecialTables,abapStatement,abapComplexStatement
 syn match   abapField         "-\w\+"ms=s+1
 
index 8891ebed6944ae2a39ab25955ed88b8977c3245a..1f61e50b8d675131286a3115d1c5ccb0428c4754 100644 (file)
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:     Objective-C
 " Maintainer:   Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com>
-" Last Change:  2013 Jun 12
+" Last Change:  2013 Jun 13
 " Remark:       Modern Objective-C Edition
 
 """ Preparation for loading ObjC stuff
@@ -20,7 +20,7 @@ set cpo&vim
 syn keyword objcPreProcMacro __OBJC__ __OBJC2__ __clang__
 
 " Defined Types
-syn keyword objcPrincipalType id Class SEL IMP BOOL
+syn keyword objcPrincipalType id Class SEL IMP BOOL instancetype
 syn keyword objcUsefulTerm nil Nil NO YES
 
 " Preprocessor Directives
@@ -37,6 +37,7 @@ syn match objcInternalRep display /@selector\>\|@encode\>/
 syn match objcException display /@try\>\|@throw\>\|@catch\|@finally\>/
 syn match objcThread display /@synchronized\>/
 syn match objcPool display /@autoreleasepool\>/
+syn match objcModuleImport display /@import\>/
 
 " ObjC Constant Strings
 syn match objcSpecial display contained "%@"
@@ -84,7 +85,7 @@ syn match objcProtocolList display /<\h\w*\(\s*,\s*\h\w*\)*>/ contains=objcPrinc
 
 " shorthand
 syn cluster objcCEntities contains=cType,cStructure,cStorageClass,cString,cCharacter,cSpecialCharacter,cNumbers,cConstant,cOperator,cComment,cCommentL,cStatement,cLabel,cConditional,cRepeat
-syn cluster objcObjCEntities contains=objcHiddenArgument,objcPrincipalType,objcString,objcUsefulTerm,objcProtocol,objcInternalRep,objcException,objcThread,objcPool,@objcTypeQualifier,objcLiteralSyntaxNumber,objcLiteralSyntaxOp,objcLiteralSyntaxChar,objcLiteralSyntaxSpecialChar,objcProtocolList,objcColon,objcFastEnumKeyword,objcType,objcClass,objcMacro,objcEnum,objcEnumValue,objcExceptionValue,objcNotificationValue,objcConstVar,objcPreProcMacro
+syn cluster objcObjCEntities contains=objcHiddenArgument,objcPrincipalType,objcString,objcUsefulTerm,objcProtocol,objcInternalRep,objcException,objcThread,objcPool,objcModuleImport,@objcTypeQualifier,objcLiteralSyntaxNumber,objcLiteralSyntaxOp,objcLiteralSyntaxChar,objcLiteralSyntaxSpecialChar,objcProtocolList,objcColon,objcFastEnumKeyword,objcType,objcClass,objcMacro,objcEnum,objcEnumValue,objcExceptionValue,objcNotificationValue,objcConstVar,objcPreProcMacro
 
 " Objective-C Message Expressions
 syn region objcMethodCall start=/\[/ end=/\]/ contains=objcMethodCall,objcBlocks,@objcObjCEntities,@objcCEntities
@@ -399,6 +400,7 @@ hi def link objcInternalRep                 cOperator
 hi def link objcException                   cOperator
 hi def link objcThread                      cOperator
 hi def link objcPool                        cOperator
+hi def link objcModuleImport                cOperator
 hi def link objcSpecial                     cSpecial
 hi def link objcString                      cString
 hi def link objcHiddenArgument              cStatement