#
# _  _ _   _    ___  ____ _  _    ____ ____ _  _ ____ _ ____ 
# |\/|  \_/       /  [__  |__|    |    |  | |\ | |___ | | __ 
# |  |   |       /__ ___] |  |    |___ |__| | \| |    | |__] 
#
# attach to an existing tmux session or create a new one if none exist
if [ "$TMUX" = "" ] && [ -z "$TMUX"]; then
	tmux attach -t $(tmux display-message -p '#S') || tmux new-session
fi

# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

# Path to your oh-my-zsh installation.
export ZSH="/home/nigel/.oh-my-zsh"

bindkey -v 
bindkey '^R' history-incremental-search-backward
bindkey '^S' history-incremental-search-forward

ZSH_THEME="lambda"

setxkbmap us

# Use case-sensitive completion.
CASE_SENSITIVE="true"

# Disable auto-setting terminal title.
DISABLE_AUTO_TITLE="true"

# Enable command auto-correction.
ENABLE_CORRECTION="true"

HIST_STAMPS="dd/mm/yyyy"

# Which plugins would you like to load?
plugins=(git vi-mode zsh-autosuggestions zsh-syntax-highlighting tmux debian themes web-search)

source $ZSH/oh-my-zsh.sh

# Add the fzf key-bindings and completions 
source /usr/share/fzf/key-bindings.zsh
source /usr/share/fzf/completion.zsh

# Set my language environment
export LANG=en_GB.UTF-8

# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then
   export EDITOR='vim'
 else
   export EDITOR='nvim'
 fi

# Personal aliases
alias zshconfig="nvim ~/.zshrc"
alias ohmyzsh="nvim ~/.oh-my-zsh"
alias dev="cd /home/nigel/Development"
alias dotfiles="cd /home/nigel/.dotfiles"

# Personal Aliases
alias zshconfig="mate ~/.zshrc"
alias ohmyzsh="mate ~/.oh-my-zsh"

# Add Autocompletion tools
_dotnet_zsh_complete()
{
  local completions=("$(dotnet complete "$word")")

  reply=( "${(ps:\n:)completions}")

}
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh

# zsh paramater for dotnet cli tab completion
compctl -K _dotnet_zsh_complete dotnet

eval "$(fzf --zsh)"
eval "$(starship init zsh)"