MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / suggestion

Method suggestion

atomic-cli/src/error.rs:522–593  ·  view source on GitHub ↗

Get a suggestion for how to resolve this error. Returns a human-readable suggestion that can help users understand what action to take to resolve the error. # Returns An optional string with a suggestion, or `None` if no specific suggestion is available. # Example ```rust,ignore let err = CliError::repository_not_found("/home/user/project"); if let Some(suggestion) = err.suggestion() { eprint

(&self)

Source from the content-addressed store, hash-verified

520 /// }
521 /// ```
522 pub fn suggestion(&self) -> Option<&'static str> {
523 match self {
524 Self::RepositoryNotFound { .. } => {
525 Some("Run 'atomic init' to create a new repository, or change to a directory inside an existing repository.")
526 }
527 Self::RepositoryExists { .. } => {
528 Some("The directory is already an Atomic repository. Use 'atomic status' to see its state.")
529 }
530 Self::ViewNotFound { .. } => {
531 Some("Run 'atomic view list' to see available views, or 'atomic view create <name>' to create a new one.")
532 }
533 Self::ViewAlreadyExists { .. } => {
534 Some("Choose a different name, or use 'atomic view switch <name>' to switch to the existing view.")
535 }
536 Self::CannotDeleteCurrentView { .. } => {
537 Some("Switch to a different view first with 'atomic view switch <name>', then delete this one.")
538 }
539 Self::FileNotFound { .. } => {
540 Some("Check that the file path is correct. Use 'ls' or your file manager to verify the file exists.")
541 }
542 Self::FileNotTracked { .. } => {
543 Some("Run 'atomic add <file>' to start tracking this file.")
544 }
545 Self::FileAlreadyTracked { .. } => {
546 Some("This file is already tracked. Use 'atomic status' to see its current state.")
547 }
548 Self::PathOutsideRepository { .. } => {
549 Some("Atomic can only track files within the repository. Move the file inside the repository or initialize a new repository in its parent directory.")
550 }
551 Self::NothingToRecord => {
552 Some("Make some changes to tracked files, or use 'atomic add' to track new files.")
553 }
554 Self::ChangeNotFound { .. } => {
555 Some("Run 'atomic log' to see available changes and their hashes.")
556 }
557 Self::AmbiguousHash { .. } => {
558 Some("Provide more characters of the hash to uniquely identify the change.")
559 }
560 Self::MissingDependency { .. } => {
561 Some("Insert the required dependency first, or use '--force' to skip dependency checking (not recommended).")
562 }
563 Self::RemoteNotFound { .. } => {
564 Some("Check your repository configuration, or add a remote with 'atomic remote add <name> <url>'.")
565 }
566 Self::AuthenticationFailed { .. } => {
567 Some("Check your credentials. You may need to set up SSH keys or update your access token.")
568 }
569 Self::GitError { .. } => {
570 Some("A Git operation failed. Ensure you are in a valid Git repository, the referenced branch or commit exists, and you have the necessary permissions. Run 'git status' and 'git branch' to investigate.")
571 }
572 Self::IdentityNotFound(_) => {
573 Some("Run 'atomic identity list' to see available identities, or 'atomic identity new <name>' to create one.")
574 }
575 Self::IdentityAlreadyExists(_) => {
576 Some("Choose a different name, or use 'atomic identity show <name>' to view the existing identity.")
577 }
578 Self::ConflictMarkers { .. } => Some(
579 "Edit the file to remove the '>>>>>>>' / '=======' / '<<<<<<<' lines and keep the content you want, then record again. Run 'atomic conflicts' to list every conflict, or pass '--allow-conflict-markers' if the markers are legitimate content.",

Calls

no outgoing calls