This marks the completion of the migration over to the event loop model, and should allow focus to switch back to feature work.
GEWUG74N3O7YAOFPPJV6LHPAVKPAXCRMAIT7HPVB4KSMTA4OD6OAC WFWTKCJNC4VSURSQWE5FXJGTEJJOCDMQ6LN2O6EW2DNOVT2ZUMRQC 72K45XKDA7R3R4I7ZOMZAA2433VR4SD7C7I5K6PCE6RTYL545GGQC T4NQUSRPQAIACUZLVDPXMNISBHKMD73A22H5SGQWIDQZD675VAZAC IAMJPC2QCHQGUON43V7JL5K5S23TKQORKTQBUGWHCI6EEK2TPDQQC 3YGYMEXVHOHRQVPC53MVPSLI2ZJM77MBPWNPDDCL56DNCPUC6XTAC NB2MF3MYAJ25KNZP3GMHX42LUSBYOX6FTNLIBK3CQ7CMANFZFEGQC OUADGWKR6A7G3UHCLSC7AWLJIMS45Y56NPVTQ7FENJPYNTAMXXMAC SLTXBK5GTNH3PUZNA5VG7IDICV3NZPWSCTJSE4YPOQEDMWO67PIQC QY4Z5ZXZ7G6DZFCTRPX7D6TIDZ5DHSDTLOWFDANIPUHOEKQRAIXAC IBVCQSSGPKLQTD4T4TAJZRC4LY3G6FP4QWFEBHN5KEFI44ZGGAXQC IDY5SNLOFZ663OCJ2L5NZMFNJXZSGL5O22QQXR5BIV3SJ2VUQIMQC D3V6U7N6CPS3P7PS245MM2N5UIZOKAP7QU7RUKYXBFMOAHYV47TAC 3RNQI5RXZMXF5N2WKYS3O3G2GTD4TTWDNQ3EBVGUVVKNNOTKQTJAC ISLSD6ARVOX4GNOZZXHPN2KKGXX7LRUSWC4D5H5YVWNQPKCTGRSQC 3TWMKU4MTPZAYZ7X3QQBUV3HFMLKQWHCFAP26POW4HTWDND53QHAC XRFRJHZM4TEIQCSEEESJG3SCPFRLJRHOWHVCGW5744YBKF6ONW2AC 2ZAM5V35CAQD5MOFPZEGU4ERQ2FM5CL5MB2DOJDW2ZQ74IQFBISQC struct ExtensionState {repositories: OpenRepositories,}impl ExtensionState {fn get() -> Result<MutexGuard<'static, Self>, napi::Error> {EXTENSION_STATE.get().ok_or_else(|| napi::Error::from_reason("Extension state is not set"))?.lock().map_err(|_error| napi::Error::from_reason("Extension state mutex has been poisoned"))}}
event_loop::start(env, &vscode_object, decoration_change_event_emitter)?;
let mut file_decoration_provider =vscode_sys::FileDecorationProvider::new(env, provide_file_decoration)?;file_decoration_provider.set_on_did_change_file_decorations(decoration_change_event)?;vscode_sys::window::register_file_decoration_provider(env,&extension_context,file_decoration_provider,)?;
for workspace_folder in vscode_sys::workspace::get_workspace_folders(env)? {repositories.open_workspace_folder(env, workspace_folder)?;
event_loop::start(env,&vscode_object,decoration_change_event_emitter,quick_diff_provider,)?;
repositories.register_text_editors(env, visible_text_editors)?;let extension_state = ExtensionState { repositories };
for text_editor in visible_text_editors {let document_uri = text_editor.get_document()?.get_uri()?;let uri = uri::from_vscode(&document_uri)?;
let mut file_decoration_provider =vscode_sys::FileDecorationProvider::new(env, provide_file_decoration)?;file_decoration_provider.set_on_did_change_file_decorations(decoration_change_event)?;vscode_sys::window::register_file_decoration_provider(env,&extension_context,file_decoration_provider,)?;
let mut quick_diff_provider = vscode_sys::QuickDiffProvider::new(env)?;quick_diff_provider.set_provide_original_resource(env, provide_original_resource)?;let program_state = ExtensionState::get()?;for (_repository_path, open_repository) in program_state.repositories.iter_repositories() {let mut source_control = open_repository.source_control.get_inner(env)?;source_control.set_quick_diff_provider(quick_diff_provider)?;}