diff options
author | Sean Leonard <meanderingcode@aetherislands.net> | 2013-07-26 15:30:24 -0600 |
---|---|---|
committer | Sean Leonard <meanderingcode@aetherislands.net> | 2013-07-26 15:30:24 -0600 |
commit | f49967fb3f24bf0a22d09b5823bd174a45e758f7 (patch) | |
tree | 7fefe9ec3aeff998c5dd99861428717a2c5f3a41 /vim-plugin/basic-adt.vim | |
parent | 8dbb4517b07c42c3b37b0764d63973b5b1ed5ee6 (diff) | |
parent | b69c9a87f60e649221c8f83d58bbd57b35a64aca (diff) |
Merge branch 'release-0.2.0'0.2.0
Diffstat (limited to 'vim-plugin/basic-adt.vim')
-rw-r--r-- | vim-plugin/basic-adt.vim | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/vim-plugin/basic-adt.vim b/vim-plugin/basic-adt.vim new file mode 100644 index 00000000..366b3f20 --- /dev/null +++ b/vim-plugin/basic-adt.vim @@ -0,0 +1,47 @@ +function! AndroidRun() + let new_project_root = s:Find_in_parent("AndroidManifest.xml", s:windowdir() ,$HOME) + echo "Found Android Project at: " . new_project_root + echo "Windowdir: " . s:windowdir() + if new_project_root != "Nothing" + let b:project_root = new_project_root + new + set buftype=nofile + silent! exec "r!../run.sh SII b:project_root + endif +endfunc + +" Find_in_parent +" " find the file argument and returns the path to it. +" " Starting with the current working dir, it walks up the parent folders +" " until it finds the file, or it hits the stop dir. +" " If it doesn't find it, it returns "Nothing" +function s:Find_in_parent(fln,flsrt,flstp) + let here = a:flsrt + while ( strlen( here) > 0 ) + if filereadable( here . "/" . a:fln ) + return here + endif + let fr = match(here, "/[^/]*$") + if fr == -1 + break + endif + let here = strpart(here, 0, fr) + if here == a:flstp + break + endif + endwhile + return "Nothing" +endfunc + +" windowdir +" " Gets the directory for the file in the current window +" " Or the current working dir if there isn't one for the window. +" " Use tr to allow that other OS paths, too +function s:windowdir() + if winbufnr(0) == -1 + let unislash = getcwd() + else + let unislash = fnamemodify(bufname(winbufnr(0)), ':p:h') + endif + return tr(unislash, '\', '/') +endfunc |