Remove calls to `ExtensionState::get()` in event handlers
Dependencies
- [2]
WFWTKCJNCreate initial Visual Studio Code extension - [3]
72K45XKDRefactor inline credit to improve hover messages - [4]
6AUGQLIKAdd basic panic handling - [5]
NB2MF3MYAdd `OpenWorkspaceFolder` event - [6]
M5RW5PN4Add `OpenTextEditor` event - [7]
QY4DF3NMAdd `ChangeEditorContents` event - [8]
3TWMKU4MAdd `RequestInlineCredit` event - [9]
VKCHFDMCCreate simple `FileSystemWatcher` - [10]
3RNQI5RXRefactor `provide_file_decoration` to return a `Promise` resolved by `event_loop` - [11]
POA32CUWAdd `uri` module - [12]
XRFRJHZMAdd `ChangedFilesystemContents` event - [13]
GQ52YLWHRemove unnecessary debug logs - [14]
ISLSD6ARUse `UriAbsoluteString` instead of `String` for `Event::OpenWorkspaceFolder` - [15]
57DXWD6GHandle file rename/move events in VS Code extension
Change contents
- edit in editors/vscode/src/lib.rs at line 18
use camino::Utf8PathBuf; - edit in editors/vscode/src/lib.rs at line 127[7.906]→[4.2630:2682](∅→∅),[4.2630]→[4.2630:2682](∅→∅),[4.2682]→[2.114263:114804](∅→∅),[2.114263]→[2.114263:114804](∅→∅),[2.114863]→[2.114863:115657](∅→∅),[2.115657]→[8.0:361](∅→∅),[8.361]→[2.116042:116043](∅→∅),[2.116042]→[2.116042:116043](∅→∅),[2.116043]→[8.362:432](∅→∅),[8.432]→[2.116191:116198](∅→∅),[3.818]→[2.116191:116198](∅→∅),[2.116191]→[2.116191:116198](∅→∅)
let mut program_state = ExtensionState::get()?;if let Some((repository_path, open_repository)) = program_state.repositories.get_open_repository_mut(env, &document_uri)?{let absolute_document_path = Utf8PathBuf::from(document_uri.get_fs_path()?);tracing::debug!(?absolute_document_path);let relative_document_path = absolute_document_path.strip_prefix(&repository_path).map_err(|error| napi::Error::from_reason(format!("Failed to strip prefix {repository_path} from {absolute_document_path}: {error}")))?;for change_event in change_events {let character_offset = change_event.get_range_offset()?;let characters_replaced = change_event.get_range_length()?;let replacement_text = change_event.get_text()?;open_repository.repository.update_open_file(relative_document_path,character_offset as usize,characters_replaced as usize,&replacement_text,).map_err(|error| {napi::Error::from_reason(format!("Unable to update open file {relative_document_path} ({absolute_document_path}): {error}"))})?;}// // Re-render the inline credit annotation// let text_editor = open_repository// .get_text_editor(env, relative_document_path)?// .ok_or_else(|| {// napi::Error::from_reason(format!(// "no open text editor for {absolute_document_path}"// ))// })?;// inline_credit::render(env, &program_state, &text_editor)?;} - replacement in editors/vscode/src/lib.rs at line 152
env: &napi::Env,_env: &napi::Env, - edit in editors/vscode/src/lib.rs at line 155
let mut program_state = ExtensionState::get()?; - edit in editors/vscode/src/lib.rs at line 159
program_state.repositories.open_workspace_folder(env, added_workspace)?; - replacement in editors/vscode/src/lib.rs at line 168
program_state.repositories.close_workspace_folder(removed_workspace)?;// TODO - replacement in editors/vscode/src/lib.rs at line 177
env: &napi::Env,_env: &napi::Env, - edit in editors/vscode/src/lib.rs at line 180
let mut extension_state = ExtensionState::get()?; - replacement in editors/vscode/src/lib.rs at line 190
extension_state.repositories.register_text_editors(env, visible_text_editors)Ok(())