dot_files/vim-plugins/bundle/xptemplate/doc/xpt/option.txt
2017-07-09 00:26:06 +03:00

354 lines
11 KiB
Text

*xpt-option*
==============================================================================
Table of Content ~
|g:xptemplate_always_show_pum|
|g:xptemplate_brace_complete|
|g:xptemplate_break_undo|
|g:xptemplate_bundle|
|g:xptemplate_close_pum|
|g:xptemplate_cwd_snippet|
|g:xptemplate_debug_log|
|g:xptemplate_highlight|
|g:xptemplate_highlight_nested|
|g:xptemplate_hook_before_cr|
|g:xptemplate_lib_filter|
|g:xptemplate_minimal_prefix|
|g:xptemplate_move_even_with_pum|
|g:xptemplate_ph_pum_accept_empty|
|g:xptemplate_pum_quick_back|
|g:xptemplate_pum_tab_nav|
|g:xptemplate_snippet_folders|
|g:xptemplate_strict|
|g:xptemplate_strip_left|
|g:xptemplate_vars|
*g:xptemplate_always_show_pum*
{default:0}
If set to 1, snippets is not triggered but popup menu shows even when
text user typed before cursor matches a snippet name.
For example, you have three snippets defined of names: "for", "forever"
and "forr". Typing "for<C-\>" results in a popup menu if
|g:xptemplate_always_show_pum| set to 1: >
for
|for |
|forloop |
|forr |
< Otherwise, "for<C-\>" triggers snippet "for".
See also: |g:xptemplate_key_force_pum|.
*g:xptemplate_brace_complete*
{default:1}
If set to 1, bracket characters are automatically expanded to bracket
pairs. For example typing "(" results in: >
( )
\______| cursor stops in mid of pairs of bracket
< "(", "[", "{", "'" and '"' are affected by this setting.
If set to string, only bracket or quote chars included in this setting
will be mapped. For example: >
let g:xptemplate_brace_complete = '([{'
< With this setting, quotes are not mapped.
*g:xptemplate_break_undo*
{default:0}
If set to 1, undo sequence will be broken with |i_CTRL-G_u| before
snippet triggered. This would help on rolling back when mistake was
made.
*g:xptemplate_bundle*
This option specifies what libraries will always be load to its file
type. For example: >
let g:xptemplate_bundle = 'javascript_jquery'
< This tells XPT to load jquery snippet to javascript language.
Or: >
let g:xptemplate_bundle = 'javascript_jquery,c_*'
< It tells XPT to load jquery, and all supplied library snippets for C
language.
Another way to load bundles is |g:XPTaddBundle()|.
*g:xptemplate_close_pum*
{default:0}
If set to 1, when trigger key(|g:xptemplate_key|) is pressed, before
doing anything, popup menu will be closed.
*g:xptemplate_cwd_snippet*
{default:0}
Set this to 1 to enable each vim buffer to automatically load file
".xpt.vim" from current working directory, as snippet file specific to
current directory( or project ).
Current ".xpt.vim" accepts only the most simple form of snippet, the
function call form: >
call XPTemplate( 'foo', '`foo^ says hello' )
<
*g:xptemplate_debug_log*
{default:''}
This option specifies whether and where to store debug log emitted
during xptemplate running. Unless you are a developer of xptempalte,
do not touch it.
Empty string disables any logging.
Non-empty string is interpreted as log file path. "~/" at start will
be replaced with "$HOME/".
Example: >
let g:xptemplate_debug_log = '~/.xpt.log'
<
*g:xptemplate_highlight*
{default:'next'}
Specifies which place holders are high lighted. The value of
|g:xptemplate_highlight| is a comma separated string.
Possible values are: "current", "following" and "next". Example: >
let g:xptemplate_highlight = 'following,next'
<
"current" lets XPTemplate highlight the place holder you are currently
editing. See |XPTcurrentPH|.
For example the first "i" in "for" snippet of C language: >
for ( i = 0; i < len; ++i ) {
\__________________________ highlighted
<
"following" lets XPTemplate highlight slave place holders which are
updated automatically. See |XPTfollowingPH|.
For example the second and third "i" in "for" snippet of C language: >
for ( i = 0; i < len; ++i ) {
\__________\________ highlighted
<
"next" lets XPTemplate highlight the place holders you are going to
edit. See |XPTnextItem|.
For example the "0" and "len" if "for" snippet of C language: >
for ( i = 0; i < len; ++i ) {
\______\\\_____________ highlighted
<
Set |g:xptemplate_highlight| to '' to disable highlight.
*g:xptemplate_highlight_nested*
{default:0}
If set to 1, highlight is also applied to outer snippet, not only the
deepest nested one. For example, If set to 1, the following positions
are highlighted: >
________________________| highlighted
_/ _/ ___/
for ( call( me ) = 0; call < len; call++ ) {
/* cursor */
~~~~~~~~~~~\__________________________| highlighted
}
< The first highlight position is from nested snippet "(". Others are
from outer snippet "for".
*g:xptemplate_hook_before_cr*
{default:''}
Add additional action before default xptemplate action when <CR>
pressed.
By default, xptemplate override key mapping of <CR>(local to
buffer)every time starting to applying a snippet. This might change
user prefered <CR> behavior if user has his own key mapping of <CR>
defined.
This conf let user to fix issues like this.
The following line in .vimrc appends "abc" every time <CR> pressed
during applying snippet: >
let g:xptemplate_hook_before_cr = 'abc'
<
And this appends current time every time <CR> pressed: >
fun! s:OutputDate()
return strftime('%c')
endfunction
inoremap <expr> <Plug>do_my_work <SID>OutputDate()
let g:xptemplate_hook_before_cr = '<Plug>do_my_work'
<
NOTE:
|g:xptemplate_hook_before_cr| does not accept <SID>.
And if you want to use <expr> mapping with
|g:xptemplate_hook_before_cr| , you need a in-the-middle
mapping like it does in the second example.
*g:xptemplate_lib_filter*
{default:.}
Value: unset: do not filter, load any snippet found.
string: regular expression.
list: list of regular expression.
If set, XPT loads only snippets(*.xpt.vim) from 'runtimepath' that
matches it or one of its elements.
NOTE: This option tries to match actual path of a snippet file.
Symbolic link would be resolved.
NOTE: Included snippet like "*/_common/common.xpt.vim" is essential
for other snippet to work thus it won't be affected by this
option.
For example: >
let g:xptemplate_lib_filter = [
\ '/my_snippets\>',
\ '/all_user_snippets/ftplugin/xml/' ]
< The above setting tells XPT to ignore snippet supplied by XPT but to
load only "*/my_snippets/ftplugin/*/*.xpt.vim", and use only "xml"
snippets from "*/all_user_snippets/ftplugin/xml/*.xpt.vim".
It would works the same as with: >
let g:xptemplate_lib_filter = '/my_snippets\>\|/all_user_snippets/ftplugin/xml/'
<
*g:xptemplate_minimal_prefix*
{default:0}
Posssible values: number or "full".
If set it to a number( N ), it means snippet is triggered( or pum
shows ) only when there are at least N |word| letters before cursor.
If set to "full", |g:xptemplate_key| searches for a snippet of name
matching exactly the word before cursor.
For example, you have only one snippet defined with name "xpt". The
following input will trigger "xpt" snippet, if
|g:xptemplate_minimal_prefix| set to 0 ( it also works with value 1 and
2, but not with 3 ): >
xp<C-\>
< "<C-\>" is the default trigger key.
If |g:xptemplate_minimal_prefix| set to "full", the above input can not
trigger "xpt" snippet.
*g:xptemplate_move_even_with_pum*
{default:0}
If set to 1, |g:xptemplate_nav_next| does not care whether pop up menu
shown or not. It will always move cursor to next item.
Otherwise, |g:xptemplate_nav_next| fall back to original mapping. This
could be helpfull for xpt working with supertab together.
*g:xptemplate_ph_pum_accept_empty*
{default:1}
When set to 1 popup menus for place holders accepts an empty input. So
when nothing typed pressing <Tab> closes the popup menu and sends the
cursor to the next place holder.
When not set <Tab> expands the text to the longest match and keeps the
popup menu open.
*g:xptemplate_pum_quick_back*
{default:1}
With popup menu, pressing "<BS>" removes minimal chars to reveil
more options.
If this is set to 0, pressing "<BS>" removes only 1 char.
For example, popup menu created with 3 options: >
"foo", "fooba", "foobar"
<
Typing "fooba" shrinks menu to: >
fooba
foobar
< Now pressing "<BS>" will remove 2 chars: "ba", and leave "foo", the
longest prefix that has 3 options.
Pressing "<BS>" again will remove "foo".
NOTE: Very large list might hang VIM for seconds. In this case set
this to 0 to get better performance.
This feature depends on a prefix dictionary of all of the
options. The prefix dictionary will be created every time
popup menu is called.
*g:xptemplate_pum_tab_nav*
{default:0}
Set to 1 to use <tab>/<S-tab>( shift + tab ) to navigate through pop
up menu. <tab> behaves like <C-n> and <S-tab> behaves like <C-p>. And
<CR> expands snippet.
*g:xptemplate_snippet_folders*
{default:[]}
NOTE: Unless you really want XPTemplate to touch your 'runtimepath',
do NOT use this. This setting changes 'runtimepath' and is
less recommended to use than 'runtimepath'. As you may already
know well about 'runtimepath' and 'ftplugin', it is better for
you to organize snippet files yourself, with 'runtimepath'.
A list to specify which other folders are used as snippet folders.
For example: >
let g:xptemplate_snippet_folders = [
\ $HOME . '/my_snippets',
\ '/all_user_snippets' ]
< Thus the snippet file "$HOME/my_snippets/ftplugin/c/my.c.xpt.vim" can
be loaded to C files.
And "/all_user_snippets/ftplugins/html/all.html.xpt.vim" can be loaded
to HTML files.
*g:xptemplate_strict*
{default:2}
Set to 0 to let XPTemplate do the best maintaining snippet rendering,
even if you have changed text outside of place holders.
Set to 1 to prevent incautious changing text outside place holders.
Otherwise you are free to change text outside of place holders.
Set to 2 to let XPTemplate stop rendering if ANY changes taken to text
outside of place holders.
Example : >
let g:xptemplate_strict = 1
<
*g:xptemplate_strip_left*
{default:1}
When set to 1 wrapper snippets |xpt-wrapper-snippet| remove space
before the first line.
*xpt-personal-var* *g:xptemplate_vars*
g:xptemplate_vars sets personal information variables used in
snippets, like "author" and "email", see |xpt-snippet-variable|.
Variables set with g:xptemplate_vars have the highest priority and
override any other variables set in *.xpt.vim. Syntax: >
let g:xptemplate_vars = 'name=value&name=value...'
< Example: >
let g:xptemplate_vars = '$author=xp\ \&\\\&123&$email=bal@bla'
let g:xptemplate_vars = 'author=xp\ \&\\\&123&email=bal@bla'
< Both the 2 lines above result in: >
'xp\ &\&123' and 'bal@bla'
< Or: >
let g:xptemplate_vars = exists('g:xptemplate_vars') ?
\ g:xptemplate_vars . '&' . '$other=bla'
\ : '$other=bla'
<
Entries are separated with '&'.
You can also set these settings in ftplugin/_common/personal.xpt.vim
in your runtime path using XPTvar |xpt-snippet-variable| (see also
|xpt-customize-variable|).
" vim: tw=78:ts=8:sw=8:sts=8:noet:ft=help:norl: