From 36ee45a9aaa5c13ce3e7f7abcce4374e25536224 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 26 Jun 2026 01:04:43 +0900 Subject: fix(repository-command,config): delimited Preg pattern and list-form repos RepositoryCommand's JSON-arg detection used the un-delimited regex r"^\s*\{"; the PHP source is the delimited '{^\s*\{}', which compile_php_pattern requires. Config::merge only extracted repositories from PhpMixed::Array; a JSON array decodes to PhpMixed::List (an array with integer keys in PHP) and was silently dropped. Handle List by mapping to integer string keys. Un-ignores all 10 remaining RepositoryCommandTest cases (16/16 pass). Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/src/command/repository_command.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/shirabe/src/command') diff --git a/crates/shirabe/src/command/repository_command.rs b/crates/shirabe/src/command/repository_command.rs index 4cbe08c..c8d99a5 100644 --- a/crates/shirabe/src/command/repository_command.rs +++ b/crates/shirabe/src/command/repository_command.rs @@ -296,7 +296,7 @@ impl Command for RepositoryCommand { })); } let arg1_str = arg1.as_deref().unwrap(); - let repo_config: PhpMixed = if Preg::is_match(r"^\s*\{", arg1_str) { + let repo_config: PhpMixed = if Preg::is_match(r"{^\s*\{}", arg1_str) { JsonFile::parse_json(Some(arg1_str), None)? } else { if arg2.is_none() { -- cgit v1.3.1