From 9a2dff2c6cbe83cd854c1d59301a6085d85a79f9 Mon Sep 17 00:00:00 2001 From: Bruno Sutic Date: Sun, 6 Jul 2014 00:14:04 +0200 Subject: [PATCH] Add project collaborator username completion Closes #1. --- doc/rhubarb.txt | 4 ++-- plugin/rhubarb.vim | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/rhubarb.txt b/doc/rhubarb.txt index 2fd3be3..358f161 100644 --- a/doc/rhubarb.txt +++ b/doc/rhubarb.txt @@ -3,8 +3,8 @@ Author: Tim Pope License: Same terms as Vim itself (see |license|) -Use |i_CTRL-X_CTRL-O| to omni-complete GitHub issues when editing a commit -message. +Use |i_CTRL-X_CTRL-O| to omni-complete GitHub issues or project collaborator +usernames when editing a commit message. ABOUT *rhubarb-about* diff --git a/plugin/rhubarb.vim b/plugin/rhubarb.vim index 021f63c..fb59a2d 100644 --- a/plugin/rhubarb.vim +++ b/plugin/rhubarb.vim @@ -146,11 +146,15 @@ endfunction function! rhubarb#omnifunc(findstart,base) if a:findstart - let existing = matchstr(getline('.')[0:col('.')-1],'#\d*$') + let existing = matchstr(getline('.')[0:col('.')-1],'#\d*$\|@[[:alnum:]-]*$') return col('.')-1-strlen(existing) endif try - return map(rhubarb#repo_request('issues'), '{"word": "#".v:val.number, "menu": v:val.title, "info": substitute(v:val.body,"\\r","","g")}') + if a:base =~# '^@' + return map(rhubarb#repo_request('collaborators'), '"@".v:val.login') + else + return map(rhubarb#repo_request('issues'), '{"word": "#".v:val.number, "menu": v:val.title, "info": substitute(v:val.body,"\\r","","g")}') + endif catch /^\%(fugitive\|rhubarb\):/ return v:errmsg endtry