forked from aniani/vim
Updated runtime files.
This commit is contained in:
20
runtime/autoload/clojurecomplete.vim
Normal file
20
runtime/autoload/clojurecomplete.vim
Normal file
File diff suppressed because one or more lines are too long
@@ -220,7 +220,7 @@ The diffs are highlighted with these groups:
|
|||||||
that parts in the middle that are still the
|
that parts in the middle that are still the
|
||||||
same are highlighted anyway. Only "iwhite" of
|
same are highlighted anyway. Only "iwhite" of
|
||||||
'diffopt' is used here.
|
'diffopt' is used here.
|
||||||
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|
||||||
because they don't really exist in this
|
because they don't really exist in this
|
||||||
buffer.
|
buffer.
|
||||||
|
|
||||||
|
@@ -16,7 +16,7 @@ Vim's Graphical User Interface *gui-w16* *win16-gui*
|
|||||||
|
|
||||||
Other relevant documentation:
|
Other relevant documentation:
|
||||||
|gui.txt| For generic items of the GUI.
|
|gui.txt| For generic items of the GUI.
|
||||||
|os_msdos.txt| For items common to DOS and Windows.
|
|os_msdos.txt| For items common to DOS and Windows.
|
||||||
|gui_w32.txt| Some items here are also applicable to the Win16 version.
|
|gui_w32.txt| Some items here are also applicable to the Win16 version.
|
||||||
|
|
||||||
{Vi does not have a Windows GUI}
|
{Vi does not have a Windows GUI}
|
||||||
|
@@ -17,7 +17,7 @@ Vim's Win32 Graphical User Interface *gui-w32* *win32-gui*
|
|||||||
|
|
||||||
Other relevant documentation:
|
Other relevant documentation:
|
||||||
|gui.txt| For generic items of the GUI.
|
|gui.txt| For generic items of the GUI.
|
||||||
|os_win32.txt| For Win32 specific items.
|
|os_win32.txt| For Win32 specific items.
|
||||||
|
|
||||||
{Vi does not have a Windows GUI}
|
{Vi does not have a Windows GUI}
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*if_mzsch.txt* For Vim version 7.3. Last change: 2010 Feb 11
|
*if_mzsch.txt* For Vim version 7.3. Last change: 2012 Dec 17
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Sergey Khorev
|
VIM REFERENCE MANUAL by Sergey Khorev
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*if_pyth.txt* For Vim version 7.3. Last change: 2013 Jan 30
|
*if_pyth.txt* For Vim version 7.3. Last change: 2013 Feb 03
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Paul Moore
|
VIM REFERENCE MANUAL by Paul Moore
|
||||||
@@ -385,7 +385,7 @@ sure edit "gvim.exe" and search for "python\d*.dll\c".
|
|||||||
|
|
||||||
*:py3* *:python3*
|
*:py3* *:python3*
|
||||||
The |:py3| and |:python3| commands work similar to |:python|. A simple check
|
The |:py3| and |:python3| commands work similar to |:python|. A simple check
|
||||||
if the `:py3` command is wrong: >
|
if the `:py3` command is working: >
|
||||||
:py3 print("Hello")
|
:py3 print("Hello")
|
||||||
< *:py3file*
|
< *:py3file*
|
||||||
The |:py3file| command works similar to |:pyfile|.
|
The |:py3file| command works similar to |:pyfile|.
|
||||||
|
@@ -577,6 +577,106 @@ $VIMRUNTIME/indent directory for examples.
|
|||||||
REMARKS ABOUT SPECIFIC INDENT FILES ~
|
REMARKS ABOUT SPECIFIC INDENT FILES ~
|
||||||
|
|
||||||
|
|
||||||
|
CLOJURE *ft-clojure-indent* *clojure-indent*
|
||||||
|
|
||||||
|
Clojure indentation differs somewhat from traditional Lisps, due in part to
|
||||||
|
the use of square and curly brackets, and otherwise by community convention.
|
||||||
|
These conventions are not always universally followed, so the Clojure indent
|
||||||
|
script offers a few configurable options, listed below.
|
||||||
|
|
||||||
|
If the current vim does not include searchpairpos(), the indent script falls
|
||||||
|
back to normal 'lisp' indenting, and the following options are ignored.
|
||||||
|
|
||||||
|
*g:clojure_maxlines*
|
||||||
|
|
||||||
|
Set maximum scan distance of searchpairpos(). Larger values trade performance
|
||||||
|
for correctness when dealing with very long forms. A value of 0 will scan
|
||||||
|
without limits.
|
||||||
|
>
|
||||||
|
" Default
|
||||||
|
let g:clojure_maxlines = 100
|
||||||
|
<
|
||||||
|
|
||||||
|
*g:clojure_fuzzy_indent*
|
||||||
|
*g:clojure_fuzzy_indent_patterns*
|
||||||
|
*g:clojure_fuzzy_indent_blacklist*
|
||||||
|
|
||||||
|
The 'lispwords' option is a list of comma-separated words that mark special
|
||||||
|
forms whose subforms must be indented with two spaces.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
>
|
||||||
|
(defn bad []
|
||||||
|
"Incorrect indentation")
|
||||||
|
|
||||||
|
(defn good []
|
||||||
|
"Correct indentation")
|
||||||
|
<
|
||||||
|
If you would like to specify 'lispwords' with a |pattern| instead, you can use
|
||||||
|
the fuzzy indent feature:
|
||||||
|
>
|
||||||
|
" Default
|
||||||
|
let g:clojure_fuzzy_indent = 1
|
||||||
|
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
|
||||||
|
let g:clojure_fuzzy_indent_blacklist =
|
||||||
|
\ ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
|
||||||
|
|
||||||
|
" Legacy comma-delimited string version; the list format above is
|
||||||
|
" recommended. Note that patterns are implicitly anchored with ^ and $
|
||||||
|
let g:clojure_fuzzy_indent_patterns = 'with.*,def.*,let.*'
|
||||||
|
<
|
||||||
|
|g:clojure_fuzzy_indent_patterns| and |g:clojure_fuzzy_indent_blacklist| are
|
||||||
|
|Lists| of patterns that will be matched against the unquoted, unqualified
|
||||||
|
symbol at the head of a list. This means that a pattern like "^foo" will match
|
||||||
|
all these candidates: "foobar", "my.ns/foobar", and "#'foobar".
|
||||||
|
|
||||||
|
Each candidate word is tested for special treatment in this order:
|
||||||
|
|
||||||
|
1. Return true if word is literally in 'lispwords'
|
||||||
|
2. Return false if word matches a pattern in
|
||||||
|
|g:clojure_fuzzy_indent_blacklist|
|
||||||
|
3. Return true if word matches a pattern in
|
||||||
|
|g:clojure_fuzzy_indent_patterns|
|
||||||
|
4. Return false and indent normally otherwise
|
||||||
|
|
||||||
|
*g:clojure_special_indent_words*
|
||||||
|
|
||||||
|
Some forms in Clojure are indented so that every subform is indented only two
|
||||||
|
spaces, regardless of 'lispwords'. If you have a custom construct that should
|
||||||
|
be indented in this idiosyncratic fashion, you can add your symbols to the
|
||||||
|
default list below.
|
||||||
|
>
|
||||||
|
" Default
|
||||||
|
let g:clojure_special_indent_words =
|
||||||
|
\ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
|
||||||
|
<
|
||||||
|
|
||||||
|
*g:clojure_align_multiline_strings*
|
||||||
|
|
||||||
|
Align subsequent lines in multiline strings to the column after the opening
|
||||||
|
quote, instead of the same column.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
>
|
||||||
|
(def default
|
||||||
|
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
|
||||||
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
|
||||||
|
enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
||||||
|
nisi ut aliquip ex ea commodo consequat.")
|
||||||
|
|
||||||
|
(def aligned
|
||||||
|
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
|
||||||
|
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
|
||||||
|
enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
||||||
|
nisi ut aliquip ex ea commodo consequat.")
|
||||||
|
<
|
||||||
|
This option is off by default.
|
||||||
|
>
|
||||||
|
" Default
|
||||||
|
let g:clojure_align_multiline_strings = 0
|
||||||
|
<
|
||||||
|
|
||||||
|
|
||||||
FORTRAN *ft-fortran-indent*
|
FORTRAN *ft-fortran-indent*
|
||||||
|
|
||||||
Block if, select case, where, and forall constructs are indented. So are
|
Block if, select case, where, and forall constructs are indented. So are
|
||||||
|
@@ -94,8 +94,8 @@ tag char action in Insert mode ~
|
|||||||
|i_CTRL-Z| CTRL-Z when 'insertmode' set: suspend Vim
|
|i_CTRL-Z| CTRL-Z when 'insertmode' set: suspend Vim
|
||||||
|i_<Esc>| <Esc> end insert mode (unless 'insertmode' set)
|
|i_<Esc>| <Esc> end insert mode (unless 'insertmode' set)
|
||||||
|i_CTRL-[| CTRL-[ same as <Esc>
|
|i_CTRL-[| CTRL-[ same as <Esc>
|
||||||
|i_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode
|
|i_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode
|
||||||
|i_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
|
|i_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
|
||||||
CTRL-\ a - z reserved for extensions
|
CTRL-\ a - z reserved for extensions
|
||||||
CTRL-\ others not used
|
CTRL-\ others not used
|
||||||
|i_CTRL-]| CTRL-] trigger abbreviation
|
|i_CTRL-]| CTRL-] trigger abbreviation
|
||||||
@@ -141,7 +141,7 @@ tag char action in Insert mode ~
|
|||||||
|i_<ScrollWheelUp>| <ScrollWheelUp> move window three lines up
|
|i_<ScrollWheelUp>| <ScrollWheelUp> move window three lines up
|
||||||
|i_<S-ScrollWheelUp>| <S-ScrollWheelUp> move window one page up
|
|i_<S-ScrollWheelUp>| <S-ScrollWheelUp> move window one page up
|
||||||
|i_<ScrollWheelLeft>| <ScrollWheelLeft> move window six columns left
|
|i_<ScrollWheelLeft>| <ScrollWheelLeft> move window six columns left
|
||||||
|i_<S-ScrollWheelLeft>| <S-ScrollWheelLeft> move window one page left
|
|i_<S-ScrollWheelLeft>| <S-ScrollWheelLeft> move window one page left
|
||||||
|i_<ScrollWheelRight>| <ScrollWheelRight> move window six columns right
|
|i_<ScrollWheelRight>| <ScrollWheelRight> move window six columns right
|
||||||
|i_<S-ScrollWheelRight>| <S-ScrollWheelRight> move window one page right
|
|i_<S-ScrollWheelRight>| <S-ScrollWheelRight> move window one page right
|
||||||
|
|
||||||
@@ -212,8 +212,8 @@ tag char note action in Normal mode ~
|
|||||||
|CTRL-Y| CTRL-Y scroll N lines downwards
|
|CTRL-Y| CTRL-Y scroll N lines downwards
|
||||||
|CTRL-Z| CTRL-Z suspend program (or start new shell)
|
|CTRL-Z| CTRL-Z suspend program (or start new shell)
|
||||||
CTRL-[ <Esc> not used
|
CTRL-[ <Esc> not used
|
||||||
|CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode (no-op)
|
|CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode (no-op)
|
||||||
|CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
|
|CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
|
||||||
CTRL-\ a - z reserved for extensions
|
CTRL-\ a - z reserved for extensions
|
||||||
CTRL-\ others not used
|
CTRL-\ others not used
|
||||||
|CTRL-]| CTRL-] :ta to ident under cursor
|
|CTRL-]| CTRL-] :ta to ident under cursor
|
||||||
@@ -431,7 +431,7 @@ tag char note action in Normal mode ~
|
|||||||
|<Insert>| <Insert> 2 same as "i"
|
|<Insert>| <Insert> 2 same as "i"
|
||||||
|<Left>| <Left> 1 same as "h"
|
|<Left>| <Left> 1 same as "h"
|
||||||
|<LeftMouse>| <LeftMouse> 1 move cursor to the mouse click position
|
|<LeftMouse>| <LeftMouse> 1 move cursor to the mouse click position
|
||||||
|<MiddleMouse>| <MiddleMouse> 2 same as "gP" at the mouse click position
|
|<MiddleMouse>| <MiddleMouse> 2 same as "gP" at the mouse click position
|
||||||
|<PageDown>| <PageDown> same as CTRL-F
|
|<PageDown>| <PageDown> same as CTRL-F
|
||||||
|<PageUp>| <PageUp> same as CTRL-B
|
|<PageUp>| <PageUp> same as CTRL-B
|
||||||
|<Right>| <Right> 1 same as "l"
|
|<Right>| <Right> 1 same as "l"
|
||||||
@@ -640,7 +640,7 @@ tag char note action in Normal mode ~
|
|||||||
|[s| [s 1 move to the previous misspelled word
|
|[s| [s 1 move to the previous misspelled word
|
||||||
|[z| [z 1 move to start of open fold
|
|[z| [z 1 move to start of open fold
|
||||||
|[{| [{ 1 cursor N times back to unmatched '{'
|
|[{| [{ 1 cursor N times back to unmatched '{'
|
||||||
|[<MiddleMouse> [<MiddleMouse> 2 same as "[p"
|
|[<MiddleMouse>| [<MiddleMouse> 2 same as "[p"
|
||||||
|
|
||||||
|]_CTRL-D| ] CTRL-D jump to first #define found in current and
|
|]_CTRL-D| ] CTRL-D jump to first #define found in current and
|
||||||
included files matching the word under the
|
included files matching the word under the
|
||||||
@@ -680,7 +680,7 @@ tag char note action in Normal mode ~
|
|||||||
|]s| ]s 1 move to next misspelled word
|
|]s| ]s 1 move to next misspelled word
|
||||||
|]z| ]z 1 move to end of open fold
|
|]z| ]z 1 move to end of open fold
|
||||||
|]}| ]} 1 cursor N times forward to unmatched '}'
|
|]}| ]} 1 cursor N times forward to unmatched '}'
|
||||||
|]<MiddleMouse> ]<MiddleMouse> 2 same as "]p"
|
|]<MiddleMouse>| ]<MiddleMouse> 2 same as "]p"
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
2.4 Commands starting with 'g' *g*
|
2.4 Commands starting with 'g' *g*
|
||||||
@@ -1011,8 +1011,8 @@ tag command action in Command-line editing mode ~
|
|||||||
CTRL-Z not used (reserved for suspend)
|
CTRL-Z not used (reserved for suspend)
|
||||||
|c_<Esc>| <Esc> abandon command-line without executing it
|
|c_<Esc>| <Esc> abandon command-line without executing it
|
||||||
|c_<Esc>| CTRL-[ same as <Esc>
|
|c_<Esc>| CTRL-[ same as <Esc>
|
||||||
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line
|
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line
|
||||||
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode',
|
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode',
|
||||||
abandon command-line
|
abandon command-line
|
||||||
CTRL-\ a - d reserved for extensions
|
CTRL-\ a - d reserved for extensions
|
||||||
|c_CTRL-\_e| CTRL-\ e {expr} replace the command line with the result of
|
|c_CTRL-\_e| CTRL-\ e {expr} replace the command line with the result of
|
||||||
|
@@ -5032,6 +5032,7 @@ clipboard-exclude options.txt /*clipboard-exclude*
|
|||||||
clipboard-html options.txt /*clipboard-html*
|
clipboard-html options.txt /*clipboard-html*
|
||||||
clipboard-unnamed options.txt /*clipboard-unnamed*
|
clipboard-unnamed options.txt /*clipboard-unnamed*
|
||||||
clipboard-unnamedplus options.txt /*clipboard-unnamedplus*
|
clipboard-unnamedplus options.txt /*clipboard-unnamedplus*
|
||||||
|
clojure-indent indent.txt /*clojure-indent*
|
||||||
cmdarg-variable eval.txt /*cmdarg-variable*
|
cmdarg-variable eval.txt /*cmdarg-variable*
|
||||||
cmdbang-variable eval.txt /*cmdbang-variable*
|
cmdbang-variable eval.txt /*cmdbang-variable*
|
||||||
cmdline-arguments vi_diff.txt /*cmdline-arguments*
|
cmdline-arguments vi_diff.txt /*cmdline-arguments*
|
||||||
@@ -5653,6 +5654,7 @@ ft-ch-syntax syntax.txt /*ft-ch-syntax*
|
|||||||
ft-changelog-plugin filetype.txt /*ft-changelog-plugin*
|
ft-changelog-plugin filetype.txt /*ft-changelog-plugin*
|
||||||
ft-changelog-syntax syntax.txt /*ft-changelog-syntax*
|
ft-changelog-syntax syntax.txt /*ft-changelog-syntax*
|
||||||
ft-chill-syntax syntax.txt /*ft-chill-syntax*
|
ft-chill-syntax syntax.txt /*ft-chill-syntax*
|
||||||
|
ft-clojure-indent indent.txt /*ft-clojure-indent*
|
||||||
ft-cobol-syntax syntax.txt /*ft-cobol-syntax*
|
ft-cobol-syntax syntax.txt /*ft-cobol-syntax*
|
||||||
ft-coldfusion-syntax syntax.txt /*ft-coldfusion-syntax*
|
ft-coldfusion-syntax syntax.txt /*ft-coldfusion-syntax*
|
||||||
ft-csh-syntax syntax.txt /*ft-csh-syntax*
|
ft-csh-syntax syntax.txt /*ft-csh-syntax*
|
||||||
@@ -5817,6 +5819,12 @@ g:ada_space_errors ft_ada.txt /*g:ada_space_errors*
|
|||||||
g:ada_standard_types ft_ada.txt /*g:ada_standard_types*
|
g:ada_standard_types ft_ada.txt /*g:ada_standard_types*
|
||||||
g:ada_with_gnat_project_files ft_ada.txt /*g:ada_with_gnat_project_files*
|
g:ada_with_gnat_project_files ft_ada.txt /*g:ada_with_gnat_project_files*
|
||||||
g:ada_withuse_ordinary ft_ada.txt /*g:ada_withuse_ordinary*
|
g:ada_withuse_ordinary ft_ada.txt /*g:ada_withuse_ordinary*
|
||||||
|
g:clojure_align_multiline_strings indent.txt /*g:clojure_align_multiline_strings*
|
||||||
|
g:clojure_fuzzy_indent indent.txt /*g:clojure_fuzzy_indent*
|
||||||
|
g:clojure_fuzzy_indent_blacklist indent.txt /*g:clojure_fuzzy_indent_blacklist*
|
||||||
|
g:clojure_fuzzy_indent_patterns indent.txt /*g:clojure_fuzzy_indent_patterns*
|
||||||
|
g:clojure_maxlines indent.txt /*g:clojure_maxlines*
|
||||||
|
g:clojure_special_indent_words indent.txt /*g:clojure_special_indent_words*
|
||||||
g:colors_name options.txt /*g:colors_name*
|
g:colors_name options.txt /*g:colors_name*
|
||||||
g:decada ft_ada.txt /*g:decada*
|
g:decada ft_ada.txt /*g:decada*
|
||||||
g:decada.Error_Format ft_ada.txt /*g:decada.Error_Format*
|
g:decada.Error_Format ft_ada.txt /*g:decada.Error_Format*
|
||||||
@@ -6150,6 +6158,7 @@ gui_w16.txt gui_w16.txt /*gui_w16.txt*
|
|||||||
gui_w32.txt gui_w32.txt /*gui_w32.txt*
|
gui_w32.txt gui_w32.txt /*gui_w32.txt*
|
||||||
gui_x11.txt gui_x11.txt /*gui_x11.txt*
|
gui_x11.txt gui_x11.txt /*gui_x11.txt*
|
||||||
guifontwide_gtk2 options.txt /*guifontwide_gtk2*
|
guifontwide_gtk2 options.txt /*guifontwide_gtk2*
|
||||||
|
guifontwide_win_mbyte options.txt /*guifontwide_win_mbyte*
|
||||||
guioptions_a options.txt /*guioptions_a*
|
guioptions_a options.txt /*guioptions_a*
|
||||||
guu change.txt /*guu*
|
guu change.txt /*guu*
|
||||||
gv visual.txt /*gv*
|
gv visual.txt /*gv*
|
||||||
@@ -6796,6 +6805,7 @@ mzscheme-buffer if_mzsch.txt /*mzscheme-buffer*
|
|||||||
mzscheme-commands if_mzsch.txt /*mzscheme-commands*
|
mzscheme-commands if_mzsch.txt /*mzscheme-commands*
|
||||||
mzscheme-dynamic if_mzsch.txt /*mzscheme-dynamic*
|
mzscheme-dynamic if_mzsch.txt /*mzscheme-dynamic*
|
||||||
mzscheme-examples if_mzsch.txt /*mzscheme-examples*
|
mzscheme-examples if_mzsch.txt /*mzscheme-examples*
|
||||||
|
mzscheme-funcref if_mzsch.txt /*mzscheme-funcref*
|
||||||
mzscheme-mzeval if_mzsch.txt /*mzscheme-mzeval*
|
mzscheme-mzeval if_mzsch.txt /*mzscheme-mzeval*
|
||||||
mzscheme-sandbox if_mzsch.txt /*mzscheme-sandbox*
|
mzscheme-sandbox if_mzsch.txt /*mzscheme-sandbox*
|
||||||
mzscheme-threads if_mzsch.txt /*mzscheme-threads*
|
mzscheme-threads if_mzsch.txt /*mzscheme-threads*
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 7.3. Last change: 2013 Jan 30
|
*todo.txt* For Vim version 7.3. Last change: 2013 Feb 06
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -34,6 +34,12 @@ not be repeated below, unless there is extra information.
|
|||||||
*known-bugs*
|
*known-bugs*
|
||||||
-------------------- Known bugs and current work -----------------------
|
-------------------- Known bugs and current work -----------------------
|
||||||
|
|
||||||
|
Substitute with confirmation and then "q" does not replace anything.
|
||||||
|
(John McGowan)
|
||||||
|
|
||||||
|
Download counter for scripts no longer incremented?
|
||||||
|
Looks like it.
|
||||||
|
|
||||||
Several syntax file match "^\s*" which may get underlined if that's in the
|
Several syntax file match "^\s*" which may get underlined if that's in the
|
||||||
highlight group. Add a "\zs" after it?
|
highlight group. Add a "\zs" after it?
|
||||||
|
|
||||||
@@ -43,25 +49,34 @@ Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
|
|||||||
|
|
||||||
Checking runtime scripts: Thilo Six, 2012 Jun 6.
|
Checking runtime scripts: Thilo Six, 2012 Jun 6.
|
||||||
|
|
||||||
|
Patch for doc indenting. (Ken Takata, Feb 4)
|
||||||
|
|
||||||
GTK: problem with 'L' in 'guioptions' changing the window width.
|
GTK: problem with 'L' in 'guioptions' changing the window width.
|
||||||
(Aaron Cornelius, 2012 Feb 6)
|
(Aaron Cornelius, 2012 Feb 6)
|
||||||
|
|
||||||
|
Configure change to detect Lua 5.2. (lilydjwg, 2013 Jan 31)
|
||||||
|
|
||||||
Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
|
Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
|
||||||
|
|
||||||
|
Patch to avoid warnings in Perl code. (Christian Brabandt, 2013 Jan 30)
|
||||||
|
|
||||||
|
The " mark is not updated for lines inserted above it. (Roland Eggner, 2013
|
||||||
|
Feb 5)
|
||||||
|
|
||||||
|
Look into patch to add 'linenumber' option. (Nazri Ramliy, 2013 Feb 4)
|
||||||
|
|
||||||
|
Another patch for Python threads, 2 and 3. (Ken Takata, 2013 Jan 31)
|
||||||
|
Does this really work?
|
||||||
|
|
||||||
|
Patch for 'relativenumber' being reset unexpectedly. (Christian Brabandt, 2013
|
||||||
|
Feb 1) Tests Feb 2.
|
||||||
|
|
||||||
|
Patch to avoid useless compare. (Hayaki Saito, 2013 Feb 2)
|
||||||
|
|
||||||
The CompleteDone autocommand needs some info passed to it:
|
The CompleteDone autocommand needs some info passed to it:
|
||||||
- The word that was selected (empty if abandoned complete)
|
- The word that was selected (empty if abandoned complete)
|
||||||
- Type of completion: tag, omnifunc, user func.
|
- Type of completion: tag, omnifunc, user func.
|
||||||
|
|
||||||
Patch for mzscheme. (Sergey Khorev, 2012 Nov 19)
|
|
||||||
Updated patch 2013 Jan 28.
|
|
||||||
|
|
||||||
Patch to fix :s command with confirm and typing "a". (Christian Brabandt, 2012
|
|
||||||
Oct 28)
|
|
||||||
|
|
||||||
/[^\n] does match at a line break. Expected to do the same as /.
|
|
||||||
Patch by Christian Brabandt, 2012 Dec 1.
|
|
||||||
Test files in archive in another message.
|
|
||||||
|
|
||||||
Patch to make multibyte input work on Win32 console when codepage differs from
|
Patch to make multibyte input work on Win32 console when codepage differs from
|
||||||
'encoding'. (Ken Takata, 2012 Sep 29)
|
'encoding'. (Ken Takata, 2012 Sep 29)
|
||||||
|
|
||||||
@@ -74,6 +89,8 @@ It's possible to define an input() function that overrides the built-in one.
|
|||||||
(ZyX, 2012 Sep 28)
|
(ZyX, 2012 Sep 28)
|
||||||
|
|
||||||
Patch to add sha256() function. (Tyru, 2013 Jan 8)
|
Patch to add sha256() function. (Tyru, 2013 Jan 8)
|
||||||
|
Test by Higashi, 2013 Feb 2.
|
||||||
|
All together (tyru, 2013 Feb 5)
|
||||||
|
|
||||||
Patch to make pyeval() print error messages. (ZyX, 2013 Jan 12)
|
Patch to make pyeval() print error messages. (ZyX, 2013 Jan 12)
|
||||||
|
|
||||||
@@ -90,7 +107,8 @@ Patch for Win32 clipboard under Cygwin. (Frodak Baksik, Feb 15)
|
|||||||
Problem parsing expression with function(). (Andy Wokula, 2012 Nov 22)
|
Problem parsing expression with function(). (Andy Wokula, 2012 Nov 22)
|
||||||
Patch by Christian Brabandt, Nov 22. Tests in another patch, Nov 23.
|
Patch by Christian Brabandt, Nov 22. Tests in another patch, Nov 23.
|
||||||
|
|
||||||
Patch to add default value to getbufvar() et al. (Hirohito Higashi, 2013 Jan 1)
|
Patch to add default value to getbufvar() et al. (Shougo Matsushita, Hirohito
|
||||||
|
Higashi, 2013 Jan 1)
|
||||||
|
|
||||||
Problem caused by patch 7.3.638: window->open does not update window
|
Problem caused by patch 7.3.638: window->open does not update window
|
||||||
correctly. Issue 91.
|
correctly. Issue 91.
|
||||||
@@ -406,6 +424,7 @@ When a buffer-local mapping is used, but a global mapping starts with the same
|
|||||||
characters, Vim currently waits for the next typed character to find out if
|
characters, Vim currently waits for the next typed character to find out if
|
||||||
the global mapping matches. It is probably better to let the local mapping
|
the global mapping matches. It is probably better to let the local mapping
|
||||||
win and not wait. (discussion with Andy Wokula, 2013 Jan 30)
|
win and not wait. (discussion with Andy Wokula, 2013 Jan 30)
|
||||||
|
Patch by Michael Henry, 2013 Jan 30.
|
||||||
|
|
||||||
When doing "redir => s:foo" in a script and then "redir END" somewhere else
|
When doing "redir => s:foo" in a script and then "redir END" somewhere else
|
||||||
(e.g. in a function) it can't find s:foo.
|
(e.g. in a function) it can't find s:foo.
|
||||||
|
@@ -248,7 +248,7 @@ Subjects that can be read independently.
|
|||||||
|28.7| Folding by syntax
|
|28.7| Folding by syntax
|
||||||
|28.8| Folding by expression
|
|28.8| Folding by expression
|
||||||
|28.9| Folding unchanged lines
|
|28.9| Folding unchanged lines
|
||||||
|28.10| Which fold method to use?
|
|28.10| Which fold method to use?
|
||||||
|
|
||||||
|usr_29.txt| Moving through programs
|
|usr_29.txt| Moving through programs
|
||||||
|29.1| Using tags
|
|29.1| Using tags
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
" Vim support file to detect file types
|
" Vim support file to detect file types
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2012 Nov 28
|
" Last Change: 2013 Jan 31
|
||||||
|
|
||||||
" Listen very carefully, I will say this only once
|
" Listen very carefully, I will say this only once
|
||||||
if exists("did_load_filetypes")
|
if exists("did_load_filetypes")
|
||||||
@@ -489,6 +489,9 @@ au BufNewFile,BufRead *.prg
|
|||||||
\ setf clipper |
|
\ setf clipper |
|
||||||
\ endif
|
\ endif
|
||||||
|
|
||||||
|
" Clojure
|
||||||
|
au BufNewFile,BufRead *.clj,*.cljs setf clojure
|
||||||
|
|
||||||
" Cmake
|
" Cmake
|
||||||
au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake
|
au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake
|
||||||
|
|
||||||
@@ -744,6 +747,7 @@ au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom
|
|||||||
|
|
||||||
" Git
|
" Git
|
||||||
au BufNewFile,BufRead *.git/COMMIT_EDITMSG setf gitcommit
|
au BufNewFile,BufRead *.git/COMMIT_EDITMSG setf gitcommit
|
||||||
|
au BufNewFile,BufRead *.git/MERGE_MSG setf gitcommit
|
||||||
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
|
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
|
||||||
au BufNewFile,BufRead *.git/modules/**/COMMIT_EDITMSG setf gitcommit
|
au BufNewFile,BufRead *.git/modules/**/COMMIT_EDITMSG setf gitcommit
|
||||||
au BufNewFile,BufRead *.git/modules/**/config setf gitconfig
|
au BufNewFile,BufRead *.git/modules/**/config setf gitconfig
|
||||||
|
79
runtime/ftplugin/clojure.vim
Normal file
79
runtime/ftplugin/clojure.vim
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
" Vim filetype plugin file
|
||||||
|
" Language: Clojure
|
||||||
|
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||||
|
"
|
||||||
|
" Maintainer: Sung Pae <self@sungpae.com>
|
||||||
|
" URL: https://github.com/guns/vim-clojure-static
|
||||||
|
" License: Same as Vim
|
||||||
|
" Last Change: 30 January 2013
|
||||||
|
|
||||||
|
" 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
|
||||||
|
|
||||||
|
let b:undo_ftplugin = 'setlocal define< formatoptions< comments< commentstring<'
|
||||||
|
|
||||||
|
" There will be false positives, but this is better than missing the whole set
|
||||||
|
" of user-defined def* definitions.
|
||||||
|
setlocal define=\\v[(/]def(ault)@!\\S*
|
||||||
|
|
||||||
|
" Remove 't' from 'formatoptions' to avoid auto-wrapping code. The '+=croql'
|
||||||
|
" is standard ftplugin boilerplate, although it is arguably intrusive.
|
||||||
|
setlocal formatoptions-=t formatoptions+=croql
|
||||||
|
|
||||||
|
" Lisp comments are routinely nested (e.g. ;;; SECTION HEADING)
|
||||||
|
setlocal comments=n:;
|
||||||
|
setlocal commentstring=;\ %s
|
||||||
|
|
||||||
|
" Provide insert mode completions for special forms and clojure.core. As
|
||||||
|
" 'omnifunc' is set by popular Clojure REPL client plugins, we also set
|
||||||
|
" 'completefunc' so that the user has some form of completion available when
|
||||||
|
" 'omnifunc' is set and no REPL connection exists.
|
||||||
|
for s:setting in ['omnifunc', 'completefunc']
|
||||||
|
if exists('&' . s:setting) && empty(eval('&' . s:setting))
|
||||||
|
execute 'setlocal ' . s:setting . '=clojurecomplete#Complete'
|
||||||
|
let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<'
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
|
||||||
|
" Take all directories of the CLOJURE_SOURCE_DIRS environment variable
|
||||||
|
" and add them to the path option.
|
||||||
|
"
|
||||||
|
" This is a legacy option for VimClojure users.
|
||||||
|
if exists('$CLOJURE_SOURCE_DIRS')
|
||||||
|
for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':')
|
||||||
|
let s:dir = fnameescape(s:dir)
|
||||||
|
" Whitespace escaping for Windows
|
||||||
|
let s:dir = substitute(s:dir, '\', '\\\\', 'g')
|
||||||
|
let s:dir = substitute(s:dir, '\ ', '\\ ', 'g')
|
||||||
|
execute "setlocal path+=" . s:dir . "/**"
|
||||||
|
endfor
|
||||||
|
let b:undo_ftplugin .= ' | setlocal path<'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Skip brackets in ignored syntax regions when using the % command
|
||||||
|
if exists('loaded_matchit')
|
||||||
|
let b:match_words = &matchpairs
|
||||||
|
let b:match_skip = 's:comment\|string\|regex\|character'
|
||||||
|
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Win32 can filter files in the browse dialog
|
||||||
|
if has("gui_win32") && !exists("b:browsefilter")
|
||||||
|
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
|
||||||
|
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
|
||||||
|
\ "Java Source Files (*.java)\t*.java\n" .
|
||||||
|
\ "All Files (*.*)\t*.*\n"
|
||||||
|
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
|
||||||
|
unlet! s:cpo_save s:setting s:dir
|
||||||
|
|
||||||
|
" vim:sts=4 sw=4 et:
|
398
runtime/indent/clojure.vim
Normal file
398
runtime/indent/clojure.vim
Normal file
@@ -0,0 +1,398 @@
|
|||||||
|
" Vim indent file
|
||||||
|
" Language: Clojure
|
||||||
|
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||||
|
" URL: http://kotka.de/projects/clojure/vimclojure.html
|
||||||
|
"
|
||||||
|
" Maintainer: Sung Pae <self@sungpae.com>
|
||||||
|
" URL: https://github.com/guns/vim-clojure-static
|
||||||
|
" License: Same as Vim
|
||||||
|
" Last Change: 30 January 2013
|
||||||
|
|
||||||
|
" Only load this indent file when no other was loaded.
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
let s:save_cpo = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
let b:undo_indent = 'setlocal autoindent< smartindent< lispwords< expandtab< softtabstop< shiftwidth< indentexpr< indentkeys<'
|
||||||
|
|
||||||
|
setlocal noautoindent nosmartindent
|
||||||
|
setlocal softtabstop=2 shiftwidth=2 expandtab
|
||||||
|
setlocal indentkeys=!,o,O
|
||||||
|
|
||||||
|
if exists("*searchpairpos")
|
||||||
|
|
||||||
|
if !exists('g:clojure_maxlines')
|
||||||
|
let g:clojure_maxlines = 100
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists('g:clojure_fuzzy_indent')
|
||||||
|
let g:clojure_fuzzy_indent = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists('g:clojure_fuzzy_indent_patterns')
|
||||||
|
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists('g:clojure_fuzzy_indent_blacklist')
|
||||||
|
let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists('g:clojure_special_indent_words')
|
||||||
|
let g:clojure_special_indent_words = 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !exists('g:clojure_align_multiline_strings')
|
||||||
|
let g:clojure_align_multiline_strings = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
function! s:SynIdName()
|
||||||
|
return synIDattr(synID(line("."), col("."), 0), "name")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:CurrentChar()
|
||||||
|
return getline('.')[col('.')-1]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:CurrentWord()
|
||||||
|
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:IsParen()
|
||||||
|
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
|
||||||
|
\ s:SynIdName() !~? '\vstring|comment'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Returns 1 if string matches a pattern in 'patterns', which may be a
|
||||||
|
" list of patterns, or a comma-delimited string of implicitly anchored
|
||||||
|
" patterns.
|
||||||
|
function! s:MatchesOne(patterns, string)
|
||||||
|
let list = type(a:patterns) == type([])
|
||||||
|
\ ? a:patterns
|
||||||
|
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
|
||||||
|
for pat in list
|
||||||
|
if a:string =~ pat | return 1 | endif
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:SavePosition()
|
||||||
|
let [ _b, l, c, _o ] = getpos(".")
|
||||||
|
let b = bufnr("%")
|
||||||
|
return [b, l, c]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:RestorePosition(value)
|
||||||
|
let [b, l, c] = a:value
|
||||||
|
if bufnr("%") != b
|
||||||
|
execute b "buffer!"
|
||||||
|
endif
|
||||||
|
call setpos(".", [0, l, c, 0])
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:MatchPairs(open, close, stopat)
|
||||||
|
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
|
||||||
|
" comments.
|
||||||
|
if a:stopat == 0
|
||||||
|
let stopat = max([line(".") - g:clojure_maxlines, 0])
|
||||||
|
else
|
||||||
|
let stopat = a:stopat
|
||||||
|
endif
|
||||||
|
|
||||||
|
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
|
||||||
|
return [pos[0], virtcol(pos)]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:ClojureCheckForStringWorker()
|
||||||
|
" Check whether there is the last character of the previous line is
|
||||||
|
" highlighted as a string. If so, we check whether it's a ". In this
|
||||||
|
" case we have to check also the previous character. The " might be the
|
||||||
|
" closing one. In case the we are still in the string, we search for the
|
||||||
|
" opening ". If this is not found we take the indent of the line.
|
||||||
|
let nb = prevnonblank(v:lnum - 1)
|
||||||
|
|
||||||
|
if nb == 0
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
|
||||||
|
call cursor(nb, 0)
|
||||||
|
call cursor(0, col("$") - 1)
|
||||||
|
if s:SynIdName() !~? "string"
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" This will not work for a " in the first column...
|
||||||
|
if s:CurrentChar() == '"'
|
||||||
|
call cursor(0, col("$") - 2)
|
||||||
|
if s:SynIdName() !~? "string"
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
if s:CurrentChar() != '\\'
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
call cursor(0, col("$") - 1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
let p = searchpos('\(^\|[^\\]\)\zs"', 'bW')
|
||||||
|
|
||||||
|
if p != [0, 0]
|
||||||
|
return p[1] - 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
return indent(".")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:CheckForString()
|
||||||
|
let pos = s:SavePosition()
|
||||||
|
try
|
||||||
|
let val = s:ClojureCheckForStringWorker()
|
||||||
|
finally
|
||||||
|
call s:RestorePosition(pos)
|
||||||
|
endtry
|
||||||
|
return val
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:ClojureIsMethodSpecialCaseWorker(position)
|
||||||
|
" Find the next enclosing form.
|
||||||
|
call search('\S', 'Wb')
|
||||||
|
|
||||||
|
" Special case: we are at a '(('.
|
||||||
|
if s:CurrentChar() == '('
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
call cursor(a:position)
|
||||||
|
|
||||||
|
let nextParen = s:MatchPairs('(', ')', 0)
|
||||||
|
|
||||||
|
" Special case: we are now at toplevel.
|
||||||
|
if nextParen == [0, 0]
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
call cursor(nextParen)
|
||||||
|
|
||||||
|
call search('\S', 'W')
|
||||||
|
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
return 0
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:IsMethodSpecialCase(position)
|
||||||
|
let pos = s:SavePosition()
|
||||||
|
try
|
||||||
|
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
|
||||||
|
finally
|
||||||
|
call s:RestorePosition(pos)
|
||||||
|
endtry
|
||||||
|
return val
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! GetClojureIndent()
|
||||||
|
" Get rid of special case.
|
||||||
|
if line(".") == 1
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
" We have to apply some heuristics here to figure out, whether to use
|
||||||
|
" normal lisp indenting or not.
|
||||||
|
let i = s:CheckForString()
|
||||||
|
if i > -1
|
||||||
|
return i + !!g:clojure_align_multiline_strings
|
||||||
|
endif
|
||||||
|
|
||||||
|
call cursor(0, 1)
|
||||||
|
|
||||||
|
" Find the next enclosing [ or {. We can limit the second search
|
||||||
|
" to the line, where the [ was found. If no [ was there this is
|
||||||
|
" zero and we search for an enclosing {.
|
||||||
|
let paren = s:MatchPairs('(', ')', 0)
|
||||||
|
let bracket = s:MatchPairs('\[', '\]', paren[0])
|
||||||
|
let curly = s:MatchPairs('{', '}', bracket[0])
|
||||||
|
|
||||||
|
" In case the curly brace is on a line later then the [ or - in
|
||||||
|
" case they are on the same line - in a higher column, we take the
|
||||||
|
" curly indent.
|
||||||
|
if curly[0] > bracket[0] || curly[1] > bracket[1]
|
||||||
|
if curly[0] > paren[0] || curly[1] > paren[1]
|
||||||
|
return curly[1]
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If the curly was not chosen, we take the bracket indent - if
|
||||||
|
" there was one.
|
||||||
|
if bracket[0] > paren[0] || bracket[1] > paren[1]
|
||||||
|
return bracket[1]
|
||||||
|
endif
|
||||||
|
|
||||||
|
" There are neither { nor [ nor (, ie. we are at the toplevel.
|
||||||
|
if paren == [0, 0]
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Now we have to reimplement lispindent. This is surprisingly easy, as
|
||||||
|
" soon as one has access to syntax items.
|
||||||
|
"
|
||||||
|
" - Check whether we are in a special position after a word in
|
||||||
|
" g:clojure_special_indent_words. These are special cases.
|
||||||
|
" - Get the next keyword after the (.
|
||||||
|
" - If its first character is also a (, we have another sexp and align
|
||||||
|
" one column to the right of the unmatched (.
|
||||||
|
" - In case it is in lispwords, we indent the next line to the column of
|
||||||
|
" the ( + sw.
|
||||||
|
" - If not, we check whether it is last word in the line. In that case
|
||||||
|
" we again use ( + sw for indent.
|
||||||
|
" - In any other case we use the column of the end of the word + 2.
|
||||||
|
call cursor(paren)
|
||||||
|
|
||||||
|
if s:IsMethodSpecialCase(paren)
|
||||||
|
return paren[1] + &shiftwidth - 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" In case we are at the last character, we use the paren position.
|
||||||
|
if col("$") - 1 == paren[1]
|
||||||
|
return paren[1]
|
||||||
|
endif
|
||||||
|
|
||||||
|
" In case after the paren is a whitespace, we search for the next word.
|
||||||
|
normal! l
|
||||||
|
if s:CurrentChar() == ' '
|
||||||
|
normal! w
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If we moved to another line, there is no word after the (. We
|
||||||
|
" use the ( position for indent.
|
||||||
|
if line(".") > paren[0]
|
||||||
|
return paren[1]
|
||||||
|
endif
|
||||||
|
|
||||||
|
" We still have to check, whether the keyword starts with a (, [ or {.
|
||||||
|
" In that case we use the ( position for indent.
|
||||||
|
let w = s:CurrentWord()
|
||||||
|
if stridx('([{', w[0]) > -1
|
||||||
|
return paren[1]
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Test words without namespace qualifiers and leading reader macro
|
||||||
|
" metacharacters.
|
||||||
|
"
|
||||||
|
" e.g. clojure.core/defn and #'defn should both indent like defn.
|
||||||
|
let ww = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
|
||||||
|
|
||||||
|
if &lispwords =~ '\V\<' . ww . '\>'
|
||||||
|
return paren[1] + &shiftwidth - 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if g:clojure_fuzzy_indent
|
||||||
|
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
|
||||||
|
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
|
||||||
|
return paren[1] + &shiftwidth - 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
normal! W
|
||||||
|
if paren[0] < line(".")
|
||||||
|
return paren[1] + &shiftwidth - 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
normal! ge
|
||||||
|
return virtcol(".") + 1
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
setlocal indentexpr=GetClojureIndent()
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
" In case we have searchpairpos not available we fall back to
|
||||||
|
" normal lisp indenting.
|
||||||
|
setlocal indentexpr=
|
||||||
|
setlocal lisp
|
||||||
|
let b:undo_indent .= '| setlocal lisp<'
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Specially indented symbols from clojure.core and clojure.test.
|
||||||
|
"
|
||||||
|
" Clojure symbols are indented in the defn style when they:
|
||||||
|
"
|
||||||
|
" * Define vars and anonymous functions
|
||||||
|
" * Create new lexical scopes or scopes with altered environments
|
||||||
|
" * Create conditional branches from a predicate function or value
|
||||||
|
"
|
||||||
|
" The arglists for these functions are generally in the form of [x & body];
|
||||||
|
" Functions that accept a flat list of forms do not treat the first argument
|
||||||
|
" specially and hence are not indented specially.
|
||||||
|
|
||||||
|
" Definitions
|
||||||
|
setlocal lispwords=
|
||||||
|
setlocal lispwords+=bound-fn
|
||||||
|
setlocal lispwords+=def
|
||||||
|
setlocal lispwords+=definline
|
||||||
|
setlocal lispwords+=definterface
|
||||||
|
setlocal lispwords+=defmacro
|
||||||
|
setlocal lispwords+=defmethod
|
||||||
|
setlocal lispwords+=defmulti
|
||||||
|
setlocal lispwords+=defn
|
||||||
|
setlocal lispwords+=defn-
|
||||||
|
setlocal lispwords+=defonce
|
||||||
|
setlocal lispwords+=defprotocol
|
||||||
|
setlocal lispwords+=defrecord
|
||||||
|
setlocal lispwords+=defstruct
|
||||||
|
setlocal lispwords+=deftest " clojure.test
|
||||||
|
setlocal lispwords+=deftest- " clojure.test
|
||||||
|
setlocal lispwords+=deftype
|
||||||
|
setlocal lispwords+=extend
|
||||||
|
setlocal lispwords+=extend-protocol
|
||||||
|
setlocal lispwords+=extend-type
|
||||||
|
setlocal lispwords+=fn
|
||||||
|
setlocal lispwords+=ns
|
||||||
|
setlocal lispwords+=proxy
|
||||||
|
setlocal lispwords+=reify
|
||||||
|
setlocal lispwords+=set-test " clojure.test
|
||||||
|
|
||||||
|
" Binding forms
|
||||||
|
setlocal lispwords+=as->
|
||||||
|
setlocal lispwords+=binding
|
||||||
|
setlocal lispwords+=doall
|
||||||
|
setlocal lispwords+=dorun
|
||||||
|
setlocal lispwords+=doseq
|
||||||
|
setlocal lispwords+=dotimes
|
||||||
|
setlocal lispwords+=doto
|
||||||
|
setlocal lispwords+=for
|
||||||
|
setlocal lispwords+=if-let
|
||||||
|
setlocal lispwords+=let
|
||||||
|
setlocal lispwords+=letfn
|
||||||
|
setlocal lispwords+=locking
|
||||||
|
setlocal lispwords+=loop
|
||||||
|
setlocal lispwords+=testing " clojure.test
|
||||||
|
setlocal lispwords+=when-first
|
||||||
|
setlocal lispwords+=when-let
|
||||||
|
setlocal lispwords+=with-bindings
|
||||||
|
setlocal lispwords+=with-in-str
|
||||||
|
setlocal lispwords+=with-local-vars
|
||||||
|
setlocal lispwords+=with-open
|
||||||
|
setlocal lispwords+=with-precision
|
||||||
|
setlocal lispwords+=with-redefs
|
||||||
|
setlocal lispwords+=with-redefs-fn
|
||||||
|
setlocal lispwords+=with-test " clojure.test
|
||||||
|
|
||||||
|
" Conditional branching
|
||||||
|
setlocal lispwords+=case
|
||||||
|
setlocal lispwords+=cond->
|
||||||
|
setlocal lispwords+=cond->>
|
||||||
|
setlocal lispwords+=condp
|
||||||
|
setlocal lispwords+=if
|
||||||
|
setlocal lispwords+=if-not
|
||||||
|
setlocal lispwords+=when
|
||||||
|
setlocal lispwords+=when-not
|
||||||
|
setlocal lispwords+=while
|
||||||
|
|
||||||
|
" Exception handling
|
||||||
|
setlocal lispwords+=catch
|
||||||
|
setlocal lispwords+=try " For aesthetics when enclosing single line
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
||||||
|
unlet! s:save_cpo
|
||||||
|
|
||||||
|
" vim:sts=4 sw=4 et:
|
@@ -17,9 +17,9 @@ elseif exists("b:current_syntax")
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if version >= 600
|
if version >= 600
|
||||||
setlocal iskeyword=@,48-57,_,-,
|
setlocal iskeyword=@,48-57,_,-
|
||||||
else
|
else
|
||||||
set iskeyword=@,48-57,_,-,
|
set iskeyword=@,48-57,_,-
|
||||||
endif
|
endif
|
||||||
|
|
||||||
syn case ignore
|
syn case ignore
|
||||||
|
134
runtime/syntax/clojure.vim
Normal file
134
runtime/syntax/clojure.vim
Normal file
File diff suppressed because one or more lines are too long
@@ -25,10 +25,12 @@ else
|
|||||||
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*$" contains=helpStar
|
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*$" contains=helpStar
|
||||||
endif
|
endif
|
||||||
if has("conceal")
|
if has("conceal")
|
||||||
syn match helpBar contained "[|`]" conceal
|
syn match helpBar contained "|" conceal
|
||||||
|
syn match helpBacktick contained "`" conceal
|
||||||
syn match helpStar contained "\*" conceal
|
syn match helpStar contained "\*" conceal
|
||||||
else
|
else
|
||||||
syn match helpBar contained "[|`]"
|
syn match helpBar contained "|"
|
||||||
|
syn match helpBacktick contained "`"
|
||||||
syn match helpStar contained "\*"
|
syn match helpStar contained "\*"
|
||||||
endif
|
endif
|
||||||
syn match helpNormal "|.*====*|"
|
syn match helpNormal "|.*====*|"
|
||||||
@@ -38,7 +40,7 @@ syn match helpVim "Vim version [0-9.a-z]\+"
|
|||||||
syn match helpVim "VIM REFERENCE.*"
|
syn match helpVim "VIM REFERENCE.*"
|
||||||
syn match helpOption "'[a-z]\{2,\}'"
|
syn match helpOption "'[a-z]\{2,\}'"
|
||||||
syn match helpOption "'t_..'"
|
syn match helpOption "'t_..'"
|
||||||
syn match helpCommand "`[^` ]*`"hs=s+1,he=e-1 contains=helpBar
|
syn match helpCommand "`[^` ]*`"hs=s+1,he=e-1 contains=helpBacktick
|
||||||
syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
|
syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
|
||||||
syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
|
syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
|
||||||
if has("conceal")
|
if has("conceal")
|
||||||
@@ -150,6 +152,7 @@ syn sync minlines=40
|
|||||||
hi def link helpIgnore Ignore
|
hi def link helpIgnore Ignore
|
||||||
hi def link helpHyperTextJump Subtitle
|
hi def link helpHyperTextJump Subtitle
|
||||||
hi def link helpBar Ignore
|
hi def link helpBar Ignore
|
||||||
|
hi def link helpBacktick Ignore
|
||||||
hi def link helpStar Ignore
|
hi def link helpStar Ignore
|
||||||
hi def link helpHyperTextEntry String
|
hi def link helpHyperTextEntry String
|
||||||
hi def link helpHeadline Statement
|
hi def link helpHeadline Statement
|
||||||
|
Reference in New Issue
Block a user