~zethra/dotfiles

a0eb6def8198bb5a4a457746e30d7991affed2e3 — Sashanoraa 1 year, 6 months ago b85a096
Added shell mommy
M .config/fish/functions/cg.fish => .config/fish/functions/cg.fish +1 -0
@@ 1,3 1,4 @@
function cg --wraps=cargo --description 'alias cg=cargo'
  cargo $argv; 
  mommy
end

A .config/fish/functions/mommy.fish => .config/fish/functions/mommy.fish +142 -0
@@ 0,0 1,142 @@
# Adapted from: https://github.com/archelaus/shell-mommy

function mommy
  set -g prev_status $status

  # SHELL_MOMMYS_LITTLE - what to call you~ (default: "girl")
  # SHELL_MOMMYS_PRONOUNS - what pronouns mommy will use for themself~ (default: "her")
  # SHELL_MOMMYS_ROLES - what role mommy will have~ (default "mommy")

  set -g COLORS_LIGHT_PINK '\e[38;5;217m'
  set -g COLORS_LIGHT_BLUE '\e[38;5;117m'
  set -g COLORS_FAINT '\e[2m'
  set -g COLORS_RESET '\e[0m'

  set -g DEF_WORDS_LITTLE "girl"
  set -g DEF_WORDS_PRONOUNS "her"
  set -g DEF_WORDS_ROLES "mommy"
  set -g DEF_MOMMY_COLOR "$COLORS_LIGHT_PINK"
  set -g DEF_ONLY_NEGATIVE "false"

  set -g NEGATIVE_RESPONSES \
    "do you need MOMMYS_ROLE's help~? ❤️" \
    "Don't give up, my love~ ❤️" \
    "Don't worry, MOMMYS_ROLE is here to help you~ ❤️" \
    "I believe in you, my sweet AFFECTIONATE_TERM~ ❤️" \
    "It's okay to make mistakes, my dear~ ❤️" \
    "just a little further, sweetie~ ❤️" \
    "Let's try again together, okay~? ❤️" \
    "MOMMYS_ROLE believes in you, and knows you can overcome this~ ❤️" \
    "MOMMYS_ROLE believes in you~ ❤️" \
    "MOMMYS_ROLE is always here for you, no matter what~ ❤️" \
    "MOMMYS_ROLE is here to help you through it~ ❤️" \
    "MOMMYS_ROLE is proud of you for trying, no matter what the outcome~ ❤️" \
    "MOMMYS_ROLE knows it's tough, but you can do it~ ❤️" \
    "MOMMYS_ROLE knows MOMMYS_PRONOUN little AFFECTIONATE_TERM can do better~ ❤️" \
    "MOMMYS_ROLE knows you can do it, even if it's tough~ ❤️" \
    "MOMMYS_ROLE knows you're feeling down, but you'll get through it~ ❤️" \
    "MOMMYS_ROLE knows you're trying your best~ ❤️" \
    "MOMMYS_ROLE loves you, and is here to support you~ ❤️" \
    "MOMMYS_ROLE still loves you no matter what~ ❤️" \
    "You're doing your best, and that's all that matters to MOMMYS_ROLE~ ❤️" \
    "MOMMYS_ROLE is always here to encourage you~ ❤️"

  set -g POSITIVE_RESPONSES \
    "*pets your head*" \
    "awe, what a good AFFECTIONATE_TERM~\nMOMMYS_ROLE knew you could do it~ ❤️" \
    "good AFFECTIONATE_TERM~\nMOMMYS_ROLE's so proud of you~ ❤️" \
    "Keep up the good work, my love~ ❤️" \
    "MOMMYS_ROLE is proud of the progress you've made~ ❤️" \
    "MOMMYS_ROLE is so grateful to have you as MOMMYS_PRONOUN little AFFECTIONATE_TERM~ ❤️" \
    "I'm so proud of you, my love~ ❤️" \
    "MOMMYS_ROLE is so proud of you~ ❤️" \
    "MOMMYS_ROLE loves seeing MOMMYS_PRONOUN little AFFECTIONATE_TERM succeed~ ❤️" \
    "MOMMYS_ROLE thinks MOMMYS_PRONOUN little AFFECTIONATE_TERM earned a big hug~ ❤️" \
    "that's a good AFFECTIONATE_TERM~ ❤️" \
    "you did an amazing job, my dear~ ❤️" \
    "you're such a smart cookie~ ❤️"

  # allow for overriding of default words (IF ANY SET)

  if test -n "$SHELL_MOMMYS_LITTLE"
    set DEF_WORDS_LITTLE "$SHELL_MOMMYS_LITTLE"
  end
  if test -n "$SHELL_MOMMYS_PRONOUNS"
    set DEF_WORDS_PRONOUNS "$SHELL_MOMMYS_PRONOUNS"
  end
  if test -n "$SHELL_MOMMYS_ROLES"
    set DEF_WORDS_ROLES "$SHELL_MOMMYS_ROLES"
  end
  if test -n "$SHELL_MOMMYS_COLOR"
    set DEF_MOMMY_COLOR "$SHELL_MOMMYS_COLOR"
  end
  # allow overriding to true
  if test "$SHELL_MOMMYS_ONLY_NEGATIVE" = "true"
    set DEF_ONLY_NEGATIVE "true"
  end
  # if the array is set for positive/negative responses, overwrite it
  if test -n "$SHELL_MOMMYS_POSITIVE_RESPONSES"
    set POSITIVE_RESPONSES "$SHELL_MOMMYS_POSITIVE_RESPONSES"
  end
  if test -n "$SHELL_MOMMYS_NEGATIVE_RESPONSES"
    set NEGATIVE_RESPONSES "$SHELL_MOMMYS_NEGATIVE_RESPONSES"
  end

  # split a string on forward slashes and return a random element
  function pick_word
   random choice (string split -n / $argv)
  end

  function pick_response # given a response type, pick an entry from the array

    if test $argv[1]  = "positive"
      set element (random choice $POSITIVE_RESPONSES)
    else if test $argv[1] = "negative"
      set element (random choice $NEGATIVE_RESPONSES)
    else
      echo "Invalid response type: $argv[1]"
      exit 1
    end

    # Return the selected response
    echo "$element"

  end

  function sub_terms # given a response, sub in the appropriate terms
    set -l response $argv
    # pick_word for each term
    set -l affectionate_term (pick_word $DEF_WORDS_LITTLE)
    set -l pronoun (pick_word $DEF_WORDS_PRONOUNS)
    set -l role (pick_word $DEF_WORDS_ROLES)
    # sub in the terms, store in variable
    set -l response (echo "$response" | string replace "AFFECTIONATE_TERM" "$affectionate_term")
    set -l response (echo "$response" | string replace "MOMMYS_PRONOUN" "$pronoun")
    set -l response (echo "$response" | string replace "MOMMYS_ROLE" "$role")
    # we have string literal newlines in the response, so we need to printf it out
    # print faint and colorcode
    echo -e "$DEF_MOMMY_COLOR$response$COLORS_RESET"
  end

  function success
    if test "$DEF_ONLY_NEGATIVE" = "true"
      return 0
    end
    # pick_response for the response type
    set -l response (pick_response "positive")
    sub_terms "$response" >&2
    return 0
  end

  function failure
    set -l response (pick_response "negative")
    sub_terms "$response" >&2
    return $prev_status
  end

  if test $prev_status -eq 0
    success
  else
    failure
  end
end

M .config/lvim/lsp-settings/rust_analyzer.json => .config/lvim/lsp-settings/rust_analyzer.json +1 -1
@@ 1,3 1,3 @@
{
    "rust-analyzer.assist.importMergeBehavior": "last"
    "rust-analyzer.assist.importMergeBehavior": "item"
}