mirror of
				https://github.com/amix/vimrc
				synced 2025-10-31 23:05:04 +08:00 
			
		
		
		
	Updated plugins
This commit is contained in:
		| @ -303,7 +303,6 @@ fu! s:match_window_opts() | |||||||
| 	let s:mw_res = | 	let s:mw_res = | ||||||
| 		\ s:mw =~ 'results:[^,]\+' ? str2nr(matchstr(s:mw, 'results:\zs\d\+')) | 		\ s:mw =~ 'results:[^,]\+' ? str2nr(matchstr(s:mw, 'results:\zs\d\+')) | ||||||
| 		\ : min([s:mw_max, &lines]) | 		\ : min([s:mw_max, &lines]) | ||||||
| 	let s:mw_res = max([s:mw_res, 1]) |  | ||||||
| endf | endf | ||||||
| "}}}1 | "}}}1 | ||||||
| " * Open & Close {{{1 | " * Open & Close {{{1 | ||||||
| @ -1995,9 +1994,14 @@ fu! s:bufnrfilpath(line) | |||||||
| 	en | 	en | ||||||
| 	let filpath = fnamemodify(filpath, ':p') | 	let filpath = fnamemodify(filpath, ':p') | ||||||
| 	let bufnr = bufnr('^'.filpath.'$') | 	let bufnr = bufnr('^'.filpath.'$') | ||||||
| 	if (a:line =~ '[\/]\?\[\d\+\*No Name\]$' && !filereadable(filpath) && bufnr < 1) | 	if (!filereadable(filpath) && bufnr < 1) | ||||||
|  | 		if (a:line =~ '[\/]\?\[\d\+\*No Name\]$') | ||||||
| 			let bufnr = str2nr(matchstr(a:line, '[\/]\?\[\zs\d\+\ze\*No Name\]$')) | 			let bufnr = str2nr(matchstr(a:line, '[\/]\?\[\zs\d\+\ze\*No Name\]$')) | ||||||
| 			let filpath = bufnr | 			let filpath = bufnr | ||||||
|  | 		else | ||||||
|  | 			let bufnr = bufnr(a:line) | ||||||
|  | 			retu [bufnr, a:line] | ||||||
|  | 		en | ||||||
| 	en | 	en | ||||||
| 	retu [bufnr, filpath] | 	retu [bufnr, filpath] | ||||||
| endf | endf | ||||||
|  | |||||||
| @ -137,8 +137,8 @@ fu! ctrlp#tag#id() | |||||||
| endf | endf | ||||||
|  |  | ||||||
| fu! ctrlp#tag#enter() | fu! ctrlp#tag#enter() | ||||||
| 	let tfs = tagfiles() | 	let tfs = get(g:, 'ctrlp_custom_tag_files', tagfiles()) | ||||||
| 	let s:tagfiles = tfs != [] ? filter(map(tfs, 'fnamemodify(v:val, ":p")'), | 	let s:tagfiles = type(tfs) == 3 && tfs != [] ? filter(map(tfs, 'fnamemodify(v:val, ":p")'), | ||||||
| 		\ 'filereadable(v:val)') : [] | 		\ 'filereadable(v:val)') : [] | ||||||
| endf | endf | ||||||
| "}}} | "}}} | ||||||
|  | |||||||
| @ -148,6 +148,7 @@ The minimum and maximum heights: | |||||||
|  |  | ||||||
| The maximum number of results: | The maximum number of results: | ||||||
|   results:{n} - list maximum {n} results (default: sync with max height). |   results:{n} - list maximum {n} results (default: sync with max height). | ||||||
|  |                 0 mean no-limit. | ||||||
|  |  | ||||||
| Note: When a setting isn't set, its default value will be used. | Note: When a setting isn't set, its default value will be used. | ||||||
|  |  | ||||||
| @ -1497,6 +1498,9 @@ Special thanks:~ | |||||||
| =============================================================================== | =============================================================================== | ||||||
| CHANGELOG                                                     *ctrlp-changelog* | CHANGELOG                                                     *ctrlp-changelog* | ||||||
|  |  | ||||||
|  |     * New option |g:ctrlp_custom_tag_files| to specify custom tag files. | ||||||
|  |     * Accept 0 for g:ctrlp_match_window no-limited window size. | ||||||
|  |  | ||||||
| Before 2016/11/28~ | Before 2016/11/28~ | ||||||
|  |  | ||||||
|     + New command: |YankLine()| to yank current line. |     + New command: |YankLine()| to yank current line. | ||||||
|  | |||||||
| @ -122,7 +122,7 @@ function! s:tranquilize() | |||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
| function! s:hide_statusline() | function! s:hide_statusline() | ||||||
|   let &l:statusline = repeat(' ', winwidth(0)) |   setlocal statusline=\  | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
| function! s:hide_linenr() | function! s:hide_linenr() | ||||||
| @ -239,7 +239,7 @@ function! s:goyo_on(dim) | |||||||
|   set showtabline=0 |   set showtabline=0 | ||||||
|   set noruler |   set noruler | ||||||
|   set fillchars+=vert:\  |   set fillchars+=vert:\  | ||||||
|   set fillchars+=stl:. |   set fillchars+=stl:\  | ||||||
|   set fillchars+=stlnc:\  |   set fillchars+=stlnc:\  | ||||||
|   set sidescroll=1 |   set sidescroll=1 | ||||||
|   set sidescrolloff=0 |   set sidescrolloff=0 | ||||||
|  | |||||||
| @ -301,10 +301,10 @@ endfunction | |||||||
| "FUNCTION: Path._escChars() {{{1 | "FUNCTION: Path._escChars() {{{1 | ||||||
| function! s:Path._escChars() | function! s:Path._escChars() | ||||||
|     if nerdtree#runningWindows() |     if nerdtree#runningWindows() | ||||||
|         return " `\|\"#%&,?()\*^<>" |         return " `\|\"#%&,?()\*^<>$" | ||||||
|     endif |     endif | ||||||
|  |  | ||||||
|     return " \\`\|\"#%&,?()\*^<>[]" |     return " \\`\|\"#%&,?()\*^<>[]$" | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
| "FUNCTION: Path.getDir() {{{1 | "FUNCTION: Path.getDir() {{{1 | ||||||
|  | |||||||
| @ -3226,7 +3226,7 @@ accepts the standard options described at |syntastic-config-makeprg|. | |||||||
|  |  | ||||||
| Notes~ | Notes~ | ||||||
|  |  | ||||||
| Syntastic requires "Flow" version 0.18.1 or later. | Syntastic requires "Flow" version 0.34.0 or later. | ||||||
|  |  | ||||||
| To use "Flow" with your projects, you must: | To use "Flow" with your projects, you must: | ||||||
|  |  | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ if has('reltime') | |||||||
|     lockvar! g:_SYNTASTIC_START |     lockvar! g:_SYNTASTIC_START | ||||||
| endif | endif | ||||||
|  |  | ||||||
| let g:_SYNTASTIC_VERSION = '3.8.0-10' | let g:_SYNTASTIC_VERSION = '3.8.0-21' | ||||||
| lockvar g:_SYNTASTIC_VERSION | lockvar g:_SYNTASTIC_VERSION | ||||||
|  |  | ||||||
| " Sanity checks {{{1 | " Sanity checks {{{1 | ||||||
| @ -67,6 +67,15 @@ else | |||||||
| endif | endif | ||||||
| lockvar g:_SYNTASTIC_UNAME | lockvar g:_SYNTASTIC_UNAME | ||||||
|  |  | ||||||
|  | " XXX Ugly hack to make g:_SYNTASTIC_UNAME available to :SyntasticInfo without | ||||||
|  | " polluting session namespaces | ||||||
|  | let g:syntastic_version = | ||||||
|  |     \ g:_SYNTASTIC_VERSION . | ||||||
|  |     \ ' (Vim ' . v:version . (has('nvim') ? ', Neovim' : '') . ', ' . | ||||||
|  |     \ g:_SYNTASTIC_UNAME . | ||||||
|  |     \ (has('gui') ? ', GUI' : '') . ')' | ||||||
|  | lockvar g:syntastic_version | ||||||
|  |  | ||||||
| " }}}1 | " }}}1 | ||||||
|  |  | ||||||
| " Defaults {{{1 | " Defaults {{{1 | ||||||
| @ -344,13 +353,6 @@ function! s:BufWinEnterHook(fname) abort " {{{2 | |||||||
| endfunction " }}}2 | endfunction " }}}2 | ||||||
|  |  | ||||||
| function! s:VimEnterHook() abort " {{{2 | function! s:VimEnterHook() abort " {{{2 | ||||||
|     let g:syntastic_version = |  | ||||||
|         \ g:_SYNTASTIC_VERSION . |  | ||||||
|         \ ' (Vim ' . v:version . (has('nvim') ? ', Neovim' : '') . ', ' . |  | ||||||
|         \ g:_SYNTASTIC_UNAME . |  | ||||||
|         \ (has('gui') ? ', GUI' : '') . ')' |  | ||||||
|     lockvar g:syntastic_version |  | ||||||
|  |  | ||||||
|     let buf = bufnr('') |     let buf = bufnr('') | ||||||
|     call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, |     call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, | ||||||
|         \ 'autocmd: VimEnter, buffer ' . buf . ' = ' . string(bufname(buf)) . ', &buftype = ' . string(&buftype)) |         \ 'autocmd: VimEnter, buffer ' . buf . ' = ' . string(bufname(buf)) . ', &buftype = ' . string(&buftype)) | ||||||
|  | |||||||
| @ -13,28 +13,58 @@ main([File]) -> | |||||||
|     %% `rebar.config` is looked for, |     %% `rebar.config` is looked for, | ||||||
|     %% but it is not necessarily the one in the project root. |     %% but it is not necessarily the one in the project root. | ||||||
|     %% I.e. it may be one deeper in the project file hierarchy. |     %% I.e. it may be one deeper in the project file hierarchy. | ||||||
|     RebarFile = rebar_file(Dir), |     Profile = which_compile_opts_profile(filename:absname(File)), | ||||||
|  |     CompileOpts = case which_build_tool(Dir, Profile) of | ||||||
|  |         {rebar, RebarFile} -> | ||||||
|             %% `rebar.config` might contain relative paths. |             %% `rebar.config` might contain relative paths. | ||||||
|             %% They are relative to the file! Not to the project root. |             %% They are relative to the file! Not to the project root. | ||||||
|     RebarOpts = rebar_opts(Dir ++ "/" ++ RebarFile), |             %% rebar specific begin | ||||||
|  |             rebar_opts(RebarFile); | ||||||
|  |             %% rebar specific end | ||||||
|  |         {erlangmk, ErlangMkDir} -> | ||||||
|  |             %% Erlang.mk specific begin | ||||||
|  |             erlangmk_opts(ErlangMkDir, Profile); | ||||||
|  |             %% Erlang.mk specific end | ||||||
|  |         undefined -> | ||||||
|  |             fallback_opts() | ||||||
|  |     end, | ||||||
|     code:add_patha(filename:absname("ebin")), |     code:add_patha(filename:absname("ebin")), | ||||||
|     %% `compile:file/2` requires the `{i, Path}` to be relative |     %% `compile:file/2` requires the `{i, Path}` to be relative | ||||||
|     %% to CWD - no surprise here. |     %% to CWD - no surprise here. | ||||||
|     compile:file(File, Defs ++ translate_paths(Dir, RebarOpts)); |     compile:file(File, Defs ++ translate_paths(Dir, CompileOpts)); | ||||||
|  |  | ||||||
| main(_) -> | main(_) -> | ||||||
|     io:format("Usage: ~s <file>~n", [escript:script_name()]), |     io:format("Usage: ~s <file>~n", [escript:script_name()]), | ||||||
|     halt(1). |     halt(1). | ||||||
|  |  | ||||||
| rebar_file(Dir) -> | which_compile_opts_profile(File) -> | ||||||
|     DirList = filename:split(Dir), |     case filename:basename(filename:dirname(File)) of | ||||||
|     case lists:last(DirList) of |         "test" -> test; | ||||||
|         "test" -> |         _      -> normal | ||||||
|             "rebar.test.config"; |  | ||||||
|         _ -> |  | ||||||
|             "rebar.config" |  | ||||||
|     end. |     end. | ||||||
|  |  | ||||||
|  | which_build_tool(Dir, Profile) -> | ||||||
|  |     %% rebar specific begin | ||||||
|  |     RebarFile = rebar_file(Dir, Profile), | ||||||
|  |     %% rebar specific end | ||||||
|  |     case filelib:is_file(RebarFile) of | ||||||
|  |         true -> | ||||||
|  |             {rebar, RebarFile}; | ||||||
|  |         false -> | ||||||
|  |             %% Erlang.mk specific begin | ||||||
|  |             ErlangMk = erlangmk_file(Dir), | ||||||
|  |             %% Erlang.mk specific end | ||||||
|  |             case filelib:is_file(ErlangMk) of | ||||||
|  |                 true  -> {erlangmk, Dir}; | ||||||
|  |                 false -> undefined | ||||||
|  |             end | ||||||
|  |     end. | ||||||
|  |  | ||||||
|  | rebar_file(Dir, normal) -> filename:join(Dir, "rebar.config"); | ||||||
|  | rebar_file(Dir, test)   -> filename:join(Dir, "rebar.test.config"). | ||||||
|  |  | ||||||
|  | erlangmk_file(Dir) -> filename:join(Dir, "erlang.mk"). | ||||||
|  |  | ||||||
| rebar_opts(RebarFile) -> | rebar_opts(RebarFile) -> | ||||||
|     Dir = get_root(filename:dirname(RebarFile)), |     Dir = get_root(filename:dirname(RebarFile)), | ||||||
|     case file:consult(RebarFile) of |     case file:consult(RebarFile) of | ||||||
| @ -54,6 +84,165 @@ rebar_opts(RebarFile) -> | |||||||
|             rebar_opts("rebar.config") |             rebar_opts("rebar.config") | ||||||
|     end. |     end. | ||||||
|  |  | ||||||
|  | erlangmk_opts(BaseDir, Profile) -> | ||||||
|  |     Make = | ||||||
|  |         case os:getenv("MAKE") of | ||||||
|  |             false -> | ||||||
|  |                 case os:find_executable("gmake") of | ||||||
|  |                     false -> "make"; | ||||||
|  |                     Path  -> Path | ||||||
|  |                 end; | ||||||
|  |             Cmd -> | ||||||
|  |                 case (lists:member($/, Cmd) orelse lists:member($\\, Cmd)) of | ||||||
|  |                     true  -> Cmd; | ||||||
|  |                     false -> os:find_executable(Cmd) | ||||||
|  |                 end | ||||||
|  |         end, | ||||||
|  |     ERLC_OPTS_Target = | ||||||
|  |         case Profile of | ||||||
|  |             normal -> "show-ERLC_OPTS"; | ||||||
|  |             test   -> "show-TEST_ERLC_OPTS" | ||||||
|  |         end, | ||||||
|  |     Args = [ | ||||||
|  |         "--no-print-directory", | ||||||
|  |         "-C", BaseDir, | ||||||
|  |         "show-ERL_LIBS", | ||||||
|  |         ERLC_OPTS_Target | ||||||
|  |     ], | ||||||
|  |     try | ||||||
|  |         Port = erlang:open_port({spawn_executable, Make}, [ | ||||||
|  |             {args, Args}, | ||||||
|  |             exit_status, use_stdio, stderr_to_stdout]), | ||||||
|  |         case erlangmk_port_receive_loop(Port, "", BaseDir) of | ||||||
|  |             {error, _} -> | ||||||
|  |                 fallback_opts(); | ||||||
|  |             {ok, {ErlLibs, ErlcOpts}} -> | ||||||
|  |                 [code:add_pathsa(filelib:wildcard( | ||||||
|  |                                    filename:join([ErlLib, "*", "ebin"]))) | ||||||
|  |                  || ErlLib <- ErlLibs], | ||||||
|  |                 ErlcOpts | ||||||
|  |         end | ||||||
|  |     catch | ||||||
|  |         error:_ -> | ||||||
|  |             fallback_opts() | ||||||
|  |     end. | ||||||
|  |  | ||||||
|  | erlangmk_port_receive_loop(Port, Stdout, BaseDir) -> | ||||||
|  |     receive | ||||||
|  |         {Port, {exit_status, 0}} -> | ||||||
|  |             erlangmk_format_opts(Stdout, BaseDir); | ||||||
|  |         {Port, {exit_status, _}} -> | ||||||
|  |             {error, {erlangmk, make_target_failure}}; | ||||||
|  |         {Port, {data, Out}} -> | ||||||
|  |             erlangmk_port_receive_loop(Port, Stdout ++ Out, BaseDir) | ||||||
|  |     end. | ||||||
|  |  | ||||||
|  | erlangmk_format_opts(Stdout, BaseDir) -> | ||||||
|  |     case string:tokens(Stdout, "\n") of | ||||||
|  |         [ErlLibsLine | ErlcOptsLines] -> | ||||||
|  |             ErlLibs = erlangmk_format_erl_libs(ErlLibsLine), | ||||||
|  |             ErlcOpts = erlangmk_format_erlc_opts(ErlcOptsLines, BaseDir), | ||||||
|  |             {ok, {ErlLibs, ErlcOpts}}; | ||||||
|  |         _ -> | ||||||
|  |             {error, {erlangmk, incorrect_output}} | ||||||
|  |     end. | ||||||
|  |  | ||||||
|  | erlangmk_format_erl_libs(ErlLibsLine) -> | ||||||
|  |     case os:type() of | ||||||
|  |         {win32, _} -> string:tokens(ErlLibsLine, ";"); | ||||||
|  |         _          -> string:tokens(ErlLibsLine, ":") | ||||||
|  |     end. | ||||||
|  |  | ||||||
|  | erlangmk_format_erlc_opts(ErlcOptsLines, BaseDir) -> | ||||||
|  |     erlangmk_format_erlc_opts(ErlcOptsLines, [], BaseDir). | ||||||
|  |  | ||||||
|  | erlangmk_format_erlc_opts(["+" ++ Option | Rest], Opts, BaseDir) -> | ||||||
|  |     case make_term(Option) of | ||||||
|  |         {error, _} -> erlangmk_format_erlc_opts(Rest, Opts, BaseDir); | ||||||
|  |         Opt        -> erlangmk_format_erlc_opts(Rest, [Opt | Opts], BaseDir) | ||||||
|  |     end; | ||||||
|  | erlangmk_format_erlc_opts(["-I" ++ Opt | Rest], Opts, BaseDir) | ||||||
|  |   when Opt =/= "" -> | ||||||
|  |     erlangmk_format_erlc_opts(["-I", Opt | Rest], Opts, BaseDir); | ||||||
|  | erlangmk_format_erlc_opts(["-I", [C | _] = Dir | Rest], Opts, BaseDir) | ||||||
|  |   when C =/= $- andalso C =/= $+ -> | ||||||
|  |     AbsDir = filename:absname(Dir, BaseDir), | ||||||
|  |     erlangmk_format_erlc_opts(Rest, [{i, AbsDir} | Opts], BaseDir); | ||||||
|  | erlangmk_format_erlc_opts(["-W" ++ Warn | Rest], Opts, BaseDir) | ||||||
|  |   when Warn =/= "" -> | ||||||
|  |     erlangmk_format_erlc_opts(["-W", Warn | Rest], Opts, BaseDir); | ||||||
|  | erlangmk_format_erlc_opts(["-W", Warn | Rest], Opts, BaseDir) -> | ||||||
|  |     case Warn of | ||||||
|  |         "all" -> | ||||||
|  |             erlangmk_format_erlc_opts(Rest, [{warn_format, 999} | Opts], | ||||||
|  |                 BaseDir); | ||||||
|  |         "error" -> | ||||||
|  |             erlangmk_format_erlc_opts(Rest, [warnings_as_errors | Opts], | ||||||
|  |                 BaseDir); | ||||||
|  |         "" -> | ||||||
|  |             erlangmk_format_erlc_opts(Rest, [{warn_format, 1} | Opts], | ||||||
|  |                 BaseDir); | ||||||
|  |         _ -> | ||||||
|  |             try list_to_integer(Warn) of | ||||||
|  |                 Level -> | ||||||
|  |                     erlangmk_format_erlc_opts(Rest, | ||||||
|  |                         [{warn_format, Level} | Opts], BaseDir) | ||||||
|  |             catch | ||||||
|  |                 error:badarg -> | ||||||
|  |                     erlangmk_format_erlc_opts(Rest, Opts, BaseDir) | ||||||
|  |             end | ||||||
|  |     end; | ||||||
|  | erlangmk_format_erlc_opts(["-D" ++ Opt | Rest], Opts, BaseDir) | ||||||
|  |   when Opt =/= "" -> | ||||||
|  |     erlangmk_format_erlc_opts(["-D", Opt | Rest], Opts, BaseDir); | ||||||
|  | erlangmk_format_erlc_opts(["-D", [C | _] = Val0 | Rest], Opts, BaseDir) | ||||||
|  |   when C =/= $- andalso C =/= $+ -> | ||||||
|  |     {Key0, Val1} = split_at_equals(Val0, []), | ||||||
|  |     Key = list_to_atom(Key0), | ||||||
|  |     case Val1 of | ||||||
|  |         [] -> | ||||||
|  |             erlangmk_format_erlc_opts(Rest, [{d, Key} | Opts], BaseDir); | ||||||
|  |         Val2 -> | ||||||
|  |             case make_term(Val2) of | ||||||
|  |                 {error, _} -> | ||||||
|  |                     erlangmk_format_erlc_opts(Rest, Opts, BaseDir); | ||||||
|  |                 Val -> | ||||||
|  |                     erlangmk_format_erlc_opts(Rest, [{d, Key, Val} | Opts], BaseDir) | ||||||
|  |             end | ||||||
|  |     end; | ||||||
|  | erlangmk_format_erlc_opts([PathFlag, [_ | _] = Dir | Rest], Opts, BaseDir) | ||||||
|  |   when PathFlag =:= "-pa" orelse PathFlag =:= "-pz" -> | ||||||
|  |     AbsDir = filename:absname(Dir, BaseDir), | ||||||
|  |     case PathFlag of | ||||||
|  |         "-pa" -> code:add_patha(AbsDir); | ||||||
|  |         "-pz" -> code:add_pathz(AbsDir) | ||||||
|  |     end, | ||||||
|  |     erlangmk_format_erlc_opts(Rest, Opts, BaseDir); | ||||||
|  | erlangmk_format_erlc_opts([_ | Rest], Opts, BaseDir) -> | ||||||
|  |     erlangmk_format_erlc_opts(Rest, Opts, BaseDir); | ||||||
|  | erlangmk_format_erlc_opts([], Opts, _) -> | ||||||
|  |     lists:reverse(Opts). | ||||||
|  |  | ||||||
|  | %% Function imported from erl_compile.erl from Erlang 19.1. | ||||||
|  | make_term(Str) -> | ||||||
|  |     case erl_scan:string(Str) of | ||||||
|  |         {ok, Tokens, _} -> | ||||||
|  |             case erl_parse:parse_term(Tokens ++ [{dot, 1}]) of | ||||||
|  |                 {ok, Term}      -> Term; | ||||||
|  |                 {error, Reason} -> {error, Reason} | ||||||
|  |             end; | ||||||
|  |         {error, Reason, _} -> | ||||||
|  |             {error, Reason} | ||||||
|  |     end. | ||||||
|  |  | ||||||
|  | %% Function imported from erl_compile.erl from Erlang 19.1. | ||||||
|  | split_at_equals([$=|T], Acc) -> | ||||||
|  |     {lists:reverse(Acc),T}; | ||||||
|  | split_at_equals([H|T], Acc) -> | ||||||
|  |     split_at_equals(T, [H|Acc]); | ||||||
|  | split_at_equals([], Acc) -> | ||||||
|  |     {lists:reverse(Acc),[]}. | ||||||
|  |  | ||||||
| fallback_opts() -> | fallback_opts() -> | ||||||
|     code:add_pathsa(filelib:wildcard("deps/*/ebin")), |     code:add_pathsa(filelib:wildcard("deps/*/ebin")), | ||||||
|     code:add_pathsa(nested_app_ebins()), |     code:add_pathsa(nested_app_ebins()), | ||||||
|  | |||||||
| @ -32,9 +32,12 @@ function! SyntaxCheckers_haxe_haxe_GetLocList() dict | |||||||
|  |  | ||||||
|     if hxml !=# '' |     if hxml !=# '' | ||||||
|         let makeprg = self.makeprgBuild({ |         let makeprg = self.makeprgBuild({ | ||||||
|             \ 'fname': syntastic#util#shescape(fnamemodify(hxml, ':t')) }) |             \ 'fname': syntastic#util#shescape(fnamemodify(hxml, ':t')), | ||||||
|  |             \ 'args_after' :  ['--no-output'] }) | ||||||
|  |  | ||||||
|         let errorformat = '%E%f:%l: characters %c-%n : %m' |         let errorformat = | ||||||
|  |             \ '%W%f:%l: characters %c-%n : Warning : %m,' . | ||||||
|  |             \ '%E%f:%l: characters %c-%n : %m' | ||||||
|  |  | ||||||
|         let loclist = SyntasticMake({ |         let loclist = SyntasticMake({ | ||||||
|             \ 'makeprg': makeprg, |             \ 'makeprg': makeprg, | ||||||
|  | |||||||
| @ -25,7 +25,7 @@ function! SyntaxCheckers_javascript_flow_IsAvailable() dict | |||||||
|     if !executable(self.getExec()) |     if !executable(self.getExec()) | ||||||
|         return 0 |         return 0 | ||||||
|     endif |     endif | ||||||
|     return syntastic#util#versionIsAtLeast(self.getVersion(self.getExecEscaped() . ' version'), [0, 18, 1]) |     return syntastic#util#versionIsAtLeast(self.getVersion(self.getExecEscaped() . ' version'), [0, 34]) | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
| function! SyntaxCheckers_javascript_flow_GetLocList() dict | function! SyntaxCheckers_javascript_flow_GetLocList() dict | ||||||
| @ -34,8 +34,8 @@ function! SyntaxCheckers_javascript_flow_GetLocList() dict | |||||||
|     endif |     endif | ||||||
|  |  | ||||||
|     let makeprg = self.makeprgBuild({ |     let makeprg = self.makeprgBuild({ | ||||||
|         \ 'exe': self.getExecEscaped() . ' check', |         \ 'exe': self.getExecEscaped() . ' status', | ||||||
|         \ 'args_after': '--show-all-errors --json' }) |         \ 'args_after': '--quiet --show-all-errors --json' }) | ||||||
|  |  | ||||||
|     let errorformat = |     let errorformat = | ||||||
|         \ '%f:%l:%c:%n: %m,' . |         \ '%f:%l:%c:%n: %m,' . | ||||||
|  | |||||||
| @ -24,9 +24,12 @@ function! SyntaxCheckers_vala_valac_GetHighlightRegex(pos) " {{{1 | |||||||
| endfunction " }}}1 | endfunction " }}}1 | ||||||
|  |  | ||||||
| function! SyntaxCheckers_vala_valac_GetLocList() dict " {{{1 | function! SyntaxCheckers_vala_valac_GetLocList() dict " {{{1 | ||||||
|     let vala_pkg_args = join(map(s:GetValaModules(), '"--pkg ".v:val'), ' ') |     let buf = bufnr('') | ||||||
|     let vala_vapi_args = join(map(s:GetValaVapiDirs(), '"--vapidir ".v:val'), ' ') |     let makeprg = self.makeprgBuild({ | ||||||
|     let makeprg = self.makeprgBuild({ 'args': '-C ' . vala_pkg_args . ' ' . vala_vapi_args }) |             \ 'args': '-C ' . | ||||||
|  |             \   s:GetValaOpts(buf, 'modules',   'modules',  '--pkg') . ' ' . | ||||||
|  |             \   s:GetValaOpts(buf, 'vapi_dirs', 'vapidirs', '--vapidir'), | ||||||
|  |         \ }) | ||||||
|  |  | ||||||
|     let errorformat = |     let errorformat = | ||||||
|         \ '%A%f:%l.%c-%\d%\+.%\d%\+: %t%[a-z]%\+: %m,'. |         \ '%A%f:%l.%c-%\d%\+.%\d%\+: %t%[a-z]%\+: %m,'. | ||||||
| @ -40,38 +43,27 @@ endfunction " }}}1 | |||||||
|  |  | ||||||
| " Utilities {{{1 | " Utilities {{{1 | ||||||
|  |  | ||||||
| function! s:GetValaModules() " {{{2 | function! s:GetValaOpts(buf, name, comment, cmd) " {{{2 | ||||||
|     if exists('g:syntastic_vala_modules') || exists('b:syntastic_vala_modules') |     let var = syntastic#util#var('vala_' . a:name) | ||||||
|         let modules = syntastic#util#var('vala_modules') |     if type(var) == type([]) | ||||||
|         if type(modules) == type('') |         let opts = map(copy(var), 'syntastic#util#shescape(v:val)') | ||||||
|             return split(modules, '\m\s\+') |     elseif type(var) == type('') | ||||||
|         elseif type(modules) == type([]) |         if var !=# '' | ||||||
|             return copy(modules) |             let opts = split(var, '\s\+') | ||||||
|         else |         else | ||||||
|             echoerr 'syntastic_vala_modules must be either list or string: fallback to in file modules string' |             let opts = [] | ||||||
|         endif |             for line in filter(getbufline(a:buf, 1, 100), 'v:val =~# ' . string('\m^//\s\+' . a:comment . ':\s*')) | ||||||
|     endif |                 call extend(opts, split( matchstr(line, '\m^//\s\+' . a:comment . ':\s*\zs.*'), '\s\+' )) | ||||||
|  |             endfor | ||||||
|  |  | ||||||
|     let modules_line = search('^// modules: ', 'n') |             call map( filter(opts, 'v:val !=# ""'), 'syntastic#util#shescape(v:val)' ) | ||||||
|     let modules_str = getline(modules_line) |         endif | ||||||
|     return split(strpart(modules_str, 12), '\m\s\+') |  | ||||||
| endfunction " }}}2 |  | ||||||
|  |  | ||||||
| function! s:GetValaVapiDirs() " {{{2 |  | ||||||
|     if exists('g:syntastic_vala_vapi_dirs') || exists('b:syntastic_vala_vapi_dirs') |  | ||||||
|         let vapi_dirs = syntastic#util#var('vala_vapi_dirs') |  | ||||||
|         if type(vapi_dirs) == type('') |  | ||||||
|             return split(vapi_dirs, '\m\s\+') |  | ||||||
|         elseif type(vapi_dirs) == type([]) |  | ||||||
|             return copy(vapi_dirs) |  | ||||||
|     else |     else | ||||||
|             echoerr 'syntastic_vala_vapi_dirs must be either a list, or a string: fallback to in-file modules string' |         call syntastic#log#error('syntastic_vala_' . a:name . ' must be either a list, or a string') | ||||||
|         endif |         return '' | ||||||
|     endif |     endif | ||||||
|  |  | ||||||
|     let vapi_line = search('^//\s*vapidirs:\s*','n') |     return join(map(opts, string(a:cmd . ' ') . ' . v:val')) | ||||||
|     let vapi_str = getline(vapi_line) |  | ||||||
|     return split( substitute( vapi_str, '\m^//\s*vapidirs:\s*', '', 'g' ), '\m\s\+' ) |  | ||||||
| endfunction " }}}2 | endfunction " }}}2 | ||||||
|  |  | ||||||
| " }}}1 | " }}}1 | ||||||
|  | |||||||
| @ -18,7 +18,7 @@ setlocal indentexpr=GetCoffeeHtmlIndent(v:lnum) | |||||||
|  |  | ||||||
| function! GetCoffeeHtmlIndent(curlinenum) | function! GetCoffeeHtmlIndent(curlinenum) | ||||||
|   " See if we're inside a coffeescript block. |   " See if we're inside a coffeescript block. | ||||||
|   let scriptlnum = searchpair('<script [^>]*type="text/coffeescript"[^>]*>', '', |   let scriptlnum = searchpair('<script [^>]*type=[''"]\?text/coffeescript[''"]\?[^>]*>', '', | ||||||
|   \                           '</script>', 'bWn') |   \                           '</script>', 'bWn') | ||||||
|   let prevlnum = prevnonblank(a:curlinenum) |   let prevlnum = prevnonblank(a:curlinenum) | ||||||
|  |  | ||||||
|  | |||||||
| @ -9,7 +9,7 @@ endif | |||||||
|  |  | ||||||
| " Syntax highlighting for text/coffeescript script tags | " Syntax highlighting for text/coffeescript script tags | ||||||
| syn include @htmlCoffeeScript syntax/coffee.vim | syn include @htmlCoffeeScript syntax/coffee.vim | ||||||
| syn region coffeeScript start=#<script [^>]*type="text/coffeescript"[^>]*># | syn region coffeeScript start=#<script [^>]*type=['"]\?text/coffeescript['"]\?[^>]*># | ||||||
| \                       end=#</script>#me=s-1 keepend | \                       end=#</script>#me=s-1 keepend | ||||||
| \                       contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc | \                       contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc | ||||||
| \                       containedin=htmlHead | \                       containedin=htmlHead | ||||||
|  | |||||||
| @ -4,4 +4,14 @@ | |||||||
|       def: 42 |       def: 42 | ||||||
|     } |     } | ||||||
|   </script> |   </script> | ||||||
|  |   <script type='text/coffeescript'> | ||||||
|  |     abc = { | ||||||
|  |       def: 42 | ||||||
|  |     } | ||||||
|  |   </script> | ||||||
|  |   <script type=text/coffeescript> | ||||||
|  |     abc = { | ||||||
|  |       def: 42 | ||||||
|  |     } | ||||||
|  |   </script> | ||||||
| </head> | </head> | ||||||
|  | |||||||
| @ -195,7 +195,7 @@ function! fugitive#detect(path) abort | |||||||
|       nnoremap <buffer> <silent> y<C-G> :call setreg(v:register, <SID>recall())<CR> |       nnoremap <buffer> <silent> y<C-G> :call setreg(v:register, <SID>recall())<CR> | ||||||
|     endif |     endif | ||||||
|     let buffer = fugitive#buffer() |     let buffer = fugitive#buffer() | ||||||
|     if expand('%:p') =~# '//' |     if expand('%:p') =~# '://' | ||||||
|       call buffer.setvar('&path', s:sub(buffer.getvar('&path'), '^\.%(,|$)', '')) |       call buffer.setvar('&path', s:sub(buffer.getvar('&path'), '^\.%(,|$)', '')) | ||||||
|     endif |     endif | ||||||
|     if stridx(buffer.getvar('&tags'), escape(b:git_dir, ', ')) == -1 |     if stridx(buffer.getvar('&tags'), escape(b:git_dir, ', ')) == -1 | ||||||
| @ -700,7 +700,11 @@ function! s:Git(bang, args) abort | |||||||
|   let args = matchstr(a:args,'\v\C.{-}%($|\\@<!%(\\\\)*\|)@=') |   let args = matchstr(a:args,'\v\C.{-}%($|\\@<!%(\\\\)*\|)@=') | ||||||
|   if exists(':terminal') |   if exists(':terminal') | ||||||
|     let dir = s:repo().tree() |     let dir = s:repo().tree() | ||||||
|  |     if expand('%') != '' | ||||||
|       -tabedit % |       -tabedit % | ||||||
|  |     else | ||||||
|  |       -tabnew | ||||||
|  |     endif | ||||||
|     execute 'lcd' fnameescape(dir) |     execute 'lcd' fnameescape(dir) | ||||||
|     execute 'terminal' git args |     execute 'terminal' git args | ||||||
|   else |   else | ||||||
| @ -2295,9 +2299,9 @@ function! s:Browse(bang,line1,count,...) abort | |||||||
|  |  | ||||||
|     if empty(remote) |     if empty(remote) | ||||||
|       let remote = '.' |       let remote = '.' | ||||||
|       let raw = s:repo().git_chomp('config','remote.origin.url') |       let raw = s:repo().git_chomp('remote','get-url','origin') | ||||||
|     else |     else | ||||||
|       let raw = s:repo().git_chomp('config','remote.'.remote.'.url') |       let raw = s:repo().git_chomp('remote','get-url',remote) | ||||||
|     endif |     endif | ||||||
|     if raw ==# '' |     if raw ==# '' | ||||||
|       let raw = remote |       let raw = remote | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								sources_non_forked/vim-go/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								sources_non_forked/vim-go/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,2 +1,6 @@ | |||||||
| doc/tags | doc/tags | ||||||
| .DS_Store | .DS_Store | ||||||
|  |  | ||||||
|  | # Test specific files | ||||||
|  | FAILED | ||||||
|  | test.log | ||||||
|  | |||||||
							
								
								
									
										22
									
								
								sources_non_forked/vim-go/.travis.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								sources_non_forked/vim-go/.travis.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | language: go | ||||||
|  |  | ||||||
|  | env: | ||||||
|  |   global: | ||||||
|  |     - DEPS=$HOME/deps | ||||||
|  |     - PATH=$DEPS/bin:$PATH | ||||||
|  |     - PATCH="v8.0.0134" | ||||||
|  |  | ||||||
|  | install: | | ||||||
|  |   git config --global user.email "you@example.com" | ||||||
|  |   git config --global user.name "Your Name" | ||||||
|  |  | ||||||
|  |   # check out if we can pre-compiled Vim releases somehow, | ||||||
|  |   git clone --branch $PATCH --depth 1 https://github.com/vim/vim | ||||||
|  |   cd vim | ||||||
|  |   ./configure --prefix=$DEPS --with-features=huge --disable-gui | ||||||
|  |   make | ||||||
|  |   make install | ||||||
|  |   cd - | ||||||
|  |  | ||||||
|  | script: ./scripts/test.sh | ||||||
|  |  | ||||||
| @ -1,7 +1,33 @@ | |||||||
| ## 1.11 - Unplanned | ## unplanned | ||||||
|  |  | ||||||
| FEATURES: | FEATURES: | ||||||
|  |  | ||||||
|  | * Add new `errl` snippet that expands to [gh-1185]: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | if err != nil { | ||||||
|  | 	log.Fatal(err) | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | IMPROVEMENTS: | ||||||
|  |  | ||||||
|  | * Lowercase `<Leader>` in mappings examples for consisten documentation across the README [gh-1192] | ||||||
|  | * All of files should be written in utf-8 if the file will be passed to external command. [gh-1184] | ||||||
|  |  | ||||||
|  | BUG FIXES: | ||||||
|  |  | ||||||
|  | * Honor `g:go_echo_command_info` when dispatching builds in neovim [gh-1176] | ||||||
|  | * Fix `:GoBuild` error in neovim due to invalid jobcontrol handler function signatures (`s:on_stdout`, `s:on_stderr`)[gh-1176] | ||||||
|  | * Update statusline before and after `go#jobcontrol#Spawn` command is executed [gh-1176] | ||||||
|  | * Correctly report the value of the 'g:go_guru_tags' variable [gh-1177] | ||||||
|  | * Ensure no trailing `:` exist in GOPATH detection if initial GOPATH is not set [gh-1194] | ||||||
|  |  | ||||||
|  | ## 1.11 - (January 9, 2017) | ||||||
|  |  | ||||||
|  | FEATURES: | ||||||
|  |  | ||||||
|  | * Travis test integration has been added. Now any file that is added as `<name>_test.vim` will be automatically tested in for every Pull Request (just like how we add tests to Go with `_test.go`). Going forward this will tremendously increase the stability and decrease the maintaince burden of vim-go. [gh-1157] | ||||||
| * Add new `g:go_updatetime` setting to change the default updatetime (which was hardcoded previously) [gh-1055] | * Add new `g:go_updatetime` setting to change the default updatetime (which was hardcoded previously) [gh-1055] | ||||||
| * Add new `g:go_template_use_pkg` setting to enable to use cwd as package name instead of basic template file [gh-1124] | * Add new `g:go_template_use_pkg` setting to enable to use cwd as package name instead of basic template file [gh-1124] | ||||||
|  |  | ||||||
| @ -9,6 +35,8 @@ IMPROVEMENTS: | |||||||
|  |  | ||||||
| * Add `statusline` support for `:GoMetaLinter` [gh-1120] | * Add `statusline` support for `:GoMetaLinter` [gh-1120] | ||||||
| * Quickfix and Location lists contain now a descriptive title (requires at least Vim `7.4.2200`)[gh-1004] | * Quickfix and Location lists contain now a descriptive title (requires at least Vim `7.4.2200`)[gh-1004] | ||||||
|  | * Check `go env GOPATH` as well for `:GoInstallBinaries` as Go has now a default path for GOPATH ("~/go")starting with 1.8 [gh-1152] | ||||||
|  | * `:GoDocBrowser` now also works on import paths [gh-1174] | ||||||
|  |  | ||||||
| BUG FIXES: | BUG FIXES: | ||||||
|  |  | ||||||
| @ -24,6 +52,22 @@ BUG FIXES: | |||||||
| * Fix referencing a non defined variable for async commands when bang (!) was used | * Fix referencing a non defined variable for async commands when bang (!) was used | ||||||
| * Fix `:GoDef` failing for a modified buffer if `hidden` was not set [gh-1132] | * Fix `:GoDef` failing for a modified buffer if `hidden` was not set [gh-1132] | ||||||
| * Fix `:GoDefStack` to allow popping from jump list when buffer is modified [gh-1133] | * Fix `:GoDefStack` to allow popping from jump list when buffer is modified [gh-1133] | ||||||
|  | * Improve internal defining of functions and referencing them for async operations [gh-1155] | ||||||
|  | * Fix `:GoMetaLinter` failing if `go_metalinter_command` is set. [gh-1160] | ||||||
|  | * Fix `:GoMetaLinter`'s `go_metalinter_deadline` setting for async mode [gh-1146] | ||||||
|  |  | ||||||
|  | BACKWARDS INCOMPATIBILITIES: | ||||||
|  |  | ||||||
|  | * The following syntax options are now disabled by default. If you're using them be sure to set them in your .vimrc [gh-1167] | ||||||
|  |  | ||||||
|  | ```viml | ||||||
|  | g:go_highlight_array_whitespace_error | ||||||
|  | g:go_highlight_chan_whitespace_error | ||||||
|  | g:go_highlight_extra_types | ||||||
|  | g:go_highlight_space_tab_error | ||||||
|  | g:go_highlight_trailing_whitespace_error | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## 1.10 (November 24, 2016) | ## 1.10 (November 24, 2016) | ||||||
|  | |||||||
							
								
								
									
										7
									
								
								sources_non_forked/vim-go/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								sources_non_forked/vim-go/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | all: test | ||||||
|  |  | ||||||
|  | test: | ||||||
|  | 	@echo "==> Running tests" | ||||||
|  | 	@./scripts/test.sh | ||||||
|  |  | ||||||
|  | .PHONY: all test | ||||||
| @ -1,4 +1,4 @@ | |||||||
| # vim-go | # vim-go [](https://travis-ci.org/fatih/vim-go)  | ||||||
|  |  | ||||||
| <p align="center"> | <p align="center"> | ||||||
|   <img style="float: right;" src="assets/vim-go.png" alt="Vim-go logo"/> |   <img style="float: right;" src="assets/vim-go.png" alt="Vim-go logo"/> | ||||||
| @ -137,43 +137,43 @@ current buffer. You can also open the definition/declaration, in a new vertical, | |||||||
| horizontal, or tab, for the word under your cursor: | horizontal, or tab, for the word under your cursor: | ||||||
|  |  | ||||||
| ```vim | ```vim | ||||||
| au FileType go nmap <Leader>ds <Plug>(go-def-split) | au FileType go nmap <leader>ds <Plug>(go-def-split) | ||||||
| au FileType go nmap <Leader>dv <Plug>(go-def-vertical) | au FileType go nmap <leader>dv <Plug>(go-def-vertical) | ||||||
| au FileType go nmap <Leader>dt <Plug>(go-def-tab) | au FileType go nmap <leader>dt <Plug>(go-def-tab) | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Open the relevant Godoc for the word under the cursor with `<leader>gd` or open | Open the relevant Godoc for the word under the cursor with `<leader>gd` or open | ||||||
| it vertically with `<leader>gv` | it vertically with `<leader>gv` | ||||||
|  |  | ||||||
| ```vim | ```vim | ||||||
| au FileType go nmap <Leader>gd <Plug>(go-doc) | au FileType go nmap <leader>gd <Plug>(go-doc) | ||||||
| au FileType go nmap <Leader>gv <Plug>(go-doc-vertical) | au FileType go nmap <leader>gv <Plug>(go-doc-vertical) | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Or open the Godoc in browser | Or open the Godoc in browser | ||||||
|  |  | ||||||
| ```vim | ```vim | ||||||
| au FileType go nmap <Leader>gb <Plug>(go-doc-browser) | au FileType go nmap <leader>gb <Plug>(go-doc-browser) | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Show a list of interfaces which is implemented by the type under your cursor | Show a list of interfaces which is implemented by the type under your cursor | ||||||
| with `<leader>s` | with `<leader>s` | ||||||
|  |  | ||||||
| ```vim | ```vim | ||||||
| au FileType go nmap <Leader>s <Plug>(go-implements) | au FileType go nmap <leader>s <Plug>(go-implements) | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Show type info for the word under your cursor with `<leader>i` (useful if you | Show type info for the word under your cursor with `<leader>i` (useful if you | ||||||
| have disabled auto showing type info via `g:go_auto_type_info`) | have disabled auto showing type info via `g:go_auto_type_info`) | ||||||
|  |  | ||||||
| ```vim | ```vim | ||||||
| au FileType go nmap <Leader>i <Plug>(go-info) | au FileType go nmap <leader>i <Plug>(go-info) | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Rename the identifier under the cursor to a new name | Rename the identifier under the cursor to a new name | ||||||
|  |  | ||||||
| ```vim | ```vim | ||||||
| au FileType go nmap <Leader>e <Plug>(go-rename) | au FileType go nmap <leader>e <Plug>(go-rename) | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| More `<Plug>` mappings can be seen with `:he go-mappings`. Also these are just | More `<Plug>` mappings can be seen with `:he go-mappings`. Also these are just | ||||||
| @ -245,8 +245,8 @@ Run `:GoRun` in a new tab, horizontal split or vertical split terminal | |||||||
|  |  | ||||||
| ```vim | ```vim | ||||||
| au FileType go nmap <leader>rt <Plug>(go-run-tab) | au FileType go nmap <leader>rt <Plug>(go-run-tab) | ||||||
| au FileType go nmap <Leader>rs <Plug>(go-run-split) | au FileType go nmap <leader>rs <Plug>(go-run-split) | ||||||
| au FileType go nmap <Leader>rv <Plug>(go-run-vertical) | au FileType go nmap <leader>rv <Plug>(go-run-vertical) | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| By default new terminals are opened in a vertical split. To change it | By default new terminals are opened in a vertical split. To change it | ||||||
| @ -288,6 +288,31 @@ information. It includes | |||||||
| section](https://github.com/fatih/vim-go/wiki/FAQ-Troubleshooting), and many | section](https://github.com/fatih/vim-go/wiki/FAQ-Troubleshooting), and many | ||||||
| other [various pieces](https://github.com/fatih/vim-go/wiki) of information. | other [various pieces](https://github.com/fatih/vim-go/wiki) of information. | ||||||
|  |  | ||||||
|  | ## Development & Testing | ||||||
|  |  | ||||||
|  | vim-go supports now test files. Please check `autoload` folder for examples. If | ||||||
|  | you add a new feature be sure you also include the `_test.vim` file next to the | ||||||
|  | script. Test functions should be starting with `Test_`, example: | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ```viml | ||||||
|  | function Test_run_fmt() | ||||||
|  |   call assert_equal(expected, actual) | ||||||
|  |   ... | ||||||
|  | endfunction | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | You can locally test it by running: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | make | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | This will run all tests and print either `PASS` or `FAIL` to indicate the final | ||||||
|  | status of all tests. | ||||||
|  |  | ||||||
|  | Additionally, each new pull request will trigger a new Travis-ci job. | ||||||
|  |  | ||||||
| ## Donation | ## Donation | ||||||
|  |  | ||||||
| People have asked for this for a long time, now you can be a fully supporter by | People have asked for this for a long time, now you can be a fully supporter by | ||||||
|  | |||||||
| @ -1,13 +0,0 @@ | |||||||
| #!/usr/bin/env rake |  | ||||||
|  |  | ||||||
| task :ci => [:dump, :test] |  | ||||||
|  |  | ||||||
| task :dump do |  | ||||||
|   sh 'vim --version' |  | ||||||
| end |  | ||||||
|  |  | ||||||
| # Firstly, `bundle install; bundle install --deployment` |  | ||||||
| # Then, `rake test` |  | ||||||
| task :test do |  | ||||||
|   sh 'bundle exec vim-flavor test' |  | ||||||
| end |  | ||||||
| @ -25,7 +25,7 @@ function! go#asmfmt#Format() abort | |||||||
|  |  | ||||||
|   " Write the current buffer to a tempfile. |   " Write the current buffer to a tempfile. | ||||||
|   let l:tmpname = tempname() |   let l:tmpname = tempname() | ||||||
|   call writefile(getline(1, '$'), l:tmpname) |   call writefile(go#util#GetLines(), l:tmpname) | ||||||
|  |  | ||||||
|   " Run asmfmt. |   " Run asmfmt. | ||||||
|   let path = go#path#CheckBinPath("asmfmt") |   let path = go#path#CheckBinPath("asmfmt") | ||||||
|  | |||||||
| @ -32,8 +32,11 @@ function! go#cmd#Build(bang, ...) abort | |||||||
|           \}) |           \}) | ||||||
|     return |     return | ||||||
|   elseif has('nvim') |   elseif has('nvim') | ||||||
|     " if we have nvim, call it asynchronously and return early ;) |     if get(g:, 'go_echo_command_info', 1) | ||||||
|       call go#util#EchoProgress("building dispatched ...") |       call go#util#EchoProgress("building dispatched ...") | ||||||
|  |     endif | ||||||
|  |  | ||||||
|  |     " if we have nvim, call it asynchronously and return early ;) | ||||||
|     call go#jobcontrol#Spawn(a:bang, "build", args) |     call go#jobcontrol#Spawn(a:bang, "build", args) | ||||||
|     return |     return | ||||||
|   endif |   endif | ||||||
| @ -419,7 +422,7 @@ function s:cmd_job(args) abort | |||||||
|     call go#statusline#Update(status_dir, status) |     call go#statusline#Update(status_dir, status) | ||||||
|   endfunction |   endfunction | ||||||
|  |  | ||||||
|   let a:args.error_info_cb = function('s:error_info_cb') |   let a:args.error_info_cb = funcref('s:error_info_cb') | ||||||
|   let callbacks = go#job#Spawn(a:args) |   let callbacks = go#job#Spawn(a:args) | ||||||
|  |  | ||||||
|   let start_options = { |   let start_options = { | ||||||
|  | |||||||
| @ -1,18 +1,8 @@ | |||||||
| let s:sock_type = (has('win32') || has('win64')) ? 'tcp' : 'unix' | let s:sock_type = (has('win32') || has('win64')) ? 'tcp' : 'unix' | ||||||
|  |  | ||||||
| function! s:gocodeCurrentBuffer() abort | function! s:gocodeCurrentBuffer() abort | ||||||
|   let buf = getline(1, '$') |  | ||||||
|   if &encoding != 'utf-8' |  | ||||||
|     let buf = map(buf, 'iconv(v:val, &encoding, "utf-8")') |  | ||||||
|   endif |  | ||||||
|   if &l:fileformat == 'dos' |  | ||||||
|     " XXX: line2byte() depend on 'fileformat' option. |  | ||||||
|     " so if fileformat is 'dos', 'buf' must include '\r'. |  | ||||||
|     let buf = map(buf, 'v:val."\r"') |  | ||||||
|   endif |  | ||||||
|   let file = tempname() |   let file = tempname() | ||||||
|   call writefile(buf, file) |   call writefile(go#util#GetLines(), file) | ||||||
|  |  | ||||||
|   return file |   return file | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
|  | |||||||
| @ -283,7 +283,7 @@ function s:coverage_job(args) | |||||||
|     call go#statusline#Update(status_dir, status) |     call go#statusline#Update(status_dir, status) | ||||||
|   endfunction |   endfunction | ||||||
|  |  | ||||||
|   let a:args.error_info_cb = function('s:error_info_cb') |   let a:args.error_info_cb = funcref('s:error_info_cb') | ||||||
|   let callbacks = go#job#Spawn(a:args) |   let callbacks = go#job#Spawn(a:args) | ||||||
|  |  | ||||||
|   let start_options = { |   let start_options = { | ||||||
|  | |||||||
| @ -16,7 +16,7 @@ function! go#def#Jump(mode) abort | |||||||
|     if &modified |     if &modified | ||||||
|       " Write current unsaved buffer to a temp file and use the modified content |       " Write current unsaved buffer to a temp file and use the modified content | ||||||
|       let l:tmpname = tempname() |       let l:tmpname = tempname() | ||||||
|       call writefile(getline(1, '$'), l:tmpname) |       call writefile(go#util#GetLines(), l:tmpname) | ||||||
|       let fname = l:tmpname |       let fname = l:tmpname | ||||||
|     endif |     endif | ||||||
|  |  | ||||||
| @ -41,8 +41,7 @@ function! go#def#Jump(mode) abort | |||||||
|     let stdin_content = "" |     let stdin_content = "" | ||||||
|  |  | ||||||
|     if &modified |     if &modified | ||||||
|       let sep = go#util#LineEnding() |       let content  = join(go#util#GetLines(), "\n") | ||||||
|       let content  = join(getline(1, '$'), sep) |  | ||||||
|       let stdin_content = fname . "\n" . strlen(content) . "\n" . content |       let stdin_content = fname . "\n" . strlen(content) . "\n" . content | ||||||
|       call add(cmd, "-modified") |       call add(cmd, "-modified") | ||||||
|     endif |     endif | ||||||
| @ -87,7 +86,7 @@ function! go#def#Jump(mode) abort | |||||||
|     return |     return | ||||||
|   endif |   endif | ||||||
|  |  | ||||||
|   call s:jump_to_declaration(out, a:mode, bin_name) |   call go#def#jump_to_declaration(out, a:mode, bin_name) | ||||||
|   let $GOPATH = old_gopath |   let $GOPATH = old_gopath | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
| @ -96,10 +95,10 @@ function! s:jump_to_declaration_cb(mode, bin_name, job, exit_status, data) abort | |||||||
|     return |     return | ||||||
|   endif |   endif | ||||||
|  |  | ||||||
|   call s:jump_to_declaration(a:data[0], a:mode, a:bin_name) |   call go#def#jump_to_declaration(a:data[0], a:mode, a:bin_name) | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
| function! s:jump_to_declaration(out, mode, bin_name) abort | function! go#def#jump_to_declaration(out, mode, bin_name) abort | ||||||
|   let final_out = a:out |   let final_out = a:out | ||||||
|   if a:bin_name == "godef" |   if a:bin_name == "godef" | ||||||
|     " append the type information to the same line so our we can parse it. |     " append the type information to the same line so our we can parse it. | ||||||
| @ -299,7 +298,7 @@ function s:def_job(args) abort | |||||||
|     " do not print anything during async definition search&jump |     " do not print anything during async definition search&jump | ||||||
|   endfunction |   endfunction | ||||||
|  |  | ||||||
|   let a:args.error_info_cb = function('s:error_info_cb') |   let a:args.error_info_cb = funcref('s:error_info_cb') | ||||||
|   let callbacks = go#job#Spawn(a:args) |   let callbacks = go#job#Spawn(a:args) | ||||||
|  |  | ||||||
|   let start_options = { |   let start_options = { | ||||||
|  | |||||||
							
								
								
									
										32
									
								
								sources_non_forked/vim-go/autoload/go/def_test.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								sources_non_forked/vim-go/autoload/go/def_test.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | |||||||
|  | func Test_jump_to_declaration_guru() | ||||||
|  |   let file_name = "test-fixtures/def/jump.go" | ||||||
|  |   let lnum = 5 | ||||||
|  |   let col = 6 | ||||||
|  |  | ||||||
|  |   let out = printf("%s:%d:%d: defined here as func main", file_name, lnum, col) | ||||||
|  |   let bin_name = "guru" | ||||||
|  |  | ||||||
|  |   call go#def#jump_to_declaration(out, "", bin_name) | ||||||
|  |  | ||||||
|  |   call assert_equal(file_name, bufname("%")) | ||||||
|  |   call assert_equal(lnum, getcurpos()[1]) | ||||||
|  |   call assert_equal(col, getcurpos()[2]) | ||||||
|  | endfunc | ||||||
|  |  | ||||||
|  | func Test_jump_to_declaration_godef() | ||||||
|  |   let file_name = "test-fixtures/def/jump.go" | ||||||
|  |   let lnum = 5 | ||||||
|  |   let col = 6 | ||||||
|  |  | ||||||
|  |   " note that the output of godef has two lines | ||||||
|  |   let out = printf("%s:%d:%d\ndefined here as func main", file_name, lnum, col) | ||||||
|  |   let bin_name = "godef" | ||||||
|  |  | ||||||
|  |   call go#def#jump_to_declaration(out, "", bin_name) | ||||||
|  |  | ||||||
|  |   call assert_equal(file_name, bufname("%")) | ||||||
|  |   call assert_equal(lnum, getcurpos()[1]) | ||||||
|  |   call assert_equal(col, getcurpos()[2]) | ||||||
|  | endfunc | ||||||
|  |  | ||||||
|  | " vim: sw=2 ts=2 et | ||||||
| @ -31,12 +31,11 @@ function! go#doc#OpenBrowser(...) abort | |||||||
|  |  | ||||||
|     let import = out["import"] |     let import = out["import"] | ||||||
|     let name = out["name"] |     let name = out["name"] | ||||||
|  |     let decl = out["decl"] | ||||||
|      |      | ||||||
|     " if import is empty, it means we selected a package name |     let godoc_url = "https://godoc.org/" . import | ||||||
|     if import ==# "" |     if decl !~ "^package" | ||||||
|       let godoc_url = "https://godoc.org/" . name  |       let godoc_url .= "#" . name  | ||||||
|     else |  | ||||||
|       let godoc_url = "https://godoc.org/" . import . "#" . name |  | ||||||
|     endif |     endif | ||||||
|  |  | ||||||
|     echo godoc_url |     echo godoc_url | ||||||
| @ -153,8 +152,7 @@ function! s:gogetdoc(json) abort | |||||||
|     "     file size followed by newline |     "     file size followed by newline | ||||||
|     "     file contents |     "     file contents | ||||||
|     let in = "" |     let in = "" | ||||||
|     let sep = go#util#LineEnding() |     let content = join(go#util#GetLines(), "\n") | ||||||
|     let content = join(getline(1, '$'), sep) |  | ||||||
|     let in = fname . "\n" . strlen(content) . "\n" . content |     let in = fname . "\n" . strlen(content) . "\n" . content | ||||||
|     let command .= " -modified" |     let command .= " -modified" | ||||||
|     let out = go#util#System(command, in) |     let out = go#util#System(command, in) | ||||||
|  | |||||||
| @ -2,26 +2,8 @@ | |||||||
| " Use of this source code is governed by a BSD-style | " Use of this source code is governed by a BSD-style | ||||||
| " license that can be found in the LICENSE file. | " license that can be found in the LICENSE file. | ||||||
| " | " | ||||||
| " fmt.vim: Vim command to format Go files with gofmt. | " fmt.vim: Vim command to format Go files with gofmt (and gofmt compatible | ||||||
| " | " toorls, such as goimports). | ||||||
| " This filetype plugin add a new commands for go buffers: |  | ||||||
| " |  | ||||||
| "   :Fmt |  | ||||||
| " |  | ||||||
| "       Filter the current Go buffer through gofmt. |  | ||||||
| "       It tries to preserve cursor position and avoids |  | ||||||
| "       replacing the buffer with stderr output. |  | ||||||
| " |  | ||||||
| " Options: |  | ||||||
| " |  | ||||||
| "   g:go_fmt_command [default="gofmt"] |  | ||||||
| " |  | ||||||
| "       Flag naming the gofmt executable to use. |  | ||||||
| " |  | ||||||
| "   g:go_fmt_autosave [default=1] |  | ||||||
| " |  | ||||||
| "       Flag to auto call :Fmt when saved file |  | ||||||
| " |  | ||||||
|  |  | ||||||
| if !exists("g:go_fmt_command") | if !exists("g:go_fmt_command") | ||||||
|   let g:go_fmt_command = "gofmt" |   let g:go_fmt_command = "gofmt" | ||||||
| @ -67,6 +49,13 @@ function! go#fmt#Format(withGoimport) abort | |||||||
|     catch |     catch | ||||||
|       let l:curw = winsaveview() |       let l:curw = winsaveview() | ||||||
|     endtry |     endtry | ||||||
|  |  | ||||||
|  |     " save our undo file to be restored after we are done. This is needed to | ||||||
|  |     " prevent an additional undo jump due to BufWritePre auto command and also | ||||||
|  |     " restore 'redo' history because it's getting being destroyed every | ||||||
|  |     " BufWritePre | ||||||
|  |     let tmpundofile = tempname() | ||||||
|  |     exe 'wundo! ' . tmpundofile | ||||||
|   else |   else | ||||||
|     " Save cursor position and many other things. |     " Save cursor position and many other things. | ||||||
|     let l:curw = winsaveview() |     let l:curw = winsaveview() | ||||||
| @ -74,135 +63,32 @@ function! go#fmt#Format(withGoimport) abort | |||||||
|  |  | ||||||
|   " Write current unsaved buffer to a temp file |   " Write current unsaved buffer to a temp file | ||||||
|   let l:tmpname = tempname() |   let l:tmpname = tempname() | ||||||
|   call writefile(getline(1, '$'), l:tmpname) |   call writefile(go#util#GetLines(), l:tmpname) | ||||||
|  |   if go#util#IsWin() | ||||||
|   if g:go_fmt_experimental == 1 |     let l:tmpname = tr(l:tmpname, '\', '/') | ||||||
|     " save our undo file to be restored after we are done. This is needed to |  | ||||||
|     " prevent an additional undo jump due to BufWritePre auto command and also |  | ||||||
|     " restore 'redo' history because it's getting being destroyed every |  | ||||||
|     " BufWritePre |  | ||||||
|     let tmpundofile = tempname() |  | ||||||
|     exe 'wundo! ' . tmpundofile |  | ||||||
|   endif |   endif | ||||||
|  |  | ||||||
|   " get the command first so we can test it |  | ||||||
|   let bin_name = g:go_fmt_command |   let bin_name = g:go_fmt_command | ||||||
|   if a:withGoimport == 1 |   if a:withGoimport == 1 | ||||||
|     let bin_name = g:go_goimports_bin |     let bin_name = g:go_goimports_bin | ||||||
|   endif |   endif | ||||||
|  |  | ||||||
|   " check if the user has installed command binary. |   let out = go#fmt#run(bin_name, l:tmpname, expand('%')) | ||||||
|   " For example if it's goimports, let us check if it's installed, |  | ||||||
|   " if not the user get's a warning via go#path#CheckBinPath() |  | ||||||
|   let bin_path = go#path#CheckBinPath(bin_name) |  | ||||||
|   if empty(bin_path) |  | ||||||
|     return |  | ||||||
|   endif |  | ||||||
|  |  | ||||||
|   if bin_name != "gofmt" |  | ||||||
|     " change GOPATH too, so goimports can pick up the correct library |  | ||||||
|     let old_gopath = $GOPATH |  | ||||||
|     let $GOPATH = go#path#Detect() |  | ||||||
|   endif |  | ||||||
|  |  | ||||||
|   " populate the final command with user based fmt options |  | ||||||
|   let command = bin_path . ' -w ' |  | ||||||
|   if a:withGoimport  != 1 |  | ||||||
|     let command  = command . g:go_fmt_options |  | ||||||
|   endif |  | ||||||
|  |  | ||||||
|   if bin_name == "goimports" |  | ||||||
|     if !exists('b:goimports_vendor_compatible') |  | ||||||
|       let out = go#util#System(bin_path . " --help") |  | ||||||
|       if out !~ "-srcdir" |  | ||||||
|         call go#util#EchoWarning(printf("vim-go: goimports (%s) does not support srcdir. Update with: :GoUpdateBinaries", bin_path)) |  | ||||||
|       else |  | ||||||
|         let b:goimports_vendor_compatible = 1 |  | ||||||
|       endif |  | ||||||
|     endif |  | ||||||
|  |  | ||||||
|     if exists('b:goimports_vendor_compatible') && b:goimports_vendor_compatible |  | ||||||
|       let ssl_save = &shellslash |  | ||||||
|       set noshellslash |  | ||||||
|       let command  = command . '-srcdir ' . shellescape(expand("%:p")) |  | ||||||
|       let &shellslash = ssl_save |  | ||||||
|     endif |  | ||||||
|   endif |  | ||||||
|  |  | ||||||
|   " execute our command... |  | ||||||
|   if go#util#IsWin() |  | ||||||
|     let l:tmpname = tr(l:tmpname, '\', '/') |  | ||||||
|   endif |  | ||||||
|   let out = go#util#System(command . " " . l:tmpname) |  | ||||||
|  |  | ||||||
|   if bin_name != "gofmt" |  | ||||||
|     let $GOPATH = old_gopath |  | ||||||
|   endif |  | ||||||
|  |  | ||||||
|   let l:listtype = "locationlist" |  | ||||||
|   "if there is no error on the temp file replace the output with the current |  | ||||||
|   "file (if this fails, we can always check the outputs first line with: |  | ||||||
|   "splitted =~ 'package \w\+') |  | ||||||
|   if go#util#ShellError() == 0 |   if go#util#ShellError() == 0 | ||||||
|     " remove undo point caused via BufWritePre |     call go#fmt#update_file(l:tmpname, expand('%')) | ||||||
|     try | silent undojoin | catch | endtry |  | ||||||
|  |  | ||||||
|     " Replace current file with temp file, then reload buffer |  | ||||||
|     let old_fileformat = &fileformat |  | ||||||
|     if exists("*getfperm") |  | ||||||
|       " save old file permissions |  | ||||||
|       let original_fperm = getfperm(expand('%')) |  | ||||||
|     endif |  | ||||||
|     call rename(l:tmpname, expand('%')) |  | ||||||
|     " restore old file permissions |  | ||||||
|     if exists("*setfperm") && original_fperm != '' |  | ||||||
|       call setfperm(expand('%'), original_fperm) |  | ||||||
|     endif |  | ||||||
|     silent edit! |  | ||||||
|     let &fileformat = old_fileformat |  | ||||||
|     let &syntax = &syntax |  | ||||||
|  |  | ||||||
|     " clean up previous location list, but only if it's due to fmt |  | ||||||
|     if exists('b:got_fmt_error') && b:got_fmt_error |  | ||||||
|       let b:got_fmt_error = 0 |  | ||||||
|       call go#list#Clean(l:listtype) |  | ||||||
|       call go#list#Window(l:listtype) |  | ||||||
|     endif |  | ||||||
|   elseif g:go_fmt_fail_silently == 0 |   elseif g:go_fmt_fail_silently == 0 | ||||||
|     let splitted = split(out, '\n') |     let errors = s:parse_errors(out) | ||||||
|     "otherwise get the errors and put them to location list |     call s:show_errors(errors) | ||||||
|     let errors = [] |  | ||||||
|     for line in splitted |  | ||||||
|       let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)') |  | ||||||
|       if !empty(tokens) |  | ||||||
|         call add(errors, {"filename": @%, |  | ||||||
|               \"lnum":     tokens[2], |  | ||||||
|               \"col":      tokens[3], |  | ||||||
|               \"text":     tokens[4]}) |  | ||||||
|   endif |   endif | ||||||
|     endfor |  | ||||||
|     if empty(errors) |  | ||||||
|       % | " Couldn't detect gofmt error format, output errors |  | ||||||
|     endif |  | ||||||
|     if !empty(errors) |  | ||||||
|       call go#list#Populate(l:listtype, errors, 'Format') |  | ||||||
|       echohl Error | echomsg "Gofmt returned error" | echohl None |  | ||||||
|     endif |  | ||||||
|  |  | ||||||
|     let b:got_fmt_error = 1 |  | ||||||
|     call go#list#Window(l:listtype, len(errors)) |  | ||||||
|  |  | ||||||
|   " We didn't use the temp file, so clean up |   " We didn't use the temp file, so clean up | ||||||
|   call delete(l:tmpname) |   call delete(l:tmpname) | ||||||
|   endif |  | ||||||
|  |  | ||||||
|   if g:go_fmt_experimental == 1 |   if g:go_fmt_experimental == 1 | ||||||
|     " restore our undo history |     " restore our undo history | ||||||
|     silent! exe 'rundo ' . tmpundofile |     silent! exe 'rundo ' . tmpundofile | ||||||
|     call delete(tmpundofile) |     call delete(tmpundofile) | ||||||
|   endif |  | ||||||
|  |  | ||||||
|   if g:go_fmt_experimental == 1 |  | ||||||
|     " Restore our cursor/windows positions, folds, etc. |     " Restore our cursor/windows positions, folds, etc. | ||||||
|     if empty(l:curw) |     if empty(l:curw) | ||||||
|       silent! loadview |       silent! loadview | ||||||
| @ -215,6 +101,134 @@ function! go#fmt#Format(withGoimport) abort | |||||||
|   endif |   endif | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
|  | " update_file updates the target file with the given formatted source | ||||||
|  | function! go#fmt#update_file(source, target)  | ||||||
|  |   " remove undo point caused via BufWritePre | ||||||
|  |   try | silent undojoin | catch | endtry | ||||||
|  |  | ||||||
|  |   let old_fileformat = &fileformat | ||||||
|  |   if exists("*getfperm") | ||||||
|  |     " save file permissions | ||||||
|  |     let original_fperm = getfperm(a:target) | ||||||
|  |   endif | ||||||
|  |  | ||||||
|  |   call rename(a:source, a:target) | ||||||
|  |  | ||||||
|  |   " restore file permissions | ||||||
|  |   if exists("*setfperm") && original_fperm != '' | ||||||
|  |     call setfperm(a:target , original_fperm) | ||||||
|  |   endif | ||||||
|  |  | ||||||
|  |   " reload buffer to reflect latest changes | ||||||
|  |   silent! edit! | ||||||
|  |  | ||||||
|  |   let &fileformat = old_fileformat | ||||||
|  |   let &syntax = &syntax | ||||||
|  |  | ||||||
|  |   " clean up previous location list | ||||||
|  |   let l:listtype = "locationlist" | ||||||
|  |   call go#list#Clean(l:listtype) | ||||||
|  |   call go#list#Window(l:listtype) | ||||||
|  | endfunction | ||||||
|  |  | ||||||
|  | " run runs the gofmt/goimport command for the given source file and returns | ||||||
|  | " the the output of the executed command. Target is the real file to be | ||||||
|  | " formated.  | ||||||
|  | function! go#fmt#run(bin_name, source, target)  | ||||||
|  |   let cmd = s:fmt_cmd(a:bin_name, a:source, a:target) | ||||||
|  |   if cmd[0] == "goimports" | ||||||
|  |     " change GOPATH too, so goimports can pick up the correct library | ||||||
|  |     let old_gopath = $GOPATH | ||||||
|  |     let $GOPATH = go#path#Detect() | ||||||
|  |   endif | ||||||
|  |  | ||||||
|  |   let command = join(cmd, " ") | ||||||
|  |  | ||||||
|  |   " execute our command... | ||||||
|  |   let out = go#util#System(command) | ||||||
|  |  | ||||||
|  |   if cmd[0] == "goimports" | ||||||
|  |     let $GOPATH = old_gopath | ||||||
|  |   endif | ||||||
|  |  | ||||||
|  |   return out | ||||||
|  | endfunction | ||||||
|  |  | ||||||
|  | " fmt_cmd returns a dict that contains the command to execute gofmt (or | ||||||
|  | " goimports). args is dict with | ||||||
|  | function! s:fmt_cmd(bin_name, source, target) | ||||||
|  |   " check if the user has installed command binary. | ||||||
|  |   " For example if it's goimports, let us check if it's installed, | ||||||
|  |   " if not the user get's a warning via go#path#CheckBinPath() | ||||||
|  |   let bin_path = go#path#CheckBinPath(a:bin_name) | ||||||
|  |   if empty(bin_path) | ||||||
|  |     return | ||||||
|  |   endif | ||||||
|  |  | ||||||
|  |   " start constructing the command | ||||||
|  |   let cmd = [bin_path] | ||||||
|  |   call add(cmd, "-w") | ||||||
|  |  | ||||||
|  |   if a:bin_name != "goimports" | ||||||
|  |     call extend(cmd, split(g:go_fmt_options, " ")) | ||||||
|  |   else | ||||||
|  |     " lazy check if goimports support `-srcdir`. We should eventually remove | ||||||
|  |     " this in the future | ||||||
|  |     if !exists('b:goimports_vendor_compatible') | ||||||
|  |       let out = go#util#System(bin_path . " --help") | ||||||
|  |       if out !~ "-srcdir" | ||||||
|  |         call go#util#EchoWarning(printf("vim-go: goimports (%s) does not support srcdir. Update with: :GoUpdateBinaries", bin_path)) | ||||||
|  |       else | ||||||
|  |         let b:goimports_vendor_compatible = 1 | ||||||
|  |       endif | ||||||
|  |     endif | ||||||
|  |  | ||||||
|  |     if exists('b:goimports_vendor_compatible') && b:goimports_vendor_compatible | ||||||
|  |       let ssl_save = &shellslash | ||||||
|  |       set noshellslash | ||||||
|  |       call extend(cmd, ["-srcdir", shellescape(fnamemodify(a:target, ":p"))]) | ||||||
|  |       let &shellslash = ssl_save | ||||||
|  |     endif | ||||||
|  |   endif | ||||||
|  |  | ||||||
|  |   call add(cmd, a:source) | ||||||
|  |   return cmd | ||||||
|  | endfunction | ||||||
|  |  | ||||||
|  | " parse_errors parses the given errors and returns a list of parsed errors | ||||||
|  | function! s:parse_errors(content) abort | ||||||
|  |   let splitted = split(a:content, '\n') | ||||||
|  |  | ||||||
|  |   " list of errors to be put into location list | ||||||
|  |   let errors = [] | ||||||
|  |   for line in splitted | ||||||
|  |     let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)') | ||||||
|  |     if !empty(tokens) | ||||||
|  |       call add(errors,{ | ||||||
|  |             \"lnum":     tokens[2], | ||||||
|  |             \"col":      tokens[3], | ||||||
|  |             \"text":     tokens[4], | ||||||
|  |             \ }) | ||||||
|  |     endif | ||||||
|  |   endfor | ||||||
|  |  | ||||||
|  |   return errors | ||||||
|  | endfunction | ||||||
|  |  | ||||||
|  | " show_errors opens a location list and shows the given errors. If the given | ||||||
|  | " errors is empty, it closes the the location list | ||||||
|  | function! s:show_errors(errors) abort | ||||||
|  |   let l:listtype = "locationlist"  | ||||||
|  |   if !empty(a:errors) | ||||||
|  |     call go#list#Populate(l:listtype, a:errors, 'Format') | ||||||
|  |     echohl Error | echomsg "Gofmt returned error" | echohl None | ||||||
|  |   endif | ||||||
|  |  | ||||||
|  |   " this closes the window if there are no errors or it opens  | ||||||
|  |   " it if there is any | ||||||
|  |   call go#list#Window(l:listtype, len(a:errors)) | ||||||
|  | endfunction | ||||||
|  |  | ||||||
| function! go#fmt#ToggleFmtAutoSave() abort | function! go#fmt#ToggleFmtAutoSave() abort | ||||||
|   if get(g:, "go_fmt_autosave", 1) |   if get(g:, "go_fmt_autosave", 1) | ||||||
|     let g:go_fmt_autosave = 0 |     let g:go_fmt_autosave = 0 | ||||||
| @ -225,4 +239,5 @@ function! go#fmt#ToggleFmtAutoSave() abort | |||||||
|   let g:go_fmt_autosave = 1 |   let g:go_fmt_autosave = 1 | ||||||
|   call go#util#EchoProgress("auto fmt enabled") |   call go#util#EchoProgress("auto fmt enabled") | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
| " vim: sw=2 ts=2 et | " vim: sw=2 ts=2 et | ||||||
|  | |||||||
							
								
								
									
										31
									
								
								sources_non_forked/vim-go/autoload/go/fmt_test.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								sources_non_forked/vim-go/autoload/go/fmt_test.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | |||||||
|  | func Test_run_fmt() | ||||||
|  |   let actual_file = tempname() | ||||||
|  |   call writefile(readfile("test-fixtures/fmt/hello.go"), actual_file) | ||||||
|  |  | ||||||
|  |   let expected = join(readfile("test-fixtures/fmt/hello_golden.go"), "\n") | ||||||
|  |  | ||||||
|  |   " run our code | ||||||
|  |   call go#fmt#run("gofmt", actual_file, "test-fixtures/fmt/hello.go") | ||||||
|  |  | ||||||
|  |   " this should now contain the formatted code | ||||||
|  |   let actual = join(readfile(actual_file), "\n") | ||||||
|  |  | ||||||
|  |   call assert_equal(expected, actual) | ||||||
|  | endfunc | ||||||
|  |  | ||||||
|  | func Test_update_file() | ||||||
|  |   let expected = join(readfile("test-fixtures/fmt/hello_golden.go"), "\n") | ||||||
|  |   let source_file = tempname() | ||||||
|  |   call writefile(readfile("test-fixtures/fmt/hello_golden.go"), source_file) | ||||||
|  |  | ||||||
|  |   let target_file = tempname() | ||||||
|  |   call writefile([""], target_file) | ||||||
|  |  | ||||||
|  |   " update_file now | ||||||
|  |   call go#fmt#update_file(source_file, target_file) | ||||||
|  |  | ||||||
|  |   " this should now contain the formatted code | ||||||
|  |   let actual = join(readfile(target_file), "\n") | ||||||
|  |  | ||||||
|  |   call assert_equal(expected, actual) | ||||||
|  | endfunc | ||||||
| @ -1,6 +1,6 @@ | |||||||
| "  guru.vim -- Vim integration for the Go guru. | "  guru.vim -- Vim integration for the Go guru. | ||||||
|  |  | ||||||
| " guru_cmd returns a dict that contains the command to execute guru. option | " guru_cmd returns a dict that contains the command to execute guru. args | ||||||
| " is dict with following options: | " is dict with following options: | ||||||
| "  mode        : guru mode, such as 'implements' | "  mode        : guru mode, such as 'implements' | ||||||
| "  format      : output format, either 'plain' or 'json' | "  format      : output format, either 'plain' or 'json' | ||||||
| @ -34,10 +34,8 @@ function! s:guru_cmd(args) range abort | |||||||
|   let cmd = [bin_path] |   let cmd = [bin_path] | ||||||
|  |  | ||||||
|   let filename = fnamemodify(expand("%"), ':p:gs?\\?/?') |   let filename = fnamemodify(expand("%"), ':p:gs?\\?/?') | ||||||
|   let stdin_content = "" |  | ||||||
|   if &modified |   if &modified | ||||||
|     let sep = go#util#LineEnding() |     let content  = join(go#util#GetLines(), "\n") | ||||||
|     let content  = join(getline(1, '$'), sep ) |  | ||||||
|     let result.stdin_content = filename . "\n" . strlen(content) . "\n" . content |     let result.stdin_content = filename . "\n" . strlen(content) . "\n" . content | ||||||
|     call add(cmd, "-modified") |     call add(cmd, "-modified") | ||||||
|   endif |   endif | ||||||
| @ -127,7 +125,7 @@ function! s:sync_guru(args) abort | |||||||
|  |  | ||||||
|   " run, forrest run!!! |   " run, forrest run!!! | ||||||
|   let command = join(result.cmd, " ") |   let command = join(result.cmd, " ") | ||||||
|   if &modified |   if has_key(result, 'stdin_content') | ||||||
|     let out = go#util#System(command, result.stdin_content) |     let out = go#util#System(command, result.stdin_content) | ||||||
|   else |   else | ||||||
|     let out = go#util#System(command) |     let out = go#util#System(command) | ||||||
| @ -198,10 +196,10 @@ function! s:async_guru(args) abort | |||||||
|   endfunction |   endfunction | ||||||
|  |  | ||||||
|   let start_options = { |   let start_options = { | ||||||
|         \ 'close_cb': function("s:close_cb"), |         \ 'close_cb': funcref("s:close_cb"), | ||||||
|         \ } |         \ } | ||||||
|  |  | ||||||
|   if &modified |   if has_key(result, 'stdin_content') | ||||||
|     let l:tmpname = tempname() |     let l:tmpname = tempname() | ||||||
|     call writefile(split(result.stdin_content, "\n"), l:tmpname, "b") |     call writefile(split(result.stdin_content, "\n"), l:tmpname, "b") | ||||||
|     let l:start_options.in_io = "file" |     let l:start_options.in_io = "file" | ||||||
| @ -543,7 +541,7 @@ function! go#guru#ClearSameIds() abort | |||||||
|   endfor |   endfor | ||||||
|  |  | ||||||
|   " remove the autocmds we defined |   " remove the autocmds we defined | ||||||
|   if exists("#BufWinEnter<buffer>") |   if exists("#BufWinEnter#<buffer>") | ||||||
|     autocmd! BufWinEnter <buffer> |     autocmd! BufWinEnter <buffer> | ||||||
|   endif |   endif | ||||||
| endfunction | endfunction | ||||||
| @ -635,7 +633,7 @@ function! go#guru#Tags(...) abort | |||||||
|   if !exists('g:go_guru_tags') |   if !exists('g:go_guru_tags') | ||||||
|     call go#util#EchoSuccess("guru tags is not set") |     call go#util#EchoSuccess("guru tags is not set") | ||||||
|   else |   else | ||||||
|     call go#util#EchoSuccess("current guru tags: ". a:1) |     call go#util#EchoSuccess("current guru tags: ". g:go_guru_tags) | ||||||
|   endif |   endif | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
|  | |||||||
| @ -38,6 +38,16 @@ endfunction | |||||||
| " GOPATH when g:go_autodetect_gopath is enabled. The job is started inside the | " GOPATH when g:go_autodetect_gopath is enabled. The job is started inside the | ||||||
| " current files folder. | " current files folder. | ||||||
| function! s:spawn(bang, desc, args) abort | function! s:spawn(bang, desc, args) abort | ||||||
|  |   let status_type = a:args[0] | ||||||
|  |   let status_dir = expand('%:p:h') | ||||||
|  |   let started_at = reltime() | ||||||
|  |  | ||||||
|  |   call go#statusline#Update(status_dir, { | ||||||
|  |         \ 'desc': "current status", | ||||||
|  |         \ 'type': status_type, | ||||||
|  |         \ 'state': "started", | ||||||
|  |         \}) | ||||||
|  |  | ||||||
|   let job = { |   let job = { | ||||||
|         \ 'desc': a:desc, |         \ 'desc': a:desc, | ||||||
|         \ 'bang': a:bang, |         \ 'bang': a:bang, | ||||||
| @ -49,6 +59,9 @@ function! s:spawn(bang, desc, args) abort | |||||||
|         \ 'on_stdout': function('s:on_stdout'), |         \ 'on_stdout': function('s:on_stdout'), | ||||||
|         \ 'on_stderr': function('s:on_stderr'), |         \ 'on_stderr': function('s:on_stderr'), | ||||||
|         \ 'on_exit' : function('s:on_exit'), |         \ 'on_exit' : function('s:on_exit'), | ||||||
|  |         \ 'status_type' : status_type, | ||||||
|  |         \ 'status_dir' : status_dir, | ||||||
|  |         \ 'started_at' : started_at, | ||||||
|         \ } |         \ } | ||||||
|  |  | ||||||
|   " modify GOPATH if needed |   " modify GOPATH if needed | ||||||
| @ -91,6 +104,23 @@ endfunction | |||||||
| " on_stderr handler. If there are no errors and a quickfix window is open, | " on_stderr handler. If there are no errors and a quickfix window is open, | ||||||
| " it'll be closed. | " it'll be closed. | ||||||
| function! s:on_exit(job_id, exit_status, event) dict abort | function! s:on_exit(job_id, exit_status, event) dict abort | ||||||
|  |   let status = { | ||||||
|  |         \ 'desc': 'last status', | ||||||
|  |         \ 'type': self.status_type, | ||||||
|  |         \ 'state': "success", | ||||||
|  |         \ } | ||||||
|  |  | ||||||
|  |   if a:exit_status | ||||||
|  |     let status.state = "failed" | ||||||
|  |   endif | ||||||
|  |  | ||||||
|  |   let elapsed_time = reltimestr(reltime(self.started_at)) | ||||||
|  |   " strip whitespace | ||||||
|  |   let elapsed_time = substitute(elapsed_time, '^\s*\(.\{-}\)\s*$', '\1', '') | ||||||
|  |   let status.state .= printf(" (%ss)", elapsed_time) | ||||||
|  |  | ||||||
|  |   call go#statusline#Update(self.status_dir, status) | ||||||
|  |  | ||||||
|   let std_combined = self.stderr + self.stdout |   let std_combined = self.stderr + self.stdout | ||||||
|  |  | ||||||
|   let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' |   let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' | ||||||
| @ -105,14 +135,20 @@ function! s:on_exit(job_id, exit_status, event) dict abort | |||||||
|     call go#list#Window(l:listtype) |     call go#list#Window(l:listtype) | ||||||
|  |  | ||||||
|     let self.state = "SUCCESS" |     let self.state = "SUCCESS" | ||||||
|     call go#util#EchoSuccess("SUCCESS") |  | ||||||
|  |     if get(g:, 'go_echo_command_info', 1) | ||||||
|  |       call go#util#EchoSuccess("[" . self.status_type . "] SUCCESS") | ||||||
|  |     endif | ||||||
|  |  | ||||||
|     execute cd . fnameescape(dir) |     execute cd . fnameescape(dir) | ||||||
|     return |     return | ||||||
|   endif |   endif | ||||||
|  |  | ||||||
|   let self.state = "FAILED" |   let self.state = "FAILED" | ||||||
|   call go#util#EchoError("FAILED") |  | ||||||
|  |   if get(g:, 'go_echo_command_info', 1) | ||||||
|  |     call go#util#EchoError("[" . self.status_type . "] FAILED") | ||||||
|  |   endif | ||||||
|  |  | ||||||
|   let errors = go#tool#ParseErrors(std_combined) |   let errors = go#tool#ParseErrors(std_combined) | ||||||
|   let errors = go#tool#FilterValids(errors) |   let errors = go#tool#FilterValids(errors) | ||||||
| @ -148,13 +184,13 @@ endfunction | |||||||
|  |  | ||||||
| " on_stdout is the stdout handler for jobstart(). It collects the output of | " on_stdout is the stdout handler for jobstart(). It collects the output of | ||||||
| " stderr and stores them to the jobs internal stdout list. | " stderr and stores them to the jobs internal stdout list. | ||||||
| function! s:on_stdout(job_id, data) dict abort | function! s:on_stdout(job_id, data, event) dict abort | ||||||
|   call extend(self.stdout, a:data) |   call extend(self.stdout, a:data) | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
| " on_stderr is the stderr handler for jobstart(). It collects the output of | " on_stderr is the stderr handler for jobstart(). It collects the output of | ||||||
| " stderr and stores them to the jobs internal stderr list. | " stderr and stores them to the jobs internal stderr list. | ||||||
| function! s:on_stderr(job_id, data) dict abort | function! s:on_stderr(job_id, data, event) dict abort | ||||||
|   call extend(self.stderr, a:data) |   call extend(self.stderr, a:data) | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
|  | |||||||
| @ -10,10 +10,6 @@ if !exists("g:go_metalinter_enabled") | |||||||
|   let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck'] |   let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck'] | ||||||
| endif | endif | ||||||
|  |  | ||||||
| if !exists("g:go_metalinter_deadline") |  | ||||||
|   let g:go_metalinter_deadline = "5s" |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| if !exists("g:go_golint_bin") | if !exists("g:go_golint_bin") | ||||||
|   let g:go_golint_bin = "golint" |   let g:go_golint_bin = "golint" | ||||||
| endif | endif | ||||||
| @ -48,16 +44,33 @@ function! go#lint#Gometa(autosave, ...) abort | |||||||
|     let cmd += [expand('%:p:h')] |     let cmd += [expand('%:p:h')] | ||||||
|   else |   else | ||||||
|     " the user wants something else, let us use it. |     " the user wants something else, let us use it. | ||||||
|     let cmd += [split(g:go_metalinter_command, " ")] |     let cmd += split(g:go_metalinter_command, " ") | ||||||
|   endif |   endif | ||||||
|  |  | ||||||
|  |   " gometalinter has a default deadline of 5 seconds. | ||||||
|  |   " | ||||||
|  |   " For async mode (s:lint_job), we want to override the default deadline only | ||||||
|  |   " if we have a deadline configured. | ||||||
|  |   " | ||||||
|  |   " For sync mode (go#tool#ExecuteInDir), always explicitly pass the 5 seconds | ||||||
|  |   " deadline if there is no other deadline configured. If a deadline is | ||||||
|  |   " configured, then use it. | ||||||
|  |  | ||||||
|  |   " Call gometalinter asynchronously. | ||||||
|   if go#util#has_job() && has('lambda') |   if go#util#has_job() && has('lambda') | ||||||
|  |     let deadline = get(g:, 'go_metalinter_deadline', 0) | ||||||
|  |     if deadline != 0 | ||||||
|  |       let cmd += ["--deadline=" . deadline] | ||||||
|  |     endif | ||||||
|  |  | ||||||
|     call s:lint_job({'cmd': cmd}) |     call s:lint_job({'cmd': cmd}) | ||||||
|     return |     return | ||||||
|   endif |   endif | ||||||
|  |  | ||||||
|   " we add deadline only for sync mode |   " We're calling gometalinter synchronously. | ||||||
|   let cmd += ["--deadline=" . g:go_metalinter_deadline] |  | ||||||
|  |   let cmd += ["--deadline=" . get(g:, 'go_metalinter_deadline', "5s")] | ||||||
|  |  | ||||||
|   if a:autosave |   if a:autosave | ||||||
|     " include only messages for the active buffer |     " include only messages for the active buffer | ||||||
|     let cmd += ["--include='^" . expand('%:p') . ".*$'"] |     let cmd += ["--include='^" . expand('%:p') . ".*$'"] | ||||||
| @ -283,8 +296,8 @@ function s:lint_job(args) | |||||||
|   endfunction |   endfunction | ||||||
|  |  | ||||||
|   let start_options = { |   let start_options = { | ||||||
|         \ 'callback': function("s:callback"), |         \ 'callback': funcref("s:callback"), | ||||||
|         \ 'close_cb': function("s:close_cb"), |         \ 'close_cb': funcref("s:close_cb"), | ||||||
|         \ } |         \ } | ||||||
|  |  | ||||||
|   call job_start(a:args.cmd, start_options) |   call job_start(a:args.cmd, start_options) | ||||||
|  | |||||||
| @ -110,6 +110,9 @@ function! go#path#Detect() abort | |||||||
|     endif |     endif | ||||||
|   endif |   endif | ||||||
|  |  | ||||||
|  |   " Fix up the case where initial $GOPATH is empty, | ||||||
|  |   " and we end up with a trailing : | ||||||
|  |   let gopath = substitute(gopath, ":$", "", "") | ||||||
|   return gopath |   return gopath | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
|  | |||||||
| @ -85,8 +85,8 @@ function s:rename_job(args) | |||||||
|   endfunction |   endfunction | ||||||
|  |  | ||||||
|   let start_options = { |   let start_options = { | ||||||
|         \ 'callback': function("s:callback"), |         \ 'callback': funcref("s:callback"), | ||||||
|         \ 'close_cb': function("s:close_cb"), |         \ 'close_cb': funcref("s:close_cb"), | ||||||
|         \ } |         \ } | ||||||
|  |  | ||||||
|   " modify GOPATH if needed |   " modify GOPATH if needed | ||||||
|  | |||||||
| @ -0,0 +1,7 @@ | |||||||
|  | package main | ||||||
|  |  | ||||||
|  | import "fmt" | ||||||
|  |  | ||||||
|  | func main() { | ||||||
|  | 	fmt.Println("vim-go") | ||||||
|  | } | ||||||
| @ -0,0 +1,7 @@ | |||||||
|  | package main | ||||||
|  |  | ||||||
|  | import "fmt" | ||||||
|  |  | ||||||
|  |   func main() { | ||||||
|  | fmt.Println("vim-go") | ||||||
|  | } | ||||||
| @ -0,0 +1,7 @@ | |||||||
|  | package main | ||||||
|  |  | ||||||
|  | import "fmt" | ||||||
|  |  | ||||||
|  | func main() { | ||||||
|  | 	fmt.Println("vim-go") | ||||||
|  | } | ||||||
| @ -20,7 +20,7 @@ function! go#textobj#Function(mode) abort | |||||||
|   if &modified |   if &modified | ||||||
|     " Write current unsaved buffer to a temp file and use the modified content |     " Write current unsaved buffer to a temp file and use the modified content | ||||||
|     let l:tmpname = tempname() |     let l:tmpname = tempname() | ||||||
|     call writefile(getline(1, '$'), l:tmpname) |     call writefile(go#util#GetLines(), l:tmpname) | ||||||
|     let fname = l:tmpname |     let fname = l:tmpname | ||||||
|   endif |   endif | ||||||
|  |  | ||||||
| @ -107,7 +107,7 @@ function! go#textobj#FunctionJump(mode, direction) abort | |||||||
|   if &modified |   if &modified | ||||||
|     " Write current unsaved buffer to a temp file and use the modified content |     " Write current unsaved buffer to a temp file and use the modified content | ||||||
|     let l:tmpname = tempname() |     let l:tmpname = tempname() | ||||||
|     call writefile(getline(1, '$'), l:tmpname) |     call writefile(go#util#GetLines(), l:tmpname) | ||||||
|     let fname = l:tmpname |     let fname = l:tmpname | ||||||
|   endif |   endif | ||||||
|  |  | ||||||
|  | |||||||
| @ -305,4 +305,17 @@ function! go#util#EchoInfo(msg) | |||||||
|   redraw | echohl Debug | echom "vim-go: " . a:msg | echohl None |   redraw | echohl Debug | echom "vim-go: " . a:msg | echohl None | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
|  | function! go#util#GetLines() | ||||||
|  |   let buf = getline(1, '$') | ||||||
|  |   if &encoding != 'utf-8' | ||||||
|  |     let buf = map(buf, 'iconv(v:val, &encoding, "utf-8")') | ||||||
|  |   endif | ||||||
|  |   if &l:fileformat == 'dos' | ||||||
|  |     " XXX: line2byte() depend on 'fileformat' option. | ||||||
|  |     " so if fileformat is 'dos', 'buf' must include '\r'. | ||||||
|  |     let buf = map(buf, 'v:val."\r"') | ||||||
|  |   endif | ||||||
|  |   return buf | ||||||
|  | endfunction | ||||||
|  |  | ||||||
| " vim: sw=2 ts=2 et | " vim: sw=2 ts=2 et | ||||||
|  | |||||||
| @ -1382,8 +1382,7 @@ For example here is how to set each to 30. | |||||||
| This option is Neovim only. Use it to change the behavior of the test | This option is Neovim only. Use it to change the behavior of the test | ||||||
| commands. If set to 1 it opens the test commands inside a new terminal | commands. If set to 1 it opens the test commands inside a new terminal | ||||||
| according to |'g:go_term_mode'|, otherwise it will run them in the background | according to |'g:go_term_mode'|, otherwise it will run them in the background | ||||||
| just like `:GoBuild` and then display the status with | just like `:GoBuild`. By default it is disabled. | ||||||
| |go#jobcontrol#Statusline()|. By default it is disabled. |  | ||||||
| > | > | ||||||
|   let g:go_term_enabled = 0 |   let g:go_term_enabled = 0 | ||||||
| < | < | ||||||
|  | |||||||
| @ -151,6 +151,14 @@ if err != nil { | |||||||
| ${0} | ${0} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  | # error log snippet | ||||||
|  | snippet errl "Error with log.Fatal(err)" !b | ||||||
|  | if err != nil { | ||||||
|  | 	log.Fatal(err) | ||||||
|  | } | ||||||
|  | ${0} | ||||||
|  | endsnippet | ||||||
|  |  | ||||||
| # error multiple return | # error multiple return | ||||||
| snippet errn, "Error return with two return values" !b | snippet errn, "Error return with two return values" !b | ||||||
| if err != nil { | if err != nil { | ||||||
|  | |||||||
| @ -132,6 +132,13 @@ abbr if err != nil { ... } | |||||||
| 		t.Fatal(err) | 		t.Fatal(err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | # error snippet in log.Fatal | ||||||
|  | snippet errl | ||||||
|  | abbr if err != nil { ... } | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Fatal(err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
| # error snippet with two return values | # error snippet with two return values | ||||||
| snippet errn, | snippet errn, | ||||||
| abbr if err != nil { return [...], err } | abbr if err != nil { return [...], err } | ||||||
|  | |||||||
| @ -32,7 +32,7 @@ command! -nargs=? -complete=dir GoPath call go#path#GoPath(<f-args>) | |||||||
| " target install directory. GoInstallBinaries doesn't install binaries if they | " target install directory. GoInstallBinaries doesn't install binaries if they | ||||||
| " exist, to update current binaries pass 1 to the argument. | " exist, to update current binaries pass 1 to the argument. | ||||||
| function! s:GoInstallBinaries(updateBinaries) | function! s:GoInstallBinaries(updateBinaries) | ||||||
|   if $GOPATH == "" |   if $GOPATH == "" && go#util#gopath() == "" | ||||||
|     echohl Error |     echohl Error | ||||||
|     echomsg "vim.go: $GOPATH is not set" |     echomsg "vim.go: $GOPATH is not set" | ||||||
|     echohl None |     echohl None | ||||||
|  | |||||||
							
								
								
									
										81
									
								
								sources_non_forked/vim-go/scripts/runtest.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								sources_non_forked/vim-go/scripts/runtest.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,81 @@ | |||||||
|  | let total_started = reltime() | ||||||
|  |  | ||||||
|  | " add vim-go the only plugin inside the runtimepath | ||||||
|  | let git_root_path = system("git rev-parse --show-toplevel | tr -d '\\n'") | ||||||
|  | exe 'set rtp=' . git_root_path | ||||||
|  |  | ||||||
|  | " source the passed test file | ||||||
|  | source % | ||||||
|  |  | ||||||
|  | " cd into the folder of the test file | ||||||
|  | let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' | ||||||
|  | let dir = getcwd() | ||||||
|  | execute cd . expand('%:p:h') | ||||||
|  |  | ||||||
|  | " initialize variables | ||||||
|  | let g:testname = expand('%') | ||||||
|  | let s:fail = 0 | ||||||
|  | let s:done = 0 | ||||||
|  | let s:logs = [] | ||||||
|  |  | ||||||
|  | " get a list of all Test_ functions for the given file | ||||||
|  | set nomore | ||||||
|  | redir @q | ||||||
|  | silent function /^Test_ | ||||||
|  | redir END | ||||||
|  | let s:tests = split(substitute(@q, 'function \(\k*()\)', '\1', 'g')) | ||||||
|  |  | ||||||
|  | " Iterate over all tests and execute them | ||||||
|  | for s:test in sort(s:tests) | ||||||
|  |   let started = reltime() | ||||||
|  |  | ||||||
|  |   call add(s:logs, printf("=== RUN   %s", s:test[:-3])) | ||||||
|  |   exe 'call ' . s:test | ||||||
|  |  | ||||||
|  |   let elapsed_time = reltimestr(reltime(started)) | ||||||
|  |   let elapsed_time = substitute(elapsed_time, '^\s*\(.\{-}\)\s*$', '\1', '') | ||||||
|  |  | ||||||
|  |   let s:done += 1 | ||||||
|  |  | ||||||
|  |   if len(v:errors) > 0 | ||||||
|  |     let s:fail += 1 | ||||||
|  |     call add(s:logs, printf("--- FAIL: %s (%ss)", s:test[:-3], elapsed_time)) | ||||||
|  |     call extend(s:logs, map(v:errors, '"        ".  v:val')) | ||||||
|  |  | ||||||
|  |     " reset so we can capture failures of next test | ||||||
|  |     let v:errors = [] | ||||||
|  |   else | ||||||
|  |     call add(s:logs, printf("--- PASS: %s (%ss)", s:test[:-3], elapsed_time)) | ||||||
|  |   endif | ||||||
|  | endfor | ||||||
|  |  | ||||||
|  | " pop out into the scripts folder | ||||||
|  | execute cd . fnameescape(dir) | ||||||
|  |  | ||||||
|  | " create an empty fail to indicate that the test failed | ||||||
|  | if s:fail > 0 | ||||||
|  |   split FAILED | ||||||
|  |   write | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | let total_elapsed_time = reltimestr(reltime(total_started)) | ||||||
|  | let total_elapsed_time = substitute(total_elapsed_time, '^\s*\(.\{-}\)\s*$', '\1', '') | ||||||
|  |  | ||||||
|  | let message = 'Executed ' . s:done . (s:done > 1 ? ' tests' : ' test') . '. Total test time: '. total_elapsed_time .'s' | ||||||
|  | call add(s:logs, "") | ||||||
|  | call add(s:logs, message) | ||||||
|  |  | ||||||
|  | " store all error messages from within vim into test.log | ||||||
|  | redir > test.log | ||||||
|  | silent messages | ||||||
|  | redir END | ||||||
|  |  | ||||||
|  | " also store all internal messages from s:logs: as well | ||||||
|  | split test.log | ||||||
|  | call append(line('$'), '') | ||||||
|  | call append(line('$'), 'From ' . g:testname . ':') | ||||||
|  | call append(line('$'), s:logs) | ||||||
|  | write | ||||||
|  |  | ||||||
|  | " bye, bye! | ||||||
|  | qall! | ||||||
| @ -1,77 +1,29 @@ | |||||||
| #!/bin/bash -e | #!/bin/bash | ||||||
| # |  | ||||||
| # Copyright 2012 The Go Authors. All rights reserved. | set -e | ||||||
| # Use of this source code is governed by a BSD-style |  | ||||||
| # license that can be found in the LICENSE file. |  | ||||||
| # |  | ||||||
| # Tests for import.vim. |  | ||||||
|  |  | ||||||
| cd $(dirname $0) | cd $(dirname $0) | ||||||
|  |  | ||||||
| cat > base.go <<EOF | # cleanup test.log | ||||||
| package test | if [ -f "test.log" ]; then | ||||||
|  |    rm test.log | ||||||
| import ( |  | ||||||
| 	"bytes" |  | ||||||
| 	"io" |  | ||||||
| 	"net" |  | ||||||
|  |  | ||||||
| 	"mycorp/foo" |  | ||||||
| ) |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| fail=0 |  | ||||||
|  |  | ||||||
| # usage: test_one command pattern |  | ||||||
| # Pattern is a PCRE expression that will match across lines. |  | ||||||
| test_one() { |  | ||||||
|   echo 2>&1 -n "$1: " |  | ||||||
|   vim -e -s -u /dev/null -U /dev/null --noplugin -c "source import.vim" \ |  | ||||||
|     -c "$1" -c 'wq! test.go' base.go |  | ||||||
|   # ensure blank lines are treated correctly |  | ||||||
|   if ! gofmt test.go | cmp test.go -; then |  | ||||||
|     echo 2>&1 "gofmt conflict" |  | ||||||
|     gofmt test.go | diff -u test.go - | sed "s/^/	/" 2>&1 |  | ||||||
|     fail=1 |  | ||||||
|     return |  | ||||||
| fi | fi | ||||||
|   if ! [[ $(cat test.go) =~ $2 ]]; then |  | ||||||
|     echo 2>&1 "$2 did not match" | if [ -f "FAILED" ]; then | ||||||
|     cat test.go | sed "s/^/	/" 2>&1 |    rm FAILED | ||||||
|     fail=1 |  | ||||||
|     return |  | ||||||
| fi | fi | ||||||
|   echo 2>&1 "ok" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # Tests for Import | for test_file in ../autoload/go/*_test.vim | ||||||
|  | do | ||||||
|  | 	vim -u NONE -S runtest.vim $test_file | ||||||
|  | done | ||||||
|  |  | ||||||
| test_one "Import baz" '"baz".*"bytes"' | if [ -f "test.log" ]; then | ||||||
| test_one "Import io/ioutil" '"io".*"io/ioutil".*"net"' |    cat test.log | ||||||
| test_one "Import myc" '"io".*"myc".*"net"'  # prefix of a site prefix | fi | ||||||
| test_one "Import nat" '"io".*"nat".*"net"' |  | ||||||
| test_one "Import net/http" '"net".*"net/http".*"mycorp/foo"' |  | ||||||
| test_one "Import zoo" '"net".*"zoo".*"mycorp/foo"' |  | ||||||
| test_one "Import mycorp/bar" '"net".*"mycorp/bar".*"mycorp/foo"' |  | ||||||
| test_one "Import mycorp/goo" '"net".*"mycorp/foo".*"mycorp/goo"' |  | ||||||
|  |  | ||||||
| # Tests for Drop | # if Failed exists, test failed | ||||||
|  | if [ -f "FAILED" ]; then | ||||||
| cat > base.go <<EOF |  | ||||||
| package test |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"foo" |  | ||||||
|  |  | ||||||
| 	"something" |  | ||||||
| 	"zoo" |  | ||||||
| ) |  | ||||||
| EOF |  | ||||||
|  |  | ||||||
| test_one "Drop something" '\([^"]*"foo"[^"]*"zoo"[^"]*\)' |  | ||||||
|  |  | ||||||
| rm -f base.go test.go |  | ||||||
| if [ $fail -gt 0 ]; then |  | ||||||
|   echo 2>&1 "FAIL" |   echo 2>&1 "FAIL" | ||||||
|   exit 1 |   exit 1 | ||||||
| fi | fi | ||||||
|  | |||||||
| @ -10,9 +10,7 @@ | |||||||
| "     let OPTION_NAME = 0 | "     let OPTION_NAME = 0 | ||||||
| "   in your ~/.vimrc file to disable particular options. You can also write: | "   in your ~/.vimrc file to disable particular options. You can also write: | ||||||
| "     let OPTION_NAME = 1 | "     let OPTION_NAME = 1 | ||||||
| "   to enable particular options. | "   to enable particular options. At present, all options default to off: | ||||||
| "   At present, all options default to on, except highlight of: |  | ||||||
| "   functions, methods, structs, operators, build constraints and interfaces. |  | ||||||
| " | " | ||||||
| "   - go_highlight_array_whitespace_error | "   - go_highlight_array_whitespace_error | ||||||
| "     Highlights white space after "[]". | "     Highlights white space after "[]". | ||||||
| @ -36,23 +34,23 @@ if exists("b:current_syntax") | |||||||
| endif | endif | ||||||
|  |  | ||||||
| if !exists("g:go_highlight_array_whitespace_error") | if !exists("g:go_highlight_array_whitespace_error") | ||||||
|   let g:go_highlight_array_whitespace_error = 1 |   let g:go_highlight_array_whitespace_error = 0 | ||||||
| endif | endif | ||||||
|  |  | ||||||
| if !exists("g:go_highlight_chan_whitespace_error") | if !exists("g:go_highlight_chan_whitespace_error") | ||||||
|   let g:go_highlight_chan_whitespace_error = 1 |   let g:go_highlight_chan_whitespace_error = 0 | ||||||
| endif | endif | ||||||
|  |  | ||||||
| if !exists("g:go_highlight_extra_types") | if !exists("g:go_highlight_extra_types") | ||||||
|   let g:go_highlight_extra_types = 1 |   let g:go_highlight_extra_types = 0 | ||||||
| endif | endif | ||||||
|  |  | ||||||
| if !exists("g:go_highlight_space_tab_error") | if !exists("g:go_highlight_space_tab_error") | ||||||
|   let g:go_highlight_space_tab_error = 1 |   let g:go_highlight_space_tab_error = 0 | ||||||
| endif | endif | ||||||
|  |  | ||||||
| if !exists("g:go_highlight_trailing_whitespace_error") | if !exists("g:go_highlight_trailing_whitespace_error") | ||||||
|   let g:go_highlight_trailing_whitespace_error = 1 |   let g:go_highlight_trailing_whitespace_error = 0 | ||||||
| endif | endif | ||||||
|  |  | ||||||
| if !exists("g:go_highlight_operators") | if !exists("g:go_highlight_operators") | ||||||
|  | |||||||
| @ -1,191 +0,0 @@ | |||||||
| " to execute, `rake test` on parent dir |  | ||||||
|  |  | ||||||
| describe 'go#coverage#Buffer' |  | ||||||
|     before |  | ||||||
|         new |  | ||||||
| 	let g:curdir = expand('<sfile>:p:h') . '/' |  | ||||||
| 	let g:srcpath = 't/fixtures/src/' |  | ||||||
| 	let g:sample = 'pkg1/sample.go' |  | ||||||
| 	let g:sampleabs = g:curdir . g:srcpath . 'pkg1/sample.go' |  | ||||||
| 	let g:samplecover = g:curdir . g:srcpath . 'pkg1/sample.out' |  | ||||||
| 	let g:go_gopath = g:curdir . 't/fixtures' |  | ||||||
| 	execute "badd " . g:srcpath . g:sample |  | ||||||
| 	execute "buffer " . bufnr("$") |  | ||||||
|     end |  | ||||||
|     after |  | ||||||
| 	execute "bprev" |  | ||||||
| 	execute "bdelete " . g:srcpath . g:sample |  | ||||||
|         close! |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     it 'puts match to the list' |  | ||||||
|         call go#coverage#Buffer(0) |  | ||||||
|         Expect len(go#coverlay#matches()) == 5 |  | ||||||
|         call go#coverlay#Clearlay() |  | ||||||
|         Expect len(go#coverlay#matches()) == 0 |  | ||||||
|  |  | ||||||
|         call go#coverage#Buffer(0) |  | ||||||
|         Expect len(go#coverlay#matches()) == 5 |  | ||||||
|         call go#coverlay#Clearlay() |  | ||||||
|         Expect len(go#coverlay#matches()) == 0 |  | ||||||
|  |  | ||||||
|         call go#coverage#Buffer(0) |  | ||||||
|         Expect len(go#coverlay#matches()) == 5 |  | ||||||
|         call go#coverage#Buffer(0) |  | ||||||
|         Expect len(go#coverlay#matches()) == 5 |  | ||||||
|         call go#coverlay#Clearlay() |  | ||||||
|         Expect len(go#coverlay#matches()) == 0 |  | ||||||
|     end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| describe 'go#coverage#Buffer fail' |  | ||||||
|     before |  | ||||||
|         new |  | ||||||
| 	let g:curdir = expand('<sfile>:p:h') . '/' |  | ||||||
| 	let g:srcpath = 't/fixtures/src/' |  | ||||||
| 	let g:sample = 'failtest/sample.go' |  | ||||||
| 	let g:sampletest = 'failtest/sample_test.go' |  | ||||||
| 	let g:sampleabs = g:curdir . g:srcpath . 'failtest/sample.go' |  | ||||||
| 	let g:go_gopath = g:curdir . 't/fixtures' |  | ||||||
| 	execute "badd " . g:srcpath . g:sample |  | ||||||
| 	execute "buffer " . bufnr("$") |  | ||||||
|     end |  | ||||||
|     after |  | ||||||
| 	execute "bprev" |  | ||||||
| 	execute "bdelete " . g:srcpath . g:sampletest |  | ||||||
| 	execute "bdelete " . g:srcpath . g:sample |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     it 'does nothing if test fail' |  | ||||||
| 	call go#coverage#Buffer(0) |  | ||||||
| 	Expect len(go#coverlay#matches()) == 0 |  | ||||||
| 	Expect len(getqflist()) == 1 |  | ||||||
|     end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| describe 'go#coverage#Buffer build fail' |  | ||||||
|     before |  | ||||||
|         new |  | ||||||
| 	let g:curdir = expand('<sfile>:p:h') . '/' |  | ||||||
| 	let g:srcpath = 't/fixtures/src/' |  | ||||||
| 	let g:sample = 'buildfail/sample.go' |  | ||||||
| 	let g:sampleabs = g:curdir . g:srcpath . 'buildfail/sample.go' |  | ||||||
| 	let g:go_gopath = g:curdir . 't/fixtures' |  | ||||||
| 	execute "badd " . g:srcpath . g:sample |  | ||||||
| 	execute "buffer " . bufnr("$") |  | ||||||
|     end |  | ||||||
|     after |  | ||||||
| 	execute "bprev" |  | ||||||
| 	execute "bdelete " . g:srcpath . g:sample |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     it 'does nothing if test fail' |  | ||||||
| 	call go#coverage#Buffer(0) |  | ||||||
| 	Expect len(go#coverlay#matches()) == 0 |  | ||||||
|     end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| describe 'go#coverage#Buffer build test fail' |  | ||||||
|     before |  | ||||||
|         new |  | ||||||
| 	let g:curdir = expand('<sfile>:p:h') . '/' |  | ||||||
| 	let g:srcpath = 't/fixtures/src/' |  | ||||||
| 	let g:sample = 'buildtestfail/sample.go' |  | ||||||
| 	let g:sampleabs = g:curdir . g:srcpath . 'buildtestfail/sample.go' |  | ||||||
| 	let g:go_gopath = g:curdir . 't/fixtures' |  | ||||||
| 	execute "badd " . g:srcpath . g:sample |  | ||||||
| 	execute "buffer " . bufnr("$") |  | ||||||
|     end |  | ||||||
|     after |  | ||||||
| 	execute "bprev" |  | ||||||
| 	execute "bdelete " . g:srcpath . g:sample |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     it 'does nothing if test fail' |  | ||||||
| 	call go#coverage#Buffer(0) |  | ||||||
| 	Expect len(go#coverlay#matches()) == 0 |  | ||||||
|     end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| describe 'go#coverlay#findbufnr' |  | ||||||
|     before |  | ||||||
|         new |  | ||||||
| 	let g:curdir = expand('<sfile>:p:h') . '/' |  | ||||||
| 	let g:srcpath = 't/fixtures/src/' |  | ||||||
| 	let g:sample = 'pkg1/sample.go' |  | ||||||
| 	let g:sample2 = 'pkg2/sample.go' |  | ||||||
| 	let g:sampleabs = g:curdir . g:srcpath . 'pkg1/sample.go' |  | ||||||
| 	let g:sampleabs2 = g:curdir . g:srcpath . 'pkg2/sample.go' |  | ||||||
| 	let g:go_gopath = g:curdir . 't/fixtures' |  | ||||||
| 	execute "badd " . g:srcpath . g:sample |  | ||||||
| 	execute "badd " . g:srcpath . g:sample2 |  | ||||||
|     end |  | ||||||
|     after |  | ||||||
| 	execute "bdelete " . g:srcpath . g:sample2 |  | ||||||
| 	execute "bdelete " . g:srcpath . g:sample |  | ||||||
|         close! |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     it 'returns BUFNR if FILE is opened at BUFNR' |  | ||||||
|         Expect go#coverlay#findbufnr('_' . g:sampleabs) == bufnr(g:sampleabs) |  | ||||||
|         Expect go#coverlay#findbufnr(g:sample) == bufnr(g:sampleabs) |  | ||||||
|  |  | ||||||
|         Expect go#coverlay#findbufnr('_' . g:sampleabs2) == bufnr(g:sampleabs2) |  | ||||||
|         Expect go#coverlay#findbufnr(g:sample2) == bufnr(g:sampleabs2) |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     it 'returns -1 if FILE is not exists' |  | ||||||
|         Expect go#coverlay#findbufnr('pkg1/NOTEXISTS.go') == -1 |  | ||||||
|         Expect go#coverlay#findbufnr('_' . g:curdir . g:srcpath . 'pkg1/NOTEXISTS.go') == -1 |  | ||||||
|     end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| describe 'go#coverlay#isopenedon' |  | ||||||
|     before |  | ||||||
|         new |  | ||||||
| 	let g:curdir = expand('<sfile>:p:h') . '/' |  | ||||||
| 	let g:srcpath = 't/fixtures/src/' |  | ||||||
| 	let g:sample = 'pkg1/sample.go' |  | ||||||
| 	let g:sampleabs = g:curdir . g:srcpath . 'pkg1/sample.go' |  | ||||||
| 	let g:go_gopath = g:curdir . 't/fixtures' |  | ||||||
| 	execute "badd " . g:srcpath . g:sample |  | ||||||
|     end |  | ||||||
|     after |  | ||||||
| 	execute "bdelete " . g:srcpath . g:sample |  | ||||||
|         close! |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     it 'returns 1 if FILE is opened at BUFNR' |  | ||||||
|         Expect go#coverlay#isopenedon('_' . g:sampleabs, bufnr(g:sampleabs)) == 1 |  | ||||||
|         Expect go#coverlay#isopenedon(g:sample, bufnr(g:sampleabs)) == 1 |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     it 'returns 0 if FILE is not opened at BUFNR' |  | ||||||
|         Expect go#coverlay#isopenedon('_' . g:sampleabs, 42) == 0 |  | ||||||
|         Expect go#coverlay#isopenedon(g:sample, 42) == 0 |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     it 'returns 0 if FILE is not exists' |  | ||||||
|         Expect go#coverlay#isopenedon('_' . g:curdir . g:srcpath . 'pkg1/NOTEXISTS', bufnr(g:sampleabs)) == 0 |  | ||||||
|         Expect go#coverlay#isopenedon('pkg1/NOTEXISTS.go', bufnr(g:sampleabs)) == 0 |  | ||||||
|     end |  | ||||||
| end |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| describe 'go#coverlay#parsegocoverline' |  | ||||||
|     it 'parses a go cover output line and returns as dict' |  | ||||||
|         let d = {'file': 'f',"startline": "1", "startcol": "2", "endline": "3", "endcol": "4", "numstmt": "5", "cnt": "6"} |  | ||||||
|         " file:startline.col,endline.col numstmt count |  | ||||||
|         Expect go#coverlay#parsegocoverline("f:1.2,3.4 5 6") == d |  | ||||||
|     end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| describe 'go#coverlay#genmatch' |  | ||||||
|     it 'generate mark pattern from cover data' |  | ||||||
|         let d = {'file': 'f',"startline": "1", "startcol": "2", "endline": "3", "endcol": "4", "numstmt": "5", "cnt": "6"} |  | ||||||
|         Expect go#coverlay#genmatch(d) == {'group': 'covered', "pattern": '\%>1l\_^\s\+\%<3l\|\%1l\_^\s\+\|\%3l\_^\s\+\(\}$\)\@!', "priority": 6} |  | ||||||
|         let d = {'file': 'f',"startline": "1", "startcol": "2", "endline": "3", "endcol": "4", "numstmt": "5", "cnt": "0"} |  | ||||||
|         Expect go#coverlay#genmatch(d) == {'group': 'uncover', "pattern": '\%>1l\_^\s\+\%<3l\|\%1l\_^\s\+\|\%3l\_^\s\+\(\}$\)\@!', "priority": 5} |  | ||||||
|     end |  | ||||||
| end |  | ||||||
| @ -1,13 +0,0 @@ | |||||||
| // set gopath before |  | ||||||
| //go:generate go test --coverprofile=sample.out |  | ||||||
| // go1.5.3 example output: |  | ||||||
| //   GOPATH=`pwd`/fixtures go test --coverprofile=log.out buildfail |  | ||||||
| //   # buildfail |  | ||||||
| //   /tmp/go-build264733986/buildfail/_test/_obj_test/sample.go:7: undefined: IT_SHOULD_BE_BUILD_FAILED |  | ||||||
| //   /tmp/go-build264733986/buildfail/_test/_obj_test/sample.go:8: missing return at end of function |  | ||||||
| //   FAIL    buildfail [build failed] |  | ||||||
| package pkg |  | ||||||
|  |  | ||||||
| func Sample() int { |  | ||||||
| 	IT_SHOULD_BE_BUILD_FAILED |  | ||||||
| } |  | ||||||
| @ -1,7 +0,0 @@ | |||||||
| package pkg |  | ||||||
|  |  | ||||||
| import "testing" |  | ||||||
|  |  | ||||||
| func TestSample(t *testing.T) { |  | ||||||
| 	Sample() |  | ||||||
| } |  | ||||||
| @ -1,7 +0,0 @@ | |||||||
| // set gopath before |  | ||||||
| //go:generate go test --coverprofile=sample.out |  | ||||||
| package pkg |  | ||||||
|  |  | ||||||
| func Sample() int { |  | ||||||
| 	return 1 |  | ||||||
| } |  | ||||||
| @ -1,15 +0,0 @@ | |||||||
| // go1.5.3 example output: |  | ||||||
| //   GOPATH=`pwd`/fixtures go test --coverprofile=log.out buildtestfail |  | ||||||
| //   # buildtestfail |  | ||||||
| //   fixtures/src/buildtestfail/sample_test.go:14: undefined: IT_SHOULD_BE_BUILD_FAILED |  | ||||||
| //   FAIL    buildtestfail [build failed] |  | ||||||
| //   echo $? |  | ||||||
| //   2 |  | ||||||
|  |  | ||||||
| package pkg |  | ||||||
|  |  | ||||||
| import "testing" |  | ||||||
|  |  | ||||||
| func TestSample(t *testing.T) { |  | ||||||
| 	IT_SHOULD_BE_BUILD_FAILED |  | ||||||
| } |  | ||||||
| @ -1,12 +0,0 @@ | |||||||
| // set gopath before |  | ||||||
| //go:generate go test --coverprofile=sample.out |  | ||||||
| package pkg |  | ||||||
|  |  | ||||||
| func Sample() int { |  | ||||||
| 	if false { |  | ||||||
| 		return 0 |  | ||||||
| 	} else if false { |  | ||||||
| 		return 0 |  | ||||||
| 	} |  | ||||||
| 	return 1 |  | ||||||
| } |  | ||||||
| @ -1,8 +0,0 @@ | |||||||
| package pkg |  | ||||||
|  |  | ||||||
| import "testing" |  | ||||||
|  |  | ||||||
| func TestSample(t *testing.T) { |  | ||||||
| 	Sample() |  | ||||||
| 	t.Fatal("itwillfail") |  | ||||||
| } |  | ||||||
| @ -1,14 +0,0 @@ | |||||||
| // set gopath before |  | ||||||
| //go:generate go test --coverprofile=sample.out |  | ||||||
| // go1.5.3 example output: |  | ||||||
| //   GOPATH=`pwd`/fixtures go test --coverprofile=log.out parsefail |  | ||||||
| //   # cover parsefail |  | ||||||
| //   2016/01/17 23:59:08 cover: /home/sey/vimfiles/_vim/bundle/vim-go-coverlay/t/fixtures/src/parsefail/sample.go: /home/sey/vimfiles/_vim/bundle/vim-go-coverlay/t/fixtures/src/parsefail/sample.go:10:1: expected declaration, found 'IDENT' PARSEFAIL |  | ||||||
| //   FAIL    parsefail [build failed] |  | ||||||
| //   echo $? |  | ||||||
| //   2 |  | ||||||
| package pkg |  | ||||||
|  |  | ||||||
| PARSEFAIL Sample() int { |  | ||||||
| 	return 0 |  | ||||||
| } |  | ||||||
| @ -1,7 +0,0 @@ | |||||||
| package pkg |  | ||||||
|  |  | ||||||
| import "testing" |  | ||||||
|  |  | ||||||
| func TestSample(t *testing.T) { |  | ||||||
| 	Sample() |  | ||||||
| } |  | ||||||
| @ -1,12 +0,0 @@ | |||||||
| // set gopath before |  | ||||||
| //go:generate go test --coverprofile=sample.out |  | ||||||
| package pkg1 |  | ||||||
|  |  | ||||||
| func Sample() int { |  | ||||||
| 	if false { |  | ||||||
| 		return 0 |  | ||||||
| 	} else if false { |  | ||||||
| 		return 0 |  | ||||||
| 	} |  | ||||||
| 	return 1 |  | ||||||
| } |  | ||||||
| @ -1,6 +0,0 @@ | |||||||
| mode: set |  | ||||||
| pkg1/sample.go:5.19,6.11 1 1 |  | ||||||
| pkg1/sample.go:11.2,11.10 1 1 |  | ||||||
| pkg1/sample.go:6.11,8.3 1 0 |  | ||||||
| pkg1/sample.go:8.3,8.18 1 1 |  | ||||||
| pkg1/sample.go:8.18,10.3 1 0 |  | ||||||
| @ -1,7 +0,0 @@ | |||||||
| package pkg1 |  | ||||||
|  |  | ||||||
| import "testing" |  | ||||||
|  |  | ||||||
| func TestSample(t *testing.T) { |  | ||||||
| 	Sample() |  | ||||||
| } |  | ||||||
| @ -2,6 +2,8 @@ | |||||||
|  |  | ||||||
| Vim syntax highlighting for Pug (formerly Jade) templates. | Vim syntax highlighting for Pug (formerly Jade) templates. | ||||||
|  |  | ||||||
|  | For best results consider using this with an (improved) HTML5 syntax plugin. | ||||||
|  |  | ||||||
| Installation | Installation | ||||||
| ------------ | ------------ | ||||||
|  |  | ||||||
|  | |||||||
| @ -36,8 +36,9 @@ syntax keyword pugCommentTodo  contained TODO FIXME XXX TBD | |||||||
| syn match   pugComment '\(\s\+\|^\)\/\/.*$' contains=pugCommentTodo | syn match   pugComment '\(\s\+\|^\)\/\/.*$' contains=pugCommentTodo | ||||||
| syn region  pugCommentBlock start="\z(\s\+\|^\)\/\/.*$" end="^\%(\z1\s\|\s*$\)\@!" contains=pugCommentTodo keepend | syn region  pugCommentBlock start="\z(\s\+\|^\)\/\/.*$" end="^\%(\z1\s\|\s*$\)\@!" contains=pugCommentTodo keepend | ||||||
| syn region  pugHtmlConditionalComment start="<!--\%(.*\)>" end="<!\%(.*\)-->" contains=pugCommentTodo | syn region  pugHtmlConditionalComment start="<!--\%(.*\)>" end="<!\%(.*\)-->" contains=pugCommentTodo | ||||||
| syn region  pugAttributes matchgroup=pugAttributesDelimiter start="(" end=")" contained contains=@htmlJavascript,pugHtmlArg,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@pugComponent | syn region  pugAngular2 start="(" end=")" contains=htmlEvent | ||||||
| syn match   pugClassChar "\." contained nextgroup=pugClass | syn region  pugAttributes matchgroup=pugAttributesDelimiter start="(" end=")" contained contains=@htmlJavascript,pugHtmlArg,pugAngular2,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@pugComponent | ||||||
|  | syn match   pugClassChar "\." containedin=htmlTagName nextgroup=pugClass | ||||||
| syn match   pugBlockExpansionChar ":\s\+" contained nextgroup=pugTag,pugClassChar,pugIdChar | syn match   pugBlockExpansionChar ":\s\+" contained nextgroup=pugTag,pugClassChar,pugIdChar | ||||||
| syn match   pugIdChar "#[[{]\@!" contained nextgroup=pugId | syn match   pugIdChar "#[[{]\@!" contained nextgroup=pugId | ||||||
| syn match   pugClass "\%(\w\|-\)\+" contained nextgroup=@pugComponent | syn match   pugClass "\%(\w\|-\)\+" contained nextgroup=@pugComponent | ||||||
|  | |||||||
| @ -131,14 +131,14 @@ Don't add useless placeholder default texts like: | |||||||
|  |  | ||||||
| ``` | ``` | ||||||
| if (${1:condition}){ | if (${1:condition}){ | ||||||
|   ${2:some code here} |   ${0:some code here} | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
| instead use: | instead use: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| if (${1}){ | if (${1}){ | ||||||
|   ${2} |   ${0:${VISUAL}} | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| @ -148,6 +148,8 @@ get vim-dev plugin which has function completion | |||||||
|  |  | ||||||
| Thus for conditions (while, if ..) and block bodies just use ${N} - Thanks | Thus for conditions (while, if ..) and block bodies just use ${N} - Thanks | ||||||
|  |  | ||||||
|  | When the snippet can be used to wrap existing code leverage `${VISUAL}` | ||||||
|  |  | ||||||
| Open questions: | Open questions: | ||||||
| What about one line if ee then .. else .. vs if \n .. then \n ... \n else \n .. ? | What about one line if ee then .. else .. vs if \n .. then \n ... \n else \n .. ? | ||||||
| Which additional policies to add? | Which additional policies to add? | ||||||
|  | |||||||
| @ -77,23 +77,23 @@ endsnippet | |||||||
| # DATES # | # DATES # | ||||||
| ######### | ######### | ||||||
| snippet date "YYYY-MM-DD" w | snippet date "YYYY-MM-DD" w | ||||||
| `date +%Y-%m-%d` | `!v strftime("%F")` | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ddate "Month DD, YYYY" w | snippet ddate "Month DD, YYYY" w | ||||||
| `date +%B\ %d,\ %Y` | `!v strftime("%b %d, %Y")` | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet diso "ISO format datetime" w | snippet diso "ISO format datetime" w | ||||||
| `date +%Y-%m-%dT%H:%M:%S%:z` | `!v strftime("%F %H:%M:%S%z")` | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet time "hh:mm" w | snippet time "hh:mm" w | ||||||
| `date +%H:%M` | `!v strftime("%H:%M")` | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet datetime "YYYY-MM-DD hh:mm" w | snippet datetime "YYYY-MM-DD hh:mm" w | ||||||
| `date +%Y-%m-%d\ %H:%M` | `!v strftime("%Y-%m-%d %H:%M")` | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # vim:ft=snippets: | # vim:ft=snippets: | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| priority -50 | priority -50 | ||||||
|  |  | ||||||
| snippet def "#define ..." | snippet def "#define ..." | ||||||
| #define ${1} | #define $1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet #ifndef "#ifndef ... #define ... #endif" | snippet #ifndef "#ifndef ... #define ... #endif" | ||||||
| @ -16,7 +16,7 @@ endsnippet | |||||||
|  |  | ||||||
| snippet #if "#if #endif" b | snippet #if "#if #endif" b | ||||||
| #if ${1:0} | #if ${1:0} | ||||||
| ${VISUAL}${0} | ${VISUAL}$0 | ||||||
| #endif | #endif | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -32,20 +32,20 @@ endsnippet | |||||||
| snippet main "main() (main)" | snippet main "main() (main)" | ||||||
| int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||||||
| { | { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet for "for loop (for)" | snippet for "for loop (for)" | ||||||
| for (${2:i} = 0; $2 < ${1:count}; ${3:++$2}) { | for (${2:i} = 0; $2 < ${1:count}; ${3:++$2}) { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet fori "for int loop (fori)" | snippet fori "for int loop (fori)" | ||||||
| for (${4:int} ${2:i} = 0; $2 < ${1:count}; ${3:++$2}) { | for (${4:int} ${2:i} = 0; $2 < ${1:count}; ${3:++$2}) { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -60,7 +60,7 @@ else: | |||||||
| 	snip.rv = snip.c`} | 	snip.rv = snip.c`} | ||||||
| #define $1 | #define $1 | ||||||
|  |  | ||||||
| ${VISUAL}${0} | ${VISUAL}$0 | ||||||
|  |  | ||||||
| #endif /* end of include guard: $1 */ | #endif /* end of include guard: $1 */ | ||||||
| endsnippet | endsnippet | ||||||
| @ -71,7 +71,7 @@ endsnippet | |||||||
|  |  | ||||||
| snippet eli "else if .. (eli)" | snippet eli "else if .. (eli)" | ||||||
| else if (${1:/* condition */}) { | else if (${1:/* condition */}) { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -86,14 +86,14 @@ struct ${1:`!p snip.rv = (snip.basename or "name") + "_t"`} { | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet fun "function" b | snippet fun "function" b | ||||||
| ${1:void} ${2:function_name}(${3}) | ${1:void} ${2:function_name}($3) | ||||||
| { | { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet fund "function declaration" b | snippet fund "function declaration" b | ||||||
| ${1:void} ${2:function_name}(${3}); | ${1:void} ${2:function_name}($3); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # vim:ft=snippets: | # vim:ft=snippets: | ||||||
|  | |||||||
| @ -12,7 +12,7 @@ snippet createClass "React define Class" b | |||||||
| ${1:classname}Class = React.createClass | ${1:classname}Class = React.createClass | ||||||
| 	displayName: "$1" | 	displayName: "$1" | ||||||
| 	render: -> | 	render: -> | ||||||
| 		${2} | 		$2 | ||||||
| $1 = React.createFactory($1) | $1 = React.createFactory($1) | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -23,58 +23,58 @@ endsnippet | |||||||
|  |  | ||||||
| snippet propType "React propType (key/value)" b | snippet propType "React propType (key/value)" b | ||||||
| ${1:myVar}: React.PropTypes.${2:type}${3:.isRequired} | ${1:myVar}: React.PropTypes.${2:type}${3:.isRequired} | ||||||
| ${4} | $4 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet setState "React setState" b | snippet setState "React setState" b | ||||||
| @setState | @setState | ||||||
| 	${1:myvar}: ${2:myvalue} | 	${1:myvar}: ${2:myvalue} | ||||||
| 	${3} | 	$3 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet getInitialState "React define getInitialState" b | snippet getInitialState "React define getInitialState" b | ||||||
| getInitialState: -> | getInitialState: -> | ||||||
| 	${1:myvar}: ${2:myvalue} | 	${1:myvar}: ${2:myvalue} | ||||||
| 	${3} | 	$3 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet getDefaultProps "React define getDefaultProps" b | snippet getDefaultProps "React define getDefaultProps" b | ||||||
| getDefaultProps: -> | getDefaultProps: -> | ||||||
| 	${1:myvar}: ${2:myvalue} | 	${1:myvar}: ${2:myvalue} | ||||||
| 	${3} | 	$3 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet componentWillMount "React define componentWillMount" b | snippet componentWillMount "React define componentWillMount" b | ||||||
| componentWillMount: -> | componentWillMount: -> | ||||||
| 	${1} | 	$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet componentDidMount "React define componentDidMount" b | snippet componentDidMount "React define componentDidMount" b | ||||||
| componentDidMount: -> | componentDidMount: -> | ||||||
| 	${1} | 	$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet componentWillReceiveProps "React define componentWillReceiveProps" b | snippet componentWillReceiveProps "React define componentWillReceiveProps" b | ||||||
| componentWillReceiveProps: (nextProps) -> | componentWillReceiveProps: (nextProps) -> | ||||||
| 	${1} | 	$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet shouldComponentUpdate "React define shouldComponentUpdate" b | snippet shouldComponentUpdate "React define shouldComponentUpdate" b | ||||||
| shouldComponentUpdate: (nextProps, nextState) -> | shouldComponentUpdate: (nextProps, nextState) -> | ||||||
| 	${1} | 	$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet componentWillUpdate "React define componentWillUpdate" b | snippet componentWillUpdate "React define componentWillUpdate" b | ||||||
| componentWillUpdate: (nextProps, nextState) -> | componentWillUpdate: (nextProps, nextState) -> | ||||||
| 	${1} | 	$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet componentDidUpdate "React define componentDidUpdate" b | snippet componentDidUpdate "React define componentDidUpdate" b | ||||||
| componentDidUpdate: (prevProps, prevState) -> | componentDidUpdate: (prevProps, prevState) -> | ||||||
| 	${1} | 	$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet componentWillUnmount "React define componentWillUnmount" b | snippet componentWillUnmount "React define componentWillUnmount" b | ||||||
| componentWillUnmount: -> | componentWillUnmount: -> | ||||||
| 	${1} | 	$1 | ||||||
| endsnippet | endsnippet | ||||||
|  | |||||||
| @ -27,7 +27,7 @@ endsnippet | |||||||
| snippet ns "namespace .. (namespace)" | snippet ns "namespace .. (namespace)" | ||||||
| namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`} | namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`} | ||||||
| { | { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| }${1/.+/ \/* /m}$1${1/.+/ *\/ /m} | }${1/.+/ \/* /m}$1${1/.+/ *\/ /m} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -61,7 +61,7 @@ snippet cla "An entire .h generator" b | |||||||
| class ${1:`!v substitute(substitute(vim_snippets#Filename('$1','ClassName'),'^.','\u&',''), '_\(\w\)', '\u\1', 'g')`} | class ${1:`!v substitute(substitute(vim_snippets#Filename('$1','ClassName'),'^.','\u&',''), '_\(\w\)', '\u\1', 'g')`} | ||||||
| { | { | ||||||
| private: | private: | ||||||
| 	${3} | 	$3 | ||||||
|  |  | ||||||
| public: | public: | ||||||
| 	$1(); | 	$1(); | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								sources_non_forked/vim-snippets/UltiSnips/crystal.snippets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								sources_non_forked/vim-snippets/UltiSnips/crystal.snippets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | priority -50 | ||||||
|  |  | ||||||
|  | snippet "\b(de)?f" "def <name>..." r | ||||||
|  | def ${1:method_name}${2:(${3:*args})} | ||||||
|  | 	$0 | ||||||
|  | end | ||||||
|  | endsnippet | ||||||
|  |  | ||||||
|  | snippet "\b(pde)?f" "private def <name>..." r | ||||||
|  | private def ${1:method_name}${2:(${3:*args})} | ||||||
|  | 	$0 | ||||||
|  | end | ||||||
|  | endsnippet | ||||||
| @ -259,7 +259,7 @@ finally | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet throw "throw" | snippet throw "throw" | ||||||
| throw new ${1}Exception("${2}"); | throw new $1Exception("$2"); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,11 +1,5 @@ | |||||||
| priority -50 | priority -50 | ||||||
|  |  | ||||||
| snippet . "selector { }" |  | ||||||
| $1 { |  | ||||||
| 	$0 |  | ||||||
| } |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet p "padding" | snippet p "padding" | ||||||
| padding: ${1:0};$0 | padding: ${1:0};$0 | ||||||
| endsnippet | endsnippet | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ mixin ${1:/*mixed_in*/} ${2:/*name*/}; | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet new "new (new)" | snippet new "new (new)" | ||||||
| new ${1}(${2}); | new $1($2); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet scpn "@safe const pure nothrow (scpn)" | snippet scpn "@safe const pure nothrow (scpn)" | ||||||
| @ -98,7 +98,7 @@ endsnippet | |||||||
|  |  | ||||||
| snippet enf "enforce (enf)" b | snippet enf "enforce (enf)" b | ||||||
| enforce(${1:/*condition*/}, | enforce(${1:/*condition*/}, | ||||||
| 	new ${2}Exception(${3:/*args*/})); | 	new $2Exception(${3:/*args*/})); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # Branches | # Branches | ||||||
| @ -106,14 +106,14 @@ endsnippet | |||||||
| snippet if "if .. (if)" | snippet if "if .. (if)" | ||||||
| if(${1:/*condition*/}) | if(${1:/*condition*/}) | ||||||
| { | { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ife "if .. else (ife)" b | snippet ife "if .. else (ife)" b | ||||||
| if(${1:/*condition*/}) | if(${1:/*condition*/}) | ||||||
| { | { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
| else | else | ||||||
| { | { | ||||||
| @ -124,14 +124,14 @@ endsnippet | |||||||
| snippet el "else (el)" b | snippet el "else (el)" b | ||||||
| else | else | ||||||
| { | { | ||||||
| 	${VISUAL}${1} | 	${VISUAL}$1 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet elif "else if (elif)" b | snippet elif "else if (elif)" b | ||||||
| else if(${1:/*condition*/}) | else if(${1:/*condition*/}) | ||||||
| { | { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -139,10 +139,10 @@ snippet sw "switch (sw)" | |||||||
| switch(${1:/*var*/}) | switch(${1:/*var*/}) | ||||||
| { | { | ||||||
| 	case ${2:/*value*/}: | 	case ${2:/*value*/}: | ||||||
| 		${3} | 		$3 | ||||||
| 		break; | 		break; | ||||||
| 	case ${4:/*value*/}: | 	case ${4:/*value*/}: | ||||||
| 		${5} | 		$5 | ||||||
| 		break; | 		break; | ||||||
| 	${7:/*more cases*/} | 	${7:/*more cases*/} | ||||||
| 	default: | 	default: | ||||||
| @ -154,10 +154,10 @@ snippet fsw "final switch (fsw)" | |||||||
| final switch(${1:/*var*/}) | final switch(${1:/*var*/}) | ||||||
| { | { | ||||||
| 	case ${2:/*value*/}: | 	case ${2:/*value*/}: | ||||||
| 		${3} | 		$3 | ||||||
| 		break; | 		break; | ||||||
| 	case ${4:/*value*/}: | 	case ${4:/*value*/}: | ||||||
| 		${5} | 		$5 | ||||||
| 		break; | 		break; | ||||||
| 	${7:/*more cases*/} | 	${7:/*more cases*/} | ||||||
| } | } | ||||||
| @ -165,7 +165,7 @@ endsnippet | |||||||
|  |  | ||||||
| snippet case "case (case)" b | snippet case "case (case)" b | ||||||
| case ${1:/*value*/}: | case ${1:/*value*/}: | ||||||
| 	${2} | 	$2 | ||||||
| 	break; | 	break; | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -178,42 +178,42 @@ endsnippet | |||||||
| snippet do "do while (do)" b | snippet do "do while (do)" b | ||||||
| do | do | ||||||
| { | { | ||||||
| 	${VISUAL}${2} | 	${VISUAL}$2 | ||||||
| } while(${1:/*condition*/}); | } while(${1:/*condition*/}); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet wh "while (wh)" b | snippet wh "while (wh)" b | ||||||
| while(${1:/*condition*/}) | while(${1:/*condition*/}) | ||||||
| { | { | ||||||
| 	${VISUAL}${2} | 	${VISUAL}$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet for "for (for)" b | snippet for "for (for)" b | ||||||
| for (${4:size_t} ${2:i} = 0; $2 < ${1:count}; ${3:++$2}) | for (${4:size_t} ${2:i} = 0; $2 < ${1:count}; ${3:++$2}) | ||||||
| { | { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet forever "forever (forever)" b | snippet forever "forever (forever)" b | ||||||
| for(;;) | for(;;) | ||||||
| { | { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet fore "foreach (fore)" | snippet fore "foreach (fore)" | ||||||
| foreach(${1:/*elem*/}; ${2:/*range*/}) | foreach(${1:/*elem*/}; ${2:/*range*/}) | ||||||
| { | { | ||||||
| 	${VISUAL}${3} | 	${VISUAL}$3 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet forif "foreach if (forif)" b | snippet forif "foreach if (forif)" b | ||||||
| foreach(${1:/*elem*/}; ${2:/*range*/}) if(${3:/*condition*/}) | foreach(${1:/*elem*/}; ${2:/*range*/}) if(${3:/*condition*/}) | ||||||
| { | { | ||||||
| 	${VISUAL}${4} | 	${VISUAL}$4 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -222,7 +222,7 @@ snippet in "in contract (in)" b | |||||||
| in | in | ||||||
| { | { | ||||||
| 	assert(${1:/*condition*/}, "${2:error message}"); | 	assert(${1:/*condition*/}, "${2:error message}"); | ||||||
| 	${3} | 	$3 | ||||||
| } | } | ||||||
| body | body | ||||||
| endsnippet | endsnippet | ||||||
| @ -231,7 +231,7 @@ snippet out "out contract (out)" b | |||||||
| out${1:(result)} | out${1:(result)} | ||||||
| { | { | ||||||
| 	assert(${2:/*condition*/}, "${3:error message}"); | 	assert(${2:/*condition*/}, "${3:error message}"); | ||||||
| 	${4} | 	$4 | ||||||
| } | } | ||||||
| body | body | ||||||
| endsnippet | endsnippet | ||||||
| @ -240,7 +240,7 @@ snippet inv "invariant (inv)" b | |||||||
| invariant() | invariant() | ||||||
| { | { | ||||||
| 	assert(${1:/*condition*/}, "${2:error message}"); | 	assert(${1:/*condition*/}, "${2:error message}"); | ||||||
| 	${3} | 	$3 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -249,21 +249,21 @@ endsnippet | |||||||
| snippet fun "function definition (fun)" | snippet fun "function definition (fun)" | ||||||
| ${1:void} ${2:/*function name*/}(${3:/*args*/}) ${4:@safe pure nothrow} | ${1:void} ${2:/*function name*/}(${3:/*args*/}) ${4:@safe pure nothrow} | ||||||
| { | { | ||||||
| 	${VISUAL}${5} | 	${VISUAL}$5 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet void "void function definition (void)" | snippet void "void function definition (void)" | ||||||
| void ${1:/*function name*/}(${2:/*args*/}) ${3:@safe pure nothrow} | void ${1:/*function name*/}(${2:/*args*/}) ${3:@safe pure nothrow} | ||||||
| { | { | ||||||
| 	${VISUAL}${4} | 	${VISUAL}$4 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet this "ctor (this)" w | snippet this "ctor (this)" w | ||||||
| this(${1:/*args*/}) | this(${1:/*args*/}) | ||||||
| { | { | ||||||
| 	${VISUAL}${2} | 	${VISUAL}$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -295,16 +295,16 @@ endsnippet | |||||||
| snippet scope "scope (scope)" b | snippet scope "scope (scope)" b | ||||||
| scope(${1:exit}) | scope(${1:exit}) | ||||||
| { | { | ||||||
| 	${VISUAL}${2} | 	${VISUAL}$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # With | # With | ||||||
|  |  | ||||||
| snippet with "with (with)" | snippet with "with (with)" | ||||||
| with(${1}) | with($1) | ||||||
| { | { | ||||||
| 	${VISUAL}${2} | 	${VISUAL}$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -315,7 +315,7 @@ try | |||||||
| { | { | ||||||
| 	${VISUAL}${1:/*code to try*/} | 	${VISUAL}${1:/*code to try*/} | ||||||
| } | } | ||||||
| catch(${2}Exception e) | catch($2Exception e) | ||||||
| { | { | ||||||
| 	${3:/*handle exception*/} | 	${3:/*handle exception*/} | ||||||
| } | } | ||||||
| @ -326,7 +326,7 @@ try | |||||||
| { | { | ||||||
| 	${VISUAL}${1:/*code to try*/} | 	${VISUAL}${1:/*code to try*/} | ||||||
| } | } | ||||||
| catch(${2}Exception e) | catch($2Exception e) | ||||||
| { | { | ||||||
| 	${3:/*handle exception*/} | 	${3:/*handle exception*/} | ||||||
| } | } | ||||||
| @ -337,14 +337,14 @@ finally | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet catch "catch (catch)" b | snippet catch "catch (catch)" b | ||||||
| catch(${1}Exception e) | catch($1Exception e) | ||||||
| { | { | ||||||
| 	${2:/*handle exception*/} | 	${2:/*handle exception*/} | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet thr "throw (thr)" | snippet thr "throw (thr)" | ||||||
| throw new ${1}Exception("${2}"); | throw new $1Exception("$2"); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  |  | ||||||
| @ -353,35 +353,35 @@ endsnippet | |||||||
| snippet struct "struct (struct)" | snippet struct "struct (struct)" | ||||||
| struct ${1:`!p snip.rv = (snip.basename or "name")`} | struct ${1:`!p snip.rv = (snip.basename or "name")`} | ||||||
| { | { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet union "union (union)" | snippet union "union (union)" | ||||||
| union ${1:`!p snip.rv = (snip.basename or "name")`} | union ${1:`!p snip.rv = (snip.basename or "name")`} | ||||||
| { | { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet class "class (class)" | snippet class "class (class)" | ||||||
| class ${1:`!p snip.rv = (snip.basename or "name")`} | class ${1:`!p snip.rv = (snip.basename or "name")`} | ||||||
| { | { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet inter "interface (inter)" | snippet inter "interface (inter)" | ||||||
| interface ${1:`!p snip.rv = (snip.basename or "name")`} | interface ${1:`!p snip.rv = (snip.basename or "name")`} | ||||||
| { | { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet enum "enum (enum)" | snippet enum "enum (enum)" | ||||||
| enum ${1:`!p snip.rv = (snip.basename or "name")`} | enum ${1:`!p snip.rv = (snip.basename or "name")`} | ||||||
| { | { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -390,7 +390,7 @@ endsnippet | |||||||
|  |  | ||||||
| snippet exc "exception declaration (exc)" b | snippet exc "exception declaration (exc)" b | ||||||
| /// ${3:/*documentation*/} | /// ${3:/*documentation*/} | ||||||
| class ${1}Exception : ${2}Exception | class $1Exception : $2Exception | ||||||
| { | { | ||||||
| 	public this(string msg, string file = __FILE__, int line = __LINE__) | 	public this(string msg, string file = __FILE__, int line = __LINE__) | ||||||
| 	{ | 	{ | ||||||
| @ -405,14 +405,14 @@ endsnippet | |||||||
| snippet version "version (version)" b | snippet version "version (version)" b | ||||||
| version(${1:/*version name*/}) | version(${1:/*version name*/}) | ||||||
| { | { | ||||||
| 	${VISUAL}${2} | 	${VISUAL}$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet debug "debug" b | snippet debug "debug" b | ||||||
| debug | debug | ||||||
| { | { | ||||||
| 	${VISUAL}${1} | 	${VISUAL}$1 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -422,7 +422,7 @@ endsnippet | |||||||
| snippet temp "template (temp)" b | snippet temp "template (temp)" b | ||||||
| template ${2:/*name*/}(${1:/*args*/}) | template ${2:/*name*/}(${1:/*args*/}) | ||||||
| { | { | ||||||
| 	${3} | 	$3 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -440,7 +440,7 @@ endsnippet | |||||||
| snippet unittest "unittest (unittest)" b | snippet unittest "unittest (unittest)" b | ||||||
| unittest | unittest | ||||||
| { | { | ||||||
| 	${1} | 	$1 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -450,21 +450,21 @@ endsnippet | |||||||
| snippet opDis "opDispatch (opDis)" b | snippet opDis "opDispatch (opDis)" b | ||||||
| ${1:/*return type*/} opDispatch(string s)() | ${1:/*return type*/} opDispatch(string s)() | ||||||
| { | { | ||||||
| 	${2}; | 	$2; | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet op= "opAssign (op=)" b | snippet op= "opAssign (op=)" b | ||||||
| void opAssign(${1} rhs) ${2:@safe pure nothrow} | void opAssign($1 rhs) ${2:@safe pure nothrow} | ||||||
| { | { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet opCmp "opCmp (opCmp)" b | snippet opCmp "opCmp (opCmp)" b | ||||||
| int opCmp(${1} rhs) @safe const pure nothrow | int opCmp($1 rhs) @safe const pure nothrow | ||||||
| { | { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -484,7 +484,7 @@ endsnippet | |||||||
| snippet toString "toString (toString)" b | snippet toString "toString (toString)" b | ||||||
| string toString() @safe const pure nothrow | string toString() @safe const pure nothrow | ||||||
| { | { | ||||||
| 	${1} | 	$1 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -493,7 +493,7 @@ endsnippet | |||||||
|  |  | ||||||
|  |  | ||||||
| snippet todo "TODO (todo)" | snippet todo "TODO (todo)" | ||||||
| // TODO: ${1} | // TODO: $1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  |  | ||||||
| @ -509,16 +509,16 @@ snippet fdoc "function ddoc block (fdoc)" b | |||||||
| /// ${1:description} | /// ${1:description} | ||||||
| /// | /// | ||||||
| /// ${2:Params:  ${3:param} = ${4:param description} | /// ${2:Params:  ${3:param} = ${4:param description} | ||||||
| ///			 ${5}} | ///			 $5} | ||||||
| /// | /// | ||||||
| /// ${6:Returns: ${7:return value}} | /// ${6:Returns: ${7:return value}} | ||||||
| /// | /// | ||||||
| /// ${8:Throws:  ${9}Exception ${10}} | /// ${8:Throws:  $9Exception $10} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet Par "Params (Par)" | snippet Par "Params (Par)" | ||||||
| Params:  ${1:param} = ${2:param description} | Params:  ${1:param} = ${2:param description} | ||||||
| ///			${3} | ///			$3 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet Ret "Returns (Ret)" | snippet Ret "Returns (Ret)" | ||||||
| @ -526,7 +526,7 @@ Returns:  ${1:return value/s} | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet Thr "Throws (Thr)" | snippet Thr "Throws (Thr)" | ||||||
| Throws:  ${1}Exception ${2} | Throws:  $1Exception $2 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet Example "Examples (Example)" | snippet Example "Examples (Example)" | ||||||
| @ -556,7 +556,7 @@ snippet gpl "GPL (gpl)" b | |||||||
| // | // | ||||||
| // Copyright (C) ${1:Author}, `!v strftime("%Y")` | // Copyright (C) ${1:Author}, `!v strftime("%Y")` | ||||||
|  |  | ||||||
| ${2} | $2 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet boost "Boost (boost)" b | snippet boost "Boost (boost)" b | ||||||
| @ -565,7 +565,7 @@ snippet boost "Boost (boost)" b | |||||||
| //    (See accompanying file LICENSE_1_0.txt or copy at | //    (See accompanying file LICENSE_1_0.txt or copy at | ||||||
| //          http://www.boost.org/LICENSE_1_0.txt) | //          http://www.boost.org/LICENSE_1_0.txt) | ||||||
|  |  | ||||||
| ${2} | $2 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  |  | ||||||
| @ -577,8 +577,8 @@ snippet module "New module (module)" b | |||||||
| //    (See accompanying file LICENSE_1_0.txt or copy at | //    (See accompanying file LICENSE_1_0.txt or copy at | ||||||
| //          http://www.boost.org/LICENSE_1_0.txt) | //          http://www.boost.org/LICENSE_1_0.txt) | ||||||
|  |  | ||||||
| module ${2}.`!v vim_snippets#Filename('$1', 'name')`; | module $2.`!v vim_snippets#Filename('$1', 'name')`; | ||||||
|  |  | ||||||
|  |  | ||||||
| ${3} | $3 | ||||||
| endsnippet | endsnippet | ||||||
|  | |||||||
| @ -124,7 +124,7 @@ endsnippet | |||||||
|  |  | ||||||
| snippet model "Model" b | snippet model "Model" b | ||||||
| class ${1:MODELNAME}(models.Model): | class ${1:MODELNAME}(models.Model): | ||||||
| 	${0} | 	$0 | ||||||
| 	class Meta: | 	class Meta: | ||||||
| 		verbose_name = "$1" | 		verbose_name = "$1" | ||||||
| 		verbose_name_plural = "$1s" | 		verbose_name_plural = "$1s" | ||||||
| @ -275,19 +275,19 @@ endsnippet | |||||||
| # VIEWS SNIPPETS | # VIEWS SNIPPETS | ||||||
|  |  | ||||||
| snippet adminview "Model Admin View" b | snippet adminview "Model Admin View" b | ||||||
| class ${1}Admin(admin.ModelAdmin): | class $1Admin(admin.ModelAdmin): | ||||||
| 	''' | 	''' | ||||||
| 		Admin View for ${1} | 		Admin View for $1 | ||||||
| 	''' | 	''' | ||||||
| 	list_display = ('${2}',) | 	list_display = ('$2',) | ||||||
| 	list_filter = ('${3}',) | 	list_filter = ('$3',) | ||||||
| 	inlines = [ | 	inlines = [ | ||||||
| 		${4}Inline, | 		$4Inline, | ||||||
| 	] | 	] | ||||||
| 	raw_id_fields = ('${5}',) | 	raw_id_fields = ('$5',) | ||||||
| 	readonly_fields = ('${6}',) | 	readonly_fields = ('$6',) | ||||||
| 	search_fields = ['${7}'] | 	search_fields = ['$7'] | ||||||
| admin.site.register(${1}, ${1}Admin) | admin.site.register($1, $1Admin) | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet createview "Generic Create View" b | snippet createview "Generic Create View" b | ||||||
| @ -315,27 +315,27 @@ class ${1:MODEL_NAME}ListView(ListView): | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet stackedinline "Stacked Inline" b | snippet stackedinline "Stacked Inline" b | ||||||
| class ${1}Inline(admin.StackedInline): | class $1Inline(admin.StackedInline): | ||||||
| 	''' | 	''' | ||||||
| 	Stacked Inline View for ${1} | 	Stacked Inline View for $1 | ||||||
| 	''' | 	''' | ||||||
| 	model = ${2:${1}} | 	model = ${2:$1} | ||||||
| 	min_num = ${3:3} | 	min_num = ${3:3} | ||||||
| 	max_num = ${4:20} | 	max_num = ${4:20} | ||||||
| 	extra = ${5:1} | 	extra = ${5:1} | ||||||
| 	raw_id_fields = (${6},) | 	raw_id_fields = ($6,) | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet tabularinline "Tabular Inline" b | snippet tabularinline "Tabular Inline" b | ||||||
| class ${1}Inline(admin.TabularInline): | class $1Inline(admin.TabularInline): | ||||||
| 	''' | 	''' | ||||||
| 	Tabular Inline View for ${1} | 	Tabular Inline View for $1 | ||||||
| 	''' | 	''' | ||||||
| 	model = ${2:${1}} | 	model = ${2:$1} | ||||||
| 	min_num = ${3:3} | 	min_num = ${3:3} | ||||||
| 	max_num = ${4:20} | 	max_num = ${4:20} | ||||||
| 	extra = ${5:1} | 	extra = ${5:1} | ||||||
| 	raw_id_fields = (${6},) | 	raw_id_fields = ($6,) | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet templateview "Generic Template View" b | snippet templateview "Generic Template View" b | ||||||
|  | |||||||
| @ -27,12 +27,12 @@ def textmate_var(var, snip): | |||||||
| endglobal | endglobal | ||||||
|  |  | ||||||
|  |  | ||||||
| snippet % "<% ${0} %>" i | snippet % "<% $0 %>" i | ||||||
| `!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_INLINE', snip)`${0}`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_INLINE', snip)` | `!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_INLINE', snip)`$0`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_INLINE', snip)` | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet = "<%= ${0} %>" i | snippet = "<%= $0 %>" i | ||||||
| `!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_EXPR', snip)`${0}`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_EXPR', snip)` | `!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_EXPR', snip)`$0`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_EXPR', snip)` | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| ########################################################################### | ########################################################################### | ||||||
| @ -150,11 +150,11 @@ snippet licai "link_to (controller, action, id)" w | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet linpp "link_to (nested path plural)" w | snippet linpp "link_to (nested path plural)" w | ||||||
| `!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_EXPR', snip)`link_to ${1:"${2:link text...}"}, ${3:${10:parent}_${11:child}_path(${12:@}${13:${10}})}`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_EXPR', snip)` | `!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_EXPR', snip)`link_to ${1:"${2:link text...}"}, ${3:${10:parent}_${11:child}_path(${12:@}${13:$10})}`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_EXPR', snip)` | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet linp "link_to (nested path)" w | snippet linp "link_to (nested path)" w | ||||||
| `!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_EXPR', snip)`link_to ${1:"${2:link text...}"}, ${3:${12:parent}_${13:child}_path(${14:@}${15:${12}}, ${16:@}${17:${13}})}`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_EXPR', snip)` | `!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_EXPR', snip)`link_to ${1:"${2:link text...}"}, ${3:${12:parent}_${13:child}_path(${14:@}${15:$12}, ${16:@}${17:$13})}`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_EXPR', snip)` | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet lipp "link_to (path plural)" w | snippet lipp "link_to (path plural)" w | ||||||
| @ -162,7 +162,7 @@ snippet lipp "link_to (path plural)" w | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet lip "link_to (path)" w | snippet lip "link_to (path)" w | ||||||
| `!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_EXPR', snip)`link_to ${1:"${2:link text...}"}, ${3:${12:model}_path(${13:@}${14:${12}})}`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_EXPR', snip)` | `!p textmate_var('TM_RAILS_TEMPLATE_START_RUBY_EXPR', snip)`link_to ${1:"${2:link text...}"}, ${3:${12:model}_path(${13:@}${14:$12})}`!p textmate_var('TM_RAILS_TEMPLATE_END_RUBY_EXPR', snip)` | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet lim "link_to model" w | snippet lim "link_to model" w | ||||||
|  | |||||||
| @ -53,7 +53,7 @@ endsnippet | |||||||
|  |  | ||||||
| snippet switch "Switch statement" b | snippet switch "Switch statement" b | ||||||
| switch ${1:expression}${1/(.+)/ /}{ | switch ${1:expression}${1/(.+)/ /}{ | ||||||
| case${0} | case$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  | |||||||
| @ -12,33 +12,6 @@ def x(snip): | |||||||
| 		snip.rv = "" | 		snip.rv = "" | ||||||
| endglobal | endglobal | ||||||
|  |  | ||||||
| ############ |  | ||||||
| # Doctypes # |  | ||||||
| ############ |  | ||||||
| snippet doctype "DocType XHTML 1.0 Strict" b |  | ||||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |  | ||||||
| 	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |  | ||||||
|  |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet doctype "DocType XHTML 1.0 Transitional" b |  | ||||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |  | ||||||
| 	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |  | ||||||
|  |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet doctype "DocType XHTML 1.1" b |  | ||||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |  | ||||||
| 	"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |  | ||||||
|  |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet doctype "HTML - 4.0 Transitional (doctype)" b |  | ||||||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |  | ||||||
| 	"http://www.w3.org/TR/html4/loose.dtd"> |  | ||||||
|  |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet doctype "HTML - 5.0 (doctype)" b | snippet doctype "HTML - 5.0 (doctype)" b | ||||||
| <!DOCTYPE html> | <!DOCTYPE html> | ||||||
|  |  | ||||||
| @ -83,45 +56,6 @@ snippet left "Left (left)" | |||||||
| ← | ← | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet option "Option (option)" |  | ||||||
| ⌥ |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| ####################### |  | ||||||
| # Conditional inserts # |  | ||||||
| ####################### |  | ||||||
| snippet ! "IE Conditional Comment: Internet Explorer 5_0 only" |  | ||||||
| <!--[if IE 5.0]>${1:IE Conditional Comment: Internet Explorer 5.0 only }<![endif]-->$0 |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ! "IE Conditional Comment: Internet Explorer 5_5 only" |  | ||||||
| <!--[if IE 5.5000]>${1:IE Conditional Comment: Internet Explorer 5.5 only }<![endif]-->$0 |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ! "IE Conditional Comment: Internet Explorer 5_x" |  | ||||||
| <!--[if lt IE 6]>${1:IE Conditional Comment: Internet Explorer 5.x      }<![endif]-->$0 |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ! "IE Conditional Comment: Internet Explorer 6 and below" |  | ||||||
| <!--[if lte IE 6]>${1:IE Conditional Comment: Internet Explorer 6 and below }<![endif]-->$0 |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ! "IE Conditional Comment: Internet Explorer 6 only" |  | ||||||
| <!--[if IE 6]>${1:IE Conditional Comment: Internet Explorer 6 only   }<![endif]-->$0 |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ! "IE Conditional Comment: Internet Explorer 7+" |  | ||||||
| <!--[if gte IE 7]>${1:IE Conditional Comment: Internet Explorer 7 and above }<![endif]-->$0 |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ! "IE Conditional Comment: Internet Explorer" |  | ||||||
| <!--[if IE]>${1:       IE Conditional Comment: Internet Explorer          }<![endif]-->$0 |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ! "IE Conditional Comment: NOT Internet Explorer" |  | ||||||
| <!--[if !IE]><!-->${1:  IE Conditional Comment: NOT Internet Explorer      }<!-- <![endif]-->$0 |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| ############# | ############# | ||||||
| # HTML TAGS # | # HTML TAGS # | ||||||
| ############# | ############# | ||||||
| @ -129,12 +63,12 @@ snippet input "Input with Label" w | |||||||
| <label for="${2:${1/[[:alpha:]]+|( )/(?1:_:\L$0)/g}}">$1</label><input type="${3:text/submit/hidden/button}" name="${4:$2}" value="$5"${6: id="${7:$2}"}`!p x(snip)`> | <label for="${2:${1/[[:alpha:]]+|( )/(?1:_:\L$0)/g}}">$1</label><input type="${3:text/submit/hidden/button}" name="${4:$2}" value="$5"${6: id="${7:$2}"}`!p x(snip)`> | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet input "XHTML   <input>" w | snippet input "HTML   <input>" w | ||||||
| <input type="${1:text/submit/hidden/button}" name="${2:some_name}" value="$3"${4: id="${5:$2}"}`!p x(snip)`> | <input type="${1:text/submit/hidden/button}" name="${2:some_name}" value="$3"${4: id="${5:$2}"}`!p x(snip)`> | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  |  | ||||||
| snippet opt "Option" w | snippet option "Option" w | ||||||
| <option${1: value="${2:option}"}>${3:$2}</option> | <option${1: value="${2:option}"}>${3:$2}</option> | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -145,15 +79,15 @@ snippet select "Select Box" w | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  |  | ||||||
| snippet textarea "XHTML   <textarea>" w | snippet textarea "HTML   <textarea>" w | ||||||
| <textarea name="${1:Name}" rows="${2:8}" cols="${3:40}">$0</textarea> | <textarea name="${1:Name}" rows="${2:8}" cols="${3:40}">$0</textarea> | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet mailto "XHTML <a mailto: >" w | snippet mailto "HTML <a mailto: >" w | ||||||
| <a href="mailto:${1:joe@example.com}?subject=${2:feedback}">${3:email me}</a> | <a href="mailto:${1:joe@example.com}?subject=${2:feedback}">${3:email me}</a> | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet base "XHTML <base>" w | snippet base "HTML <base>" w | ||||||
| <base href="$1"${2: target="$3"}`!p x(snip)`> | <base href="$1"${2: target="$3"}`!p x(snip)`> | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -229,12 +163,12 @@ snippet meta "XHTML <meta>" w | |||||||
| <meta name="${1:name}" content="${2:content}"`!p x(snip)`> | <meta name="${1:name}" content="${2:content}"`!p x(snip)`> | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet scriptsrc "XHTML <script src...>" w | snippet scriptsrc "HTML <script src...>" w | ||||||
| <script src="$1" type="text/javascript" charset="${3:utf-8}"></script> | <script src="$1" charset="${3:utf-8}"></script> | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet script "XHTML <script>" w | snippet script "HTML <script>" w | ||||||
| <script type="text/javascript" charset="utf-8"> | <script charset="utf-8"> | ||||||
| 	${0:${VISUAL}} | 	${0:${VISUAL}} | ||||||
| </script> | </script> | ||||||
| endsnippet | endsnippet | ||||||
| @ -304,20 +238,6 @@ snippet fieldset "Fieldset" w | |||||||
| </fieldset> | </fieldset> | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet movie "Embed QT movie (movie)" b |  | ||||||
| <object width="$2" height="$3" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab"> |  | ||||||
| 	<param name="src" value="$1"`!p x(snip)`> |  | ||||||
| 	<param name="controller" value="$4"`!p x(snip)`> |  | ||||||
| 	<param name="autoplay" value="$5"`!p x(snip)`> |  | ||||||
| 	<embed src="${1:movie.mov}" |  | ||||||
| 		width="${2:320}" height="${3:240}" |  | ||||||
| 		controller="${4:true}" autoplay="${5:true}" |  | ||||||
| 		scale="tofit" cache="true" |  | ||||||
| 		pluginspage="http://www.apple.com/quicktime/download/" |  | ||||||
| 	`!p x(snip)`> |  | ||||||
| </object> |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet viewport "Responsive viewport meta" w | snippet viewport "Responsive viewport meta" w | ||||||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
| endsnippet | endsnippet | ||||||
|  | |||||||
| @ -4,24 +4,24 @@ | |||||||
| priority -50 | priority -50 | ||||||
|  |  | ||||||
| snippet id | snippet id | ||||||
| id="${1}"${2} | id="$1"$2 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet idn | snippet idn | ||||||
| id="${1}" name="${2:$1}" | id="$1" name="${2:$1}" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet label_and_input | snippet label_and_input | ||||||
| <label for="${2:$1}">${1}</label> | <label for="${2:$1}">$1</label> | ||||||
| <input type="${3:text}" name="${4:$2}"${5: id="${6:$2}"} value="${7}" />${8} | <input type="${3:text}" name="${4:$2}"${5: id="${6:$2}"} value="$7" />$8 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet input | snippet input | ||||||
| <input type="${1:text}" value="${2}" name="${3}"${4: id="${5:$3}"}/>${7} | <input type="${1:text}" value="$2" name="$3"${4: id="${5:$3}"}/>$7 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet submit | snippet submit | ||||||
| <input type="submit" value="${2}" ${3}/>${7} | <input type="submit" value="$2" $3/>$7 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet textarea | snippet textarea | ||||||
|  | |||||||
| @ -4,30 +4,30 @@ extends html | |||||||
|  |  | ||||||
| # Generic Tags | # Generic Tags | ||||||
| snippet % "" bi | snippet % "" bi | ||||||
| {% ${1} %}${2} | {% $1 %}$2 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet %% "" bi | snippet %% "" bi | ||||||
| {% ${1:tag_name} %} | {% ${1:tag_name} %} | ||||||
| 	${2} | 	$2 | ||||||
| {% end$1 %} | {% end$1 %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet { "" bi | snippet { "" bi | ||||||
| {{ ${1} }}${2} | {{ $1 }}$2 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # Template Tags | # Template Tags | ||||||
|  |  | ||||||
| snippet autoescape "" bi | snippet autoescape "" bi | ||||||
| {% autoescape ${1:off} %} | {% autoescape ${1:off} %} | ||||||
| 	${2} | 	$2 | ||||||
| {% endautoescape %} | {% endautoescape %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet block "" bi | snippet block "" bi | ||||||
| {% block ${1} %} | {% block $1 %} | ||||||
| 	${2} | 	$2 | ||||||
| {% endblock $1 %} | {% endblock $1 %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -37,12 +37,12 @@ endsnippet | |||||||
|  |  | ||||||
| snippet comment "" bi | snippet comment "" bi | ||||||
| {% comment %} | {% comment %} | ||||||
| 	${1} | 	$1 | ||||||
| {% endcomment %} | {% endcomment %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet cycle "" bi | snippet cycle "" bi | ||||||
| {% cycle ${1:val1} ${2:val2} ${3:as ${4}} %} | {% cycle ${1:val1} ${2:val2} ${3:as $4} %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet debug "" bi | snippet debug "" bi | ||||||
| @ -54,76 +54,76 @@ snippet extends "" bi | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet filter "" bi | snippet filter "" bi | ||||||
| {% filter ${1} %} | {% filter $1 %} | ||||||
| 	${2} | 	$2 | ||||||
| {% endfilter %} | {% endfilter %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet firstof "" bi | snippet firstof "" bi | ||||||
| {% firstof ${1} %} | {% firstof $1 %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet for "" bi | snippet for "" bi | ||||||
| {% for ${1} in ${2} %} | {% for $1 in $2 %} | ||||||
| 	${3} | 	$3 | ||||||
| {% endfor %} | {% endfor %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet empty "" bi | snippet empty "" bi | ||||||
| {% empty %} | {% empty %} | ||||||
| 	${1} | 	$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet if "" bi | snippet if "" bi | ||||||
| {% if ${1} %} | {% if $1 %} | ||||||
| 	${2} | 	$2 | ||||||
| {% endif %} | {% endif %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet iif "" bi | snippet iif "" bi | ||||||
| {% if ${1} %}${2}{% endif %} | {% if $1 %}$2{% endif %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ielse "" bi | snippet ielse "" bi | ||||||
| {% else %}${1} | {% else %}$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet else "" bi | snippet else "" bi | ||||||
| {% else %} | {% else %} | ||||||
| 	${1} | 	$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ielif "" bi | snippet ielif "" bi | ||||||
| {% elif %}${1} | {% elif %}$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet elif "" bi | snippet elif "" bi | ||||||
| {% elif %} | {% elif %} | ||||||
| 	${1} | 	$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ifchanged "" bi | snippet ifchanged "" bi | ||||||
| {% ifchanged %}${1}{% endifchanged %} | {% ifchanged %}$1{% endifchanged %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ifequal "" bi | snippet ifequal "" bi | ||||||
| {% ifequal ${1} ${2} %} | {% ifequal $1 $2 %} | ||||||
| 	${3} | 	$3 | ||||||
| {% endifequal %} | {% endifequal %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ifnotequal "" bi | snippet ifnotequal "" bi | ||||||
| {% ifnotequal ${1} ${2} %} | {% ifnotequal $1 $2 %} | ||||||
| 	${3} | 	$3 | ||||||
| {% endifnotequal %} | {% endifnotequal %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet include "" bi | snippet include "" bi | ||||||
| {% include "${1}" %} | {% include "$1" %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet load "" bi | snippet load "" bi | ||||||
| {% load ${1} %} | {% load $1 %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet now "" bi | snippet now "" bi | ||||||
| @ -131,15 +131,15 @@ snippet now "" bi | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet regroup "" bi | snippet regroup "" bi | ||||||
| {% regroup ${1} by ${2} as ${3} %} | {% regroup $1 by $2 as $3 %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet spaceless "" bi | snippet spaceless "" bi | ||||||
| {% spaceless %}${1}{% endspaceless %} | {% spaceless %}$1{% endspaceless %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ssi "" bi | snippet ssi "" bi | ||||||
| {% ssi ${1} %} | {% ssi $1 %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet trans "" bi | snippet trans "" bi | ||||||
| @ -147,7 +147,7 @@ snippet trans "" bi | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet url "" bi | snippet url "" bi | ||||||
| {% url ${1} as ${2} %} | {% url $1 as $2 %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet widthratio "" bi | snippet widthratio "" bi | ||||||
| @ -155,7 +155,7 @@ snippet widthratio "" bi | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet with "" bi | snippet with "" bi | ||||||
| {% with ${1} as ${2} %} | {% with $1 as $2 %} | ||||||
| 	${VISUAL} | 	${VISUAL} | ||||||
| {% endwith %} | {% endwith %} | ||||||
| endsnippet | endsnippet | ||||||
| @ -197,7 +197,7 @@ snippet blocktrans "" bi | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet lorem "" bi | snippet lorem "" bi | ||||||
| {% lorem ${1} %} | {% lorem $1 %} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # Template Filters | # Template Filters | ||||||
| @ -209,91 +209,91 @@ endsnippet | |||||||
| # Note: Template tags that take no arguments are not implemented. | # Note: Template tags that take no arguments are not implemented. | ||||||
|  |  | ||||||
| snippet add "" bi | snippet add "" bi | ||||||
| add:"${1}" | add:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet center "" bi | snippet center "" bi | ||||||
| center:"${1}" | center:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet cut "" bi | snippet cut "" bi | ||||||
| cut:"${1}" | cut:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet date "" bi | snippet date "" bi | ||||||
| date:"${1}" | date:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet default "" bi | snippet default "" bi | ||||||
| default:"${1}" | default:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet defaultifnone "" bi | snippet defaultifnone "" bi | ||||||
| default_if_none:"${1}" | default_if_none:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet dictsort "" bi | snippet dictsort "" bi | ||||||
| dictsort:"${1}" | dictsort:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet dictsortrev "" bi | snippet dictsortrev "" bi | ||||||
| dictsortreversed:"${1}" | dictsortreversed:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet divisibleby "" bi | snippet divisibleby "" bi | ||||||
| divisibleby:"${1}" | divisibleby:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet floatformat "" bi | snippet floatformat "" bi | ||||||
| floatformat:"${1}" | floatformat:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet getdigit "" bi | snippet getdigit "" bi | ||||||
| get_digit:"${1}" | get_digit:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet join "" bi | snippet join "" bi | ||||||
| join:"${1}" | join:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet lengthis "" bi | snippet lengthis "" bi | ||||||
| length_is:"${1}" | length_is:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet pluralize "" bi | snippet pluralize "" bi | ||||||
| pluralize:"${1}" | pluralize:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet removetags "" bi | snippet removetags "" bi | ||||||
| removetags:"${1}" | removetags:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet slice "" bi | snippet slice "" bi | ||||||
| slice:"${1}" | slice:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet stringformat "" bi | snippet stringformat "" bi | ||||||
| stringformat:"${1}" | stringformat:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet time "" bi | snippet time "" bi | ||||||
| time:"${1}" | time:"$1" | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet truncatewords "" bi | snippet truncatewords "" bi | ||||||
| truncatewords:${1} | truncatewords:$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet truncatewordshtml "" bi | snippet truncatewordshtml "" bi | ||||||
| truncatewords_html:${1} | truncatewords_html:$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet urlizetrunc "" bi | snippet urlizetrunc "" bi | ||||||
| urlizetrunc:${1} | urlizetrunc:$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet wordwrap "" bi | snippet wordwrap "" bi | ||||||
| wordwrap:${1} | wordwrap:$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # vim:ft=snippets: | # vim:ft=snippets: | ||||||
|  | |||||||
| @ -48,7 +48,7 @@ $0 | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet /o|v/ "new Object or variable" br | snippet /o|v/ "new Object or variable" br | ||||||
| ${1:Object} ${2:var} = new $1(${3}); | ${1:Object} ${2:var} = new $1($3); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet f "field" b | snippet f "field" b | ||||||
| @ -310,13 +310,13 @@ try { | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet mt "method throws" b | snippet mt "method throws" b | ||||||
| ${1:private} ${2:void} ${3:method}(${4}) ${5:throws $6 }{ | ${1:private} ${2:void} ${3:method}($4) ${5:throws $6 }{ | ||||||
| 	$0 | 	$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet m  "method" b | snippet m  "method" b | ||||||
| ${1:private} ${2:void} ${3:method}(${4}) { | ${1:private} ${2:void} ${3:method}($4) { | ||||||
| 	$0 | 	$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ config(function($1) { | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet acont "angular controller" i | snippet acont "angular controller" i | ||||||
| controller('${1:name}', [${2}function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$2(?3::$4)/ig}) { | controller('${1:name}', [$2function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$2(?3::$4)/ig}) { | ||||||
| 	$0 | 	$0 | ||||||
| }]); | }]); | ||||||
| endsnippet | endsnippet | ||||||
| @ -31,29 +31,29 @@ controller('${1:name}', [${2:'$scope', }function(${2/('|")([A-Z_$]+)?\1?((, ?)$) | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet adir "angular directive" i | snippet adir "angular directive" i | ||||||
| directive('${1}', [${2}function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$2(?3::$4)/ig}) { | directive('$1', [$2function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$2(?3::$4)/ig}) { | ||||||
| 	return { | 	return { | ||||||
| 		restrict: '${3:EA}', | 		restrict: '${3:EA}', | ||||||
| 		link: function(scope, element, attrs) { | 		link: function(scope, element, attrs) { | ||||||
| 			${0} | 			$0 | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
| }]); | }]); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet adirs "angular directive with scope" i | snippet adirs "angular directive with scope" i | ||||||
| directive('${1}', [${2:'$scope', }function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$2(?3::$4)/ig}) { | directive('$1', [${2:'$scope', }function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$2(?3::$4)/ig}) { | ||||||
| 	return { | 	return { | ||||||
| 		restrict: '${3:EA}', | 		restrict: '${3:EA}', | ||||||
| 		link: function(scope, element, attrs) { | 		link: function(scope, element, attrs) { | ||||||
| 			${0} | 			$0 | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
| }]); | }]); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet afact "angular factory" i | snippet afact "angular factory" i | ||||||
| factory('${1:name}', [${2}function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$2(?3::$4)/ig}) { | factory('${1:name}', [$2function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$2(?3::$4)/ig}) { | ||||||
| 	$0 | 	$0 | ||||||
| }]); | }]); | ||||||
| endsnippet | endsnippet | ||||||
| @ -65,7 +65,7 @@ factory('${1:name}', [${2:'$scope', }function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$ | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet aserv "angular service" i | snippet aserv "angular service" i | ||||||
| service('${1:name}', [${2}function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$2(?3::$4)/ig}) { | service('${1:name}', [$2function(${2/('|")([A-Z_$]+)?\1?((, ?)$)?/$2(?3::$4)/ig}) { | ||||||
| 	$0 | 	$0 | ||||||
| }]); | }]); | ||||||
| endsnippet | endsnippet | ||||||
|  | |||||||
| @ -5,48 +5,48 @@ snippet #! "shebang" | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet vreq "assign a CommonJS-style module to a var" | snippet vreq "assign a CommonJS-style module to a var" | ||||||
| var ${0:${1/(.+\/)*(\w+)(-|\b|$)(\..+$)?/\u$2/g}} = require('${1}'); | var ${0:${1/(.+\/)*(\w+)(-|\b|$)(\..+$)?/\u$2/g}} = require('$1'); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ex "module.exports" | snippet ex "module.exports" | ||||||
| module.exports = ${1}; | module.exports = $1; | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hcs "http.createServer" | snippet hcs "http.createServer" | ||||||
| http.createServer(${1}).listen(${2}); | http.createServer($1).listen($2); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ncs "net.createServer" | snippet ncs "net.createServer" | ||||||
| net.createServer(function(${1:socket}){ | net.createServer(function(${1:socket}){ | ||||||
| 	${1}.on('data', function(${3:data}){ | 	$1.on('data', function(${3:data}){ | ||||||
| 		${4} | 		$4 | ||||||
| 	}); | 	}); | ||||||
| 	${1}.on('end', function(){ | 	$1.on('end', function(){ | ||||||
| 		${5} | 		$5 | ||||||
| 	}); | 	}); | ||||||
| }).listen(${6:8124}); | }).listen(${6:8124}); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet pipe "pipe" | snippet pipe "pipe" | ||||||
| pipe(${1:stream})${2} | pipe(${1:stream})$2 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # Express snippets | # Express snippets | ||||||
|  |  | ||||||
| snippet eget "express GET" | snippet eget "express GET" | ||||||
| ${1:app}.get('${2}', ${3}); | ${1:app}.get('$2', $3); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet epost "express POST" | snippet epost "express POST" | ||||||
| ${1:app}.post('${2}', ${3}); | ${1:app}.post('$2', $3); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet eput "express PUT" | snippet eput "express PUT" | ||||||
| ${1:app}.put('${2}', ${3}); | ${1:app}.put('$2', $3); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet edelete "express DELETE" | snippet edelete "express DELETE" | ||||||
| ${1:app}.delete('${2}', ${3}); | ${1:app}.delete('$2', $3); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # process snippets | # process snippets | ||||||
|  | |||||||
| @ -1,80 +1,80 @@ | |||||||
| snippet sapmlabel | snippet sapmlabel | ||||||
| 	var ${1} = new sap.m.Label({  | 	var $1 = new sap.m.Label({  | ||||||
| 				design : ${2},  | 				design : $2,  | ||||||
| 				text : ${3},  | 				text : $3,  | ||||||
| 				visible : ${4},  | 				visible : $4,  | ||||||
| 				textAlign : ${5},  | 				textAlign : $5,  | ||||||
| 				textDirection : ${6},  | 				textDirection : $6,  | ||||||
| 				width : ${7},  | 				width : $7,  | ||||||
| 				required : ${7} | 				required : $7 | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
| snippet sapmtext | snippet sapmtext | ||||||
| 	var ${1} = new sap.m.Text({ | 	var $1 = new sap.m.Text({ | ||||||
| 				text :${2}, | 				text :$2, | ||||||
| 				textDirection :${3}, | 				textDirection :$3, | ||||||
| 				visible :${4}, | 				visible :$4, | ||||||
| 				wrapping : ${5}, | 				wrapping : $5, | ||||||
| 				textAlign : ${6}, | 				textAlign : $6, | ||||||
| 				width :${7}, | 				width :$7, | ||||||
| 				maxLines :${8} | 				maxLines :$8 | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
| snippet sapmbutton | snippet sapmbutton | ||||||
| 	var ${1} = new sap.m.Button({ | 	var $1 = new sap.m.Button({ | ||||||
| 				text : ${2}, | 				text : $2, | ||||||
| 				type : ${3}, | 				type : $3, | ||||||
| 				width : ${4}, | 				width : $4, | ||||||
| 				enabled :${5}, | 				enabled :$5, | ||||||
| 				visible :${6}, | 				visible :$6, | ||||||
| 				icon : ${7}, | 				icon : $7, | ||||||
| 				iconFirst : ${8}, | 				iconFirst : $8, | ||||||
| 				activeIcon :${9}, | 				activeIcon :$9, | ||||||
| 				iconDensityAware : ${10}, | 				iconDensityAware : $10, | ||||||
| 			}); | 			}); | ||||||
| snippet sapmflexbox | snippet sapmflexbox | ||||||
| 	var ${1} = new sap.m.FlexBox({ | 	var $1 = new sap.m.FlexBox({ | ||||||
| 				visible : ${2}, | 				visible : $2, | ||||||
| 				height : ${3}, | 				height : $3, | ||||||
| 				width : ${4}, | 				width : $4, | ||||||
| 				displayInline :${5}, | 				displayInline :$5, | ||||||
| 				direction :${6}, | 				direction :$6, | ||||||
| 				fitContainer : ${7}, | 				fitContainer : $7, | ||||||
| 				renderType : ${8}, | 				renderType : $8, | ||||||
| 				justifyContent :${9}, | 				justifyContent :$9, | ||||||
| 				alignItems : ${10}, | 				alignItems : $10, | ||||||
| 				items:[] | 				items:[] | ||||||
| 			}); | 			}); | ||||||
| snippet sapmhbox | snippet sapmhbox | ||||||
| 	var ${1} = new sap.m.HBox({ | 	var $1 = new sap.m.HBox({ | ||||||
| 				visible : ${2}, | 				visible : $2, | ||||||
| 				height : ${3}, | 				height : $3, | ||||||
| 				width : ${4}, | 				width : $4, | ||||||
| 				displayInline :${5}, | 				displayInline :$5, | ||||||
| 				direction :${6}, | 				direction :$6, | ||||||
| 				fitContainer : ${7}, | 				fitContainer : $7, | ||||||
| 				renderType : ${8}, | 				renderType : $8, | ||||||
| 				justifyContent :${9}, | 				justifyContent :$9, | ||||||
| 				alignItems : ${10}, | 				alignItems : $10, | ||||||
| 				items:[] | 				items:[] | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
| snippet sapmvbox | snippet sapmvbox | ||||||
| 	var ${1} = new sap.m.VBox({ | 	var $1 = new sap.m.VBox({ | ||||||
| 				visible : ${2}, | 				visible : $2, | ||||||
| 				height : ${3}, | 				height : $3, | ||||||
| 				width : ${4}, | 				width : $4, | ||||||
| 				displayInline :${5}, | 				displayInline :$5, | ||||||
| 				direction :${6}, | 				direction :$6, | ||||||
| 				fitContainer : ${7}, | 				fitContainer : $7, | ||||||
| 				renderType : ${8}, | 				renderType : $8, | ||||||
| 				justifyContent :${9}, | 				justifyContent :$9, | ||||||
| 				alignItems : ${10}, | 				alignItems : $10, | ||||||
| 				items:[] | 				items:[] | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
| snippet sapcomponent | snippet sapcomponent | ||||||
| 	sap.ui.controller("${1}", { | 	sap.ui.controller("$1", { | ||||||
| 	   onInit: function(){ | 	   onInit: function(){ | ||||||
| 	   },  | 	   },  | ||||||
| 	   onAfterRendering: function() { | 	   onAfterRendering: function() { | ||||||
| @ -86,120 +86,120 @@ snippet sapcomponent | |||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
| snippet sapminput | snippet sapminput | ||||||
| 	var ${1} = new sap.m.Input({ | 	var $1 = new sap.m.Input({ | ||||||
| 		value :${2}, | 		value :$2, | ||||||
| 		width : ${3}, | 		width : $3, | ||||||
| 		enabled :${4}, | 		enabled :$4, | ||||||
| 		visible :${5}, | 		visible :$5, | ||||||
| 		valueState :${6}, | 		valueState :$6, | ||||||
| 		name : ${7}, | 		name : $7, | ||||||
| 		placeholder : ${8}, | 		placeholder : $8, | ||||||
| 		editable : ${9}, | 		editable : $9, | ||||||
| 		type : ${10}, | 		type : $10, | ||||||
| 		maxLength :${11},  | 		maxLength :$11,  | ||||||
| 		valueStateText :${12},  | 		valueStateText :$12,  | ||||||
| 		showValueStateMessage :${13},  | 		showValueStateMessage :$13,  | ||||||
| 		dateFormat :${14}, | 		dateFormat :$14, | ||||||
| 		showValueHelp :${15}, | 		showValueHelp :$15, | ||||||
| 		showSuggestion :${16}, | 		showSuggestion :$16, | ||||||
| 		valueHelpOnly :${17}, | 		valueHelpOnly :$17, | ||||||
| 		filterSuggests :${18}, | 		filterSuggests :$18, | ||||||
| 		maxSuggestionWidth :${19}, | 		maxSuggestionWidth :$19, | ||||||
| 		startSuggestion : ${20}, | 		startSuggestion : $20, | ||||||
| 		showTableSuggestionValueHelp : ${21}, | 		showTableSuggestionValueHelp : $21, | ||||||
| 		description : ${22}, | 		description : $22, | ||||||
| 		fieldWidth : ${23}, | 		fieldWidth : $23, | ||||||
| 		valueLiveUpdate :${24}, | 		valueLiveUpdate :$24, | ||||||
| 		suggestionItems  :[${25}], | 		suggestionItems  :[$25], | ||||||
| 		suggestionColumns : [${26}], | 		suggestionColumns : [$26], | ||||||
| 		suggestionRows : [${27}], | 		suggestionRows : [$27], | ||||||
| 		liveChange : ${28}, | 		liveChange : $28, | ||||||
| 		valueHelpRequest :${29},  | 		valueHelpRequest :$29,  | ||||||
| 		suggest : ${30}, | 		suggest : $30, | ||||||
| 		suggestionItemSelected : ${31} | 		suggestionItemSelected : $31 | ||||||
| 	}); | 	}); | ||||||
| snippet _sthis | snippet _sthis | ||||||
| 	var _self = this; | 	var _self = this; | ||||||
|  |  | ||||||
| snippet sapmresponsivepopup | snippet sapmresponsivepopup | ||||||
| 	var ${1} = new sap.m.ResponsivePopover({ | 	var $1 = new sap.m.ResponsivePopover({ | ||||||
| 				placement :${2} ,//sap.m.PlacementType (default: sap.m.PlacementType.Right) | 				placement :$2 ,//sap.m.PlacementType (default: sap.m.PlacementType.Right) | ||||||
| 				showHeader :${3} ,//boolean (default: true) | 				showHeader :$3 ,//boolean (default: true) | ||||||
| 				title : ${4},//string | 				title : $4,//string | ||||||
| 				icon :${5} ,//sap.ui.core.URI | 				icon :$5 ,//sap.ui.core.URI | ||||||
| 				modal :${6} ,// boolean | 				modal :$6 ,// boolean | ||||||
| 				offsetX :${7}, //int | 				offsetX :$7, //int | ||||||
| 				offsetY :${8}, //int | 				offsetY :$8, //int | ||||||
| 				contentWidth : ${9},//sap.ui.core.CSSSize | 				contentWidth : $9,//sap.ui.core.CSSSize | ||||||
| 				contentHeight :${10}, //sap.ui.core.CSSSize | 				contentHeight :$10, //sap.ui.core.CSSSize | ||||||
| 				horizontalScrolling :${11}, //boolean | 				horizontalScrolling :$11, //boolean | ||||||
| 				verticalScrolling :${12}, //boolean | 				verticalScrolling :$12, //boolean | ||||||
| 				showCloseButton :${13}, //boolean (default: true) | 				showCloseButton :$13, //boolean (default: true) | ||||||
| 				//Aggregations | 				//Aggregations | ||||||
| 				content :${14},  //sap.ui.core.Control[] | 				content :$14,  //sap.ui.core.Control[] | ||||||
| 				customHeader :${15},  //sap.m.IBar | 				customHeader :$15,  //sap.m.IBar | ||||||
| 				subHeader : ${16}, //sap.m.IBar | 				subHeader : $16, //sap.m.IBar | ||||||
| 				beginButton :${17},  //sap.m.Button | 				beginButton :$17,  //sap.m.Button | ||||||
| 				endButton : ${18}, //sap.m.Button | 				endButton : $18, //sap.m.Button | ||||||
| 				//Associations | 				//Associations | ||||||
| 				initialFocus : ${19}, //string | sap.ui.core.Control | 				initialFocus : $19, //string | sap.ui.core.Control | ||||||
| 				//Events | 				//Events | ||||||
| 				beforeOpen :${20},  //fnListenerFunction or [fnListenerFunction, oListenerObject] or [oData, fnListenerFunction, oListenerObject] | 				beforeOpen :$20,  //fnListenerFunction or [fnListenerFunction, oListenerObject] or [oData, fnListenerFunction, oListenerObject] | ||||||
| 				afterOpen : ${21}, //fnListenerFunction or [fnListenerFunction, oListenerObject] or [oData, fnListenerFunction, oListenerObject] | 				afterOpen : $21, //fnListenerFunction or [fnListenerFunction, oListenerObject] or [oData, fnListenerFunction, oListenerObject] | ||||||
| 				beforeClose : ${22}, //fnListenerFunction or [fnListenerFunction, oListenerObject] or [oData, fnListenerFunction, oListenerObject] | 				beforeClose : $22, //fnListenerFunction or [fnListenerFunction, oListenerObject] or [oData, fnListenerFunction, oListenerObject] | ||||||
| 				afterClose : ${23} //fnList | 				afterClose : $23 //fnList | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
| snippet sapicon | snippet sapicon | ||||||
| 	var ${1} = new sap.ui.core.Icon({ | 	var $1 = new sap.ui.core.Icon({ | ||||||
| 					src :${2} , //sap.ui.core.URI | 					src :$2 , //sap.ui.core.URI | ||||||
| 					size :${3} , //sap.ui.core.CSSSize | 					size :$3 , //sap.ui.core.CSSSize | ||||||
| 					color :${4} , //sap.ui.core.CSSColor | 					color :$4 , //sap.ui.core.CSSColor | ||||||
| 					hoverColor : ${5} ,  // sap.ui.core.CSSColor | 					hoverColor : $5 ,  // sap.ui.core.CSSColor | ||||||
| 					activeColor :${6} , //sap.ui.core.CSSColor | 					activeColor :$6 , //sap.ui.core.CSSColor | ||||||
| 					width :${7} , //sap.ui.core.CSSSize | 					width :$7 , //sap.ui.core.CSSSize | ||||||
| 					height : ${8} ,//sap.ui.core.CSSSize | 					height : $8 ,//sap.ui.core.CSSSize | ||||||
| 					backgroundColor :${8} , //sap.ui.core.CSSColor | 					backgroundColor :$8 , //sap.ui.core.CSSColor | ||||||
| 					hoverBackgroundColor :${9} , //sap.ui.core.CSSColor | 					hoverBackgroundColor :$9 , //sap.ui.core.CSSColor | ||||||
| 					activeBackgroundColor :${10} , //sap.ui.core.CSSColor | 					activeBackgroundColor :$10 , //sap.ui.core.CSSColor | ||||||
| 					visible :${11} , //boolean (default: true) | 					visible :$11 , //boolean (default: true) | ||||||
| 					decorative : ${12} ,//boolean (default: true) | 					decorative : $12 ,//boolean (default: true) | ||||||
| 				}); | 				}); | ||||||
| snippet extendVerticalL  | snippet extendVerticalL  | ||||||
| 	sap.ui.layout.VerticalLayout.extend("${1}", { | 	sap.ui.layout.VerticalLayout.extend("$1", { | ||||||
| 	    metadata: { | 	    metadata: { | ||||||
| 		properties: { | 		properties: { | ||||||
| 		  	${2}  | 		  	$2  | ||||||
| 		}, | 		}, | ||||||
| 		aggregations: { | 		aggregations: { | ||||||
| 			${3}	 | 			$3	 | ||||||
| 		}, | 		}, | ||||||
| 		events: { | 		events: { | ||||||
| 			${4} | 			$4 | ||||||
| 		} | 		} | ||||||
| 	    }, | 	    }, | ||||||
| 	   init: function(){ | 	   init: function(){ | ||||||
| 		${5}	 | 		$5	 | ||||||
| 	    }, | 	    }, | ||||||
| 	     | 	     | ||||||
| 	    renderer: "${6}" | 	    renderer: "$6" | ||||||
| 	});	 | 	});	 | ||||||
| snippet extendHorizontalL  | snippet extendHorizontalL  | ||||||
| 	sap.ui.layout.HorizontalLayout.extend("${1}", { | 	sap.ui.layout.HorizontalLayout.extend("$1", { | ||||||
| 	    metadata: { | 	    metadata: { | ||||||
| 		properties: { | 		properties: { | ||||||
| 		  	${2}  | 		  	$2  | ||||||
| 		}, | 		}, | ||||||
| 		aggregations: { | 		aggregations: { | ||||||
| 			${3}	 | 			$3	 | ||||||
| 		}, | 		}, | ||||||
| 		events: { | 		events: { | ||||||
| 			${4} | 			$4 | ||||||
| 		} | 		} | ||||||
| 	    }, | 	    }, | ||||||
| 	   init: function(){ | 	   init: function(){ | ||||||
| 		${5}	 | 		$5	 | ||||||
| 	    }, | 	    }, | ||||||
| 	     | 	     | ||||||
| 	    renderer: "${6}" | 	    renderer: "$6" | ||||||
| 	});	 | 	});	 | ||||||
|  | |||||||
| @ -34,18 +34,6 @@ ${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) { | |||||||
|  |  | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet for "for (...) {...} (counting up)" b |  | ||||||
| for (var ${1:i} = 0, ${2:len} = ${3:Things.length}; $1 < $2; $1++) { |  | ||||||
| 	${VISUAL}$0 |  | ||||||
| } |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ford "for (...) {...} (counting down, faster)" b |  | ||||||
| for (var ${2:i} = ${1:Things.length} - 1; $2 >= 0; $2--) { |  | ||||||
| 	${VISUAL}$0 |  | ||||||
| } |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet fun "function (fun)" w | snippet fun "function (fun)" w | ||||||
| function ${1:function_name}(${2:argument}) { | function ${1:function_name}(${2:argument}) { | ||||||
| 	${VISUAL}$0 | 	${VISUAL}$0 | ||||||
| @ -53,7 +41,7 @@ function ${1:function_name}(${2:argument}) { | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet vf "Function assigned to var" | snippet vf "Function assigned to var" | ||||||
| ${1:var }${2:function_name} = function $2(${3}) { | ${1:var }${2:function_name} = function $2($3) { | ||||||
| 	${VISUAL}$0 | 	${VISUAL}$0 | ||||||
| }; | }; | ||||||
| endsnippet | endsnippet | ||||||
| @ -84,78 +72,4 @@ for (${1:prop} in ${2:obj}){ | |||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # Snippets for Console Debug Output |  | ||||||
|  |  | ||||||
| snippet ca "console.assert" b |  | ||||||
| console.assert(${1:assertion}, ${2:"${3:message}"}); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet cclear "console.clear" b |  | ||||||
| console.clear(); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet cdir "console.dir" b |  | ||||||
| console.dir(${1:object}); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet cdirx "console.dirxml" b |  | ||||||
| console.dirxml(${1:object}); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ce "console.error" b |  | ||||||
| console.error(${1:"${2:value}"}); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet cgroup "console.group" b |  | ||||||
| console.group("${1:label}"); |  | ||||||
| ${VISUAL}$0 |  | ||||||
| console.groupEnd(); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet cgroupc "console.groupCollapsed" b |  | ||||||
| console.groupCollapsed("${1:label}"); |  | ||||||
| ${VISUAL}$0 |  | ||||||
| console.groupEnd(); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ci "console.info" b |  | ||||||
| console.info(${1:"${2:value}"}); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet cl "console.log" b |  | ||||||
| console.log(${1:"${2:value}"}); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet cd "console.debug" b |  | ||||||
| console.debug(${1:"${2:value}"}); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet cprof "console.profile" b |  | ||||||
| console.profile("${1:label}"); |  | ||||||
| ${VISUAL}$0 |  | ||||||
| console.profileEnd(); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ctable "console.table" b |  | ||||||
| console.table(${1:"${2:value}"}); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ctime "console.time" b |  | ||||||
| console.time("${1:label}"); |  | ||||||
| ${VISUAL}$0 |  | ||||||
| console.timeEnd("$1"); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ctimestamp "console.timeStamp" b |  | ||||||
| console.timeStamp("${1:label}"); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet ctrace "console.trace" b |  | ||||||
| console.trace(); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| snippet cw "console.warn" b |  | ||||||
| console.warn(${1:"${2:value}"}); |  | ||||||
| endsnippet |  | ||||||
|  |  | ||||||
| # vim:ft=snippets: | # vim:ft=snippets: | ||||||
|  | |||||||
| @ -53,9 +53,9 @@ use Illuminate\Support\ServiceProvider; | |||||||
| class ${2:`!v expand('%:t:r')`} extends ServiceProvider { | class ${2:`!v expand('%:t:r')`} extends ServiceProvider { | ||||||
|      |      | ||||||
|     public function register() { |     public function register() { | ||||||
|         $this->app->bind('${4}Service', function ($app) { |         $this->app->bind('$4Service', function ($app) { | ||||||
|             return new ${5}( |             return new $5( | ||||||
|                 $app->make('Repositories\\${6}Interface') |                 $app->make('Repositories\\$6Interface') | ||||||
|             ); |             ); | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
| @ -121,7 +121,7 @@ class ${2:`!v expand('%:t:r')`} extends \Eloquent { | |||||||
|  |  | ||||||
|     public $timestamps = ${5:false}; |     public $timestamps = ${5:false}; | ||||||
|  |  | ||||||
|     protected $hidden  = [${6}]; |     protected $hidden  = [$6]; | ||||||
|  |  | ||||||
|     protected $guarded = [${7:'id'}]; |     protected $guarded = [${7:'id'}]; | ||||||
| } | } | ||||||
| @ -208,10 +208,10 @@ snippet l_r "Laravel Repository" b | |||||||
|  * \date        `!v strftime('%d-%m-%y')` |  * \date        `!v strftime('%d-%m-%y')` | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| namespace ${1:Repositories\\${2}}; | namespace ${1:Repositories\\$2}; | ||||||
|  |  | ||||||
| class ${3:`!v expand('%:t:r')`} extends \\${6} implements ${4:$3RepositoryInterface} { | class ${3:`!v expand('%:t:r')`} extends \\$6 implements ${4:$3RepositoryInterface} { | ||||||
|     ${7} |     $7 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -227,7 +227,7 @@ snippet l_s "Laravel Service" b | |||||||
|  * \date        `!v strftime('%d-%m-%y')` |  * \date        `!v strftime('%d-%m-%y')` | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| namespace Services\\${1}; | namespace Services\\$1; | ||||||
|  |  | ||||||
| use ${3:Repositories\\${4:Interface}}; | use ${3:Repositories\\${4:Interface}}; | ||||||
|  |  | ||||||
| @ -265,6 +265,6 @@ class ${2:`!v expand('%:t:r')`} extends Facade { | |||||||
|      * |      * | ||||||
|      * \return      string |      * \return      string | ||||||
|      */ |      */ | ||||||
|     protected static function getFacadeAccessor() { return '${4:${3}Service}'; } |     protected static function getFacadeAccessor() { return '${4:$3Service}'; } | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  | |||||||
| @ -23,15 +23,15 @@ class `!p | |||||||
| snip.rv = re.match(r'.*(?=\.)', fn).group() | snip.rv = re.match(r'.*(?=\.)', fn).group() | ||||||
| ` extends ObjectBehavior | ` extends ObjectBehavior | ||||||
| { | { | ||||||
| 	function it_${1}() | 	function it_$1() | ||||||
| 	{ | 	{ | ||||||
| 		$0 | 		${0:${VISUAL}} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet it "function it_does_something() { ... }" | snippet it "function it_does_something() { ... }" | ||||||
| function it_${1}() | function it_$1() | ||||||
| { | { | ||||||
| 	${0:${VISUAL}} | 	${0:${VISUAL}} | ||||||
| } | } | ||||||
| @ -53,7 +53,7 @@ endsnippet | |||||||
|  |  | ||||||
| # Object construction | # Object construction | ||||||
| snippet cw "$this->beConstructedWith($arg)" | snippet cw "$this->beConstructedWith($arg)" | ||||||
| $this->beConstructedWith(${1}); | $this->beConstructedWith($1); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ct "$this->beConstructedThrough($methodName, [$arg])" | snippet ct "$this->beConstructedThrough($methodName, [$arg])" | ||||||
| @ -112,44 +112,44 @@ endsnippet | |||||||
|  |  | ||||||
| # Type matchers | # Type matchers | ||||||
| snippet stype "$this->shouldHaveType('Type')" | snippet stype "$this->shouldHaveType('Type')" | ||||||
| $this->shouldHaveType(${1}); | $this->shouldHaveType($1); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet sntype "$this->shouldNotHaveType('Type')" | snippet sntype "$this->shouldNotHaveType('Type')" | ||||||
| $this->shouldNotHaveType(${1}); | $this->shouldNotHaveType($1); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet srinstance "$this->shouldReturnAnInstanceOf('Type')" | snippet srinstance "$this->shouldReturnAnInstanceOf('Type')" | ||||||
| $this->shouldReturnAnInstanceOf(${1}); | $this->shouldReturnAnInstanceOf($1); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet snrinstance "$this->shouldNotReturnAnInstanceOf('Type')" | snippet snrinstance "$this->shouldNotReturnAnInstanceOf('Type')" | ||||||
| $this->shouldNotReturnAnInstanceOf(${1}); | $this->shouldNotReturnAnInstanceOf($1); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet sbinstance "$this->shouldBeAnInstanceOf('Type')" | snippet sbinstance "$this->shouldBeAnInstanceOf('Type')" | ||||||
| $this->shouldBeAnInstanceOf(${1}); | $this->shouldBeAnInstanceOf($1); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet snbinstance "$this->shouldNotBeAnInstanceOf('Type')" | snippet snbinstance "$this->shouldNotBeAnInstanceOf('Type')" | ||||||
| $this->shouldNotBeAnInstanceOf(${1}); | $this->shouldNotBeAnInstanceOf($1); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet simplement "$this->shouldImplement('Type')" | snippet simplement "$this->shouldImplement('Type')" | ||||||
| $this->shouldImplement(${1}); | $this->shouldImplement($1); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet snimplement "$this->shouldNotImplement('Type')" | snippet snimplement "$this->shouldNotImplement('Type')" | ||||||
| $this->shouldNotImplement(${1}); | $this->shouldNotImplement($1); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # Object state matchers | # Object state matchers | ||||||
| snippet sbstate "$this->shouldBeXYZ()" | snippet sbstate "$this->shouldBeXYZ()" | ||||||
| $this->shouldBe${1}(); | $this->shouldBe$1(); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet snbstate "$this->shouldNotBeXYZ()" | snippet snbstate "$this->shouldNotBeXYZ()" | ||||||
| $this->shouldNotBe${1}(); | $this->shouldNotBe$1(); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # Count matchers | # Count matchers | ||||||
|  | |||||||
| @ -67,25 +67,25 @@ endsnippet | |||||||
|  |  | ||||||
| snippet act "Symfony2 action" b | snippet act "Symfony2 action" b | ||||||
| /** | /** | ||||||
|  * @Route("${3}", name="${4}") |  * @Route("$3", name="$4") | ||||||
|  * @Method({${5:"POST"}}) |  * @Method({${5:"POST"}}) | ||||||
|  * @Template() |  * @Template() | ||||||
|  */ |  */ | ||||||
| public function ${1}Action(${2}) | public function $1Action($2) | ||||||
| { | { | ||||||
| 	${6} | 	$6 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet actt "Symfony2 action and template" b | snippet actt "Symfony2 action and template" b | ||||||
| /** | /** | ||||||
|  * @Route("${3}", name="${4}") |  * @Route("$3", name="$4") | ||||||
|  * @Method({${5:"GET"}}) |  * @Method({${5:"GET"}}) | ||||||
|  * @Template() |  * @Template() | ||||||
|  */ |  */ | ||||||
| public function ${1}Action(${2}) | public function $1Action($2) | ||||||
| { | { | ||||||
| 	${6} | 	$6 | ||||||
| 	return []; | 	return []; | ||||||
| }`!p | }`!p | ||||||
| relpath = os.path.relpath(path)` | relpath = os.path.relpath(path)` | ||||||
| @ -116,8 +116,8 @@ snip.rv = re.match(r'.*(?=\.)', fn).group() | |||||||
| { | { | ||||||
| 	protected function configure() | 	protected function configure() | ||||||
| 	{ | 	{ | ||||||
| 		$this->setName('${1}') | 		$this->setName('$1') | ||||||
| 			->setDescription('${2}') | 			->setDescription('$2') | ||||||
| 			->setDefinition([ | 			->setDefinition([ | ||||||
| 				new InputArgument('', InputArgument::REQUIRED, ''), | 				new InputArgument('', InputArgument::REQUIRED, ''), | ||||||
| 				new InputOption('', null, InputOption::VALUE_NONE, ''), | 				new InputOption('', null, InputOption::VALUE_NONE, ''), | ||||||
| @ -186,14 +186,14 @@ snip.rv = re.match(r'.*(?=\.)', fn).group() | |||||||
| 	/** | 	/** | ||||||
| 	 * {@inheritDoc} | 	 * {@inheritDoc} | ||||||
| 	 */ | 	 */ | ||||||
| 	public function transform(${1}) | 	public function transform($1) | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * {@inheritDoc} | 	 * {@inheritDoc} | ||||||
| 	 */ | 	 */ | ||||||
| 	public function reverseTransform(${2}) | 	public function reverseTransform($2) | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @ -279,7 +279,7 @@ snip.rv = re.match(r'.*(?=\.)', fn).group() | |||||||
| 	 */ | 	 */ | ||||||
| 	public function getName() | 	public function getName() | ||||||
| 	{ | 	{ | ||||||
| 		return '${1}'; | 		return '$1'; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
| @ -307,54 +307,54 @@ snip.rv = re.match(r'.*(?=\.)', fn).group() | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet redir "Symfony2 redirect" b | snippet redir "Symfony2 redirect" b | ||||||
| $this->redirect($this->generateUrl('${1}', ${2})); | $this->redirect($this->generateUrl('$1', $2)); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet usecontroller "Symfony2 use Symfony\..\Controller" b | snippet usecontroller "Symfony2 use Symfony\..\Controller" b | ||||||
| use Symfony\Bundle\FrameworkBundle\Controller\Controller;${1} | use Symfony\Bundle\FrameworkBundle\Controller\Controller;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet usereauest "Symfony2 use Symfony\..\Request" b | snippet usereauest "Symfony2 use Symfony\..\Request" b | ||||||
| use Symfony\Component\HttpFoundation\Request;${1} | use Symfony\Component\HttpFoundation\Request;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet useroute "Symfony2 use Sensio\..\Route" b | snippet useroute "Symfony2 use Sensio\..\Route" b | ||||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;${1} | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet useresponse "Symfony2 use Symfony\..\Response" b | snippet useresponse "Symfony2 use Symfony\..\Response" b | ||||||
| use Symfony\Component\HttpFoundation\Response;${1} | use Symfony\Component\HttpFoundation\Response;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet usefile "Symfony2 use Symfony\..\File" b | snippet usefile "Symfony2 use Symfony\..\File" b | ||||||
| use Symfony\Component\HttpFoundation\File\UploadedFile;${1} | use Symfony\Component\HttpFoundation\File\UploadedFile;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet useassert "Symfony2 use Symfony\..\Constraints as Assert" b | snippet useassert "Symfony2 use Symfony\..\Constraints as Assert" b | ||||||
| use Symfony\Component\Validator\Constraints as Assert;${1} | use Symfony\Component\Validator\Constraints as Assert;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet usetemplate "Symfony2 use Sensio\..\Template" b | snippet usetemplate "Symfony2 use Sensio\..\Template" b | ||||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;${1} | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet usecache "Symfony2 use Sensio\..\Cache" b | snippet usecache "Symfony2 use Sensio\..\Cache" b | ||||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;${1} | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet usemethod "Symfony2 use Sensio\..\Method" b | snippet usemethod "Symfony2 use Sensio\..\Method" b | ||||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;${1} | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet usearray "Symfony2 use Doctrine\..\ArrayCollection" b | snippet usearray "Symfony2 use Doctrine\..\ArrayCollection" b | ||||||
| use Doctrine\Common\Collections\ArrayCollection;${1} | use Doctrine\Common\Collections\ArrayCollection;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet useorm "Symfony2 use Doctrine\..\Mapping as ORM" b | snippet useorm "Symfony2 use Doctrine\..\Mapping as ORM" b | ||||||
| use Doctrine\ORM\Mapping as ORM;${1} | use Doctrine\ORM\Mapping as ORM;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet usesecure "Symfony2 use JMS\..\Secure" b | snippet usesecure "Symfony2 use JMS\..\Secure" b | ||||||
| use JMS\SecurityExtraBundle\Annotation\Secure;${1} | use JMS\SecurityExtraBundle\Annotation\Secure;$1 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  | |||||||
| @ -250,7 +250,7 @@ class `!p | |||||||
| snip.rv = re.match(r'.*(?=\.)', fn).group() | snip.rv = re.match(r'.*(?=\.)', fn).group() | ||||||
| ` extends \PHPUnit_Framework_TestCase | ` extends \PHPUnit_Framework_TestCase | ||||||
| { | { | ||||||
| 	public function test${1}() | 	public function test$1() | ||||||
| 	{ | 	{ | ||||||
| 		${0:${VISUAL}} | 		${0:${VISUAL}} | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -32,17 +32,17 @@ endsnippet | |||||||
|  |  | ||||||
| snippet reqf "Required field" b | snippet reqf "Required field" b | ||||||
| // ${4:TODO(`whoami`): Describe this field.} | // ${4:TODO(`whoami`): Describe this field.} | ||||||
| optional ${1}`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1};  // Required | optional $1`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1};  // Required | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet optf "Optional field" b | snippet optf "Optional field" b | ||||||
| // ${4:TODO(`whoami`): Describe this field.} | // ${4:TODO(`whoami`): Describe this field.} | ||||||
| optional ${1}`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1}; | optional $1`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1}; | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet repf "Repeated field" b | snippet repf "Repeated field" b | ||||||
| // ${4:TODO(`whoami`): Describe this field.} | // ${4:TODO(`whoami`): Describe this field.} | ||||||
| repeated ${1}`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1}; | repeated $1`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1}; | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet enum "Enumeration" b | snippet enum "Enumeration" b | ||||||
|  | |||||||
| @ -133,103 +133,103 @@ endsnippet | |||||||
| ######################################################################## | ######################################################################## | ||||||
|  |  | ||||||
| snippet alert "Alert Function" b | snippet alert "Alert Function" b | ||||||
| alert("${1:message}")${0} | alert("${1:message}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet crit "Crit Function" b | snippet crit "Crit Function" b | ||||||
| crit("${1:message}")${0} | crit("${1:message}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet debug "Debug Function" b | snippet debug "Debug Function" b | ||||||
| debug("${1:message}")${0} | debug("${1:message}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet defined "Defined Function" b | snippet defined "Defined Function" b | ||||||
| defined(${1:Resource}["${2:name}"])${0} | defined(${1:Resource}["${2:name}"])$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet emerg "Emerg Function" b | snippet emerg "Emerg Function" b | ||||||
| emerg("${1:message}")${0} | emerg("${1:message}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet extlookup "Simple Extlookup" b | snippet extlookup "Simple Extlookup" b | ||||||
| $${1:Variable} = extlookup("${2:Lookup}")${0} | $${1:Variable} = extlookup("${2:Lookup}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet extlookup "Extlookup with defaults" b | snippet extlookup "Extlookup with defaults" b | ||||||
| $${1:Variable} = extlookup("${2:Lookup}", ${3:Default})${0} | $${1:Variable} = extlookup("${2:Lookup}", ${3:Default})$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet extlookup "Extlookup with defaults and custom data file" b | snippet extlookup "Extlookup with defaults and custom data file" b | ||||||
| $${1:Variable} = extlookup("${2:Lookup}", ${3:Default}, ${4:Data Source})${0} | $${1:Variable} = extlookup("${2:Lookup}", ${3:Default}, ${4:Data Source})$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet fail "Fail Function" b | snippet fail "Fail Function" b | ||||||
| fail("${1:message}")${0} | fail("${1:message}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hiera "Hiera Function" b | snippet hiera "Hiera Function" b | ||||||
| $${1:Variable} = hiera("${2:Lookup}")${0} | $${1:Variable} = hiera("${2:Lookup}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hiera "Hiera with defaults" b | snippet hiera "Hiera with defaults" b | ||||||
| $${1:Variable} = hiera("${2:Lookup}", ${3:Default})${0} | $${1:Variable} = hiera("${2:Lookup}", ${3:Default})$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hiera "Hiera with defaults and override" b | snippet hiera "Hiera with defaults and override" b | ||||||
| $${1:Variable} = hiera("${2:Lookup}", ${3:Default}, ${4:Override})${0} | $${1:Variable} = hiera("${2:Lookup}", ${3:Default}, ${4:Override})$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hiera_hash "Hiera Hash Function" b | snippet hiera_hash "Hiera Hash Function" b | ||||||
| $${1:Variable} = hiera_hash("${2:Lookup}")${0} | $${1:Variable} = hiera_hash("${2:Lookup}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hiera_hash "Hiera Hash with defaults" b | snippet hiera_hash "Hiera Hash with defaults" b | ||||||
| $${1:Variable} = hiera_hash("${2:Lookup}", ${3:Default})${0} | $${1:Variable} = hiera_hash("${2:Lookup}", ${3:Default})$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hiera_hash "Hiera Hash with defaults and override" b | snippet hiera_hash "Hiera Hash with defaults and override" b | ||||||
| $${1:Variable} = hiera_hash("${2:Lookup}", ${3:Default}, ${4:Override})${0} | $${1:Variable} = hiera_hash("${2:Lookup}", ${3:Default}, ${4:Override})$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hiera_include "Hiera Include Function" b | snippet hiera_include "Hiera Include Function" b | ||||||
| hiera_include("${1:Lookup}")${0} | hiera_include("${1:Lookup}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet include "Include Function" b | snippet include "Include Function" b | ||||||
| include ${1:classname}${0} | include ${1:classname}$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet info "Info Function" b | snippet info "Info Function" b | ||||||
| info("${1:message}")${0} | info("${1:message}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet inline_template "Inline Template Function" b | snippet inline_template "Inline Template Function" b | ||||||
| inline_template("<%= ${1:template} %>")${0} | inline_template("<%= ${1:template} %>")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet notice "Notice Function" b | snippet notice "Notice Function" b | ||||||
| notice("${1:message}")${0} | notice("${1:message}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet realize "Realize Function" b | snippet realize "Realize Function" b | ||||||
| realize(${1:Resource}["${2:name}"])${0} | realize(${1:Resource}["${2:name}"])$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet regsubst "Regsubst Function" b | snippet regsubst "Regsubst Function" b | ||||||
| regsubst($${1:Target}, '${2:regexp}', '${3:replacement}')${0} | regsubst($${1:Target}, '${2:regexp}', '${3:replacement}')$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet split "Split Function" b | snippet split "Split Function" b | ||||||
| $${1:Variable} = split($${1:Target}, '${2:regexp}')${0} | $${1:Variable} = split($${1:Target}, '${2:regexp}')$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet versioncmp "Version Compare Function" b | snippet versioncmp "Version Compare Function" b | ||||||
| $${1:Variable} = versioncmp('${1:version}', '${2:version}')${0} | $${1:Variable} = versioncmp('${1:version}', '${2:version}')$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet warning "Warning Function" b | snippet warning "Warning Function" b | ||||||
| warning("${1:message}")${0} | warning("${1:message}")$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # vim:ft=snippets: | # vim:ft=snippets: | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ endsnippet | |||||||
| snippet with "with" b | snippet with "with" b | ||||||
| with ${1:expr}`!p snip.rv = " as " if t[2] else ""`${2:var}: | with ${1:expr}`!p snip.rv = " as " if t[2] else ""`${2:var}: | ||||||
| 	${3:${VISUAL:pass}} | 	${3:${VISUAL:pass}} | ||||||
| ${0} | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet for "for loop" b | snippet for "for loop" b | ||||||
|  | |||||||
| @ -24,11 +24,11 @@ setwd("${1:`!p snip.rv = os.getcwd()`}") | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet as "Apply type on variable" w | snippet as "Apply type on variable" w | ||||||
| as.$1`!p snip.rv = complete(t[1], FIELD_TYPES)`(${2}${VISUAL}) | as.$1`!p snip.rv = complete(t[1], FIELD_TYPES)`($2${VISUAL}) | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet is "Test type on variable" w | snippet is "Test type on variable" w | ||||||
| is.$1`!p snip.rv = complete(t[1], FIELD_TYPES)`(${2}${VISUAL}) | is.$1`!p snip.rv = complete(t[1], FIELD_TYPES)`($2${VISUAL}) | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet dl "Download and install a package" b | snippet dl "Download and install a package" b | ||||||
| @ -50,51 +50,51 @@ source('${0:file}') | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet if "If statement" | snippet if "If statement" | ||||||
| if (${1}) { | if ($1) { | ||||||
| 	${0} | 	$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet eif "Else-If statement" | snippet eif "Else-If statement" | ||||||
| else if (${1}) { | else if ($1) { | ||||||
| 	${0} | 	$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet el "Else statement" | snippet el "Else statement" | ||||||
| else { | else { | ||||||
| 	${0} | 	$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ife "if .. else" | snippet ife "if .. else" | ||||||
| if (${1}) { | if ($1) { | ||||||
| 	${2} | 	$2 | ||||||
| } else { | } else { | ||||||
| 	${3} | 	$3 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet wh "while loop" | snippet wh "while loop" | ||||||
| while(${1}) { | while($1) { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet for "for loop" | snippet for "for loop" | ||||||
| for (${1:item} in ${2:list}) { | for (${1:item} in ${2:list}) { | ||||||
| 	${3} | 	$3 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet fun "Function definition" | snippet fun "Function definition" | ||||||
| ${1:name} <- function (${2}) { | ${1:name} <- function ($2) { | ||||||
| 	${0} | 	$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ret "Return call" | snippet ret "Return call" | ||||||
| return(${0}) | return($0) | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet df "Data frame" | snippet df "Data frame" | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ class ${1:Model}Controller < ApplicationController | |||||||
| 	$0 | 	$0 | ||||||
|  |  | ||||||
| 	private | 	private | ||||||
| 	def find_${2} | 	def find_$2 | ||||||
| 		@$2 = ${3:$1}.find(params[:id]) if params[:id] | 		@$2 = ${3:$1}.find(params[:id]) if params[:id] | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
| @ -253,7 +253,7 @@ after_validation_on_update $0 | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet asg "assert(var = assigns(:var))" | snippet asg "assert(var = assigns(:var))" | ||||||
| assert(${1:var} = assigns(:${1}), "Cannot find @${1}") | assert(${1:var} = assigns(:$1), "Cannot find @$1") | ||||||
| $0 | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -270,11 +270,11 @@ end | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet artnpp "assert_redirected_to (nested path plural)" | snippet artnpp "assert_redirected_to (nested path plural)" | ||||||
| assert_redirected_to ${10:${2:parent}_${3:child}_path(${4:@}${5:${2}})} | assert_redirected_to ${10:${2:parent}_${3:child}_path(${4:@}${5:$2})} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet artnp "assert_redirected_to (nested path)" | snippet artnp "assert_redirected_to (nested path)" | ||||||
| assert_redirected_to ${2:${12:parent}_${13:child}_path(${14:@}${15:${12}}, ${16:@}${17:${13}})} | assert_redirected_to ${2:${12:parent}_${13:child}_path(${14:@}${15:$12}, ${16:@}${17:$13})} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet artpp "assert_redirected_to (path plural)" | snippet artpp "assert_redirected_to (path plural)" | ||||||
| @ -282,7 +282,7 @@ assert_redirected_to ${10:${2:model}s_path} | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet artp "assert_redirected_to (path)" | snippet artp "assert_redirected_to (path)" | ||||||
| assert_redirected_to ${2:${12:model}_path(${13:@}${14:${12}})} | assert_redirected_to ${2:${12:model}_path(${13:@}${14:$12})} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet asrj "assert_rjs" | snippet asrj "assert_rjs" | ||||||
| @ -324,7 +324,7 @@ before_validation_on_update | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet bt "belongs_to (bt)" | snippet bt "belongs_to (bt)" | ||||||
| belongs_to :${1:object}${2:, :class_name => "${3:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}", :foreign_key => "${4:${1}_id}"} | belongs_to :${1:object}${2:, :class_name => "${3:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}", :foreign_key => "${4:$1_id}"} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet crw "cattr_accessor" | snippet crw "cattr_accessor" | ||||||
| @ -358,7 +358,7 @@ endsnippet | |||||||
| snippet deftg "def get request" | snippet deftg "def get request" | ||||||
| def test_should_get_${1:action} | def test_should_get_${1:action} | ||||||
| 	${2:@${3:model} = ${4:$3s}(:${5:fixture_name}) | 	${2:@${3:model} = ${4:$3s}(:${5:fixture_name}) | ||||||
| 	}get :${1}${6:, :id => @$3.to_param} | 	}get :$1${6:, :id => @$3.to_param} | ||||||
| 	assert_response :success | 	assert_response :success | ||||||
| 	$0 | 	$0 | ||||||
| end | end | ||||||
| @ -367,7 +367,7 @@ endsnippet | |||||||
| snippet deftp "def post request" | snippet deftp "def post request" | ||||||
| def test_should_post_${1:action} | def test_should_post_${1:action} | ||||||
| 	${3:@$2 = ${4:$2s}(:${5:fixture_name}) | 	${3:@$2 = ${4:$2s}(:${5:fixture_name}) | ||||||
| 	}post :${1}${6:, :id => @$2.to_param}, :${2:model} => { $0 } | 	}post :$1${6:, :id => @$2.to_param}, :${2:model} => { $0 } | ||||||
| 	assert_response :redirect | 	assert_response :redirect | ||||||
|  |  | ||||||
| end | end | ||||||
| @ -400,23 +400,23 @@ end | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet habtm "has_and_belongs_to_many (habtm)" | snippet habtm "has_and_belongs_to_many (habtm)" | ||||||
| has_and_belongs_to_many :${1:object}${2:, :join_table => "${3:table_name}", :foreign_key => "${4:${1}_id}"} | has_and_belongs_to_many :${1:object}${2:, :join_table => "${3:table_name}", :foreign_key => "${4:$1_id}"} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hm "has_many (hm)" | snippet hm "has_many (hm)" | ||||||
| has_many :${1:object}s${2:, :class_name => "${1}", :foreign_key => "${4:reference}_id"} | has_many :${1:object}s${2:, :class_name => "$1", :foreign_key => "${4:reference}_id"} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hmt "has_many (through)" | snippet hmt "has_many (through)" | ||||||
| has_many :${1:objects}, :through => :${2:join_association}${3:, :source => :${4:${2}_table_foreign_key_to_${1}_table}} | has_many :${1:objects}, :through => :${2:join_association}${3:, :source => :${4:$2_table_foreign_key_to_$1_table}} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet hmd "has_many :dependent => :destroy" | snippet hmd "has_many :dependent => :destroy" | ||||||
| has_many :${1:object}s${2:, :class_name => "${1}", :foreign_key => "${4:reference}_id"}, :dependent => :destroy$0 | has_many :${1:object}s${2:, :class_name => "$1", :foreign_key => "${4:reference}_id"}, :dependent => :destroy$0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ho "has_one (ho)" | snippet ho "has_one (ho)" | ||||||
| has_one :${1:object}${2:, :class_name => "${3:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}", :foreign_key => "${4:${1}_id}"} | has_one :${1:object}${2:, :class_name => "${3:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}", :foreign_key => "${4:$1_id}"} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet logd "logger.debug" | snippet logd "logger.debug" | ||||||
| @ -514,11 +514,11 @@ redirect_to :controller => "${1:items}", :action => "${2:show}", :id => ${0:@ite | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet renpp "redirect_to (nested path plural)" | snippet renpp "redirect_to (nested path plural)" | ||||||
| redirect_to(${2:${10:parent}_${11:child}_path(${12:@}${13:${10}})}) | redirect_to(${2:${10:parent}_${11:child}_path(${12:@}${13:$10})}) | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet renp "redirect_to (nested path)" | snippet renp "redirect_to (nested path)" | ||||||
| redirect_to(${2:${12:parent}_${13:child}_path(${14:@}${15:${12}}, ${16:@}${17:${13}})}) | redirect_to(${2:${12:parent}_${13:child}_path(${14:@}${15:$12}, ${16:@}${17:$13})}) | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet repp "redirect_to (path plural)" | snippet repp "redirect_to (path plural)" | ||||||
| @ -526,7 +526,7 @@ redirect_to(${2:${10:model}s_path}) | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet rep "redirect_to (path)" | snippet rep "redirect_to (path)" | ||||||
| redirect_to(${2:${12:model}_path(${13:@}${14:${12}})}) | redirect_to(${2:${12:model}_path(${13:@}${14:$12})}) | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet reb "redirect_to :back" | snippet reb "redirect_to :back" | ||||||
| @ -882,12 +882,12 @@ end | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet trans "Translation snippet" | snippet trans "Translation snippet" | ||||||
| I18n.t('`!v substitute(substitute(substitute(@%, substitute(getcwd() . "/", "\/", "\\\\/", "g"), "", ""), "\\(\\.\\(html\\|js\\)\\.\\(haml\\|erb\\)\\|\\(_controller\\)\\?\\.rb\\)$", "", ""), "/", ".", "g")`.${2:${1/[^\w]/_/g}}${3}', :default => "${1:some_text}"${4})${5:$0} | I18n.t('`!v substitute(substitute(substitute(@%, substitute(getcwd() . "/", "\/", "\\\\/", "g"), "", ""), "\\(\\.\\(html\\|js\\)\\.\\(haml\\|erb\\)\\|\\(_controller\\)\\?\\.rb\\)$", "", ""), "/", ".", "g")`.${2:${1/[^\w]/_/g}}$3', :default => "${1:some_text}"$4)${5:$0} | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet route_spec | snippet route_spec | ||||||
| it 'routes to #${1:action}' do | it 'routes to #${1:action}' do | ||||||
| 	${2:get}('/${3:url}').should route_to('`!v substitute(expand('%:t:r'), '_routing_spec$', '', '')`#$1'${4:, ${5:params}})${6} | 	${2:get}('/${3:url}').should route_to('`!v substitute(expand('%:t:r'), '_routing_spec$', '', '')`#$1'${4:, ${5:params}})$6 | ||||||
| end | end | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  | |||||||
| @ -28,7 +28,7 @@ SPECIFIC_ADMONITIONS = ["attention", "caution", "danger", | |||||||
| #http://docutils.sourceforge.net/docs/ref/rst/directives.html | #http://docutils.sourceforge.net/docs/ref/rst/directives.html | ||||||
| DIRECTIVES = ['topic','sidebar','math','epigraph', | DIRECTIVES = ['topic','sidebar','math','epigraph', | ||||||
| 			  'parsed-literal','code','highlights', | 			  'parsed-literal','code','highlights', | ||||||
| 			  'pull-quote','compound','container', | 			  'pull-quote','compound','container','table','csv-table', | ||||||
| 			  'list-table','class','sectnum', | 			  'list-table','class','sectnum', | ||||||
| 			  'role','default-role','unicode', | 			  'role','default-role','unicode', | ||||||
| 			  'raw'] | 			  'raw'] | ||||||
| @ -238,6 +238,7 @@ if di == 'im': | |||||||
| if di == 'fi': | if di == 'fi': | ||||||
| 	content=""" | 	content=""" | ||||||
| 	:alt: {0} | 	:alt: {0} | ||||||
|  |  | ||||||
| 	{0}""".format(real_name) | 	{0}""".format(real_name) | ||||||
| ` | ` | ||||||
| ..`!p snip.rv = " %s" % link if link else ""` $1`!p | ..`!p snip.rv = " %s" % link if link else ""` $1`!p | ||||||
| @ -281,6 +282,23 @@ snippet ro "Text Roles" w | |||||||
| 														path))`:\`$2\`\ | 														path))`:\`$2\`\ | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  | snippet eu "Embedded URI" i | ||||||
|  | `!p | ||||||
|  | if has_cjk(vim.current.line): | ||||||
|  | 	snip.rv = "\ "`\`${1:${VISUAL:Text}} <${2:URI}>\`_`!p | ||||||
|  | if has_cjk(vim.current.line): | ||||||
|  | 	snip.rv ="\ " | ||||||
|  | else: | ||||||
|  | 	snip.rv = "" | ||||||
|  | `$0 | ||||||
|  | endsnippet | ||||||
|  |  | ||||||
|  | snippet fnt "Footnote or Citation" i | ||||||
|  | [${1:Label}]_ $0 | ||||||
|  |  | ||||||
|  | .. [$1] ${2:Reference} | ||||||
|  | endsnippet | ||||||
|  |  | ||||||
| ############ | ############ | ||||||
| #  Sphinx  # | #  Sphinx  # | ||||||
| ############ | ############ | ||||||
|  | |||||||
| @ -5,22 +5,22 @@ | |||||||
| priority -50 | priority -50 | ||||||
|  |  | ||||||
| snippet let "let variable declaration" b | snippet let "let variable declaration" b | ||||||
| let ${1:name}${2:: ${3:type}} = ${4}; | let ${1:name}${2:: ${3:type}} = $4; | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet letm "let mut variable declaration" b | snippet letm "let mut variable declaration" b | ||||||
| let mut ${1:name}${2:: ${3:type}} = ${4}; | let mut ${1:name}${2:: ${3:type}} = $4; | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet fn "A function, optionally with arguments and return type." | snippet fn "A function, optionally with arguments and return type." | ||||||
| fn ${1:function_name}(${2})${3/..*/ -> /}${3} { | fn ${1:function_name}($2)${3/..*/ -> /}$3 { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet pfn "A public function, optionally with arguments and return type." | snippet pfn "A public function, optionally with arguments and return type." | ||||||
| pub fn ${1:function_name}(${2})${3/..*/ -> /}${3} { | pub fn ${1:function_name}($2)${3/..*/ -> /}$3 { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -29,44 +29,44 @@ ${1:a}: ${2:T}${3:, arg} | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet || "Closure, anonymous function (inline)" i | snippet || "Closure, anonymous function (inline)" i | ||||||
| ${1:move }|${2}| { $3 } | ${1:move }|$2| { $3 } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet |} "Closure, anonymous function (block)" i | snippet |} "Closure, anonymous function (block)" i | ||||||
| ${1:move }|${2}| { | ${1:move }|$2| { | ||||||
| 	$3 | 	$3 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet pri "print!(..)" b | snippet pri "print!(..)" b | ||||||
| print!("${1}"${2/..*/, /}${2}); | print!("$1"${2/..*/, /}$2); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet pln "println!(..)" b | snippet pln "println!(..)" b | ||||||
| println!("${1}"${2/..*/, /}${2}); | println!("$1"${2/..*/, /}$2); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet fmt "format!(..)" | snippet fmt "format!(..)" | ||||||
| format!("${1}"${2/..*/, /}${2}); | format!("$1"${2/..*/, /}$2); | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet macro "macro_rules!" b | snippet macro "macro_rules!" b | ||||||
| macro_rules! ${1:name} { | macro_rules! ${1:name} { | ||||||
| 	(${2:matcher}) => ( | 	(${2:matcher}) => ( | ||||||
| 		${3} | 		$3 | ||||||
| 	) | 	) | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet mod "A module" b | snippet mod "A module" b | ||||||
| mod ${1:`!p snip.rv = snip.basename.lower() or "name"`} { | mod ${1:`!p snip.rv = snip.basename.lower() or "name"`} { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet for "for .. in .." b | snippet for "for .. in .." b | ||||||
| for ${1:i} in ${2} { | for ${1:i} in $2 { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -76,19 +76,19 @@ endsnippet | |||||||
|  |  | ||||||
| snippet st "Struct" b | snippet st "Struct" b | ||||||
| struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { | struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { | ||||||
| 	${VISUAL}${0} | 	${VISUAL}$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| # TODO: fancy dynamic field mirroring like Python slotclass | # TODO: fancy dynamic field mirroring like Python slotclass | ||||||
| snippet stn "Struct with new constructor." b | snippet stn "Struct with new constructor." b | ||||||
| pub struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { | pub struct ${1:`!p snip.rv = snip.basename.title() or "Name"`} { | ||||||
| 	fd${0} | 	fd$0 | ||||||
| } | } | ||||||
|  |  | ||||||
| impl $1 { | impl $1 { | ||||||
| 	pub fn new(${2}) -> $1 { | 	pub fn new($2) -> $1 { | ||||||
| 		$1 { ${3} } | 		$1 { $3 } | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
| @ -99,7 +99,7 @@ endsnippet | |||||||
|  |  | ||||||
| snippet impl "Struct/Trait implementation" b | snippet impl "Struct/Trait implementation" b | ||||||
| impl ${1:Type/Trait}${2: for ${3:Type}} { | impl ${1:Type/Trait}${2: for ${3:Type}} { | ||||||
| 	${0} | 	$0 | ||||||
| } | } | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
|  | |||||||
| @ -5,6 +5,6 @@ for (${1:1}, ${2:10}) {${3: |i}|} | |||||||
| endsnippet | endsnippet | ||||||
| snippet sdef | snippet sdef | ||||||
| SynthDef(\\${1:synthName}, {${2: |${3:x}|} | SynthDef(\\${1:synthName}, {${2: |${3:x}|} | ||||||
| 	${0} | 	$0 | ||||||
| }).add; | }).add; | ||||||
| endsnippet | endsnippet | ||||||
|  | |||||||
| @ -5,21 +5,21 @@ priority -50 | |||||||
| ########################################################################### | ########################################################################### | ||||||
| snippet for "for... (for)" b | snippet for "for... (for)" b | ||||||
| for {${1:set i 0}} {${2:\$i < \$n}} {${3:incr i}} { | for {${1:set i 0}} {${2:\$i < \$n}} {${3:incr i}} { | ||||||
| 	${4} | 	$4 | ||||||
| } | } | ||||||
|  |  | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet foreach "foreach... (foreach)" | snippet foreach "foreach... (foreach)" | ||||||
| foreach ${1:var} ${2:\$list} { | foreach ${1:var} ${2:\$list} { | ||||||
| 	${3} | 	$3 | ||||||
| } | } | ||||||
|  |  | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet if "if... (if)" b | snippet if "if... (if)" b | ||||||
| if {${1:condition}} { | if {${1:condition}} { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
|  |  | ||||||
| endsnippet | endsnippet | ||||||
| @ -27,7 +27,7 @@ endsnippet | |||||||
| snippet proc "proc... (proc)" b | snippet proc "proc... (proc)" b | ||||||
| proc ${1:name} {${2:args}} \ | proc ${1:name} {${2:args}} \ | ||||||
| { | { | ||||||
| 	${3} | 	$3 | ||||||
| } | } | ||||||
|  |  | ||||||
| endsnippet | endsnippet | ||||||
| @ -35,16 +35,16 @@ endsnippet | |||||||
| snippet switch "switch... (switch)" b | snippet switch "switch... (switch)" b | ||||||
| switch ${1:-exact} -- ${2:\$var} { | switch ${1:-exact} -- ${2:\$var} { | ||||||
| 	${3:match} { | 	${3:match} { | ||||||
| 		${4} | 		$4 | ||||||
| 	} | 	} | ||||||
| 	default {${5}} | 	default {$5} | ||||||
| } | } | ||||||
|  |  | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet while "while... (while)" b | snippet while "while... (while)" b | ||||||
| while {${1:condition}} { | while {${1:condition}} { | ||||||
| 	${2} | 	$2 | ||||||
| } | } | ||||||
|  |  | ||||||
| endsnippet | endsnippet | ||||||
|  | |||||||
| @ -53,7 +53,7 @@ snippet desc "Description" b | |||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet it "Individual item" b | snippet it "Individual item" b | ||||||
| \item ${1} | \item $1 | ||||||
| $0 | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| @ -61,54 +61,54 @@ snippet part "Part" b | |||||||
| \part{${1:part name}} | \part{${1:part name}} | ||||||
| \label{prt:${2:${1/(\w+)|\W+/(?1:\L$0\E:_)/ga}}} | \label{prt:${2:${1/(\w+)|\W+/(?1:\L$0\E:_)/ga}}} | ||||||
|  |  | ||||||
| ${0} | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet cha "Chapter" b | snippet cha "Chapter" b | ||||||
| \chapter{${1:chapter name}} | \chapter{${1:chapter name}} | ||||||
| \label{cha:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | \label{cha:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | ||||||
|  |  | ||||||
| ${0} | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet sec "Section" b | snippet sec "Section" b | ||||||
| \section{${1:section name}} | \section{${1:section name}} | ||||||
| \label{sec:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | \label{sec:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | ||||||
|  |  | ||||||
| ${0} | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet sub "Subsection" b | snippet sub "Subsection" b | ||||||
| \subsection{${1:subsection name}} | \subsection{${1:subsection name}} | ||||||
| \label{sub:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | \label{sub:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | ||||||
|  |  | ||||||
| ${0} | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ssub "Subsubsection" b | snippet ssub "Subsubsection" b | ||||||
| \subsubsection{${1:subsubsection name}} | \subsubsection{${1:subsubsection name}} | ||||||
| \label{ssub:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | \label{ssub:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | ||||||
|  |  | ||||||
| ${0} | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet par "Paragraph" b | snippet par "Paragraph" b | ||||||
| \paragraph{${1:paragraph name}} | \paragraph{${1:paragraph name}} | ||||||
| \label{par:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | \label{par:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | ||||||
|  |  | ||||||
| ${0} | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet subp "Subparagraph" b | snippet subp "Subparagraph" b | ||||||
| \subparagraph{${1:subparagraph name}} | \subparagraph{${1:subparagraph name}} | ||||||
| \label{par:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | \label{par:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3\E)/ga}}} | ||||||
|  |  | ||||||
| ${0} | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet ni "Non-indented paragraph" b | snippet ni "Non-indented paragraph" b | ||||||
| \noindent | \noindent | ||||||
| ${0} | $0 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet pac "Package" b | snippet pac "Package" b | ||||||
|  | |||||||
| @ -13,11 +13,11 @@ snippet guard "script reload guard" b | |||||||
| if exists('${1:did_`!p snip.rv = snip.fn.replace('.','_')`}') || &cp${2: || version < 700} | if exists('${1:did_`!p snip.rv = snip.fn.replace('.','_')`}') || &cp${2: || version < 700} | ||||||
| 	finish | 	finish | ||||||
| endif | endif | ||||||
| let $1 = 1${3} | let $1 = 1$3 | ||||||
| endsnippet | endsnippet | ||||||
|  |  | ||||||
| snippet f "function" b | snippet f "function" b | ||||||
| fun ${1:function_name}(${2}) | fun ${1:function_name}($2) | ||||||
| 	${3:" code} | 	${3:" code} | ||||||
| endf | endf | ||||||
| endsnippet | endsnippet | ||||||
|  | |||||||
| @ -96,7 +96,7 @@ snippet interface | |||||||
| 	} | 	} | ||||||
| snippet try | snippet try | ||||||
| 	try { | 	try { | ||||||
| 		${1} | 		${1:${VISUAL}} | ||||||
| 	} catch (error:ErrorType) { | 	} catch (error:ErrorType) { | ||||||
| 		${2} | 		${2} | ||||||
| 	} finally { | 	} finally { | ||||||
| @ -115,11 +115,11 @@ snippet forr | |||||||
| # If Condition | # If Condition | ||||||
| snippet if | snippet if | ||||||
| 	if (${1:/* condition */}) { | 	if (${1:/* condition */}) { | ||||||
| 		${0} | 		${0:${VISUAL}} | ||||||
| 	} | 	} | ||||||
| snippet el | snippet el | ||||||
| 	else { | 	else { | ||||||
| 		${0} | 		${0:${VISUAL}} | ||||||
| 	} | 	} | ||||||
| # Ternary conditional | # Ternary conditional | ||||||
| snippet t | snippet t | ||||||
|  | |||||||
| @ -90,19 +90,19 @@ snippet fors for some | |||||||
|  |  | ||||||
| snippet if if | snippet if if | ||||||
| 	if ${1} then | 	if ${1} then | ||||||
| 		${0} | 		${0:${VISUAL}} | ||||||
| 	end if; | 	end if; | ||||||
|  |  | ||||||
| snippet ife if ... else | snippet ife if ... else | ||||||
| 	if ${1} then | 	if ${1} then | ||||||
| 		${2} | 		${2:${VISUAL}} | ||||||
| 	else | 	else | ||||||
| 		${0} | 		${0} | ||||||
| 	end if; | 	end if; | ||||||
|  |  | ||||||
| snippet el else | snippet el else | ||||||
| 	else | 	else | ||||||
| 		${0} | 		${0:${VISUAL}} | ||||||
|  |  | ||||||
| snippet eif elsif | snippet eif elsif | ||||||
| 	elsif ${1} then | 	elsif ${1} then | ||||||
| @ -110,13 +110,13 @@ snippet eif elsif | |||||||
|  |  | ||||||
| snippet wh while | snippet wh while | ||||||
| 	while ${1} loop | 	while ${1} loop | ||||||
| 		${0} | 		${0:${VISUAL}} | ||||||
| 	end loop; | 	end loop; | ||||||
|  |  | ||||||
| snippet nwh named while | snippet nwh named while | ||||||
| 	${1}: | 	${1}: | ||||||
| 	while ${2} loop | 	while ${2} loop | ||||||
| 		${0} | 		${0:${VISUAL}} | ||||||
| 	end loop $1; | 	end loop $1; | ||||||
|  |  | ||||||
| snippet for for | snippet for for | ||||||
|  | |||||||
| @ -9,22 +9,22 @@ snippet dir | |||||||
| # <FilesMatch> | # <FilesMatch> | ||||||
| snippet filesmatch | snippet filesmatch | ||||||
| 	<FilesMatch "${1:regex}"> | 	<FilesMatch "${1:regex}"> | ||||||
| 		${0} | 		${0:${VISUAL}} | ||||||
| 	</FilesMatch> | 	</FilesMatch> | ||||||
| # <IfModule> | # <IfModule> | ||||||
| snippet ifmodule | snippet ifmodule | ||||||
| 	<IfModule ${1:mod_example.c}> | 	<IfModule ${1:mod_example.c}> | ||||||
| 		${0} | 		${0:${VISUAL}} | ||||||
| 	</IfModule> | 	</IfModule> | ||||||
| # <LimitExcept> | # <LimitExcept> | ||||||
| snippet limitexcept | snippet limitexcept | ||||||
| 	<LimitExcept ${1:POST GET}> | 	<LimitExcept ${1:POST GET}> | ||||||
| 		${0} | 		${0:${VISUAL}} | ||||||
| 	</LimitExcept> | 	</LimitExcept> | ||||||
| # <Proxy> | # <Proxy> | ||||||
| snippet proxy | snippet proxy | ||||||
| 	<Proxy ${1:*}> | 	<Proxy ${1:*}> | ||||||
| 		${0} | 		${0:${VISUAL}} | ||||||
| 	</Proxy> | 	</Proxy> | ||||||
| # <VirtualHost> | # <VirtualHost> | ||||||
| snippet virtualhost | snippet virtualhost | ||||||
|  | |||||||
| @ -20,7 +20,7 @@ snippet def | |||||||
| # if | # if | ||||||
| snippet if | snippet if | ||||||
| 	if (${1:/* condition */}) { | 	if (${1:/* condition */}) { | ||||||
| 		${2} | 		${0:${VISUAL}} | ||||||
| 	} | 	} | ||||||
| # else | # else | ||||||
| snippet el | snippet el | ||||||
|  | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user
	 amix
					amix