summaryrefslogtreecommitdiffstats
path: root/autoload/rust.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/rust.vim')
-rw-r--r--autoload/rust.vim87
1 files changed, 46 insertions, 41 deletions
diff --git a/autoload/rust.vim b/autoload/rust.vim
index fe7ddff8..6edc48f7 100644
--- a/autoload/rust.vim
+++ b/autoload/rust.vim
@@ -3,6 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
" Author: Kevin Ballard
" Description: Helper functions for Rust commands/mappings
" Last Modified: May 27, 2014
+" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
" Jump {{{1
@@ -366,53 +367,57 @@ endfunction
" gist.vim available under the BSD license, available at
" http://github.com/mattn/gist-vim
function! s:has_webapi()
- if !exists("*webapi#http#post")
- try
- call webapi#http#post()
- catch
- endtry
- endif
- return exists("*webapi#http#post")
+ if !exists("*webapi#http#post")
+ try
+ call webapi#http#post()
+ catch
+ endtry
+ endif
+ return exists("*webapi#http#post")
endfunction
function! rust#Play(count, line1, line2, ...) abort
- redraw
-
- let l:rust_playpen_url = get(g:, 'rust_playpen_url', 'https://play.rust-lang.org/')
- let l:rust_shortener_url = get(g:, 'rust_shortener_url', 'https://is.gd/')
-
- if !s:has_webapi()
- echohl ErrorMsg | echomsg ':RustPlay depends on webapi.vim (https://github.com/mattn/webapi-vim)' | echohl None
- return
- endif
-
- let bufname = bufname('%')
- if a:count < 1
- let content = join(getline(a:line1, a:line2), "\n")
- else
- let save_regcont = @"
- let save_regtype = getregtype('"')
- silent! normal! gvy
- let content = @"
- call setreg('"', save_regcont, save_regtype)
- endif
-
- let body = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)
-
- if strlen(body) > 5000
- echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(body).')' | echohl None
- return
- endif
-
- let payload = "format=simple&url=".webapi#http#encodeURI(body)
- let res = webapi#http#post(l:rust_shortener_url.'create.php', payload, {})
- let url = res.content
-
- redraw | echomsg 'Done: '.url
+ redraw
+
+ let l:rust_playpen_url = get(g:, 'rust_playpen_url', 'https://play.rust-lang.org/')
+ let l:rust_shortener_url = get(g:, 'rust_shortener_url', 'https://is.gd/')
+
+ if !s:has_webapi()
+ echohl ErrorMsg | echomsg ':RustPlay depends on webapi.vim (https://github.com/mattn/webapi-vim)' | echohl None
+ return
+ endif
+
+ let bufname = bufname('%')
+ if a:count < 1
+ let content = join(getline(a:line1, a:line2), "\n")
+ else
+ let save_regcont = @"
+ let save_regtype = getregtype('"')
+ silent! normal! gvy
+ let content = @"
+ call setreg('"', save_regcont, save_regtype)
+ endif
+
+ let body = l:rust_playpen_url."?code=".webapi#http#encodeURI(content)
+
+ if strlen(body) > 5000
+ echohl ErrorMsg | echomsg 'Buffer too large, max 5000 encoded characters ('.strlen(body).')' | echohl None
+ return
+ endif
+
+ let payload = "format=simple&url=".webapi#http#encodeURI(body)
+ let res = webapi#http#post(l:rust_shortener_url.'create.php', payload, {})
+ let url = res.content
+
+ if exists('g:rust_clip_command')
+ call system(g:rust_clip_command, url)
+ endif
+
+ redraw | echomsg 'Done: '.url
endfunction
" }}}1
-" vim: set noet sw=4 ts=4:
+" vim: set noet sw=8 ts=8:
endif