Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

webdev_config

Ronald Record edited this page Sep 8, 2023 · 6 revisions

Webdev Menu Configuration

The webdev_config.sh script is installed in ~/.config/nvim-Lazyman/scripts/.

This script is used to display the nvim-Webdev configuration sub-menus in lazyman.

The source code for the webdev_config.sh script:

#!/usr/bin/env bash
#
# webdev_config - configure the Webdev Neovim configurations
#
# Written by Ronald Record <ronaldrecord@gmail.com>, Summer 2023
#
# shellcheck disable=SC1090,SC2001,SC2002,SC2016,SC2006,SC2086,SC2181,SC2129,SC2059,SC2076
LAZYMAN="nvim-Lazyman"
LMANDIR="${HOME}/.config/${LAZYMAN}"
WEBDEV="nvim-Webdev"
WDEVDIR="${HOME}/.config/${WEBDEV}"
NVIMCONF="${WDEVDIR}/lua/configuration.lua"
CONFBACK="${WDEVDIR}/lua/configuration-orig.lua"
GET_CONF="${LMANDIR}/scripts/get_conf.lua"
FONTDIR="${LMANDIR}/scripts/figlet-fonts"
LOLCAT="lolcat"
BOLD=$(tput bold 2>/dev/null)
NORM=$(tput sgr0 2>/dev/null)
PLEASE="Please enter your choice"
USEGUI=
# Array with font names
fonts=("Slant" "Shadow" "Small" "Script" "Standard")
# Supported themes
themes=("nightfox" "tokyonight" "dracula" "kanagawa" "catppuccin" "tundra"
 "onedarkpro" "everforest" "monokai-pro")
# Themes with styles
styled_themes=("nightfox" "tokyonight" "dracula" "kanagawa" "catppuccin"
 "onedarkpro" "monokai-pro")
lsp_enabled_table=()
for_enabled_table=()
neorg_notes_table=()
usage() {
 printf "\nUsage: webdev_config [-d] [-i] [-u]"
 printf "\nWhere:"
 printf "\n -d specifies debug mode"
 printf "\n -i indicates initialize conditional plugin configurations and exit"
 printf "\n -u displays this usage message and exits"
 exit 1
}
prompt_continue() {
 printf "\nPress <Enter> to continue ... "
 read -r yn
}
set_haves() {
 have_fzf=$(type -p fzf)
 have_figlet=$(type -p figlet)
 have_lolcat=$(type -p lolcat)
 have_rich=$(type -p rich)
}
show_figlet() {
 if [ "1ドル" ]; then
 FIG_TEXT="1ドル"
 else
 FIG_TEXT="Webdev"
 fi
 # Seed random generator
 RANDOM=$$$(date +%s)
 USE_FONT=${fonts[$RANDOM % ${#fonts[@]}]}
 [ "${USE_FONT}" ] || USE_FONT="standard"
 if [ "${have_lolcat}" ]; then
 figlet -c -d "${FONTDIR}" -f "${USE_FONT}" -k -t ${FIG_TEXT} 2>/dev/null | ${LOLCAT}
 else
 figlet -c -d "${FONTDIR}" -f "${USE_FONT}" -k -t ${FIG_TEXT} 2>/dev/null
 fi
}
get_conf_value() {
 confname="1ドル"
 confval=$(NVIM_APPNAME="nvim-Webdev" nvim -l ${GET_CONF} ${confname} 2>&1)
 echo "${confval}"
}
set_conf_value() {
 confname="1ドル"
 confval="2ドル"
 grep "conf.${confname} =" "${NVIMCONF}" >/dev/null && {
 case ${confval} in
 true | false | [0-9])
 cat "${NVIMCONF}" \
 | sed -e "s/conf.${confname} =.*/conf.${confname} = ${confval}/" >/tmp/nvim$$
 ;;
 *)
 cat "${NVIMCONF}" \
 | sed -e "s/conf.${confname} =.*/conf.${confname} = \"${confval}\"/" >/tmp/nvim$$
 ;;
 esac
 cp /tmp/nvim$$ "${NVIMCONF}"
 rm -f /tmp/nvim$$
 }
}
set_conf_table() {
 marker="1ドル"
 confval="2ドル"
 action="3ドル"
 case ${confval} in
 ccls)
 case ${action} in
 disable)
 set_conf_value "enable_ccls" "false"
 ;;
 enable)
 set_conf_value "enable_ccls" "true"
 ;;
 esac
 ;;
 clangd)
 case ${action} in
 disable)
 set_conf_value "enable_clangd" "false"
 ;;
 enable)
 set_conf_value "enable_clangd" "true"
 ;;
 esac
 ;;
 *)
 grep "${marker}" "${NVIMCONF}" | grep "${confval}" >/dev/null && {
 case ${action} in
 disable)
 cat "${NVIMCONF}" \
 | sed -E "s/ \"${confval}\",[[:space:]]+--[[:space:]]+${marker}/ -- \"${confval}\", -- ${marker}/" >/tmp/nvim$$
 ;;
 enable)
 cat "${NVIMCONF}" \
 | sed -E "s/-- \"${confval}\",[[:space:]]+--[[:space:]]+${marker}/\"${confval}\", -- ${marker}/" >/tmp/nvim$$
 ;;
 esac
 cp /tmp/nvim$$ "${NVIMCONF}"
 rm -f /tmp/nvim$$
 }
 ;;
 esac
}
set_waka_opt() {
 waka="false"
 [ -f "${HOME}"/.wakatime.cfg ] && {
 grep api_key "${HOME}"/.wakatime.cfg >/dev/null && waka="true"
 }
 set_conf_value "enable_wakatime" "${waka}"
}
select_theme_style() {
 selected_style="${theme_style}"
 case "1ドル" in
 kanagawa)
 styles=("wave" "dragon" "lotus")
 ;;
 tokyonight)
 styles=("night" "storm" "day" "moon")
 ;;
 onedarkpro)
 styles=("onedark" "onelight" "onedark_vivid" "onedark_dark")
 ;;
 catppuccin)
 styles=("latte" "frappe" "macchiato" "mocha" "custom")
 ;;
 dracula)
 styles=("blood" "magic" "soft" "default")
 ;;
 nightfox)
 styles=("carbonfox" "dawnfox" "dayfox" "duskfox" "nightfox" "nordfox" "terafox")
 ;;
 monokai-pro)
 styles=("classic" "octagon" "pro" "machine" "ristretto" "spectrum")
 ;;
 *)
 styles=()
 ;;
 esac
 if [ "${have_fzf}" ]; then
 choice=$(printf "%s\n" "${styles[@]}" | fzf --prompt=" Neovim Theme Style  " --layout=reverse --border --exit-0)
 [ "${choice}" == "${theme_style}" ] || {
 if [[ " ${styles[*]} " =~ " ${choice} " ]]; then
 set_conf_value "theme_style" "${choice}"
 fi
 }
 else
 set_haves
 while true; do
 confmenu=
 [ "$debug" ] || tput reset
 printf "\n"
 if [ "${have_rich}" ]; then
 rich "[cyan]Select Theme Style[/cyan]" -p -a rounded -c -C
 else
 [ "${have_figlet}" ] && show_figlet "Style"
 fi
 printf "\n"
 PS3="${BOLD}${PLEASE} (numeric or text, 'h' for help): ${NORM}"
 options=()
 for sty in "${styles[@]}"; do
 if [ "${theme_style}" == "$sty" ]; then
 options+=("$sty")
 else
 options+=("$sty")
 fi
 done
 [ "${theme_style}" == "${selected_style}" ] || {
 options+=("Set style to ${theme_style}")
 }
 [ -f ${HOME}/.config/nvim-LazyIde/lua/configuration.lua ] && {
 options+=("LazyIde Menu")
 }
 options+=("Lazyman Config")
 options+=("Configuration Menu" "Main Menu" "Quit")
 select opt in "${options[@]}"; do
 case "$opt,$REPLY" in
 "h",* | *,"h" | "H",* | *,"H" | "help",* | *,"help" | "Help",* | *,"Help")
 [ "$debug" ] || tput reset
 printf "\n"
 man lazyman
 break
 ;;
 "wave",* | *,"wave")
 theme_style="wave"
 break
 ;;
 "dragon",* | *,"dragon")
 theme_style="dragon"
 break
 ;;
 "lotus",* | *,"lotus")
 theme_style="lotus"
 break
 ;;
 "night",* | *,"night")
 theme_style="night"
 break
 ;;
 "storm",* | *,"storm")
 theme_style="storm"
 break
 ;;
 "dayfox",* | *,"dayfox")
 theme_style="dayfox"
 break
 ;;
 "day",* | *,"day")
 theme_style="day"
 break
 ;;
 "moon",* | *,"moon")
 theme_style="moon"
 break
 ;;
 "onedark",* | *,"onedark")
 theme_style="onedark"
 break
 ;;
 "onelight",* | *,"onelight")
 theme_style="onelight"
 break
 ;;
 "onedark_vivid",* | *,"onedark_vivid")
 theme_style="onedark_vivid"
 break
 ;;
 "onedark_dark",* | *,"onedark_dark")
 theme_style="onedark_dark"
 break
 ;;
 "latte",* | *,"latte")
 theme_style="latte"
 break
 ;;
 "frappe",* | *,"frappe")
 theme_style="frappe"
 break
 ;;
 "macchiato",* | *,"macchiato")
 theme_style="macchiato"
 break
 ;;
 "mocha",* | *,"mocha")
 theme_style="mocha"
 break
 ;;
 "custom",* | *,"custom")
 theme_style="custom"
 break
 ;;
 "blood",* | *,"blood")
 theme_style="blood"
 break
 ;;
 "magic",* | *,"magic")
 theme_style="magic"
 break
 ;;
 "soft",* | *,"soft")
 theme_style="soft"
 break
 ;;
 "default",* | *,"default")
 theme_style="default"
 break
 ;;
 "carbonfox",* | *,"carbonfox")
 theme_style="carbonfox"
 break
 ;;
 "dawnfox",* | *,"dawnfox")
 theme_style="dawnfox"
 break
 ;;
 "duskfox",* | *,"duskfox")
 theme_style="duskfox"
 break
 ;;
 "nightfox",* | *,"nightfox")
 theme_style="nightfox"
 break
 ;;
 "nordfox",* | *,"nordfox")
 theme_style="nordfox"
 break
 ;;
 "terafox",* | *,"terafox")
 theme_style="terafox"
 break
 ;;
 "classic",* | *,"classic")
 theme_style="classic"
 break
 ;;
 "octagon",* | *,"octagon")
 theme_style="octagon"
 break
 ;;
 "pro",* | *,"pro")
 theme_style="pro"
 break
 ;;
 "machine",* | *,"machine")
 theme_style="machine"
 break
 ;;
 "ristretto",* | *,"ristretto")
 theme_style="ristretto"
 break
 ;;
 "Set style to"*,* | *,"Set style to"*)
 set_conf_value "theme_style" "${theme_style}"
 break 2
 ;;
 "Lazyman Config"*,* | *,"Lazyman Config"* | "c",* | *,"c")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 exec lazyman -F conf
 ;;
 "LazyIde Menu"*,* | *,"LazyIde Menu"* | "l",* | *,"l")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 exit 4
 ;;
 "Configuration Menu"*,* | *,"Configuration Menu"* | "c",* | *,"c")
 confmenu=1
 break 2
 ;;
 "Main Menu"*,* | *,"Main Menu"* | "m",* | *,"m")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 exit 2
 ;;
 "Quit"*,* | *,"Quit"* | "quit"*,* | *,"quit"* | "q",* | *,"q")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 printf "\nExiting Webdev Configuration Menu System\n\n"
 exit 3
 ;;
 esac
 REPLY=
 done
 done
 [ "${confmenu}" ] && show_conf_menu
 fi
}
set_default_style() {
 case "1ドル" in
 kanagawa)
 set_conf_value "theme_style" "dragon"
 ;;
 tokyonight)
 set_conf_value "theme_style" "moon"
 ;;
 onedarkpro)
 set_conf_value "theme_style" "onedark_dark"
 ;;
 catppuccin)
 set_conf_value "theme_style" "mocha"
 ;;
 dracula)
 set_conf_value "theme_style" "soft"
 ;;
 nightfox)
 set_conf_value "theme_style" "carbonfox"
 ;;
 monokai-pro)
 set_conf_value "theme_style" "pro"
 ;;
 *)
 set_conf_value "theme_style" "none"
 ;;
 esac
}
select_theme() {
 selected_theme="1ドル"
 if [ "${have_fzf}" ]; then
 theme=$(printf "%s\n" "${themes[@]}" | fzf --prompt=" Neovim Theme  " --layout=reverse --border --exit-0)
 [ "${theme}" == "${selected_theme}" ] || {
 if [[ " ${themes[*]} " =~ " ${theme} " ]]; then
 set_conf_value "theme" "${theme}"
 set_default_style "${theme}"
 fi
 }
 else
 set_haves
 while true; do
 confmenu=
 [ "$debug" ] || tput reset
 printf "\n"
 if [ "${have_rich}" ]; then
 rich "[cyan]Select Theme[/cyan]" -p -a rounded -c -C
 else
 [ "${have_figlet}" ] && show_figlet "Theme"
 fi
 printf "\n"
 PS3="${BOLD}${PLEASE} (numeric or text, 'h' for help): ${NORM}"
 options=()
 for thm in "${themes[@]}"; do
 if [ "${theme}" == "$thm" ]; then
 options+=("$thm")
 else
 options+=("$thm")
 fi
 done
 [ "${theme}" == "${selected_theme}" ] || {
 options+=("Set theme to ${theme}")
 }
 [ -f ${HOME}/.config/nvim-LazyIde/lua/configuration.lua ] && {
 options+=("LazyIde Menu")
 }
 options+=("Lazyman Config")
 options+=("Configuration Menu" "Main Menu" "Quit")
 select opt in "${options[@]}"; do
 case "$opt,$REPLY" in
 "h",* | *,"h" | "H",* | *,"H" | "help",* | *,"help" | "Help",* | *,"Help")
 [ "$debug" ] || tput reset
 printf "\n"
 man lazyman
 break
 ;;
 "nightfox"*,* | *,"nightfox"*)
 theme="nightfox"
 break
 ;;
 "tokyonight"*,* | *,"tokyonight"*)
 theme="tokyonight"
 break
 ;;
 "dracula"*,* | *,"dracula"*)
 theme="dracula"
 break
 ;;
 "kanagawa"*,* | *,"kanagawa"*)
 theme="kanagawa"
 break
 ;;
 "catppuccin"*,* | *,"catppuccin"*)
 theme="catppuccin"
 break
 ;;
 "tundra"*,* | *,"tundra"*)
 theme="tundra"
 break
 ;;
 "onedarkpro"*,* | *,"onedarkpro"*)
 theme="onedarkpro"
 break
 ;;
 "everforest"*,* | *,"everforest"*)
 theme="everforest"
 break
 ;;
 "monokai-pro"*,* | *,"monokai-pro"*)
 theme="monokai-pro"
 break
 ;;
 "Set theme to"*,* | *,"Set theme to"*)
 set_conf_value "theme" "${theme}"
 set_default_style "${theme}"
 break 2
 ;;
 "Lazyman Config"*,* | *,"Lazyman Config"* | "c",* | *,"c")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 exec lazyman -F conf
 ;;
 "LazyIde Menu"*,* | *,"LazyIde Menu"* | "l",* | *,"l")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 exit 4
 ;;
 "Configuration Menu"*,* | *,"Configuration Menu"* | "c",* | *,"c")
 confmenu=1
 break 2
 ;;
 "Main Menu"*,* | *,"Main Menu"* | "m",* | *,"m")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 exit 2
 ;;
 "Quit"*,* | *,"Quit"* | "quit"*,* | *,"quit"* | "q",* | *,"q")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 printf "\nExiting Webdev Configuration Menu System\n\n"
 exit 3
 ;;
 esac
 REPLY=
 done
 done
 fi
 [ "${confmenu}" ] && show_conf_menu
}
show_conf_menu() {
 set_haves
 while true; do
 [ -f ${GET_CONF} ] || {
 printf "\n\nWARNING: missing ${GET_CONF}"
 printf "\nUnable to modify configuration from this menu"
 printf "\nYou may need to update or re-install Webdev"
 prompt_continue
 exit 2
 }
 [ "$debug" ] || tput reset
 if [ "${have_rich}" ]; then
 rich "[b cyan]Webdev Configuration Menu[/]" -p -a rounded -c -C
 rich "[b green]Manage the Neovim configuration in[/] [b yellow]~/.config/nvim-Webdev[/]" -p -c
 else
 [ "${have_figlet}" ] && show_figlet "Config"
 fi
 printf '\n'
 theme=$(get_conf_value theme)
 use_theme="${theme}"
 theme_style=$(get_conf_value theme_style)
 use_theme_style="${theme_style}"
 enable_transparent=$(get_conf_value enable_transparent)
 if [ "${enable_transparent}" == "true" ]; then
 use_transparent=""
 else
 use_transparent=""
 fi
 enable_codeium=$(get_conf_value enable_codeium)
 if [ "${enable_codeium}" == "true" ]; then
 use_codeium=""
 else
 use_codeium=""
 fi
 mapleader=$(get_conf_value mapleader)
 use_mapleader="${mapleader}"
 maplocalleader=$(get_conf_value maplocalleader)
 use_maplocalleader="${maplocalleader}"
 enable_number=$(get_conf_value number)
 if [ "${enable_number}" == "true" ]; then
 use_number=""
 else
 use_number=""
 fi
 enable_relative_number=$(get_conf_value relative_number)
 if [ "${enable_relative_number}" == "true" ]; then
 use_relative_number=""
 else
 use_relative_number=""
 fi
 enable_global_statusline=$(get_conf_value global_statusline)
 if [ "${enable_global_statusline}" == "true" ]; then
 use_global_statusline=""
 else
 use_global_statusline=""
 fi
 enable_dashboard_header=$(get_conf_value enable_dashboard_header)
 if [ "${enable_dashboard_header}" == "true" ]; then
 use_dashboard_header=""
 else
 use_dashboard_header=""
 fi
 enable_terminal=$(get_conf_value enable_terminal)
 if [ "${enable_terminal}" == "true" ]; then
 use_terminal=""
 else
 use_terminal=""
 fi
 enable_wakatime=$(get_conf_value enable_wakatime)
 if [ "${enable_wakatime}" == "true" ]; then
 use_wakatime=""
 else
 use_wakatime=""
 fi
 enable_smooth_scrolling=$(get_conf_value enable_smooth_scrolling)
 if [ "${enable_smooth_scrolling}" == "true" ]; then
 use_smooth_scrolling=""
 else
 use_smooth_scrolling=""
 fi
 showtabline=$(get_conf_value showtabline)
 use_showtabline="${showtabline}"
 enable_list=$(get_conf_value list)
 if [ "${enable_list}" == "true" ]; then
 use_list=""
 else
 use_list=""
 fi
 enable_statusline=$(get_conf_value enable_statusline)
 if [ "${enable_statusline}" == "true" ]; then
 use_statusline=""
 else
 use_statusline=""
 fi
 enable_tabline=$(get_conf_value enable_tabline)
 if [ "${enable_tabline}" == "true" ]; then
 use_tabline=""
 else
 use_tabline=""
 fi
 show_diagnostics=$(get_conf_value show_diagnostics)
 use_show_diagnostics="${show_diagnostics}"
 enable_zenmode=$(get_conf_value enable_zenmode)
 if [ "${enable_zenmode}" == "true" ]; then
 use_zenmode=""
 else
 use_zenmode=""
 fi
 PS3="${BOLD}${PLEASE} (numeric or text, 'h' for help): ${NORM}"
 options=()
 options+=("Diagnostics [${use_show_diagnostics}]")
 options+=("Theme [${use_theme}]")
 if [[ " ${styled_themes[*]} " =~ " ${use_theme} " ]]; then
 options+=(" Style [${use_theme_style}]")
 fi
 options+=(" Transparency [${use_transparent}]")
 options+=("Codeium [${use_codeium}]")
 options+=("Leader [${use_mapleader}]")
 options+=("Local Leader [${use_maplocalleader}]")
 options+=("Number Lines [${use_number}]")
 options+=("Relative Nums [${use_relative_number}]")
 options+=("List Chars [${use_list}]")
 options+=("Global Status [${use_global_statusline}]")
 options+=("Status Line [${use_statusline}]")
 options+=("Tab Line [${use_tabline}]")
 options+=(" Showtabline [${use_showtabline}]")
 options+=("Alpha Header [${use_dashboard_header}]")
 options+=("Smooth Scroll [${use_smooth_scrolling}]")
 options+=("Terminal [${use_terminal}]")
 options+=("WakaTime [${use_wakatime}]")
 options+=("Zen Mode [${use_zenmode}]")
 options+=("Disable All")
 options+=("Enable All")
 [ -f ${CONFBACK} ] && {
 diff ${CONFBACK} ${NVIMCONF} >/dev/null || options+=("Reset to Defaults")
 }
 [ -d "${WDEVDIR}" ] && options+=("Open Webdev")
 [ -f ${HOME}/.config/nvim-LazyIde/lua/configuration.lua ] && {
 options+=("LazyIde Menu")
 }
 options+=("Lazyman Config")
 options+=("Main Menu")
 options+=("Quit")
 select opt in "${options[@]}"; do
 case "$opt,$REPLY" in
 "h",* | *,"h" | "H",* | *,"H" | "help",* | *,"help" | "Help",* | *,"Help")
 [ "$debug" ] || tput reset
 printf "\n"
 man lazyman
 break
 ;;
 "Status Line"*,* | *,"Status Line"*)
 if [ "${enable_statusline}" == "true" ]; then
 set_conf_value "enable_statusline" "false"
 else
 set_conf_value "enable_statusline" "true"
 fi
 pluginit=1
 break
 ;;
 "Tab Line"*,* | *,"Tab Line"*)
 if [ "${enable_tabline}" == "true" ]; then
 set_conf_value "enable_tabline" "false"
 else
 set_conf_value "enable_tabline" "true"
 fi
 pluginit=1
 break
 ;;
 " Style"*,* | *," Style"*)
 select_theme_style ${theme}
 break
 ;;
 "Theme"*,* | *,"Theme"*)
 select_theme ${theme}
 pluginit=1
 break
 ;;
 " Transparency"*,* | *," Transparency"*)
 if [ "${enable_transparent}" == "true" ]; then
 set_conf_value "enable_transparent" "false"
 else
 set_conf_value "enable_transparent" "true"
 fi
 break
 ;;
 "Codeium"*,* | *,"Codeium"*)
 if [ "${enable_codeium}" == "true" ]; then
 set_conf_value "enable_codeium" "false"
 else
 set_conf_value "enable_codeium" "true"
 fi
 break
 ;;
 "Leader"*,* | *,"Leader"*)
 if [ "${use_mapleader}" == "," ]; then
 set_conf_value "mapleader" " "
 else
 set_conf_value "mapleader" ","
 fi
 break
 ;;
 "Local Leader"*,* | *,"Local Leader"*)
 if [ "${use_maplocalleader}" == "," ]; then
 set_conf_value "maplocalleader" " "
 else
 set_conf_value "maplocalleader" ","
 fi
 break
 ;;
 "Number Lines"*,* | *,"Number Lines"*)
 if [ "${enable_number}" == "true" ]; then
 set_conf_value "number" "false"
 else
 set_conf_value "number" "true"
 fi
 break
 ;;
 "Relative Num"*,* | *,"Relative Num"*)
 if [ "${enable_relative_number}" == "true" ]; then
 set_conf_value "relative_number" "false"
 else
 set_conf_value "relative_number" "true"
 fi
 break
 ;;
 "List"*,* | *,"List"*)
 if [ "${enable_list}" == "true" ]; then
 set_conf_value "list" "false"
 else
 set_conf_value "list" "true"
 fi
 break
 ;;
 "Global Status"*,* | *,"Global Status"*)
 if [ "${enable_global_statusline}" == "true" ]; then
 set_conf_value "global_statusline" "false"
 else
 set_conf_value "global_statusline" "true"
 fi
 break
 ;;
 " Showtabline"*,* | *," Showtabline"*)
 choices=("0" "1" "2")
 choice=$(printf "%s\n" "${choices[@]}" | fzf --prompt=" Show tabline (0=never, 1=multiple tabs, 2=always)  " --layout=reverse --border --exit-0)
 [ "${choice}" == "${showtabline}" ] || {
 if [[ " ${choices[*]} " =~ " ${choice} " ]]; then
 set_conf_value "showtabline" "${choice}"
 fi
 }
 break
 ;;
 "Diagnostic"*,* | *,"Diagnostic"*)
 choices=("none" "icons" "popup")
 choice=$(printf "%s\n" "${choices[@]}" | fzf --prompt=" Neovim Diagnostics  " --layout=reverse --border --exit-0)
 [ "${choice}" == "${show_diagnostics}" ] || {
 if [[ " ${choices[*]} " =~ " ${choice} " ]]; then
 set_conf_value "show_diagnostics" "${choice}"
 fi
 }
 break
 ;;
 "Terminal"*,* | *,"Terminal"*)
 if [ "${enable_terminal}" == "true" ]; then
 set_conf_value "enable_terminal" "false"
 else
 set_conf_value "enable_terminal" "true"
 fi
 pluginit=1
 break
 ;;
 "WakaTime"*,* | *,"WakaTime"*)
 if [ "${enable_wakatime}" == "true" ]; then
 set_conf_value "enable_wakatime" "false"
 else
 if [ -f "${HOME}"/.wakatime.cfg ]; then
 set_conf_value "enable_wakatime" "true"
 else
 printf "\nIt appears you do not have a configured WakaTime API key."
 printf "\nWould you like to proceed with enabling WakaTime?\n"
 while true; do
 read -r -p "Enable WakaTime (API key required) ? (y/n) " yn
 case $yn in
 [Yy]*)
 set_conf_value "enable_wakatime" "true"
 break
 ;;
 [Nn]*)
 break
 ;;
 *)
 printf "\nPlease answer yes or no.\n"
 ;;
 esac
 done
 fi
 fi
 pluginit=1
 break
 ;;
 "Smooth Scroll"*,* | *,"Smooth Scroll"*)
 if [ "${enable_smooth_scrolling}" == "true" ]; then
 set_conf_value "enable_smooth_scrolling" "false"
 else
 set_conf_value "enable_smooth_scrolling" "true"
 fi
 pluginit=1
 break
 ;;
 "Alpha Header"*,* | *,"Alpha Header"*)
 if [ "${enable_dashboard_header}" == "true" ]; then
 set_conf_value "enable_dashboard_header" "false"
 else
 set_conf_value "enable_dashboard_header" "true"
 fi
 pluginit=1
 break
 ;;
 "Zen Mode"*,* | *,"Zen Mode"*)
 if [ "${enable_zenmode}" == "true" ]; then
 set_conf_value "enable_zenmode" "false"
 else
 set_conf_value "enable_zenmode" "true"
 fi
 pluginit=1
 break
 ;;
 "Disable All"*,* | *,"Disable All"*)
 set_conf_value "number" "false"
 set_conf_value "relative_number" "false"
 set_conf_value "global_statusline" "false"
 set_conf_value "enable_statusline" "false"
 set_conf_value "enable_tabline" "false"
 set_conf_value "enable_dashboard_header" "false"
 set_conf_value "enable_terminal" "false"
 set_conf_value "enable_wakatime" "false"
 set_conf_value "enable_smooth_scrolling" "false"
 set_conf_value "enable_zenmode" "false"
 set_conf_value "showtabline" "0"
 set_conf_value "enable_transparent" "false"
 set_conf_value "show_diagnostics" "none"
 set_conf_value "list" "false"
 pluginit=1
 break
 ;;
 "Enable All"*,* | *,"Enable All"*)
 set_conf_value "number" "true"
 set_conf_value "relative_number" "true"
 set_conf_value "global_statusline" "true"
 set_conf_value "enable_statusline" "true"
 set_conf_value "enable_tabline" "true"
 set_conf_value "showtabline" "2"
 set_conf_value "enable_transparent" "true"
 set_conf_value "show_diagnostics" "popup"
 set_conf_value "list" "true"
 set_conf_value "enable_dashboard_header" "true"
 set_conf_value "enable_terminal" "true"
 set_conf_value "enable_wakatime" "true"
 set_conf_value "enable_smooth_scrolling" "true"
 pluginit=1
 break
 ;;
 "Reset"*,* | *,"Reset"*)
 [ -f ${CONFBACK} ] && {
 cp ${CONFBACK} ${NVIMCONF}
 set_waka_opt
 pluginit=1
 }
 break
 ;;
 "Open Webdev",* | *,"Open Webdev" | "o",* | *,"o")
 if [ "${USEGUI}" ]; then
 NVIM_APPNAME="nvim-Webdev" neovide
 else
 NVIM_APPNAME="nvim-Webdev" nvim
 fi
 break
 ;;
 "Lazyman Config"*,* | *,"Lazyman Config"* | "c",* | *,"c")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 exec lazyman -F conf
 ;;
 "LazyIde Menu"*,* | *,"LazyIde Menu"* | "l",* | *,"l")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 exit 4
 ;;
 "Main Menu"*,* | *,"Main Menu"* | "m",* | *,"m")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 exit 2
 ;;
 "Quit"*,* | *,"Quit"* | "quit"*,* | *,"quit"* | "q",* | *,"q")
 [ "${pluginit}" ] && lazyman -N nvim-Webdev init
 printf "\nExiting Webdev Configuration Menu System\n\n"
 exit 3
 ;;
 *,*)
 printf "\nNo matching menu item located."
 printf "\nSelection out of range or malformed."
 prompt_continue
 break
 ;;
 esac
 REPLY=
 done
 done
}
debug=
darg=
confmenu=
initplugs=
menu="confmenu"
pluginit=
# TODO: configure options
while getopts "diu" flag; do
 case $flag in
 d)
 debug=1
 darg="-d"
 ;;
 i)
 initplugs=1
 ;;
 u)
 usage
 ;;
 *)
 printf "\nUnrecognized option. Exiting.\n"
 usage
 ;;
 esac
done
shift $((OPTIND - 1))
set_haves
[ "${initplugs}" ] && {
 set_waka_opt
 exit 0
}
# Source the Lazyman shell initialization for aliases and nvims selector
# shellcheck source=~/.config/nvim-Lazyman/.lazymanrc
[ -f ~/.config/nvim-Lazyman/.lazymanrc ] && source ~/.config/nvim-Lazyman/.lazymanrc
show_conf_menu
exit 0

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /