neosnippet.vim/doc/neocomplcache-snippets-complete.txt

368 lines
12 KiB
Plaintext
Raw Normal View History

2012-02-02 04:33:35 +00:00
*neocomplcache-snippets-complete-snippets-complete.txt*
neocomplcache complete snippets source
2012-03-14 01:13:13 +00:00
Version: 2.0
2012-02-02 04:33:35 +00:00
Author : Shougo <Shougo.Matsu@gmail.com>
License: MIT license {{{
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
}}}
CONTENTS *neocomplcache-snippets-complete-contents*
Introduction |neocomplcache-snippets-complete-introduction|
Install |neocomplcache-snippets-complete-install|
Interface |neocomplcache-snippets-complete-interface|
Commands |neocomplcache-snippets-complete-commands|
Variables |neocomplcache-snippets-complete-variables|
Key mappings |neocomplcache-snippets-complete-key-mappings|
Examples |neocomplcache-snippets-complete-examples|
Snippet syntax |neocomplcache-snippets-complete-snippet-syntax|
Changelog |neocomplcache-snippets-complete-changelog|
==============================================================================
INTRODUCTION *neocomplcache-snippets-complete-introduction*
2012-05-05 15:19:01 +00:00
This source analyzes snippet files for completion, offers functionality
similar to snipMate.vim or snippetsEmu.vim. Since you can choose snippet with
neocomplcache interface, you might have less trouble learning it.
2012-02-02 04:33:35 +00:00
==============================================================================
INSTALL *neocomplcache-snippets-complete-install*
2012-05-05 15:19:01 +00:00
1: Install neocomplcache (https://github.com/Shougo/neocomplcache).
2012-02-02 04:33:35 +00:00
2: Extract the file and put files in your Vim directory
(usually ~/.vim/ or Program Files/Vim/vimfiles on Windows).
==============================================================================
INTERFACE *neocomplcache-snippets-complete-interface*
------------------------------------------------------------------------------
COMMANDS *neocomplcache-snippets-complete-commands*
:NeoComplCacheCachingSnippets [filetype] *:NeoComplCacheCachingSnippets*
2012-05-05 15:19:01 +00:00
Caching [filetype] snippets.
Select current buffer's filetype when [filetype] was omitted.
2012-02-02 04:33:35 +00:00
:NeoComplCacheEditSnippets [filetype] *:NeoComplCacheEditSnippets*
2012-05-05 15:19:01 +00:00
Edit [filetype] snippets.
Select current buffer's filetype when [filetype] was omitted.
If [filetype] snippet file doesn't exist, create it
automatically.
This command edits a snippet file in
|g:neocomplcache_snippets_dir| with precedence.
Re-cache will be automatically done when you save the file.
2012-02-02 04:33:35 +00:00
:NeoComplCacheEditRuntimeSnippets [filetype] *:NeoComplCacheEditRuntimeSnippets*
2012-05-05 15:19:01 +00:00
Edit [filetype] snippets.
Select current buffer's filetype when [filetype] was omitted.
If [filetype] snippet file doesn't exist, create it
automatically.
This command edits a runtime snippet file with
snippets_complete.
Re-cache will be automatically done when you save the file.
2012-02-02 04:33:35 +00:00
------------------------------------------------------------------------------
VARIABLES *neocomplcache-snippets-complete-variables*
g:neocomplcache_snippets_dir *g:neocomplcache_snippets_dir*
2012-05-05 15:19:01 +00:00
This variable appoints a path to user-defined snippet files.
You can set multiple values in comma-serparted form.
If the directory doesn't exist, it is ignored.
User defined snippets were read after normal snippet files,
redundant snippets will be overwritten.
2012-05-05 09:08:56 +00:00
2012-05-05 15:19:01 +00:00
This variable doesn't exist unless you declare it.
2012-02-02 04:33:35 +00:00
g:neocomplcache_disable_select_mode_mappings *g:neocomplcache_disable_select_mode_mappings*
2012-05-05 15:19:01 +00:00
This variable controls whether to disable Key-mappings in
|Select-mode| when snippets_complete performs. Usually you
had better enable it.
2012-05-05 09:08:56 +00:00
2012-02-02 04:33:35 +00:00
Default value is 1.
g:neocomplcache_snippets_disable_runtime_snippets
*g:neocomplcache_snippets_disable_runtime_snippets*
If this variable is 1, runtime snippets isn't loaded.
This variable is useful to avoid conflicting snippets.
Default value is 0.
------------------------------------------------------------------------------
KEY MAPPINGS *neocomplcache-snippets-complete-key-mappings*
<Plug>(neocomplcache_snippets_expand) *<Plug>(neocomplcache_snippets_expand)*
2012-05-05 15:19:01 +00:00
Expand a cursor snippet of plural lines. When there is not a
snippet, jump to next placeholder.
2012-05-05 09:08:56 +00:00
2012-02-02 04:33:35 +00:00
Note: cursor snippet must be match keyword patterns.
For example if snippet name is ".", snippets_complete don't expand it.
If you expand snippet ".", Please use
|<Plug>(neocomplcache_snippets_force_expand)|.
<Plug>(neocomplcache_snippets_jump) *<Plug>(neocomplcache_snippets_jump)*
2012-05-05 15:19:01 +00:00
Jump to next placeholder. If there is no placeholder, expand a
multiline cursor snippet.
2012-02-02 04:33:35 +00:00
<Plug>(neocomplcache_snippets_force_expand) *<Plug>(neocomplcache_snippets_force_expand)*
2012-05-05 15:19:01 +00:00
Expand a cursor snippet. Does nothing if there is no snippet.
2012-02-02 04:33:35 +00:00
<Plug>(neocomplcache_snippets_force_jump) *<Plug>(neocomplcache_snippets_force_jump)*
2012-05-05 15:19:01 +00:00
Jump to next place holder. Do not expand any snippet. When
you do not want to expand a snippet name, use this keymapping.
2012-02-02 04:33:35 +00:00
2012-02-02 09:17:45 +00:00
<Plug>(neocomplcache_start_unite_snippet) *<Plug>(neocomplcache_start_unite_snippet)*
Start unite snippet source.
Note: This mappings is available in insert mode.
2012-02-02 04:33:35 +00:00
neocomplcache#sources#snippets_complete#expandable()
*neocomplcache#sources#snippets_complete#expandable()*
2012-05-05 15:37:03 +00:00
Use this function with imap <expr>. It checks whether cursor
text is snippets trigger or existing placeholder in current
buffer. Useful for saving keymappings.
2012-02-02 04:33:35 +00:00
Return value is
0 : not found
1 : cursor text is snippets trigger
2012-05-05 15:19:01 +00:00
2 : existing placeholder in current buffer
2012-02-02 04:33:35 +00:00
3 : both found.
>
2012-05-05 15:19:01 +00:00
imap <expr><C-l> neocomplcache#sources#snippets_complete#expandable() ?
\ "\<Plug>(neocomplcache_snippets_expand)" : "\<C-n>"
2012-02-02 04:33:35 +00:00
<
neocomplcache#sources#snippets_complete#force_expandable()
*neocomplcache#sources#snippets_complete#force_expandable()*
2012-05-05 15:37:03 +00:00
Use this function with imap <expr>. It checks whether cursor
2012-05-05 15:19:01 +00:00
text is snippets trigger. Useful for saving keymappings.
neocomplcache#sources#snippets_complete#jumpable()
*neocomplcache#sources#snippets_complete#jumpable()*
2012-05-05 15:37:03 +00:00
Use this function with imap <expr>. It checks whether cursor
text is an existing placeholder in current buffer.
2012-05-05 15:19:01 +00:00
Useful for saving keymappings.
2012-02-02 04:33:35 +00:00
==============================================================================
EXAMPLES *neocomplcache-snippets-complete-examples*
>
" Plugin key-mappings.
imap <C-k> <Plug>(neocomplcache_snippets_expand)
smap <C-k> <Plug>(neocomplcache_snippets_expand)
2012-05-05 09:08:56 +00:00
2012-02-02 04:33:35 +00:00
" SuperTab like snippets behavior.
"imap <expr><TAB> neocomplcache#sources#snippets_complete#expandable() ?
" \ "\<Plug>(neocomplcache_snippets_expand)" : pumvisible() ? "\<C-n>" : "\<TAB>"
2012-05-05 09:08:56 +00:00
2012-02-02 04:33:35 +00:00
" For snippet_complete marker.
if has('conceal')
set conceallevel=2 concealcursor=i
endif
<
==============================================================================
SNIPPET SYNTAX *neocomplcache-snippets-complete-snippet-syntax*
2012-02-02 04:33:35 +00:00
neocomplcache has built-in snippet feature. The snippet syntax resembles
|snipMate|.
Example:
>
snippet if
abbr if endif
prev_word '^'
if $<1:condition>
${2}
endif
<
2012-02-21 04:07:46 +00:00
snippet {snippet_name} syntax is the snippet name.
abbr {abbr_name} is the completion abbrevation (same to completion "abbr" key).
prev_word '^' means this snippet is enabled only in line head.
2012-05-05 15:19:01 +00:00
By the way, it is warned that the snippet name was already defined by other
snippet file. If you want to overwrite it explicitly, please use:
2012-02-02 04:33:35 +00:00
>
delete snippets_name
<
2012-05-05 15:19:01 +00:00
and redefine the snippet.
When including external files or other snippet file's snippets are overwrited,
you will not be warned.
2012-02-02 04:33:35 +00:00
Snippet include feature is available.
>
include c.snip
<
Eval snippet feature is available.
>
snippet hoge
prev_word '^'
`expand("%")`
<
2012-05-05 15:19:01 +00:00
If you use |:NeoComplCacheEditSnippets| command for easy snippet editing, the
file will be loaded automatically when you save the file.
2012-02-02 04:33:35 +00:00
2012-05-05 15:19:01 +00:00
Neocomplcache doesn't map snippet-expand key by default. If you want to use
snippet feature, you can define below mappings in your .vimrc:
2012-02-02 04:33:35 +00:00
>
imap <C-l> <Plug>(neocomplcache_snippets_expand)
smap <C-l> <Plug>(neocomplcache_snippets_expand)
<
2012-05-05 15:19:01 +00:00
2012-02-02 04:33:35 +00:00
Placeholder feature is available.
>
snippet if
abbr if endif
prev_word '^'
if ${1:condition}
${2}
endif
<
'_' snippet feature is supported. '_' snippet is loaded in all filetypes.
And neocomplcache can load snipMate snippets.
Alias feature is supported. Separator is ' ' or ','.
>
alias hoge hogera hogehoge
<
Synchronized placeholder feature is supported. $1 is synchronized to ${1}.
When you jump next, it is synchlonized. $0 is last jump placeholder.
2012-05-05 15:19:01 +00:00
The placeholder value can't contain new lines. Below snippet is illegal:
2012-02-02 04:33:35 +00:00
>
snippet test
${1:constructor: (${2:args\}) ->
${3:# do smth}}
<
Multi snippet feature is supported in snipMate.
neocomplcache substitutes trigger and descriptions spaces to '_'.
>
snippet trigger description1
hoge
snippet trigger description2
piyo
<
You choose snippet <C-n> or <C-p> and expand it with
|<Plug>(neocomplcache_snippets_expand)| key-mappings.
Nested placeholder feature is supported.
But must escape inner '}'. '\' is eacape sequence.
>
snippet div
<div ${1:id="${2:someid\}"}>${3}</div>${4}
<
2012-05-05 15:19:01 +00:00
If you use hard tab for indentation in snippet file, neocomplcache will use
'shiftwidth' instead of original Vim indent function. This feature is useful
while some languages' indent files can not work very well (e.g.: PHP).
2012-02-02 04:33:35 +00:00
>
snippet if
if (${1:/* condition */}) {
${2:// code...}
}
<
==============================================================================
UNITE SOURCES *neocomplcache-snippets-complete-unite-sources*
*neocomplcache-snippets-complete-unite-source-snippet*
snippet
2012-02-02 09:16:06 +00:00
The candidates are neocomplcache snippets. The kinds are "snippet".
2012-05-05 15:19:01 +00:00
Normally used in |<Plug>(neocomplcache_start_unite_snippet)| mappings.
But you can execute it by ":Unite snippet".
2012-02-02 09:16:06 +00:00
You can edit snippet file in "edit" action.
Examples:
2012-02-02 04:33:35 +00:00
>
2012-02-02 09:16:06 +00:00
imap <C-s> <Plug>(neocomplcache_start_unite_snippet)
2012-02-02 04:33:35 +00:00
<
source actions
snippet *neocomplcache-snippets-complete-unite-action-snippet*
2012-05-05 15:19:01 +00:00
expand Expand snippet (default action)
2012-02-02 04:33:35 +00:00
edit Edit snippet
preview View snippet definition
==============================================================================
CHANGELOG *neocomplcache-snippets-complete-changelog*
2012-04-05 00:53:52 +00:00
2012-04-05
- Fixed nested placeholder problem.
2012-03-23 03:14:13 +00:00
2012-03-23
- Fixed substitute pattern bug.
2012-03-18 15:56:24 +00:00
2012-03-19
- Fixed substitute marker.
2012-03-18 15:39:35 +00:00
2012-03-18
- Fixed for expandtab.
2012-03-17 13:53:56 +00:00
2012-03-17
- Fixed for echodoc.
2012-03-15 15:06:21 +00:00
2012-03-16
- Fixed snippets indentation.
2012-03-15
- Improved search snippet markers behavior.
2012-03-15 14:26:21 +00:00
- Don't conceal default codes.
2012-03-13 15:39:45 +00:00
2012-03-14
- Refactored expand snippet behavior.
2012-03-13 23:49:57 +00:00
- Fixed expand bug.
2012-03-14 00:35:41 +00:00
- Refactored substitute patterns.
2012-03-14 00:43:33 +00:00
- Changed marker patterns.
2012-03-13 15:39:45 +00:00
2012-03-08
- Use shiftwidth instead of softabstop.
2012-03-08 09:38:58 +00:00
- Fixed plugin indentation problem.
2012-03-06 23:19:01 +00:00
2012-03-07
- Added snippet source.
2012-03-06 23:39:08 +00:00
- Fixed snippet source behavior.
2012-03-07 01:05:00 +00:00
- Improved snippet source.
2012-03-06 23:19:01 +00:00
2012-03-06 08:04:37 +00:00
2012-03-06
- Improved ftplugin.
2012-03-03
- Added neocomplcache#sources#snippets_complete#force_expandable() and
neocomplcache#sources#snippets_complete#jumpable().
2012-02-25 14:05:10 +00:00
2012-02-25
- Improved split().
2012-02-24 04:42:12 +00:00
2012-02-24
- Improved a bit.
2012-02-22 03:59:57 +00:00
2012-02-22
- Fixed prev_word behavior.
2012-02-21 04:07:46 +00:00
2012-02-21
- Improved documentation.
2012-02-05 01:24:59 +00:00
2012-02-05
- Fixed variable name.
2012-02-02 04:33:35 +00:00
2012-02-02
- Initial version.
2012-02-02 09:16:06 +00:00
- Improved documentation.
2012-02-02 04:33:35 +00:00
==============================================================================
vim:tw=78:ts=8:ft=help:norl:noet:fen:fdl=0:noet: