You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: find_refs.rs
    path of file: ./repos/kcl/kclvm/tools/src/LSP/src
    
    the code of the file until where you have to start completion: use crate::from_lsp::{file_path_from_url, kcl_pos};
use crate::goto_def::{find_def_with_gs, goto_definition_with_gs};
use crate::to_lsp::lsp_location;
use crate::util::{parse_param_and_compile, Param};

use crate::state::{KCLVfs, KCLWordIndexMap};
use anyhow::Result;
use kclvm_ast::ast::Program;
use kclvm_error::Position as KCLPos;
use kclvm_parser::KCLModuleCache;
use kclvm_sema::core::global_state::GlobalState;
use kclvm_sema::resolver::scope::KCLScopeCache;
use lsp_types::Locatio
    
    fn find_refs_from_schema_attr_test() {
        let root = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
        let mut path = root.clone();
        path.push("src/test_data/find_refs_test/main.k");
        let path = path.to_str().unwrap();
        match lsp_types::Url::from_file_path(path) {
            Ok(url) => {
                let def_loc = Location {
                    uri: url.clone(),
                    range: Range {
                        start: Position::new(5, 4),
                        end: Position::new(5, 8),
                    },
                };
                let expect = vec![
                    Location {
                        uri: url.clone(),
                        range: Range {
                            start: Position::new(5, 4),
                            end: Position::new(5, 8),
                        },
                    },
                    Location {
                        uri: url.clone(),
                        range: Range {
                            start: Position::new(12, 8),
                            end: Position::new(12, 12),
                        },
                    },
                ];
                check_locations_match(
                    expect,
                    find_refs_from_def(
                        None,
                        Arc::new(RwLock::new(setup_word_index_map(path))),
                        def_loc,
                        "name".to_string(),
                        true,
                        Some(20),
                        logger,
                        None,
                        None,
                    ),
                );
            }
            Err(_) => unreachable!("file not found"),
        }
    }