aboutsummaryrefslogtreecommitdiffstats
path: root/ftplugin
AgeCommit message (Collapse)Author
2017-04-29ftplugin/gitcommit: Check for `b:did_ftplugin`Teddy Wing
Be a good Vim citizen and don't load if `b:did_ftplugin` is already set.
2017-04-29ftplugin/gitcommit: Cleaner `if` conditionTeddy Wing
Clean up the check for `g:no_plugin_maps` based on this style from tpope's gitrebase.vim: https://github.com/tpope/vim-git/blob/5fcaf2b4f66cd28984cf4fe814d7803bbf073a12/ftplugin/gitrebase.vim
2017-04-29ftplugin/gitcommit: Add `b:undo_ftplugin`Teddy Wing
Allow the plugin's actions to be undone. Will be executed automatically when users change the filetype, as explained here: :h undo_ftplugin
2017-04-29ftplugin/gitcommit: Make completion mapping user-editableTeddy Wing
Instead of forcing the mapping '<C-x><C-s>' to activate Git SHA completion, allow users to define a different custom mapping.
2017-04-29Move functions to autoload/Teddy Wing
Don't force our functions to be loaded when the ftplugin is loaded. Be good Vimscript citizens and respect load performance.
2017-04-29Move ftplugin to ftplugin/gitcommit/gitcha.vimTeddy Wing
To ensure that we don't conflict with the real "gitcommit" ftplugin, move ours into a new custom file. As described in :h ftplugin-name we can create additional ftplugins for the same filetype by putting our script in a directory named for the filetype.
2017-04-28ftplugin/gitcommit.vim: Restore user completion functionTeddy Wing
Make our custom mapping work while retaining any user-defined `completefunc`. Doing it this way enables us to get away without having to set a hacky `CursorMovedI` unsetting autocommand as imagined in e70d92c495001c0af0037b9fadbeec170d2c318f. We clutter our `GitSHAComplete` completion function a bit with functionality that doesn't really belong to it in order to get a win for simple implementation of the `completefunc` restore feature.
2017-04-28ftplugin/gitcommit.vim: Remove test code from e70d92c495001c0af0037b9fadTeddy Wing
2017-04-28ftplugin/gitcommit.vim: Experiment providing a custom mappingTeddy Wing
Experiment with providing a custom mapping for our Git SHA completion function. We use <C-x><C-s>. The custom mapping should set our function as the custom `completefunc`, call the user completion function by programmatically running `<C-x><C-u>`, and then unset and restore the previous `completefunc` value. This allows us to not clobber a user-defined completion function and also give ourselves a special custom <C-x> mapping. Just experimenting for now. Figured out how to get this to work using a test `ASDF` function along with these resources: * http://stackoverflow.com/questions/15643234/remapping-tab-completions-in-vim * https://github.com/ervandew/supertab/blob/master/plugin/supertab.vim * http://stackoverflow.com/questions/6926034/creating-a-mapping-for-insert-mode-but-not-for-autocomplete-submode It works. The only problem is that we can't restore the old `completefunc` value. Thinking about ways to do this, and for now my most promising idea is to use the `CursorMovedI` autocommand.
2017-04-27ftplugin/gitcommit.vim: Make completion work for commit SHAsTeddy Wing
Get the list of SHAs from `git rev-list` and use this for completion. Not too different from the original structure. Renamed `res` to `matches` because that seemed clearer to me.
2017-04-27Sample completion functionTeddy Wing
Copy the completion function included in `:h complete-functions` to give us a base custom completion function to work from. We'll be using this to provide completion for Git SHAs.