mirror of
https://github.com/ViViDboarder/force-vim.git
synced 2024-11-21 19:16:33 +00:00
Add login, execute anon, and vim-airline support
This commit is contained in:
parent
8cb24f8cb7
commit
63b5992249
27
README.md
27
README.md
@ -1,19 +1,34 @@
|
||||
force-vim
|
||||
===================
|
||||
=========
|
||||
Plugin for "compiling" Salesforce.com code with [force cli](http://github.com/heroku/force)
|
||||
|
||||
Integrates with [vim-dispatch](https://github.com/tpope/vim-dispatch) and [vim-airline](https://github.com/bling/vim-airline)
|
||||
|
||||
Installation
|
||||
------------
|
||||
* Install the [force cli](http://github.com/heroku/force)
|
||||
* Use Vundle or something similar
|
||||
* Use Vundle or something similar to install this plugin
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
* `let g:force_dispatch_background = 0`: Set to 1 to use vim-dispatch to background any commands
|
||||
* `let g:force_disable_airline = 0`: Set to 1 to disable integration with vim-airline
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
* `ForceDeploy`: executes `force push` to deploy file to server
|
||||
* `ForceDeployTest`: executes `force test` to run tests in current class
|
||||
* `ForceTarget`: Displays currently active target
|
||||
* `ForceTarget ?`: List all orgs
|
||||
* `ForceTarget orgName`: Activate specified org
|
||||
* `ForceTest`: executes `force test` to run tests in current class
|
||||
* `ForceActive`: Displays currently active target
|
||||
* `ForceActive ?`: List all orgs
|
||||
* `ForceActive orgName`: Activate specified org
|
||||
* `ForceLogin`: Re-login to current org
|
||||
* `ForceLogin url`: Login to provided url
|
||||
|
||||
Experimental:
|
||||
* `ForceNewExecAnon`: Start new scratch window for executing anonymous code
|
||||
* `ForceExecScratchAnon`: Execute contents of buffer
|
||||
|
||||
|
||||
Based on plugin [vim-abuse-the-force](http://github.com/ViViDboarder/vim-abuse-the-force)
|
||||
|
@ -1,8 +1,15 @@
|
||||
|
||||
" Config Variables {
|
||||
if !exists("g:force_dispatch_background")
|
||||
let g:force_dispatch_background = 0
|
||||
end
|
||||
|
||||
if !exists("g:force_disable_airline")
|
||||
let g:force_disable_airline = 0
|
||||
end
|
||||
" Config Variables }
|
||||
|
||||
" Main Functions {
|
||||
|
||||
function! ForceDeploy()
|
||||
let filePath = expand("%")
|
||||
|
||||
@ -11,7 +18,7 @@ function! ForceDeploy()
|
||||
|
||||
endfunction
|
||||
|
||||
function! ForceDeployTest()
|
||||
function! ForceTest()
|
||||
let fileName = expand("%:t:r")
|
||||
|
||||
let command = "force test \"" . fileName ."\""
|
||||
@ -27,9 +34,8 @@ endfunction
|
||||
"
|
||||
" endfunction
|
||||
|
||||
function! ForceTarget(...)
|
||||
function! ForceActive(...)
|
||||
if a:0 > 0
|
||||
|
||||
if a:1 == "?"
|
||||
let command = "force logins"
|
||||
else
|
||||
@ -47,6 +53,11 @@ function! ForceTarget(...)
|
||||
|
||||
endfunction
|
||||
|
||||
function! ForceLogin(...)
|
||||
let command = "force login " . join(a:000, " ")
|
||||
call ForceTryStart(command)
|
||||
endfunction
|
||||
|
||||
" Try to run the command using vim-dispatch
|
||||
" (https://github.com/tpope/vim-dispatch)
|
||||
function! ForceTryStart(...)
|
||||
@ -76,11 +87,16 @@ endfunction
|
||||
command! -nargs=0 ForceDeploy call ForceDeploy() " Deploy current file
|
||||
command! -nargs=0 ForceDeployTest call ForceDeployTest() " Deploy current file and run test
|
||||
"command! -nargs=0 ForceRetrieve call ForceRetrieve() " Retrieve current file
|
||||
command! -nargs=? ForceLogin call ForceLogin(<f-args>) " Retrieve current file
|
||||
command! -nargs=? ForceTarget call ForceTarget(<f-args>) " Change deploy target
|
||||
|
||||
" Main Functions }
|
||||
|
||||
" Set SF Compiler
|
||||
autocmd BufNewFile,BufRead *.cls,*.trigger,*.page,*.component compiler ForceCli
|
||||
|
||||
" Execute Anonymous {
|
||||
|
||||
" Run current buffer
|
||||
" function! ForceRunCurrentBuffer()
|
||||
" let a=join(getline(1, '$'), "\\\n")
|
||||
@ -121,3 +137,27 @@ endfunction
|
||||
|
||||
command! -nargs=0 ForceNewExecAnon call ForceNewExecAnon()
|
||||
command! -nargs=0 ForceExecScratchAnon call ForceExecScratchAnon()
|
||||
|
||||
" Execute Anonymous }
|
||||
|
||||
" Plugin Functions {
|
||||
|
||||
function! ForceCli#TargetName()
|
||||
" Returns the name of the current force.com target
|
||||
return system('force-target 2> /dev/null')[:-2]
|
||||
endfunction
|
||||
|
||||
function! ForceCli#AirlineFunction(...)
|
||||
if &filetype == 'apex' || &filetype == 'visualforce'
|
||||
let force_target = ForceCli#TargetName()
|
||||
if force_target != ''
|
||||
call airline#extensions#append_to_section('b', ' ☁' . force_target)
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
if g:force_disable_airline != 1 && g:loaded_airline == 1
|
||||
call airline#add_statusline_func('ForceCli#AirlineFunction')
|
||||
endif
|
||||
|
||||
" Plugin Functions }
|
||||
|
Loading…
Reference in New Issue
Block a user