def find_cfc(view, position, project_name):
	if view.match_selector(position, "entity.other.inherited-class.cfml"):
		r = utils.get_scope_region_containing_point(view, position, "entity.other.inherited-class.cfml")
		cfc_path = view.substr(r)
		file_path, dot_path = get_cfc_file_info(view, project_name, cfc_path)
		return cfc_path, file_path, dot_path, None

	if view.match_selector(position, "meta.support.function-call.createcomponent.cfml"):
		r = utils.get_scope_region_containing_point(view, position, "meta.support.function-call.createcomponent.cfml")
		cfc_path = cfc_utils.get_component_name(view.substr(r))
		file_path, dot_path = get_cfc_file_info(view, project_name, cfc_path)
		return cfc_path, file_path, dot_path, None

	if view.match_selector(position, "meta.instance.constructor.cfml"):
		r = utils.get_scope_region_containing_point(view, position, "meta.instance.constructor.cfml")
		cfc_path = view.substr(r)[4:].split("(")[0]
		file_path, dot_path = get_cfc_file_info(view, project_name, cfc_path)
		return cfc_path, file_path, dot_path, None

	if view.match_selector(position, "string.quoted.single.cfml, string.quoted.double.cfml"):
		cfc_path = view.substr(view.extract_scope(position))
		if cfc_path[0] in ["\"", "'"]:
			cfc_path = cfc_path[1:-1]
		if cfc_utils.is_cfc_dot_path(cfc_path):
			file_path, dot_path = get_cfc_file_info(view, project_name, cfc_path)
			return cfc_path, file_path, dot_path, None

	if view.match_selector(position, "meta.function-call.method"):
		function_name, function_name_region, function_args_region = utils.get_function_call(view, position)
		if view.substr(function_name_region.begin() - 1) == ".":
			dot_context = utils.get_dot_context(view, function_name_region.begin() - 1)

			if view.match_selector(dot_context[-1].name_region.begin(), "meta.instance.constructor.cfml"):
				r = utils.get_scope_region_containing_point(view, dot_context[-1].name_region.begin(), "meta.instance.constructor.cfml")
				cfc_path = view.substr(r)[4:].split("(")[0]
				file_path, dot_path = get_cfc_file_info(view, project_name, cfc_path)
				return cfc_path, file_path, dot_path, function_name

			if view.match_selector(dot_context[-1].name_region.begin(), "meta.support.function-call.createcomponent.cfml"):
				r = utils.get_scope_region_containing_point(view, dot_context[-1].name_region.begin(), "meta.support.function-call.createcomponent.cfml")
				cfc_path = cfc_utils.get_component_name(view.substr(r))
				file_path, dot_path = get_cfc_file_info(view, project_name, cfc_path)
				return cfc_path, file_path, dot_path, function_name

	return None, None, None, None
returns cfc_path, file_path, dot_path, function_name
dataset/ETHPy150Open jcberquist/sublimetext-cfml/src/dotpaths/documentation.py/find_cfc