@@ -510,24 +510,25 @@ func runPluginSetEnabledCLI(state *bootstrap.State, action string, args []string
510510 if scope == "" {
511511 scope = "user"
512512 }
513- if scope != "user" {
514- fmt .Fprintf (stderr , "ccgo plugin %s: scope %q is not supported yet; use user\n " , action , scope )
513+ settingsPath , err := pluginCLISettingsPathForScope (state , scope )
514+ if err != nil {
515+ fmt .Fprintf (stderr , "ccgo plugin %s: %v\n " , action , err )
515516 return 2
516517 }
517518 if all {
518519 if flags .NArg () > 0 {
519520 fmt .Fprintln (stderr , "ccgo plugin disable: cannot use --all with a specific plugin" )
520521 return 2
521522 }
522- return runPluginDisableAllCLI (state , stdout , stderr )
523+ return runPluginDisableAllCLI (state , settingsPath , stdout , stderr )
523524 }
524525 if flags .NArg () != 1 {
525- fmt .Fprintf (stderr , "ccgo plugin %s: usage: claude plugin %s [--scope user] <plugin>\n " , action , action )
526+ fmt .Fprintf (stderr , "ccgo plugin %s: usage: claude plugin %s [--scope user|project|local ] <plugin>\n " , action , action )
526527 return 2
527528 }
528529 name := strings .TrimSpace (flags .Arg (0 ))
529530 enabled := action == "enable"
530- if err := config .SetUserPluginEnabled ( name , enabled ); err != nil {
531+ if err := config .SetPluginEnabledInSettingsFile ( settingsPath , name , enabled ); err != nil {
531532 fmt .Fprintf (stderr , "ccgo plugin %s: %v\n " , action , err )
532533 return 1
533534 }
@@ -539,7 +540,7 @@ func runPluginSetEnabledCLI(state *bootstrap.State, action string, args []string
539540 return 0
540541}
541542
542- func runPluginDisableAllCLI (state * bootstrap.State , stdout io.Writer , stderr io.Writer ) int {
543+ func runPluginDisableAllCLI (state * bootstrap.State , settingsPath string , stdout io.Writer , stderr io.Writer ) int {
543544 settings , err := pluginCLISettingsFromFiles (state .CWD ())
544545 if err != nil {
545546 fmt .Fprintf (stderr , "ccgo plugin disable: %v\n " , err )
@@ -556,14 +557,27 @@ func runPluginDisableAllCLI(state *bootstrap.State, stdout io.Writer, stderr io.
556557 fmt .Fprintln (stdout , "No enabled plugins to disable" )
557558 return 0
558559 }
559- if err := config .SetUserPluginsEnabled ( states ); err != nil {
560+ if err := config .SetPluginsEnabledInSettingsFile ( settingsPath , states ); err != nil {
560561 fmt .Fprintf (stderr , "ccgo plugin disable: %v\n " , err )
561562 return 1
562563 }
563564 fmt .Fprintf (stdout , "Disabled %d %s\n " , len (states ), pluralWord (len (states ), "plugin" , "plugins" ))
564565 return 0
565566}
566567
568+ func pluginCLISettingsPathForScope (state * bootstrap.State , scope string ) (string , error ) {
569+ switch strings .ToLower (strings .TrimSpace (scope )) {
570+ case "" , "user" :
571+ return config .UserSettingsPath (), nil
572+ case "project" :
573+ return config .ProjectSettingsPath (state .CWD ()), nil
574+ case "local" :
575+ return config .LocalSettingsPath (state .CWD ()), nil
576+ default :
577+ return "" , fmt .Errorf ("scope %q is not supported; use user, project, or local" , scope )
578+ }
579+ }
580+
567581func pluralWord (count int , singular string , plural string ) string {
568582 if count == 1 {
569583 return singular
0 commit comments