#!/usr/bin/env python # # Copyright (C) 2011, 2012 Strahinja Val Markovic # # This file is part of YouCompleteMe. # # YouCompleteMe is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # YouCompleteMe is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with YouCompleteMe. If not, see . import abc class Completer( object ): __metaclass__ = abc.ABCMeta def __init__( self ): self.completions_future = None def AsyncCandidateRequestReady( self ): if not self.completions_future: # We return True so that the caller can extract the default value from the # future return True return self.completions_future.ResultsReady() def CandidatesFromStoredRequest( self ): if not self.completions_future: return [] return self.completions_future.GetResults() def OnFileReadyToParse( self ): pass def OnCursorMovedInsertMode( self ): pass def OnCursorMovedNormalMode( self ): pass def OnBufferVisit( self ): pass def OnCursorHold( self ): pass def OnInsertLeave( self ): pass def OnCurrentIdentifierFinished( self ): pass def DiagnosticsForCurrentFileReady( self ): return False def GetDiagnosticsForCurrentFile( self ): return [] def ShowDetailedDiagnostic( self ): pass def GettingCompletions( self ): return False @abc.abstractmethod def SupportedFiletypes( self ): pass @abc.abstractmethod def ShouldUseNow( self, start_column ): pass def DebugInfo( self ): return ''