def config_value_completer(ctxt, cass): option = ctxt.get_binding('configoption') if option in [ 'autoCommitTime', 'mergeMaxThreadCount', 'mergeMaxMergeCount', 'filterCacheLowWaterMark', 'filterCacheLowWaterMark' ]: return [Hint('<wholenumber>')] elif option == 'directoryFactory': return ["'encrypted'", "'standard'"] elif option == 'typeMappingVersion': return ['2'] elif option == 'realtime': return ['true', 'false'] else: return [Hint('<stringLiteral')]
def set_or_drop_attribute_completer(ctxt, cass): elementName = ctxt.get_binding('elements')[-1] all_attributes = get_all_attributes_for_element(elementName) if not all_attributes: return [Hint('<attributeName>')] else: return all_attributes
def element_name_completer(ctxt, cass): resourceType = ctxt.get_binding('resourcetype') if resourceType.lower() == "schema": elements = ctxt.get_binding('elements', ()) if not elements: return [ 'field', 'fieldType', 'copyField', 'dynamicField', 'similarity' ] else: first_element = elements[0] last_element = elements[-1] if first_element == 'fieldType': if last_element == 'fieldType': return ['analyzer'] elif last_element == 'analyzer': return ['tokenizer', 'filter'] return [] else: elements = ctxt.get_binding('elements', ()) if not elements: return [ 'autoCommitTime', 'defaultQueryField', 'directoryFactory', 'mergeFactor', 'ramBufferSize', 'mergeMaxThreadCount', 'mergeMaxMergeCount', 'realtime', 'filterCacheLowWaterMark', 'filterCacheHighWaterMark' ] else: return [Hint('<configXmlElement>')]
def attribute_value_completer(ctxt, cass): resourceType = ctxt.get_binding('resourcetype') if resourceType.lower() == "schema": set_equals = ctxt.get_binding('setequals') if not set_equals: last_attribute = ctxt.get_binding('attributes')[-1] if last_attribute in boolean_attributes: return ["'true'", "'false'"] elif last_attribute in int_attributes: return [Hint("<wholeNumber>")] else: return [Hint("<stringLiteral>")] else: set_attribute = ctxt.get_binding('setOrDropAttribute') if set_attribute in boolean_attributes: return ["true", "false"] elif set_attribute in int_attributes: return [Hint("<wholeNumber>")] else: return [Hint("<stringLiteral>")] else: set_equals = ctxt.get_binding('setequals') elementName = ctxt.get_binding('elements')[-1] if set_equals: if elementName == 'autoCommitTime': return [Hint("<wholeNumber>")] elif elementName == 'defaultQueryField': return [Hint("<stringLiteral>")] elif elementName == 'directoryFactory': return ['standard', 'encrypted'] elif elementName == 'mergeFactor': return [Hint("<wholeNumber>")] elif elementName == 'ramBufferSize': return [Hint("<wholeNumber>")] elif elementName == 'mergeMaxThreadCount': return [Hint("<wholeNumber>")] elif elementName == 'mergeMaxMergeCount': return [Hint("<wholeNumber>")] elif elementName == 'realtime': return ["'true'", "'false'"] elif elementName == 'filterCacheLowWaterMark': return [Hint("<wholeNumber>")] elif elementName == 'filterCacheHighWaterMark': return [Hint("<wholeNumber>")] return [Hint("<attributeValue>")]
def remote_object_completer(ctxt, cass): return [Hint('<remoteObjectMethodName>')]