Use `External` to wrap `initialize_source_control` arguments

finchie
Jan 1, 2026, 11:19 AM
IBVCQSSGPKLQTD4T4TAJZRC4LY3G6FP4QWFEBHN5KEFI44ZGGAXQC

Dependencies

  • [2] NB2MF3MY Add `OpenWorkspaceFolder` event
  • [3] MGJ23FHF Assign repository URI to source control in `OpenWorkspaceFolder` events
  • [4] OUADGWKR Create fully-initialized `SourceControl` object in `event_loop`
  • [5] QY4Z5ZXZ Refactor `event_loop/threadsafe_function` file into `event_loop::js_function` module

Change contents

  • replacement in editors/vscode/src/event_loop/js_function/mod.rs at line 1
    [2.772][3.683:728]()
    use napi::bindgen_prelude::{FnArgs, Object};
    [2.772]
    [2.808]
    use napi::bindgen_prelude::{External, FnArgs, Object};
  • replacement in editors/vscode/src/event_loop/js_function/mod.rs at line 5
    [2.833][5.455:486]()
    mod initialize_source_control;
    [2.833]
    [5.486]
    pub mod initialize_source_control;
  • replacement in editors/vscode/src/event_loop/js_function/mod.rs at line 22
    [2.1314][3.1056:1107]()
    uri: crate::vscode_sys::reference::UriRef,
    [2.1272]
    [4.537]
    repository_uri_ref: crate::vscode_sys::reference::UriRef,
  • replacement in editors/vscode/src/event_loop/js_function/mod.rs at line 26
    [4.630][4.630:972]()
    ) -> Result<
    (
    vscode_sys::reference::SourceControlRef,
    vscode_sys::reference::SourceControlResourceGroupRef,
    vscode_sys::reference::SourceControlResourceGroupRef,
    ),
    napi::Error,
    > {
    let arguments = FnArgs::from((uri, pijul_label, changes_label, untracked_label));
    [4.630]
    [2.1461]
    ) -> Result<initialize_source_control::Return, napi::Error> {
    let arguments = initialize_source_control::Arguments {
    repository_uri_ref,
    pijul_label,
    changes_label,
    untracked_label,
    };
  • replacement in editors/vscode/src/event_loop/js_function/mod.rs at line 34
    [2.1462][4.973:1040]()
    self.initialize_source_control.call_async(arguments).await
    [2.1462]
    [3.1170]
    self.initialize_source_control
    .call_async(External::new(arguments))
    .await
  • replacement in editors/vscode/src/event_loop/js_function/initialize_source_control.rs at line 1
    [5.582][5.583:641]()
    use napi::bindgen_prelude::{FnArgs, FunctionCallContext};
    [5.582]
    [5.641]
    use napi::bindgen_prelude::{External, FunctionCallContext};
    use napi::threadsafe_function::ThreadsafeFunction;
  • replacement in editors/vscode/src/event_loop/js_function/initialize_source_control.rs at line 6
    [5.666][5.666:744]()
    pub type Arguments = (vscode_sys::reference::UriRef, String, String, String);
    [5.666]
    [5.744]
    pub struct Arguments {
    pub repository_uri_ref: vscode_sys::reference::UriRef,
    pub pijul_label: String,
    pub changes_label: String,
    pub untracked_label: String,
    }
  • replacement in editors/vscode/src/event_loop/js_function/initialize_source_control.rs at line 19
    [5.929][5.929:1020]()
    pub type Prototype = napi::threadsafe_function::ThreadsafeFunction<
    FnArgs<Arguments>,
    [5.929]
    [5.1020]
    pub type Prototype = ThreadsafeFunction<
    External<Arguments>,
  • replacement in editors/vscode/src/event_loop/js_function/initialize_source_control.rs at line 22
    [5.1032][5.1032:1055]()
    FnArgs<Arguments>,
    [5.1032]
    [5.1055]
    External<Arguments>,
  • replacement in editors/vscode/src/event_loop/js_function/initialize_source_control.rs at line 36
    [5.1395][5.1395:1521]()
    let (repository_uri_ref, pijul_label, changes_label, untracked_label): Arguments =
    function_call_context.args()?;
    [5.1395]
    [5.1521]
    let (external,): (&External<Arguments>,) = function_call_context.args()?;
    let Arguments {
    repository_uri_ref,
    pijul_label,
    changes_label,
    untracked_label,
    } = &**external;
  • replacement in editors/vscode/src/event_loop/js_function/initialize_source_control.rs at line 47
    [5.1639][5.1639:1661]()
    &pijul_label,
    [5.1639]
    [5.1661]
    pijul_label,
  • replacement in editors/vscode/src/event_loop/js_function/initialize_source_control.rs at line 51
    [5.1737][5.1737:1928]()
    let unrecorded_changes = source_control.create_resource_group("changes", &changes_label)?;
    let untracked_paths = source_control.create_resource_group("untracked", &untracked_label)?;
    [5.1737]
    [5.1928]
    let unrecorded_changes = source_control.create_resource_group("changes", changes_label)?;
    let untracked_paths = source_control.create_resource_group("untracked", untracked_label)?;