From 2f6eca0dc513d474765290f1a5a4c02aed549be0 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Wed, 7 Nov 2018 10:34:07 +0100 Subject: Plein de trucs en vrac... J’ai honte.. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- autoload/fuf/callbackitem.vim | 139 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 autoload/fuf/callbackitem.vim (limited to 'autoload/fuf/callbackitem.vim') diff --git a/autoload/fuf/callbackitem.vim b/autoload/fuf/callbackitem.vim new file mode 100644 index 0000000..118ee08 --- /dev/null +++ b/autoload/fuf/callbackitem.vim @@ -0,0 +1,139 @@ +"============================================================================= +" Copyright (c) 2007-2010 Takeshi NISHIDA +" +"============================================================================= +" LOAD GUARD {{{1 + +if !l9#guardScriptLoading(expand(':p'), 0, 0, []) + finish +endif + +" }}}1 +"============================================================================= +" GLOBAL FUNCTIONS {{{1 + +" +function fuf#callbackitem#createHandler(base) + return a:base.concretize(copy(s:handler)) +endfunction + +" +function fuf#callbackitem#getSwitchOrder() + return -1 +endfunction + +" +function fuf#callbackitem#getEditableDataNames() + return [] +endfunction + +" +function fuf#callbackitem#renewCache() +endfunction + +" +function fuf#callbackitem#requiresOnCommandPre() + return 0 +endfunction + +" +function fuf#callbackitem#onInit() +endfunction + +" +function fuf#callbackitem#launch(initialPattern, partialMatching, prompt, listener, items, forPath) + let s:prompt = (empty(a:prompt) ? '>' : a:prompt) + let s:listener = a:listener + let s:forPath = a:forPath + let s:items = copy(a:items) + if s:forPath + call map(s:items, 'fuf#makePathItem(v:val, "", 1)') + call fuf#mapToSetSerialIndex(s:items, 1) + call fuf#mapToSetAbbrWithSnippedWordAsPath(s:items) + else + call map(s:items, 'fuf#makeNonPathItem(v:val, "")') + call fuf#mapToSetSerialIndex(s:items, 1) + call map(s:items, 'fuf#setAbbrWithFormattedWord(v:val, 1)') + endif + call fuf#launch(s:MODE_NAME, a:initialPattern, a:partialMatching) +endfunction + +" }}}1 +"============================================================================= +" LOCAL FUNCTIONS/VARIABLES {{{1 + +let s:MODE_NAME = expand(':t:r') + +" }}}1 +"============================================================================= +" s:handler {{{1 + +let s:handler = {} + +" +function s:handler.getModeName() + return s:MODE_NAME +endfunction + +" +function s:handler.getPrompt() + return fuf#formatPrompt(s:prompt, self.partialMatching, '') +endfunction + +" +function s:handler.getPreviewHeight() + if s:forPath + return g:fuf_previewHeight + endif + return 0 +endfunction + +" +function s:handler.isOpenable(enteredPattern) + return 1 +endfunction + +" +function s:handler.makePatternSet(patternBase) + let parser = (s:forPath + \ ? 's:interpretPrimaryPatternForPath' + \ : 's:interpretPrimaryPatternForNonPath') + return fuf#makePatternSet(a:patternBase, parser, self.partialMatching) +endfunction + +" +function s:handler.makePreviewLines(word, count) + if s:forPath + return fuf#makePreviewLinesForFile(a:word, a:count, self.getPreviewHeight()) + endif + return [] +endfunction + +" +function s:handler.getCompleteItems(patternPrimary) + return s:items +endfunction + +" +function s:handler.onOpen(word, mode) + call s:listener.onComplete(a:word, a:mode) +endfunction + +" +function s:handler.onModeEnterPre() +endfunction + +" +function s:handler.onModeEnterPost() +endfunction + +" +function s:handler.onModeLeavePost(opened) + if !a:opened && exists('s:listener.onAbort()') + call s:listener.onAbort() + endif +endfunction + +" }}}1 +"============================================================================= +" vim: set fdm=marker: -- cgit v1.2.3