plugin/server.py
def notify_exit(self, view):
        '''
        Sends a notification to the ycmd server that the file for `view` has
        been deactivated. This will allow the server to release caches.

        The actual request is sent asynchronously via a task pool, so this
        won't block the caller.
        '''
        if not isinstance(view, View):
            raise TypeError('view must be a View: %r' % (view))

        request_params = view.generate_request_parameters()
        if not request_params:
            logger.debug('failed to generate request params, abort')
            return None

        server = self.get(view)
        if not server:
            logger.warning('failed to get server for view: %r', view)
            return None

        def notify_buffer_leave(server=server,
                                request_params=request_params):
            server.notify_buffer_leave(request_params)

        notify_exit_async = notify_buffer_leave
        notify_future = self._task_pool.submit(
            notify_exit_async,
            server=server, request_params=request_params,
        )   # type: concurrent.futures.Future

        return notify_future

        Sends a notification to the ycmd server that the file for `view` has
        been deactivated. This will allow the server to release caches.

        The actual request is sent asynchronously via a task pool, so this
        won't block the caller.
        
Sends a notification to the ycmd server that the file for `view` has
been deactivated. This will allow the server to release caches.

The actual request is sent asynchronously via a task pool, so this
won't block the caller.
Sends a notification to the ycmd server that the file for ` view ` has been deactivated . This will allow the server to release caches . The actual request is sent asynchronously via a task pool so this won ' t block the caller .
def notify_exit(self, view):
        if not isinstance(view, View):
            raise TypeError('view must be a View: %r' % (view))
        request_params = view.generate_request_parameters()
        if not request_params:
            logger.debug('failed to generate request params, abort')
            return None
        server = self.get(view)
        if not server:
            logger.warning('failed to get server for view: %r', view)
            return None
        def notify_buffer_leave(server=server,
                                request_params=request_params):
            server.notify_buffer_leave(request_params)
        notify_exit_async = notify_buffer_leave
        notify_future = self._task_pool.submit(
            notify_exit_async,
            server=server, request_params=request_params,
        )   
        return notify_future
def notify_exit ( self , view ) : if not isinstance ( view , View ) : raise TypeError ( 'view must be a View: %r' % ( view ) ) request_params = view . generate_request_parameters ( ) if not request_params : logger . debug ( 'failed to generate request params, abort' ) return None server = self . get ( view ) if not server : logger . warning ( 'failed to get server for view: %r' , view ) return None def notify_buffer_leave ( server = server , request_params = request_params ) : server . notify_buffer_leave ( request_params ) notify_exit_async = notify_buffer_leave notify_future = self . _task_pool . submit ( notify_exit_async , server = server , request_params = request_params , ) return notify_future
Sends a notification to the ycmd server that the file for `view` has
been deactivated.
Sends a notification to the ycmd server that the file for ` view ` has been deactivated .
'''
        Sends a notification to the ycmd server that the file for `view` has
        been deactivated. This will allow the server to release caches.

        The actual request is sent asynchronously via a task pool, so this
        won't block the caller.
        ''' # type: concurrent.futures.Future
self
view