Useful snippets

    Open Webstorm from terminal (Windows + WSL & Mac)

    2023-12-08

    WSL

    .bashrc

    webstorm()
    {
         # /mnt/c/Program\ Files/JetBrains/WebStorm\ 2022.1.2/bin/webstorm64.exe "$1" > /dev/null 2>&1 &!
         /mnt/c/Program\ Files/JetBrains/WebStorm\ 2023.2.5/bin/webstorm64.exe .
    }

    Usage: Run webstorm in terminal

    Mac

    .zshrc

    webstorm() {
    #   open "/Applications/WebStorm.app" .
        open -na "WebStorm.app" --args "$@"
    }

    Usage: Run webstorm . in terminal

    Docs WSL & Mac

    https://www.jetbrains.com/help/webstorm/working-with-the-ide-features-from-command-line.html

    Revert changes introduced in old commit

    2025-08-11

    Reverse apply changes from old commit

    git checkout <commit-hash>
    git log # copy previous commit hash
    git diff <previous-commit-hash> > diff.patch
    git checkout <main-or-up-to-date-branch>
    git apply diff.patch --reverse

    Create new commit that revert last commit

    git revert <last-commit-hash>

    bash colors

    2026-01-09

    GREEN='\033[0;32m'
    RED='\033[1;91m'
    RESET='\033[0m'

    echo -e "${RED}Found errors:${RESET}" 
    echo -e "${GREEN}Success!${RESET}" 

    https://gist.github.com/JBlond/2fea43a3049b38287e5e9cefc87b2124

    Regular Colors

    Value Color
    \e[0;30m Black
    \e[0;31m Red
    \e[0;32m Green
    \e[0;33m Yellow
    \e[0;34m Blue
    \e[0;35m Purple
    \e[0;36m Cyan
    \e[0;37m White

    Bold

    Value Color
    \e[1;30m Black
    \e[1;31m Red
    \e[1;32m Green
    \e[1;33m Yellow
    \e[1;34m Blue
    \e[1;35m Purple
    \e[1;36m Cyan
    \e[1;37m White

    Underline

    Value Color
    \e[4;30m Black
    \e[4;31m Red
    \e[4;32m Green
    \e[4;33m Yellow
    \e[4;34m Blue
    \e[4;35m Purple
    \e[4;36m Cyan
    \e[4;37m White

    Background

    Value Color
    \e[40m Black
    \e[41m Red
    \e[42m Green
    \e[43m Yellow
    \e[44m Blue
    \e[45m Purple
    \e[46m Cyan
    \e[47m White

    High Intensity

    Value Color
    \e[0;90m Black
    \e[0;91m Red
    \e[0;92m Green
    \e[0;93m Yellow
    \e[0;94m Blue
    \e[0;95m Purple
    \e[0;96m Cyan
    \e[0;97m White

    Bold High Intensity

    Value Color
    \e[1;90m Black
    \e[1;91m Red
    \e[1;92m Green
    \e[1;93m Yellow
    \e[1;94m Blue
    \e[1;95m Purple
    \e[1;96m Cyan
    \e[1;97m White

    High Intensity backgrounds

    Value Color
    \e[0;100m Black
    \e[0;101m Red
    \e[0;102m Green
    \e[0;103m Yellow
    \e[0;104m Blue
    \e[0;105m Purple
    \e[0;106m Cyan
    \e[0;107m White

    Reset

    Value Color
    \e[0m Reset

    other styles

    echo -e "\e[1mbold\e[0m"
    echo -e "\e[3mitalic\e[0m"
    echo -e "\e[3m\e[1mbold italic\e[0m"
    echo -e "\e[4munderline\e[0m"
    echo -e "\e[9mstrikethrough\e[0m"
    echo -e "\e[31mHello World\e[0m"
    echo -e "\x1B[31mHello World\e[0m"

    Check if a file exists (pre-push example)

    2026-03-03

    Bash

    Check existence

    lpo() {
      if [[ -f ".git/hooks/pre-push" ]]; then
        echo ".git/hooks/pre-push was found:"
        echo "pre-push is activated"
      else
        if [[ -f ".git/hooks/pre-push.sample" ]]; then
          echo ".git/hooks/pre-push was not found:"
          echo "but .git/hooks/pre-push.sample was found:"
          echo "pre-push is deactivated"
        else
          echo "Hmmmmm"
        fi
      fi
    }

    Nvim edit file

    po() {
      if [[ -f ".git/hooks/pre-push" ]]; then
        echo ".git/hooks/pre-push was found:"
        nvim .git/hooks/pre-push
      else
        if [[ -f ".git/hooks/pre-push.sample" ]]; then
          echo ".git/hooks/pre-push was not found:"
          echo "but .git/hooks/pre-push.sample was found:"
          nvim .git/hooks/pre-push.sample
        else
          echo "Hmmmmm"
        fi
      fi
    }

    Lua nvim edit file

    function file_exists(name)
       local f=io.open(name,"r")
       if f~=nil then io.close(f) return true else return false end
    end
    

    function open_prepush() if file_exists(".git/hooks/pre-push") then vim.cmd("vsplit .git/hooks/pre-push") elseif file_exists(".git/hooks/pre-push.sample") then vim.cmd("vsplit .git/hooks/pre-push.sample") else vim.cmd("echo 'Hmmmmm'") end end

    vim.keymap.set("n", "<leader><leader>po", open_prepush, { desc = "Open pre-push a new split" })