From 1175a6d4338b43b8521617606f44a3c29a2ec0ff Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 4 Nov 2017 22:41:15 +1300 Subject: Add short-circuit boilerplate to plugins Set a g:loaded_* flag to prevent repeated reloads, and refuse to load at all if &compatible is set or if required features are missing. Some more accommodating plugins avoid the problems 'compatible' causes by saving its value at startup into a script variable, setting the option to the Vim default, and then restoring it when the plugin is done, to prevent any of its flags from interfering in the plugin code: let s:save_cpo = &cpo set cpo&vim ... let &cpo = s:save_cpo unlet s:save_cpo I don't want this boilerplate, so I'm going to do what Tim Pope's modules seem to, and just have the plugin refuse to do a single thing if 'compatible' is set. --- vim/autoload/detect_background.vim | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'vim/autoload/detect_background.vim') diff --git a/vim/autoload/detect_background.vim b/vim/autoload/detect_background.vim index 5dd9218c..168640c3 100644 --- a/vim/autoload/detect_background.vim +++ b/vim/autoload/detect_background.vim @@ -6,6 +6,13 @@ " Author: Tom Ryder " License: Same as Vim itself " +if exists('g:loaded_detect_background') + \ || &compatible + finish +endif +let g:loaded_detect_background = 1 + +" Declare autoload function for 'background' set function! detect_background#DetectBackground() " Split up the value of $COLORFGBG (if any) by semicolons -- cgit v1.2.3