def get_dot_completions(view, prefix, position, info):
	if not info["project_name"] or len(info["dot_context"]) == 0:
		return None

	pt = position - len(prefix)
	component_name = None

	if info["dot_context"][0].name == "createobject" and view.match_selector(pt - 2, "meta.support.function-call.createcomponent.cfml"):
		component_name = cfc_utils.get_component_name(view.substr(info["dot_context"][0].args_region))
	elif view.match_selector(pt - 2, "meta.instance.constructor.cfml"):
		component_name = ".".join([s.name for s in reversed(info["dot_context"])])

	if component_name:
		comp = model_index.get_completions_by_dot_path(info["project_name"], component_name.lower())

		if not comp:
			folder_cfc_path = cfc_utils.get_folder_cfc_path(view, info["project_name"], component_name)
			comp = model_index.get_completions_by_dot_path(info["project_name"], folder_cfc_path)

		if comp:
			completions = [(completion.key + "\t" + completion.file_path.split("/").pop(), completion.content) for completion in comp["functions"]]
			return CompletionList(completions, 1, True)

	return None
dataset/ETHPy150Open jcberquist/sublimetext-cfml/src/dotpaths/completions.py/get_dot_completions/original