'supports query_context for all completion types
key is "lt_fill_all_{name}" where name is the short name of the
completion type, e.g. "lt_fill_all_cite", etc.'

def on_query_context(self, view, key, operator, operand, match_all):

    if (not key.startswith('lt_fill_all_')):
        return None
    for sel in view.sel():
        point = sel.b
        if (not view.score_selector(point, 'text.tex.latex')):
            return None
    if (self.SUPPORTED_KEYS is None):
        self.SUPPORTED_KEYS = dict((('lt_fill_all_{0}'.format(name), name) for name in self.get_completion_types()))
    try:
        (key, insert_char) = key.split('.')
    except:
        insert_char = ''
    if (key not in self.SUPPORTED_KEYS):
        return None
    elif (insert_char and (insert_char not in self.SUPPORTED_INSERT_CHARS)):
        return False
    elif (operator not in [sublime.OP_EQUAL, sublime.OP_NOT_EQUAL]):
        return False
    insert_char = self.SUPPORTED_INSERT_CHARS.get(insert_char, '')
    completion_type = self.get_completion_type(self.SUPPORTED_KEYS.get(key))
    if (not (completion_type and completion_type.is_enabled())):
        return False
    selector = completion_type.get_supported_scope_selector()
    if (not self.score_selector(view, selector)):
        return False
    lines = [(insert_char + view.substr(getRegion(view.line(sel).begin(), sel.b))[::(-1)]) for sel in view.sel()]
    func = (all if match_all else any)
    result = func((completion_type.matches_line(line) for line in lines))
    return (result if (operator == sublime.OP_EQUAL) else (not result))
