commit baaa9d52d8188f72c3b88ec748ed8f95162f655d Author: Price Hiller Date: Mon Aug 1 18:42:33 2022 -0500 initial commit diff --git a/.stylua.toml b/.stylua.toml new file mode 100644 index 00000000..9b7b3191 --- /dev/null +++ b/.stylua.toml @@ -0,0 +1,3 @@ +column_width = 120 +indent_type = "Spaces" +quote_style = "AutoPreferDouble" diff --git a/dots/.config/NuGet/nuget.config b/dots/.config/NuGet/nuget.config new file mode 100644 index 00000000..683b1bba --- /dev/null +++ b/dots/.config/NuGet/nuget.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/dots/.config/alacritty/alacritty.yml b/dots/.config/alacritty/alacritty.yml new file mode 100644 index 00000000..14bb56bc --- /dev/null +++ b/dots/.config/alacritty/alacritty.yml @@ -0,0 +1,7 @@ +font: + normal: + family: FiraCode Nerd Font + bold: + family: FiraCode Nerd Font + style: Bold + size: 13.0 diff --git a/dots/.config/bat/config b/dots/.config/bat/config new file mode 100644 index 00000000..f0ca0d45 --- /dev/null +++ b/dots/.config/bat/config @@ -0,0 +1,7 @@ +# This is `bat`s configuration file. Each line either contains a comment or +# a command-line option that you want to pass to `bat` by default. You can +# run `bat --help` to get a list of all possible configuration options. +--theme="Solarized (dark)" +--style="header,grid,numbers,snip" +--italic-text="always" +--pager="never" diff --git a/dots/.config/direnv/direnvrc b/dots/.config/direnv/direnvrc new file mode 100644 index 00000000..965d7769 --- /dev/null +++ b/dots/.config/direnv/direnvrc @@ -0,0 +1,15 @@ +#!/bin/zsh + +layout_poetry() { + if [[ ! -f pyproject.toml ]]; then + log_error 'No pyproject.toml found. Use `poetry new` or `poetry init` to create one first.' + exit 2 + fi + + # create venv if it doesn't exist + poetry run true + + export VIRTUAL_ENV=$(poetry env info --path) + export POETRY_ACTIVE=1 + PATH_add "$VIRTUAL_ENV/bin" +} diff --git a/dots/.config/fzf/fzf.bash b/dots/.config/fzf/fzf.bash new file mode 100644 index 00000000..1f82f48e --- /dev/null +++ b/dots/.config/fzf/fzf.bash @@ -0,0 +1,13 @@ +# Setup fzf +# --------- +if [[ ! "$PATH" == */Users/pricehiller/.local/share/fzf/bin* ]]; then + PATH="${PATH:+${PATH}:}/Users/pricehiller/.local/share/fzf/bin" +fi + +# Auto-completion +# --------------- +[[ $- == *i* ]] && source "/Users/pricehiller/.local/share/fzf/shell/completion.bash" 2> /dev/null + +# Key bindings +# ------------ +source "/Users/pricehiller/.local/share/fzf/shell/key-bindings.bash" diff --git a/dots/.config/fzf/fzf.zsh b/dots/.config/fzf/fzf.zsh new file mode 100644 index 00000000..12ef29b6 --- /dev/null +++ b/dots/.config/fzf/fzf.zsh @@ -0,0 +1,13 @@ +# Setup fzf +# --------- +if [[ ! "$PATH" == */Users/pricehiller/.local/share/fzf/bin* ]]; then + PATH="${PATH:+${PATH}:}/Users/pricehiller/.local/share/fzf/bin" +fi + +# Auto-completion +# --------------- +[[ $- == *i* ]] && source "/Users/pricehiller/.local/share/fzf/shell/completion.zsh" 2> /dev/null + +# Key bindings +# ------------ +source "/Users/pricehiller/.local/share/fzf/shell/key-bindings.zsh" diff --git a/dots/.config/glab-cli/aliases.yml b/dots/.config/glab-cli/aliases.yml new file mode 100644 index 00000000..0121550d --- /dev/null +++ b/dots/.config/glab-cli/aliases.yml @@ -0,0 +1,2 @@ +ci: pipeline ci +co: mr checkout diff --git a/dots/.config/kitty/.kitty.conf.swp b/dots/.config/kitty/.kitty.conf.swp new file mode 100644 index 00000000..934d6f0a Binary files /dev/null and b/dots/.config/kitty/.kitty.conf.swp differ diff --git a/dots/.config/kitty/config/font.conf b/dots/.config/kitty/config/font.conf new file mode 100644 index 00000000..1802df3c --- /dev/null +++ b/dots/.config/kitty/config/font.conf @@ -0,0 +1,10 @@ +# Font Settings +font_family Fira Code Regular +bold_font auto +italic_font auto +bold_italic_font auto +font_size 14.0 +font_features FiraCodeRoman-Regular +cv01 +cv02 +ss01 +zero +ss05 +ss04 +cv30 +ss03 +cv29 +font_features FiraCodeRoman-Medium +cv01 +cv02 +ss01 +zero +ss05 +ss04 +cv30 +ss03 +cv29 +font_features FiraCodeRoman-SemiBold +cv01 +cv02 +ss01 +zero +ss05 +ss04 +cv30 +ss03 +cv29 +font_features FiraCode-Light +cv01 +cv02 +ss01 +zero +ss05 +ss04 +cv30 +ss03 +cv29 diff --git a/dots/.config/kitty/config/mappings.conf b/dots/.config/kitty/config/mappings.conf new file mode 100644 index 00000000..e31d17ba --- /dev/null +++ b/dots/.config/kitty/config/mappings.conf @@ -0,0 +1,44 @@ +# Clear default keybinds +clear_all_shortcuts yes + +# Set Mod Key +kitty_mod ctrl+shift + +## NOTE: Window Management +### Window Movement +map kitty_mod+left neighboring_window left +map kitty_mod+right neighboring_window right +map kitty_mod+up neighboring_window up +map kitty_mod+down neighboring_window down + +### Window Creation +map kitty_mod+enter launch +map kitty_mod+n launch --type=os-window + +### Layout Management +map kitty_mod+space next_layout + +### Misc +map kitty_mod+w close_window +map kitty_mod+f toggle_fullscreen + +## NOTE: Tab Management +map kitty_mod+x next_tab +map kitty_mod+z previous_tab +map kitty_mod+t new_tab_with_cwd +map kitty_mod+q close_tab + +## NOTE: Mouse Mappings +mouse_map left click ungrabbed no-op + +## NOTE: Config File +map kitty_mod+, load_config_file +map kitty_mod+. edit_config_file + +## NOTE: Copy & Paste +map super+v paste_from_clipboard +map super+c copy_to_clipboard + +## Miscellaneous +map kitty_mod+h show_scrollback +map kitty_mod+u unicode_input diff --git a/dots/.config/kitty/config/options.conf b/dots/.config/kitty/config/options.conf new file mode 100644 index 00000000..38ed8ac5 --- /dev/null +++ b/dots/.config/kitty/config/options.conf @@ -0,0 +1,10 @@ +# Boolean options +allow_remote_control yes +shell_integration enabled + +# NOTE: Window Layout Options +enabled_layouts tall,fat,grid,horizontal,vertical + +# Scrollback Settings +scrollback_lines 8000 +scrollback_pager nvim -c "set signcolumn=no showtabline=0" -c "silent write! /tmp/kitty_scrollback_buffer | te cat /tmp/kitty_scrollback_buffer - " diff --git a/dots/.config/kitty/config/os/mac.conf b/dots/.config/kitty/config/os/mac.conf new file mode 100644 index 00000000..37498705 --- /dev/null +++ b/dots/.config/kitty/config/os/mac.conf @@ -0,0 +1,5 @@ +# Mac Specific Settings +macos_titlebar_color background +macos_option_as_alt yes +macos_quit_when_last_window_closed yes +macos_thicken_font .3 diff --git a/dots/.config/kitty/config/theme.conf b/dots/.config/kitty/config/theme.conf new file mode 100644 index 00000000..a6c01d19 --- /dev/null +++ b/dots/.config/kitty/config/theme.conf @@ -0,0 +1,7 @@ +tab_bar_style powerline +tab_powerline_style round + +# NOTE: Opacity Options +background_opacity 0.95 + +include ../themes/kanagawa.conf diff --git a/dots/.config/kitty/kitty.conf b/dots/.config/kitty/kitty.conf new file mode 100644 index 00000000..d5738e58 --- /dev/null +++ b/dots/.config/kitty/kitty.conf @@ -0,0 +1,8 @@ +# NOTE: Imports +include ./config/font.conf +include ./config/mappings.conf +include ./config/theme.conf +include ./config/options.conf + +# NOTE: Load OS Configurations LAST +include ./config/os/mac.conf diff --git a/dots/.config/kitty/themes/Catppucin.conf b/dots/.config/kitty/themes/Catppucin.conf new file mode 100644 index 00000000..2d8a557a --- /dev/null +++ b/dots/.config/kitty/themes/Catppucin.conf @@ -0,0 +1,79 @@ +# vim:ft=kitty + +## name: Catppuccin +## author: Pocco81 (https://github.com/Pocco81) +## license: MIT +## upstream: https://github.com/catppuccin/kitty/blob/main/catppuccin.conf +## blurb: Vibrant pastel theme for the high-spirited! + +# The basic colors +foreground #DADAE8 +background #1E1E29 +selection_foreground #E5B4E2 +selection_background #332E41 + +# Cursor colors +cursor #B1E3AD +cursor_text_color #1E1E28 + +# URL underline color when hovering with mouse +url_color #A4B9EF + +# kitty window border colors +active_border_color #E5B4E2 +inactive_border_color #6E6C7E +bell_border_color #EBDDAA + +# OS Window titlebar colors +# wayland_titlebar_color system +# macos_titlebar_color system + +#: Tab bar colors +active_tab_foreground #DADAE8 +active_tab_background #1E1E29 +inactive_tab_foreground #A4B9EF +inactive_tab_background #1B1923 +tab_bar_background #15121C + +# Colors for marks (marked text in the terminal) + +mark1_foreground #1E1E29 +mark1_background #F9C096 +mark2_foreground #1E1E29 +mark2_background #F2CECF +mark3_foreground #1E1E29 +mark3_background #C6AAE8 + +#: The 16 terminal colors + +#: black +color0 #6E6C7E +color8 #6E6C7E + +#: red +color1 #E38C8F +color9 #E38C8F + +#: green +color2 #B1E3AD +color10 #B1E3AD + +#: yellow +color3 #EBDDAA +color11 #EBDDAA + +#: blue +color4 #A4B9EF +color12 #A4B9EF + +#: magenta +color5 #C6AAE8 +color13 #C6AAE8 + +#: cyan +color6 #E5B4E2 +color14 #E5B4E2 + +#: white +color7 #DADAE8 +color15 #DADAE8 diff --git a/dots/.config/kitty/themes/Space-Duck.conf b/dots/.config/kitty/themes/Space-Duck.conf new file mode 100644 index 00000000..e8e9f55f --- /dev/null +++ b/dots/.config/kitty/themes/Space-Duck.conf @@ -0,0 +1,21 @@ +background #0f111b +foreground #ecf0c1 +cursor #ecf0c1 +selection_background #686f9a +color0 #000000 +color8 #686f9a +color1 #e33400 +color9 #e33400 +color2 #5ccc96 +color10 #5ccc96 +color3 #b3a1e6 +color11 #b3a1e6 +color4 #00a3cc +color12 #00a3cc +color5 #f2ce00 +color13 #f2ce00 +color6 #7a5ccc +color14 #7a5ccc +color7 #686f9a +color15 #f0f1ce +selection_foreground #ffffff diff --git a/dots/.config/kitty/themes/kanagawa.conf b/dots/.config/kitty/themes/kanagawa.conf new file mode 100644 index 00000000..2916b2b6 --- /dev/null +++ b/dots/.config/kitty/themes/kanagawa.conf @@ -0,0 +1,46 @@ +# vim:ft=kitty + +## name: Kanagawa +## license: MIT +## author: Tommaso Laurenzi +## upstream: https://github.com/rebelot/kanagawa.nvim/ + + +background #1F1F28 +foreground #DCD7BA +selection_background #2D4F67 +selection_foreground #C8C093 +url_color #72A7BC +cursor #C8C093 + +# Tabs +active_tab_background #2D4F67 +active_tab_foreground #DCD7BA +inactive_tab_background #223249 +inactive_tab_foreground #727169 +#tab_bar_background #15161E + +# normal +color0 #090618 +color1 #C34043 +color2 #76946A +color3 #C0A36E +color4 #7E9CD8 +color5 #957FB8 +color6 #6A9589 +color7 #C8C093 + +# bright +color8 #727169 +color9 #E82424 +color10 #98BB6C +color11 #E6C384 +color12 #7FB4CA +color13 #938AA9 +color14 #7AA89F +color15 #DCD7BA + + +# extended colors +color16 #FFA066 +color17 #FF5D62 diff --git a/dots/.config/kitty/themes/nightfox.conf b/dots/.config/kitty/themes/nightfox.conf new file mode 100644 index 00000000..47cf7990 --- /dev/null +++ b/dots/.config/kitty/themes/nightfox.conf @@ -0,0 +1,40 @@ +# Nightfox colors for Kitty +## name: nightfox +## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/nightfox/nightfox_kitty.conf + +background #192330 +foreground #cdcecf +selection_background #283648 +selection_foreground #cdcecf +url_color #81b29a +cursor #cdcecf + +# Tabs +active_tab_background #719cd6 +active_tab_foreground #131A24 +inactive_tab_background #283648 +inactive_tab_foreground #526175 + +# normal +color0 #393b44 +color1 #c94f6d +color2 #81b29a +color3 #dbc074 +color4 #719cd6 +color5 #9d79d6 +color6 #63cdcf +color7 #f2f2f2 + +# bright +color8 #475072 +color9 #d6616b +color10 #58cd8b +color11 #ffe37e +color12 #84cee4 +color13 #b8a1e3 +color14 #59f0ff +color15 #f2f2f2 + +# extended colors +color16 #f4a261 +color17 #d67ad2 diff --git a/dots/.config/kitty/themes/tokyo-night.conf b/dots/.config/kitty/themes/tokyo-night.conf new file mode 100644 index 00000000..88d40555 --- /dev/null +++ b/dots/.config/kitty/themes/tokyo-night.conf @@ -0,0 +1,45 @@ +# vim:ft=kitty + +## name: Tokyo Night +## license: MIT +## author: Folke Lemaitre +## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty_tokyonight_night.conf + + +background #0f111e +foreground #c0caf5 +selection_background #33467C +selection_foreground #c0caf5 +url_color #73daca +cursor #c0caf5 + +# Tabs +active_tab_background #7aa2f7 +active_tab_foreground #1f2335 +inactive_tab_background #292e42 +inactive_tab_foreground #545c7e +#tab_bar_background #15161E + +# normal +color0 #15161E +color1 #f7768e +color2 #9ece6a +color3 #e0af68 +color4 #7aa2f7 +color5 #bb9af7 +color6 #7dcfff +color7 #a9b1d6 + +# bright +color8 #414868 +color9 #f7768e +color10 #9ece6a +color11 #e0af68 +color12 #7aa2f7 +color13 #bb9af7 +color14 #7dcfff +color15 #c0caf5 + +# extended colors +color16 #ff9e64 +color17 #db4b4b diff --git a/dots/.config/kitty/themes/tokyo-storm.conf b/dots/.config/kitty/themes/tokyo-storm.conf new file mode 100644 index 00000000..6da2ea14 --- /dev/null +++ b/dots/.config/kitty/themes/tokyo-storm.conf @@ -0,0 +1,46 @@ +# vim:ft=kitty + +## name: Tokyo Night Storm +## license: MIT +## author: Folke Lemaitre +## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty_tokyonight_storm.conf + + +background #24283b +foreground #c0caf5 +selection_background #364A82 +selection_foreground #c0caf5 +url_color #73daca +cursor #c0caf5 + +# Tabs +active_tab_background #7aa2f7 +active_tab_foreground #1f2335 +inactive_tab_background #292e42 +inactive_tab_foreground #545c7e +#tab_bar_background #1D202F + +# normal +color0 #1D202F +color1 #f7768e +color2 #9ece6a +color3 #e0af68 +color4 #7aa2f7 +color5 #bb9af7 +color6 #7dcfff +color7 #a9b1d6 + +# bright +color8 #414868 +color9 #f7768e +color10 #9ece6a +color11 #e0af68 +color12 #7aa2f7 +color13 #bb9af7 +color14 #7dcfff +color15 #c0caf5 + +# extended colors +color16 #ff9e64 +color17 #db4b4b + diff --git a/dots/.config/nvim/config/after/ftplugin/Dockerfile.lua b/dots/.config/nvim/config/after/ftplugin/Dockerfile.lua new file mode 100644 index 00000000..38e9ce5f --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/Dockerfile.lua @@ -0,0 +1,3 @@ +local file_loc = vim.fn.expand('%:p:h') + +vim.opt.makeprg = 'docker build ' .. file_loc diff --git a/dots/.config/nvim/config/after/ftplugin/NeogitCommitMessage.lua b/dots/.config/nvim/config/after/ftplugin/NeogitCommitMessage.lua new file mode 100644 index 00000000..94700636 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/NeogitCommitMessage.lua @@ -0,0 +1 @@ +vim.opt.filetype = 'gitcommit' diff --git a/dots/.config/nvim/config/after/ftplugin/Outline.lua b/dots/.config/nvim/config/after/ftplugin/Outline.lua new file mode 100644 index 00000000..109e3a4f --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/Outline.lua @@ -0,0 +1 @@ +vim.opt_local.list = false diff --git a/dots/.config/nvim/config/after/ftplugin/azure.lua b/dots/.config/nvim/config/after/ftplugin/azure.lua new file mode 100644 index 00000000..73bec3a3 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/azure.lua @@ -0,0 +1 @@ +vim.opt.filetype = 'yaml' diff --git a/dots/.config/nvim/config/after/ftplugin/html.lua b/dots/.config/nvim/config/after/ftplugin/html.lua new file mode 100644 index 00000000..6aeb9213 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/html.lua @@ -0,0 +1,4 @@ +local opt = vim.opt + +opt.tabstop = 2 +opt.shiftwidth = 2 diff --git a/dots/.config/nvim/config/after/ftplugin/http.lua b/dots/.config/nvim/config/after/ftplugin/http.lua new file mode 100644 index 00000000..e3d51499 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/http.lua @@ -0,0 +1,9 @@ +vim.keymap.set('n', 'fr', 'RestNvim', { + buffer = true, +}) +vim.keymap.set('n', 'fp', 'RestNvimPreview', { + buffer = true, +}) +vim.keymap.set('n', 'fl', 'RestNvimLast', { + buffer = true, +}) diff --git a/dots/.config/nvim/config/after/ftplugin/make.lua b/dots/.config/nvim/config/after/ftplugin/make.lua new file mode 100644 index 00000000..0db62ef7 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/make.lua @@ -0,0 +1,2 @@ +vim.opt.expandtab = false +vim.opt_local.expandtab = false diff --git a/dots/.config/nvim/config/after/ftplugin/markdown.lua b/dots/.config/nvim/config/after/ftplugin/markdown.lua new file mode 100644 index 00000000..ca9af84e --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/markdown.lua @@ -0,0 +1,5 @@ +local opt = vim.opt + +opt.tabstop = 2 +opt.shiftwidth = 2 +opt.textwidth = 0 diff --git a/dots/.config/nvim/config/after/ftplugin/norg.lua b/dots/.config/nvim/config/after/ftplugin/norg.lua new file mode 100644 index 00000000..d819cfd9 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/norg.lua @@ -0,0 +1,6 @@ +vim.keymap.set('n', 'fge', ':Neorg gtd edit', { + buffer = true, +}) +vim.keymap.set('n', 'fgv', ':Neorg gtd views', { + buffer = true, +}) diff --git a/dots/.config/nvim/config/after/ftplugin/rust.lua b/dots/.config/nvim/config/after/ftplugin/rust.lua new file mode 100644 index 00000000..d9589815 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/rust.lua @@ -0,0 +1,35 @@ +vim.keymap.set('n', 'fr', ':RustRunnables', { + buffer = true, +}) +vim.keymap.set('n', 'fd', ':RustDebuggables', { + buffer = true, +}) +vim.keymap.set('n', 'fp', ':RustParentModule', { + buffer = true, +}) +vim.keymap.set('n', 'fJ', ':RustJoinLines', { + buffer = true, +}) +vim.keymap.set('n', 'fh', ':RustHoverActions', { + buffer = true, +}) +vim.keymap.set('n', 'fH', ':RustHoverRange', { + buffer = true, +}) +vim.keymap.set('n', 'fi', ':RustToggleInlayHints', { + buffer = true, +}) +vim.keymap.set('n', 'fm', ':RustExpandMacro', { + buffer = true, +}) +vim.keymap.set('n', 'fc', ':RustOpenCargo', { + buffer = true, +}) +vim.keymap.set('n', 'fk', ':RustMoveItemUp', { + buffer = true, +}) +vim.keymap.set('n', 'fj', ':RustMoveItemDown', { + buffer = true, +}) + +vim.opt.foldmethod = 'syntax' diff --git a/dots/.config/nvim/config/after/ftplugin/sh.lua b/dots/.config/nvim/config/after/ftplugin/sh.lua new file mode 100644 index 00000000..0db62ef7 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/sh.lua @@ -0,0 +1,2 @@ +vim.opt.expandtab = false +vim.opt_local.expandtab = false diff --git a/dots/.config/nvim/config/after/ftplugin/sql.lua b/dots/.config/nvim/config/after/ftplugin/sql.lua new file mode 100644 index 00000000..4d5a0894 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/sql.lua @@ -0,0 +1,13 @@ +vim.keymap.set('n', 'fe', '(sqls-execute-query)', { + buffer = true, +}) +vim.keymap.set('v', 'fe', '(sqls-execute-query)', { + buffer = true, +}) + +vim.keymap.set('n', 'fsd', ':SqlsSwitchDatabase', { + buffer = true, +}) +vim.keymap.set('n', 'fsc', ':SqlsSwitchConnection', { + buffer = true, +}) diff --git a/dots/.config/nvim/config/after/ftplugin/terraform.lua b/dots/.config/nvim/config/after/ftplugin/terraform.lua new file mode 100644 index 00000000..c7b84cb5 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/terraform.lua @@ -0,0 +1,4 @@ +local opt_local = vim.opt_local + +opt_local.tabstop = 2 +opt_local.shiftwidth = 2 diff --git a/dots/.config/nvim/config/after/ftplugin/xml.lua b/dots/.config/nvim/config/after/ftplugin/xml.lua new file mode 100644 index 00000000..c7b84cb5 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/xml.lua @@ -0,0 +1,4 @@ +local opt_local = vim.opt_local + +opt_local.tabstop = 2 +opt_local.shiftwidth = 2 diff --git a/dots/.config/nvim/config/after/ftplugin/yaml.lua b/dots/.config/nvim/config/after/ftplugin/yaml.lua new file mode 100644 index 00000000..c7b84cb5 --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/yaml.lua @@ -0,0 +1,4 @@ +local opt_local = vim.opt_local + +opt_local.tabstop = 2 +opt_local.shiftwidth = 2 diff --git a/dots/.config/nvim/config/after/ftplugin/zsh.lua b/dots/.config/nvim/config/after/ftplugin/zsh.lua new file mode 100644 index 00000000..035e7cdf --- /dev/null +++ b/dots/.config/nvim/config/after/ftplugin/zsh.lua @@ -0,0 +1,3 @@ +vim.opt.expandtab = false +vim.opt_local.expandtab = false +vim.opt.tabstop = 4 diff --git a/dots/.config/nvim/config/ftdetect/cf3.vim b/dots/.config/nvim/config/ftdetect/cf3.vim new file mode 100644 index 00000000..a6b58e6c --- /dev/null +++ b/dots/.config/nvim/config/ftdetect/cf3.vim @@ -0,0 +1,2 @@ +au BufRead,BufNewFile *.cf set ft=cf3 + diff --git a/dots/.config/nvim/config/ftplugin/cf3.vim b/dots/.config/nvim/config/ftplugin/cf3.vim new file mode 100644 index 00000000..bfa93ee4 --- /dev/null +++ b/dots/.config/nvim/config/ftplugin/cf3.vim @@ -0,0 +1,221 @@ +" Vim file plugin +" This is my first attempt at a ftplugin file. Feel free to send me +" corrections or improvements. I'll give you a credit. +" +" USAGE +" There is already a vim file that uses 'cf' as a file extension. You can use +" cf3 for your cf3 file extensions or identify via your vimrc file: +" au BufRead,BufNewFile *.cf set ft=cf3 + +" Check to see if DisableCF3Ftplugin is defined +" If you only want the syntax plugin add "let g:DisableCF3Ftplugin=1" in +" ~/.vimrc +if exists("g:DisableCF3Ftplugin") + finish +endif + + +" Only do this when not done yet for this buffer +if exists("b:loaded_CFE3Ftplugin") + finish +endif +let b:loaded_CFE3Ftplugin = 1 + +let s:install_dir = expand(':p:h:h') + +" =============== Keyword Abbreviations =============== +" enable keyword abbreviations with by adding +" "let g:EnableCFE3KeywordAbbreviations=1" to your vimrc +" Convenience function ToggleCFE3KeywordAbbreviations +" mapped to ,i by default to toggle abbreviations on or off +" +function! EnableCFE3KeywordAbbreviations() + iab = => + iab ba bundle agent + iab bc bundle common + iab bu bundle + iab cano canonify( "=Eatchar('\s') + iab cla classes: + iab comma commands: + iab comme comment => "=Eatchar('\s') + iab exp expression => =Eatchar('\s') + iab fil files: + iab han handle => "=Eatchar('\s') + iab ifv ifvarclass => =Eatchar('\s') + iab met methods: + iab pro processes: + iab rep reports: + iab sli slist => { + iab str string => "=Eatchar('\s') + iab sysw ${sys.workdir} + iab ub usebundle => + iab var vars: +endfunction + +function! DisableCFE3KeywordAbbreviations() + iunab = + iunab ba + iunab bc + iunab bu + iunab cano + iunab cla + iunab comma + iunab comme + iunab exp + iunab fil + iunab han + iunab ifv + iunab met + iunab pro + iunab rep + iunab sli + iunab str + iunab sysw + iunab ub + iunab var +endfunction + +" Default abbreviations off +" to disable let g:EnableCFE3KeywordAbbreviations=1 in ~/.vimrc +if exists('g:EnableCFE3KeywordAbbreviations') + call EnableCFE3KeywordAbbreviations() +endif + +function! ToggleCFE3KeywordAbbreviations() + if !exists('b:EnableCFE3KeywordAbbreviations') + let b:EnableCFE3KeywordAbbreviations=1 + call EnableCFE3KeywordAbbreviations() + else + unlet b:EnableCFE3KeywordAbbreviations + call DisableCFE3KeywordAbbreviations() + endif +endfunction + +function! EnableCFE3PermissionFix() +" On Save set the permissions of the edited file so others can't access + :autocmd BufWritePost *.cf silent !chmod g-w,o-rwx % +endfunction + +" Default permission fix off +" To enable permission fixing in your main .vimrc +" let g:EnableCFE3PermissionFix=1 +if exists('g:EnableCFE3PermissionFix') + call EnableCFE3PermissionFix() +endif + +" maps +" Toggle KeywordAbbreviations +nnoremap ,i :call ToggleCFE3KeywordAbbreviations() +" Wrap WORD in double quotes +nnoremap ,q dEi"pa" +" Insert blank promise +nnoremap ,p o""handle => "",comment => "" +" quote list items +vnoremap ,q :s/^\s*\(.*\)\s*$/"\1",/g + +" Function to align groups of => assignment lines. +" Credit to 'Scripting the Vim editor, Part 2: User-defined functions' +" by Damian Conway +" http://www.ibm.com/developerworks/linux/library/l-vim-script-2/index.html +if !exists("*CF3AlignAssignments") +function CF3AlignAssignments (AOP) + "Patterns needed to locate assignment operators... + if a:AOP == 'vars' + let ASSIGN_OP = '\(string\|int\|real\|data\|slist\|ilist\|rlist\|expression\|and\|or\|not\|volume\)*\s\+=>' + else + let ASSIGN_OP = '=>' + endif + let ASSIGN_LINE = '^\(.\{-}\)\s*\(' . ASSIGN_OP . '\)' + + "Locate block of code to be considered (same indentation, no blanks) + let indent_pat = '^' . matchstr(getline('.'), '^\s*') . '\S' + let firstline = search('^\%('. indent_pat . '\)\@!','bnW') + 1 + let lastline = search('^\%('. indent_pat . '\)\@!', 'nW') - 1 + if lastline < 0 + let lastline = line('$') + endif + + "Find the column at which the operators should be aligned... + let max_align_col = 0 + let max_op_width = 0 + for linetext in getline(firstline, lastline) + "Does this line have an assignment in it? + let left_width = match(linetext, '\s*' . ASSIGN_OP) + + "If so, track the maximal assignment column and operator width... + if left_width >= 0 + let max_align_col = max([max_align_col, left_width]) + + let op_width = strlen(matchstr(linetext, ASSIGN_OP)) + let max_op_width = max([max_op_width, op_width+1]) + endif + endfor + + "Code needed to reformat lines so as to align operators... + let FORMATTER = '\=printf("%-*s%*s", max_align_col, submatch(1), + \ max_op_width, submatch(2))' + + " Reformat lines with operators aligned in the appropriate column... + for linenum in range(firstline, lastline) + let oldline = getline(linenum) + let newline = substitute(oldline, ASSIGN_LINE, FORMATTER, "") + call setline(linenum, newline) + endfor +endfunction +endif + +nnoremap ,= :call CF3AlignAssignments("null") +nnoremap = :call CF3AlignAssignments("vars") + +" For pasting code snippets +function! Pastefile( FILE ) + let arg_file = s:install_dir."/snippets/".a:FILE + let @" = join( readfile( arg_file ), "\n" ) + put + return "" +endfunction + +nnoremap ,k :call Pastefile("template.cf")kdd +nnoremap ,s :call Pastefile("stdlib.cf")kdd + +" TODO +" Indents + +" CREDITS +" Neil Watson +" Other Cfengine information: http://watson-wilson.ca/cfengine/ +" +" CHANGES +" Wednesday January 09 2013 +" Operator alignment now works for just '=>' with ',=' or 'string, stlist ,etc +" and => ' with '=' +" +" Wednesday October 05 2011 +" - Added comment and handle abbs. Assumes you have the Eatchar and Getchar +" functions. +" - Can now wrap words and lists in quotes. +" - Insert blank promises (,p) +" - Insert blank testing skeleton (,k) +" +" CHANGES +" Monday November 21 2011 +" - IAB's for string, slist and usebundle. + +" CHANGES +" Fri Apr 27 2012 +" Added function to align assigment operators + +" vim_cf3 files (https://github.com/neilhwatson/vim_cf3) +" Copyright (C) 2011 Neil H. Watson +" +" This program is free software: you can redistribute it and/or modify it under +" the terms of the GNU General Public License as published by the Free Software +" Foundation, either version 3 of the License, or (at your option) any later +" version. +" +" This program is distributed in the hope that it will be useful, but WITHOUT ANY +" WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +" PARTICULAR PURPOSE. See the GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License along with +" this program. If not, see . diff --git a/dots/.config/nvim/config/init.lua b/dots/.config/nvim/config/init.lua new file mode 100755 index 00000000..0368553e --- /dev/null +++ b/dots/.config/nvim/config/init.lua @@ -0,0 +1,5 @@ +local loaded, impatient = pcall(require, 'impatient') +if loaded then + impatient.enable_profile() +end +require('main') diff --git a/dots/.config/nvim/config/lua/core/autocmds.lua b/dots/.config/nvim/config/lua/core/autocmds.lua new file mode 100644 index 00000000..0f49c059 --- /dev/null +++ b/dots/.config/nvim/config/lua/core/autocmds.lua @@ -0,0 +1,50 @@ +local M = {} + +M.setup = function() + -- NOTE: Highlight text yanked + vim.api.nvim_create_autocmd("TextYankPost", { + callback = function() + vim.highlight.on_yank() + end, + }) + + -- NOTE: Remove trailing whitespace on save + vim.api.nvim_create_autocmd("BufWritePre", { + command = "%s/\\s\\+$//e", + }) + + -- -- NOTE: Handles scenarios in which the filetype isn't detected on load + -- vim.api.nvim_create_autocmd('BufReadPost', { + -- pattern = '*', + -- callback = function() + -- local opt_ft = vim.opt_local.ft:get() + -- if opt_ft == nil or opt_ft == '' then + -- vim.cmd('filetype detect') + -- end + -- end, + -- }) + + -- NOTE: Local cursorline + vim.api.nvim_create_autocmd("BufEnter", { + pattern = "*", + callback = function() + vim.opt_local.cursorline = true + end, + }) + + vim.api.nvim_create_autocmd("WinEnter", { + pattern = "*", + callback = function() + vim.opt_local.cursorline = true + end, + }) + + vim.api.nvim_create_autocmd("WinLeave", { + pattern = "*", + callback = function() + vim.opt_local.cursorline = false + end, + }) +end + +return M diff --git a/dots/.config/nvim/config/lua/core/disabled.lua b/dots/.config/nvim/config/lua/core/disabled.lua new file mode 100755 index 00000000..22513488 --- /dev/null +++ b/dots/.config/nvim/config/lua/core/disabled.lua @@ -0,0 +1,25 @@ +local M = {} +M.setup = function() + local disabled_built_ins = { + 'gzip', + 'zip', + 'zipPlugin', + 'tar', + 'tarPlugin', + 'getscript', + 'getscriptPlugin', + 'vimball', + 'vimballPlugin', + '2html_plugin', + 'logipat', + 'rrhelper', + 'spellfile_plugin', + 'matchit', + } + + for _, plugin in pairs(disabled_built_ins) do + vim.g['loaded_' .. plugin] = 1 + end +end + +return M diff --git a/dots/.config/nvim/config/lua/core/globals.lua b/dots/.config/nvim/config/lua/core/globals.lua new file mode 100755 index 00000000..929fdc1f --- /dev/null +++ b/dots/.config/nvim/config/lua/core/globals.lua @@ -0,0 +1,9 @@ +local g = vim.g + +local M = {} + +M.setup = function() + -- g.python3_host_prog = ("(%s)/.pyenv/shims/python3"):format(os.getenv("HOME")) +end + +return M diff --git a/dots/.config/nvim/config/lua/core/init.lua b/dots/.config/nvim/config/lua/core/init.lua new file mode 100755 index 00000000..c101a615 --- /dev/null +++ b/dots/.config/nvim/config/lua/core/init.lua @@ -0,0 +1,7 @@ +require('core.disabled').setup() +require('core.options').setup() +require('core.mappings').setup() +require('core.globals').setup() +require('core.autocmds').setup() +require('core.lsp').setup() +-- require('core.winbar').setup() diff --git a/dots/.config/nvim/config/lua/core/lsp.lua b/dots/.config/nvim/config/lua/core/lsp.lua new file mode 100644 index 00000000..1033c745 --- /dev/null +++ b/dots/.config/nvim/config/lua/core/lsp.lua @@ -0,0 +1,52 @@ +local M = {} + +M.setup = function() + local function lspSymbol(name, icon, linehlbg) + local hl = 'DiagnosticSign' .. name + local linehl = 'DiagnosticSignLineHl' .. name + vim.api.nvim_set_hl(0, linehl, { + bg = linehlbg, + }) + vim.fn.sign_define(hl, { text = icon, numhl = hl, texthl = hl, linehl = linehl }) + end + + lspSymbol('Error', '', '#2d202a') + lspSymbol('Warn', '', '#2e2a2d') + lspSymbol('Info', '', '#192b38') + lspSymbol('Hint', '', '#1a2b32') + + local border = { + { '╭', 'FloatBorder' }, + { '─', 'FloatBorder' }, + { '╮', 'FloatBorder' }, + { '│', 'FloatBorder' }, + { '╯', 'FloatBorder' }, + { '─', 'FloatBorder' }, + { '╰', 'FloatBorder' }, + { '│', 'FloatBorder' }, + } + + local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview + function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...) + opts = opts or {} + opts.border = opts.border or border + return orig_util_open_floating_preview(contents, syntax, opts, ...) + end + + vim.diagnostic.config({ + virtual_text = false, + severity_sort = true, + underline = true, + update_in_insert = false, + float = { + focusable = false, + style = 'minimal', + border = 'rounded', + source = 'always', + header = '', + prefix = '', + }, + }) +end + +return M diff --git a/dots/.config/nvim/config/lua/core/mappings.lua b/dots/.config/nvim/config/lua/core/mappings.lua new file mode 100755 index 00000000..d583811a --- /dev/null +++ b/dots/.config/nvim/config/lua/core/mappings.lua @@ -0,0 +1,55 @@ +local M = {} + +M.setup = function() + -- set mapleader to space + vim.g.mapleader = " " + + -- Get rid of highlight after search + vim.keymap.set("n", "", ":noh") + + -- Spell Checking + vim.keymap.set("n", "st", ":set spell!") + + -- Better split movement + vim.keymap.set("n", "", "l") + vim.keymap.set("n", "", "h") + vim.keymap.set("n", "", "k") + vim.keymap.set("n", "", "j") + + -- Better split closing + vim.keymap.set("n", "", "c") + + -- Set current focused file as cwd + vim.keymap.set("n", "cd", ":cd %:p:h") + + -- Toggle showing diagnostics + local diagnostics_active = true + vim.keymap.set("n", "lh", function() + diagnostics_active = not diagnostics_active + if diagnostics_active then + vim.diagnostic.enable() + else + vim.diagnostic.disable() + end + end, { desc = "Toggle Diagnostics" }) + + -- Toggle showing command bar + vim.keymap.set("n", "cl", function() + local current_cmdheight = vim.opt.cmdheight:get() + if current_cmdheight > 0 then + vim.opt.cmdheight = 0 + else + vim.opt.cmdheight = 1 + end + end, { desc = "Toggle Cmdline" }) + + -- Toggle relativenumber + vim.keymap.set("n", "sn", function() + vim.opt.relativenumber = not vim.opt.relativenumber:get() + end, { desc = "Toggle Relativenumber" }) + + -- Sudo Write + vim.keymap.set("c", "w!!", "w !sudo tee > /dev/null %") +end + +return M diff --git a/dots/.config/nvim/config/lua/core/options.lua b/dots/.config/nvim/config/lua/core/options.lua new file mode 100755 index 00000000..fee37926 --- /dev/null +++ b/dots/.config/nvim/config/lua/core/options.lua @@ -0,0 +1,124 @@ +local opt = vim.opt + +local M = {} + +M.setup = function() + -- Number settings + opt.number = true + opt.numberwidth = 2 + opt.relativenumber = true + + -- Scroll Offset + opt.scrolloff = 3 + + -- Disable showmode + opt.showmode = false + + -- Set truecolor support + opt.termguicolors = true + vim.cmd("highlight Normal guibg=none") + + -- Enable system clipboard + opt.clipboard = "unnamedplus" + + -- Set mouse support for any mode + opt.mouse = "a" + + -- Allow hidden + opt.hidden = true + + -- Useful defaults for tab, indentation, etc. + opt.tabstop = 4 + opt.shiftwidth = 4 + opt.smartindent = true + opt.breakindent = true + opt.expandtab = true + opt.smarttab = true + + -- Search settings + opt.hlsearch = true + opt.incsearch = true + opt.ignorecase = true + opt.smartcase = true + + -- Better backspaces + opt.backspace = "indent,eol,start" + + -- Make new splits vertical + opt.splitright = true + + -- Show line & column num of cursor + opt.ruler = true + + -- Set timeouts + opt.ttimeoutlen = 20 + opt.timeoutlen = 1000 + opt.updatetime = 250 + opt.signcolumn = "yes" + + -- Enable persistent undo + opt.undodir = vim.fn.stdpath("cache") .. "/undo" + opt.undofile = true + + -- Better folding + opt.foldexpr = "nvim_treesitter#foldexpr()" + opt.foldmethod = "expr" + opt.fillchars = { fold = " " } + opt.foldlevel = 20 + + -- Concealment for nicer rendering + opt.conceallevel = 2 + opt.concealcursor = "ic" + + -- Lazy Redraw to Speed Up Macros + opt.lazyredraw = true + + -- Spell Settings + opt.spelllang = { "en_us" } + + -- Better completion experience + opt.completeopt = "menuone,noselect" + + -- Set max text width + opt.textwidth = 80 + + -- Make statusline global + opt.laststatus = 3 + + -- Set listcharacters + opt.list = true + opt.listchars:append("tab:-->") + opt.listchars:append("lead:·") + opt.listchars:append("trail:·") + opt.listchars:append("extends:◣") + opt.listchars:append("precedes:◢") + opt.listchars:append("nbsp:○") + + -- Set fillchars + vim.opt.fillchars:append({ + horiz = "━", + horizup = "┻", + horizdown = "┳", + vert = "┃", + vertleft = "┨", + vertright = "┣", + verthoriz = "╋", + }) + + -- Remove end of boundry '~' + opt.fillchars:append("eob: ") + + -- Allow vim to get settings from file + opt.modeline = true + opt.modelines = 5 + + -- Set command bar height to hide when not in use + opt.cmdheight = 0 + + -- WARN: Disable swap files. + -- WARN: This is potentially VERY dangerous. + -- WARN: For my use case, this is intended + opt.swapfile = false +end + +return M diff --git a/dots/.config/nvim/config/lua/core/postload.lua b/dots/.config/nvim/config/lua/core/postload.lua new file mode 100755 index 00000000..890e5d29 --- /dev/null +++ b/dots/.config/nvim/config/lua/core/postload.lua @@ -0,0 +1 @@ +require('core.theme').setup() diff --git a/dots/.config/nvim/config/lua/core/theme.lua b/dots/.config/nvim/config/lua/core/theme.lua new file mode 100755 index 00000000..81ccfd91 --- /dev/null +++ b/dots/.config/nvim/config/lua/core/theme.lua @@ -0,0 +1,20 @@ +local M = {} +local util = require("utils.funcs") + +M.setup = function() + vim.g.tokyonight_style = "night" + vim.g.tokyonight_transparent = true + vim.g.tokyonight_transparent_sidebar = true + + local colorscheme_name = "kanagawa" + local loaded, _ = pcall(vim.cmd, "colorscheme " .. colorscheme_name) + + if not loaded then + vim.notify('Colorscheme "' .. colorscheme_name .. '" could not be loaded!', vim.lsp.log_levels.WARN, { + title = "Colorscheme", + }) + end + + -- vim.api.nvim_set_hl(0, "SpecialKey", { fg = "#61AFEF" }) +end +return M diff --git a/dots/.config/nvim/config/lua/core/winbar.lua b/dots/.config/nvim/config/lua/core/winbar.lua new file mode 100644 index 00000000..9711cbda --- /dev/null +++ b/dots/.config/nvim/config/lua/core/winbar.lua @@ -0,0 +1,23 @@ +local M = {} + +M.winbar = function() + local win_number = '[' .. vim.api.nvim_win_get_number(0) .. ']' + local ignore_fts = { + 'neo-tree', + 'dashboard', + } + + for _, ft in ipairs(ignore_fts) do + if ft == vim.bo.filetype then + return win_number + end + end + return win_number .. ' %f' +end + +M.setup = function() + -- Winbar + vim.opt.winbar = "%{%v:lua.require('core.winbar').winbar()%}" +end + +return M diff --git a/dots/.config/nvim/config/lua/main.lua b/dots/.config/nvim/config/lua/main.lua new file mode 100755 index 00000000..9889ad35 --- /dev/null +++ b/dots/.config/nvim/config/lua/main.lua @@ -0,0 +1,16 @@ +-- INFO: Primary loading, where most things are loaded in +-- +-- INFO: All modules/dirs that are going to be loaded +-- INFO: SHOULD have a init.lua file associated with them. +-- INFO: init.lua is responsible for loading all configuration +-- INFO: related to that directory. +require('core.init') +require('plugins.init') + +-- INFO: Post load, for things that need to setup keybindings etc after the fact +-- +-- NOTE: All postload modules should be independent of each other, they shouldn't +-- NOTE: rely on each other's load order. That type of logic should be shifted +-- NOTE: into non-postload regions then handled in postload modules. +require('plugins.postload') +require('core.postload') diff --git a/dots/.config/nvim/config/lua/packer_compiled.lua b/dots/.config/nvim/config/lua/packer_compiled.lua new file mode 100644 index 00000000..dba0f87d --- /dev/null +++ b/dots/.config/nvim/config/lua/packer_compiled.lua @@ -0,0 +1,938 @@ +-- Automatically generated packer.nvim plugin loader code + +if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return +end + +vim.api.nvim_command('packadd packer.nvim') + +local no_errors, error_msg = pcall(function() + + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) end + end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end + + _G._packer = _G._packer or {} + _G._packer.profile_output = results +end + +time([[Luarocks path setup]], true) +local package_path_str = "/Users/pricehiller/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/Users/pricehiller/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/Users/pricehiller/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/Users/pricehiller/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/Users/pricehiller/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" +if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str +end + +if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern +end + +time([[Luarocks path setup]], false) +time([[try_loadstring definition]], true) +local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s), name, _G.packer_plugins[name]) + if not success then + vim.schedule(function() + vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) + end) + end + return result +end + +time([[try_loadstring definition]], false) +time([[Defining packer_plugins]], true) +_G.packer_plugins = { + LuaSnip = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/LuaSnip", + url = "https://github.com/L3MON4D3/LuaSnip" + }, + ["alpha-nvim"] = { + config = { "\27LJ\2\n5\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\26plugins.configs.alpha\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/alpha-nvim", + url = "https://github.com/goolord/alpha-nvim" + }, + ["ansible-vim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/ansible-vim", + url = "https://github.com/pearofducks/ansible-vim" + }, + ["cmp-calc"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-calc", + url = "https://github.com/hrsh7th/cmp-calc" + }, + ["cmp-cmdline"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-cmdline", + url = "https://github.com/hrsh7th/cmp-cmdline" + }, + ["cmp-cmdline-history"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-cmdline-history", + url = "https://github.com/dmitmel/cmp-cmdline-history" + }, + ["cmp-conventionalcommits"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-conventionalcommits", + url = "https://github.com/davidsierradz/cmp-conventionalcommits" + }, + ["cmp-emoji"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-emoji", + url = "https://github.com/hrsh7th/cmp-emoji" + }, + ["cmp-fuzzy-buffer"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-fuzzy-buffer", + url = "https://github.com/tzachar/cmp-fuzzy-buffer" + }, + ["cmp-fuzzy-path"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-fuzzy-path", + url = "https://github.com/tzachar/cmp-fuzzy-path" + }, + ["cmp-npm"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-npm", + url = "https://github.com/David-Kunz/cmp-npm" + }, + ["cmp-nvim-lsp"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", + url = "https://github.com/hrsh7th/cmp-nvim-lsp" + }, + ["cmp-nvim-lsp-document-symbol"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-document-symbol", + url = "https://github.com/hrsh7th/cmp-nvim-lsp-document-symbol" + }, + ["cmp-path"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-path", + url = "https://github.com/hrsh7th/cmp-path" + }, + ["cmp-rg"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-rg", + url = "https://github.com/lukas-reineke/cmp-rg" + }, + ["cmp-zsh"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp-zsh", + url = "https://github.com/tamago324/cmp-zsh" + }, + cmp_luasnip = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/cmp_luasnip", + url = "https://github.com/saadparwaiz1/cmp_luasnip" + }, + ["crates.nvim"] = { + after_files = { "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/crates.nvim/after/plugin/cmp_crates.lua" }, + config = { "\27LJ\2\n4\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\vcrates\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/crates.nvim", + url = "https://github.com/saecki/crates.nvim" + }, + ["csharpls-extended-lsp.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/csharpls-extended-lsp.nvim", + url = "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim" + }, + ["diffview.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/diffview.nvim", + url = "https://github.com/sindrets/diffview.nvim" + }, + ["editorconfig.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/editorconfig.nvim", + url = "https://github.com/gpanders/editorconfig.nvim" + }, + ["fidget.nvim"] = { + config = { "\27LJ\2\n>\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0#plugins.configs.fidget-spinner\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/fidget.nvim", + url = "https://github.com/j-hui/fidget.nvim" + }, + ["friendly-snippets"] = { + config = { "\27LJ\2\nM\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\14lazy_load luasnip.loaders.from_vscode\frequire\0" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/friendly-snippets", + url = "https://github.com/rafamadriz/friendly-snippets" + }, + ["fuzzy.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/fuzzy.nvim", + url = "https://github.com/tzachar/fuzzy.nvim" + }, + ["gitsigns.nvim"] = { + config = { "\27LJ\2\n|\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\28current_line_blame_opts\1\0\1\ndelay\3\0\1\0\1\23current_line_blame\2\nsetup\rgitsigns\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim", + url = "https://github.com/lewis6991/gitsigns.nvim" + }, + ["hop.nvim"] = { + config = { "\27LJ\2\nU\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\tkeys\28etovxqpdygfblzhckisuran\nsetup\bhop\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/hop.nvim", + url = "https://github.com/phaazon/hop.nvim" + }, + ["hydra.nvim"] = { + config = { "\27LJ\2\n5\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\26plugins.configs.hydra\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/hydra.nvim", + url = "https://github.com/anuvyklack/hydra.nvim" + }, + ["impatient.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/impatient.nvim", + url = "https://github.com/lewis6991/impatient.nvim" + }, + ["inc-rename.nvim.git"] = { + config = { "\27LJ\2\n<\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\15inc_rename\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/inc-rename.nvim.git", + url = "https://github.com/smjonas/inc-rename.nvim" + }, + ["indent-blankline.nvim"] = { + config = { "\27LJ\2\n@\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0%plugins.configs.indent-blankline\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim", + url = "https://github.com/lukas-reineke/indent-blankline.nvim" + }, + ["kanagawa.nvim"] = { + config = { "\27LJ\2\n\5\0\0\a\0#\0@6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\0026\1\3\0009\1\4\0019\1\5\1\18\3\1\0009\1\6\0015\4\a\0B\1\3\0016\1\0\0'\3\b\0B\1\2\0029\1\2\0015\3\t\0005\4\14\0005\5\f\0009\6\n\0009\6\v\6=\6\r\5=\5\15\0045\5\18\0009\6\16\0009\6\17\6=\6\19\0059\6\n\0009\6\v\6=\6\r\5=\5\20\0045\5\22\0009\6\n\0009\6\21\6=\6\r\5=\5\23\0045\5\25\0009\6\16\0009\6\24\6=\6\19\0059\6\n\0009\6\26\6=\6\r\5=\5\27\0045\5\29\0009\6\16\0009\6\28\6=\6\19\0059\6\n\0009\6\30\6=\6\r\5=\5\31\0045\5 \0009\6\16\0009\6\17\6=\6\19\0059\6\n\0009\6\v\6=\6\r\5=\5!\4=\4\"\3B\1\2\1K\0\1\0\14overrides\27NeogitCommitViewHeader\1\0\0\27NeogitDiffAddHighlight\badd\1\0\0\nadded\30NeogitDiffDeleteHighlight\vdelete\1\0\0\fremoved\31NeogitDiffContextHighlight\1\0\0\vchange\30NeogitHunkHeaderHighlight\afg\1\0\0\fchanged\bgit\21NeogitHunkHeader\1\0\0\abg\1\0\0\ttext\tdiff\1\0\3\17globalStatus\2\17dim_inactive\2\16transparent\2\rkanagawa\1\0\a\14vertright\b┣\nhoriz\b━\14horizdown\b┳\14verthoriz\b╋\rvertleft\b┨\fhorizup\b┻\tvert\b┃\vappend\14fillchars\bopt\bvim\nsetup\20kanagawa.colors\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/kanagawa.nvim", + url = "https://github.com/rebelot/kanagawa.nvim" + }, + ["keymap-layer.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/keymap-layer.nvim", + url = "https://github.com/anuvyklack/keymap-layer.nvim" + }, + ["lsp_lines.nvim"] = { + config = { "\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14lsp_lines\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/lsp_lines.nvim", + url = "https://git.sr.ht/~whynothugo/lsp_lines.nvim" + }, + ["lsp_signature.nvim"] = { + config = { "\27LJ\2\n~\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\4\20floating_window\1\15toggle_key\n\16hint_prefix\5\16hint_enable\2\nsetup\18lsp_signature\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/lsp_signature.nvim", + url = "https://github.com/ray-x/lsp_signature.nvim" + }, + ["lua-dev.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/lua-dev.nvim", + url = "https://github.com/folke/lua-dev.nvim" + }, + ["lualine.nvim"] = { + config = { "\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugins.configs.statusline\frequire\0" }, + load_after = { + ["nvim-bufferline.lua"] = true + }, + loaded = false, + needs_bufread = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/lualine.nvim", + url = "https://github.com/nvim-lualine/lualine.nvim" + }, + ["markdown-preview.nvim"] = { + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/markdown-preview.nvim", + url = "https://github.com/iamcco/markdown-preview.nvim" + }, + ["mason-lspconfig.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim", + url = "https://github.com/williamboman/mason-lspconfig.nvim" + }, + ["mason.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/mason.nvim", + url = "https://github.com/williamboman/mason.nvim" + }, + ["mini.nvim"] = { + config = { "\27LJ\2\n\1\0\0\4\0\a\0\0156\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\0016\0\0\0'\2\3\0B\0\2\0029\0\2\0005\2\5\0005\3\4\0=\3\6\2B\0\2\1K\0\1\0\rmappings\1\0\0\1\0\a\vdelete\ads\19update_n_lines\5\tfind\5\14find_left\5\14highlight\5\freplace\acs\badd\ags\18mini.surround\nsetup\20mini.cursorword\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/mini.nvim", + url = "https://github.com/echasnovski/mini.nvim" + }, + ["mkdir.nvim"] = { + commands = { "new" }, + config = { "\27LJ\2\n%\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\nmkdir\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/mkdir.nvim", + url = "https://github.com/jghauser/mkdir.nvim" + }, + ["neo-tree.nvim"] = { + config = { "\27LJ\2\n7\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\28plugins.configs.neotree\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/neo-tree.nvim", + url = "https://github.com/nvim-neo-tree/neo-tree.nvim" + }, + neoformat = { + commands = { "Neoformat" }, + config = { "\27LJ\2\n9\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\30plugins.configs.neoformat\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/neoformat", + url = "https://github.com/sbdchd/neoformat" + }, + neogen = { + config = { "\27LJ\2\nR\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\19snippet_engine\fluasnip\nsetup\vneogen\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/neogen", + url = "https://github.com/danymat/neogen" + }, + neogit = { + config = { "\27LJ\2\nz\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\17integrations\1\0\1\rdiffview\2\1\0\1 disable_commit_confirmation\2\nsetup\vneogit\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/neogit", + url = "https://github.com/TimUntersberger/neogit" + }, + neorg = { + config = { "\27LJ\2\n6\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\27plugins.configs._neorg\frequire\0" }, + load_after = {}, + loaded = true, + needs_bufread = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/neorg", + url = "https://github.com/nvim-neorg/neorg" + }, + ["neorg-telescope"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/neorg-telescope", + url = "https://github.com/nvim-neorg/neorg-telescope" + }, + ["neoscroll.nvim"] = { + config = { "\27LJ\2\nW\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\20easing_function\rcircular\nsetup\14neoscroll\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/neoscroll.nvim", + url = "https://github.com/karb94/neoscroll.nvim" + }, + ["nightfox.nvim"] = { + config = { "\27LJ\2\nk\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\foptions\1\0\0\1\0\2\17dim_inactive\2\16transparent\2\nsetup\rnightfox\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nightfox.nvim", + url = "https://github.com/EdenEast/nightfox.nvim" + }, + ["nui.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nui.nvim", + url = "https://github.com/MunifTanjim/nui.nvim" + }, + ["null-ls.nvim"] = { + config = { "\27LJ\2\n7\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\28plugins.configs.null_ls\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/null-ls.nvim", + url = "https://github.com/jose-elias-alvarez/null-ls.nvim" + }, + ["nvim-autopairs"] = { + config = { "\27LJ\2\n<\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nvim-autopairs", + url = "https://github.com/windwp/nvim-autopairs" + }, + ["nvim-bufferline.lua"] = { + after = { "lualine.nvim" }, + config = { "\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugins.configs.bufferline\frequire\0" }, + load_after = { + ["nvim-web-devicons"] = true + }, + loaded = false, + needs_bufread = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-bufferline.lua", + url = "https://github.com/akinsho/nvim-bufferline.lua" + }, + ["nvim-cmp"] = { + config = { "\27LJ\2\n4\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\25plugins.configs._cmp\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nvim-cmp", + url = "https://github.com/hrsh7th/nvim-cmp" + }, + ["nvim-code-action-menu"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nvim-code-action-menu", + url = "https://github.com/weilbith/nvim-code-action-menu" + }, + ["nvim-colorizer.lua"] = { + config = { "\27LJ\2\n>\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0#plugins.configs.nvim-colorizer\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-colorizer.lua", + url = "https://github.com/norcalli/nvim-colorizer.lua" + }, + ["nvim-comment"] = { + commands = { "CommentToggle" }, + config = { "\27LJ\2\n:\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\17nvim_comment\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-comment", + url = "https://github.com/terrortylor/nvim-comment" + }, + ["nvim-dap"] = { + after = { "nvim-dap-python", "nvim-dap-ui", "nvim-dap-virtual-text" }, + config = { "\27LJ\2\ne\0\0\3\0\4\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\0016\0\0\0'\2\3\0B\0\2\1K\0\1\0\25plugins.configs._dap\18load_launchjs\19dap.ext.vscode\frequire\0" }, + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-dap", + url = "https://github.com/mfussenegger/nvim-dap" + }, + ["nvim-dap-python"] = { + config = { "\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugins.configs.python-dap\frequire\0" }, + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-dap-python", + url = "https://github.com/mfussenegger/nvim-dap-python" + }, + ["nvim-dap-ui"] = { + config = { "\27LJ\2\n6\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\27plugins.configs.dap-ui\frequire\0" }, + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-dap-ui", + url = "https://github.com/rcarriga/nvim-dap-ui" + }, + ["nvim-dap-virtual-text"] = { + config = { "\27LJ\2\nG\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\26nvim-dap-virtual-text\frequire\0" }, + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-dap-virtual-text", + url = "https://github.com/theHamsta/nvim-dap-virtual-text" + }, + ["nvim-hlslens"] = { + after = { "nvim-scrollbar" }, + keys = { { "", "/" } }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-hlslens", + url = "https://github.com/kevinhwang91/nvim-hlslens" + }, + ["nvim-keymap-amend"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nvim-keymap-amend", + url = "https://github.com/anuvyklack/nvim-keymap-amend" + }, + ["nvim-lastplace"] = { + config = { "\27LJ\2\n\1\0\0\4\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\0025\3\6\0=\3\a\2B\0\2\1K\0\1\0\30lastplace_ignore_filetype\1\6\0\0\14gitcommit\14gitrebase\bsvn\rhgcommit\rfugitive\29lastplace_ignore_buftype\1\0\1\25lastplace_open_folds\2\1\4\0\0\rquickfix\vnofile\thelp\nsetup\19nvim-lastplace\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nvim-lastplace", + url = "https://github.com/ethanholz/nvim-lastplace" + }, + ["nvim-lspconfig"] = { + config = { "\27LJ\2\nW\0\0\3\0\4\0\n6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\0016\0\0\0'\2\3\0B\0\2\1K\0\1\0\24plugins.configs.lsp\nsetup\nmason\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", + url = "https://github.com/neovim/nvim-lspconfig" + }, + ["nvim-neoclip.lua"] = { + config = { "\27LJ\2\n8\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\29plugins.configs._neoclip\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nvim-neoclip.lua", + url = "https://github.com/AckslD/nvim-neoclip.lua" + }, + ["nvim-notify"] = { + after = { "nvim-dap" }, + config = { "\27LJ\2\n;\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0 plugins.configs.nvim-notify\frequire\0" }, + loaded = true, + only_config = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nvim-notify", + url = "https://github.com/rcarriga/nvim-notify" + }, + ["nvim-scrollbar"] = { + config = { "\27LJ\2\n>\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0#plugins.configs.diag-scrollbar\frequire\0" }, + load_after = { + ["nvim-hlslens"] = true + }, + loaded = false, + needs_bufread = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-scrollbar", + url = "https://github.com/petertriho/nvim-scrollbar" + }, + ["nvim-treesitter"] = { + after = { "nvim-treesitter-textobjects", "neorg" }, + config = { "\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugins.configs.treesitter\frequire\0" }, + loaded = true, + only_config = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nvim-treesitter", + url = "https://github.com/nvim-treesitter/nvim-treesitter" + }, + ["nvim-treesitter-textobjects"] = { + config = { "\27LJ\2\n\4\0\0\6\0\20\0\0236\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\18\0005\3\6\0005\4\3\0005\5\4\0=\5\5\4=\4\a\0035\4\b\0005\5\t\0=\5\n\0045\5\v\0=\5\f\0045\5\r\0=\5\14\0045\5\15\0=\5\16\4=\4\17\3=\3\19\2B\0\2\1K\0\1\0\16textobjects\1\0\0\tmove\22goto_previous_end\1\0\3\b[ce\17@class.outer\b[fe\20@function.outer\b[bs\17@block.outer\24goto_previous_start\1\0\3\b[fs\20@function.outer\b[bs\17@block.outer\b[cs\17@class.outer\18goto_next_end\1\0\3\b]be\17@block.outer\b]fe\20@function.outer\b]ce\17@class.outer\20goto_next_start\1\0\3\b]bs\17@block.outer\b]fs\20@function.outer\b]cs\17@class.outer\1\0\2\venable\2\14set_jumps\2\vselect\1\0\0\fkeymaps\1\0\6\aif\20@function.inner\aab\17@block.outer\aib\17@block.inner\aic\17@class.inner\aaf\20@function.outer\aac\17@class.outer\1\0\2\venable\2\14lookahead\2\nsetup\28nvim-treesitter.configs\frequire\0" }, + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects", + url = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects" + }, + ["nvim-web-devicons"] = { + after = { "nvim-bufferline.lua" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/nvim-web-devicons", + url = "https://github.com/kyazdani42/nvim-web-devicons" + }, + ["nvim-yati"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/nvim-yati", + url = "https://github.com/yioneko/nvim-yati" + }, + ["packer.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/packer.nvim", + url = "https://github.com/wbthomason/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/plenary.nvim", + url = "https://github.com/nvim-lua/plenary.nvim" + }, + ["presence.nvim"] = { + config = { "\27LJ\2\nb\0\0\4\0\4\0\b6\0\0\0'\2\1\0B\0\2\2\18\2\0\0009\0\2\0005\3\3\0B\0\3\1K\0\1\0\1\0\1\22neovim_image_text\19How do I exit?\nsetup\rpresence\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/presence.nvim", + url = "https://github.com/andweeb/presence.nvim" + }, + ["pretty-fold.nvim"] = { + config = { "\27LJ\2\nL\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\14fill_char\6 \nsetup\16pretty-fold\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/pretty-fold.nvim", + url = "https://github.com/anuvyklack/pretty-fold.nvim" + }, + ["refactoring.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/refactoring.nvim", + url = "https://github.com/ThePrimeagen/refactoring.nvim" + }, + ["rest.nvim"] = { + config = { "\27LJ\2\nU\0\0\4\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\1\2\0005\3\3\0B\1\2\1K\0\1\0\1\0\1\26skip_ssl_verification\2\nsetup\14rest-nvim\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/rest.nvim", + url = "https://github.com/NTBBloodbath/rest.nvim" + }, + ["rust-tools.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/rust-tools.nvim", + url = "https://github.com/simrat39/rust-tools.nvim" + }, + ["sqlite.lua"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/sqlite.lua", + url = "https://github.com/tami5/sqlite.lua" + }, + ["sqls.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/sqls.nvim", + url = "https://github.com/nanotee/sqls.nvim" + }, + ["stabilize.nvim"] = { + config = { "\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugins.configs._stabilize\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/stabilize.nvim", + url = "https://github.com/luukvbaal/stabilize.nvim" + }, + ["symbols-outline.nvim"] = { + commands = { "SymbolsOutline", "SymbolsOutlineOpen", "SymbolsOutlineClose" }, + config = { "\27LJ\2\n\1\0\0\3\0\3\0\0056\0\0\0009\0\1\0'\2\2\0B\0\2\1K\0\1\0|hi FocusedSymbol term=italic,bold cterm=italic ctermbg=yellow ctermfg=darkblue gui=bold,italic guibg=none guifg=#59D0FF\bcmd\bvim\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/symbols-outline.nvim", + url = "https://github.com/simrat39/symbols-outline.nvim" + }, + ["telescope-file-browser.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/telescope-file-browser.nvim", + url = "https://github.com/nvim-telescope/telescope-file-browser.nvim" + }, + ["telescope-fzf-native.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/telescope-fzf-native.nvim", + url = "https://github.com/nvim-telescope/telescope-fzf-native.nvim" + }, + ["telescope-media-files.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/telescope-media-files.nvim", + url = "https://github.com/nvim-telescope/telescope-media-files.nvim" + }, + ["telescope-smart-history.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/telescope-smart-history.nvim", + url = "https://github.com/nvim-telescope/telescope-smart-history.nvim" + }, + ["telescope-ui-select.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/telescope-ui-select.nvim", + url = "https://github.com/nvim-telescope/telescope-ui-select.nvim" + }, + ["telescope.nvim"] = { + config = { "\27LJ\2\n>\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0#plugins.configs.telescope-nvim\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/telescope.nvim", + url = "https://github.com/nvim-telescope/telescope.nvim" + }, + telescope_find_directories = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/telescope_find_directories", + url = "https://github.com/artart222/telescope_find_directories" + }, + ["todo-comments.nvim"] = { + config = { "\27LJ\2\n?\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\18todo-comments\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim", + url = "https://github.com/folke/todo-comments.nvim" + }, + ["tokyonight.nvim"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/tokyonight.nvim", + url = "https://github.com/folke/tokyonight.nvim" + }, + ["trouble.nvim"] = { + commands = { "Trouble", "TroubleClose", "TroubleToggle", "TroubleRefresh" }, + config = { "\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\ftrouble\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/trouble.nvim", + url = "https://github.com/folke/trouble.nvim" + }, + undotree = { + commands = { "UndotreeToggle" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/undotree", + url = "https://github.com/mbbill/undotree" + }, + ["vim-log-highlighting"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/vim-log-highlighting", + url = "https://github.com/MTDL9/vim-log-highlighting" + }, + ["vim-move"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/vim-move", + url = "https://github.com/matze/vim-move" + }, + ["vim-startuptime"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/vim-startuptime", + url = "https://github.com/dstein64/vim-startuptime" + }, + ["vim-visual-multi"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/vim-visual-multi", + url = "https://github.com/mg979/vim-visual-multi" + }, + ["vim-vsnip"] = { + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/vim-vsnip", + url = "https://github.com/hrsh7th/vim-vsnip" + }, + ["which-key.nvim"] = { + config = { "\27LJ\2\n;\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\14which-key\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/which-key.nvim", + url = "https://github.com/folke/which-key.nvim" + }, + ["workspaces.nvim"] = { + config = { "\27LJ\2\n]\0\0\5\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\1\2\0005\3\4\0005\4\3\0=\4\5\3B\1\2\1K\0\1\0\nhooks\1\0\0\1\0\1\topen\fNeotree\nsetup\15workspaces\frequire\0" }, + loaded = true, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/start/workspaces.nvim", + url = "https://github.com/natecraddock/workspaces.nvim" + }, + ["zen-mode.nvim"] = { + commands = { "ZenMode" }, + config = { "\27LJ\2\n:\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\rzen-mode\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/pricehiller/.local/share/nvim/site/pack/packer/opt/zen-mode.nvim", + url = "https://github.com/folke/zen-mode.nvim" + } +} + +time([[Defining packer_plugins]], false) +local module_lazy_loads = { + ["^hlslens"] = "nvim-hlslens" +} +local lazy_load_called = {['packer.load'] = true} +local function lazy_load_module(module_name) + local to_load = {} + if lazy_load_called[module_name] then return nil end + lazy_load_called[module_name] = true + for module_pat, plugin_name in pairs(module_lazy_loads) do + if not _G.packer_plugins[plugin_name].loaded and string.match(module_name, module_pat) then + to_load[#to_load + 1] = plugin_name + end + end + + if #to_load > 0 then + require('packer.load')(to_load, {module = module_name}, _G.packer_plugins) + local loaded_mod = package.loaded[module_name] + if loaded_mod then + return function(modname) return loaded_mod end + end + end +end + +if not vim.g.packer_custom_loader_enabled then + table.insert(package.loaders, 1, lazy_load_module) + vim.g.packer_custom_loader_enabled = true +end + +-- Setup for: markdown-preview.nvim +time([[Setup for markdown-preview.nvim]], true) +try_loadstring("\27LJ\2\n=\0\0\2\0\4\0\0056\0\0\0009\0\1\0005\1\3\0=\1\2\0K\0\1\0\1\2\0\0\rmarkdown\19mkdp_filetypes\6g\bvim\0", "setup", "markdown-preview.nvim") +time([[Setup for markdown-preview.nvim]], false) +-- Setup for: undotree +time([[Setup for undotree]], true) +try_loadstring("\27LJ\2\n7\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\3\0=\1\2\0K\0\1\0\26undotree_WindowLayout\6g\bvim\0", "setup", "undotree") +time([[Setup for undotree]], false) +-- Config for: neo-tree.nvim +time([[Config for neo-tree.nvim]], true) +try_loadstring("\27LJ\2\n7\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\28plugins.configs.neotree\frequire\0", "config", "neo-tree.nvim") +time([[Config for neo-tree.nvim]], false) +-- Config for: kanagawa.nvim +time([[Config for kanagawa.nvim]], true) +try_loadstring("\27LJ\2\n\5\0\0\a\0#\0@6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\0026\1\3\0009\1\4\0019\1\5\1\18\3\1\0009\1\6\0015\4\a\0B\1\3\0016\1\0\0'\3\b\0B\1\2\0029\1\2\0015\3\t\0005\4\14\0005\5\f\0009\6\n\0009\6\v\6=\6\r\5=\5\15\0045\5\18\0009\6\16\0009\6\17\6=\6\19\0059\6\n\0009\6\v\6=\6\r\5=\5\20\0045\5\22\0009\6\n\0009\6\21\6=\6\r\5=\5\23\0045\5\25\0009\6\16\0009\6\24\6=\6\19\0059\6\n\0009\6\26\6=\6\r\5=\5\27\0045\5\29\0009\6\16\0009\6\28\6=\6\19\0059\6\n\0009\6\30\6=\6\r\5=\5\31\0045\5 \0009\6\16\0009\6\17\6=\6\19\0059\6\n\0009\6\v\6=\6\r\5=\5!\4=\4\"\3B\1\2\1K\0\1\0\14overrides\27NeogitCommitViewHeader\1\0\0\27NeogitDiffAddHighlight\badd\1\0\0\nadded\30NeogitDiffDeleteHighlight\vdelete\1\0\0\fremoved\31NeogitDiffContextHighlight\1\0\0\vchange\30NeogitHunkHeaderHighlight\afg\1\0\0\fchanged\bgit\21NeogitHunkHeader\1\0\0\abg\1\0\0\ttext\tdiff\1\0\3\17globalStatus\2\17dim_inactive\2\16transparent\2\rkanagawa\1\0\a\14vertright\b┣\nhoriz\b━\14horizdown\b┳\14verthoriz\b╋\rvertleft\b┨\fhorizup\b┻\tvert\b┃\vappend\14fillchars\bopt\bvim\nsetup\20kanagawa.colors\frequire\0", "config", "kanagawa.nvim") +time([[Config for kanagawa.nvim]], false) +-- Config for: which-key.nvim +time([[Config for which-key.nvim]], true) +try_loadstring("\27LJ\2\n;\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\14which-key\frequire\0", "config", "which-key.nvim") +time([[Config for which-key.nvim]], false) +-- Config for: telescope.nvim +time([[Config for telescope.nvim]], true) +try_loadstring("\27LJ\2\n>\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0#plugins.configs.telescope-nvim\frequire\0", "config", "telescope.nvim") +time([[Config for telescope.nvim]], false) +-- Config for: alpha-nvim +time([[Config for alpha-nvim]], true) +try_loadstring("\27LJ\2\n5\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\26plugins.configs.alpha\frequire\0", "config", "alpha-nvim") +time([[Config for alpha-nvim]], false) +-- Config for: rest.nvim +time([[Config for rest.nvim]], true) +try_loadstring("\27LJ\2\nU\0\0\4\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\1\2\0005\3\3\0B\1\2\1K\0\1\0\1\0\1\26skip_ssl_verification\2\nsetup\14rest-nvim\frequire\0", "config", "rest.nvim") +time([[Config for rest.nvim]], false) +-- Config for: null-ls.nvim +time([[Config for null-ls.nvim]], true) +try_loadstring("\27LJ\2\n7\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\28plugins.configs.null_ls\frequire\0", "config", "null-ls.nvim") +time([[Config for null-ls.nvim]], false) +-- Config for: inc-rename.nvim.git +time([[Config for inc-rename.nvim.git]], true) +try_loadstring("\27LJ\2\n<\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\15inc_rename\frequire\0", "config", "inc-rename.nvim.git") +time([[Config for inc-rename.nvim.git]], false) +-- Config for: pretty-fold.nvim +time([[Config for pretty-fold.nvim]], true) +try_loadstring("\27LJ\2\nL\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\14fill_char\6 \nsetup\16pretty-fold\frequire\0", "config", "pretty-fold.nvim") +time([[Config for pretty-fold.nvim]], false) +-- Config for: neogen +time([[Config for neogen]], true) +try_loadstring("\27LJ\2\nR\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\19snippet_engine\fluasnip\nsetup\vneogen\frequire\0", "config", "neogen") +time([[Config for neogen]], false) +-- Config for: nvim-lastplace +time([[Config for nvim-lastplace]], true) +try_loadstring("\27LJ\2\n\1\0\0\4\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\0025\3\6\0=\3\a\2B\0\2\1K\0\1\0\30lastplace_ignore_filetype\1\6\0\0\14gitcommit\14gitrebase\bsvn\rhgcommit\rfugitive\29lastplace_ignore_buftype\1\0\1\25lastplace_open_folds\2\1\4\0\0\rquickfix\vnofile\thelp\nsetup\19nvim-lastplace\frequire\0", "config", "nvim-lastplace") +time([[Config for nvim-lastplace]], false) +-- Config for: hydra.nvim +time([[Config for hydra.nvim]], true) +try_loadstring("\27LJ\2\n5\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\26plugins.configs.hydra\frequire\0", "config", "hydra.nvim") +time([[Config for hydra.nvim]], false) +-- Config for: nvim-neoclip.lua +time([[Config for nvim-neoclip.lua]], true) +try_loadstring("\27LJ\2\n8\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\29plugins.configs._neoclip\frequire\0", "config", "nvim-neoclip.lua") +time([[Config for nvim-neoclip.lua]], false) +-- Config for: neoscroll.nvim +time([[Config for neoscroll.nvim]], true) +try_loadstring("\27LJ\2\nW\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\20easing_function\rcircular\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") +time([[Config for neoscroll.nvim]], false) +-- Config for: hop.nvim +time([[Config for hop.nvim]], true) +try_loadstring("\27LJ\2\nU\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\tkeys\28etovxqpdygfblzhckisuran\nsetup\bhop\frequire\0", "config", "hop.nvim") +time([[Config for hop.nvim]], false) +-- Config for: stabilize.nvim +time([[Config for stabilize.nvim]], true) +try_loadstring("\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugins.configs._stabilize\frequire\0", "config", "stabilize.nvim") +time([[Config for stabilize.nvim]], false) +-- Config for: nvim-treesitter +time([[Config for nvim-treesitter]], true) +try_loadstring("\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugins.configs.treesitter\frequire\0", "config", "nvim-treesitter") +time([[Config for nvim-treesitter]], false) +-- Config for: nightfox.nvim +time([[Config for nightfox.nvim]], true) +try_loadstring("\27LJ\2\nk\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\foptions\1\0\0\1\0\2\17dim_inactive\2\16transparent\2\nsetup\rnightfox\frequire\0", "config", "nightfox.nvim") +time([[Config for nightfox.nvim]], false) +-- Config for: lsp_signature.nvim +time([[Config for lsp_signature.nvim]], true) +try_loadstring("\27LJ\2\n~\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\4\20floating_window\1\15toggle_key\n\16hint_prefix\5\16hint_enable\2\nsetup\18lsp_signature\frequire\0", "config", "lsp_signature.nvim") +time([[Config for lsp_signature.nvim]], false) +-- Config for: presence.nvim +time([[Config for presence.nvim]], true) +try_loadstring("\27LJ\2\nb\0\0\4\0\4\0\b6\0\0\0'\2\1\0B\0\2\2\18\2\0\0009\0\2\0005\3\3\0B\0\3\1K\0\1\0\1\0\1\22neovim_image_text\19How do I exit?\nsetup\rpresence\frequire\0", "config", "presence.nvim") +time([[Config for presence.nvim]], false) +-- Config for: fidget.nvim +time([[Config for fidget.nvim]], true) +try_loadstring("\27LJ\2\n>\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0#plugins.configs.fidget-spinner\frequire\0", "config", "fidget.nvim") +time([[Config for fidget.nvim]], false) +-- Config for: nvim-notify +time([[Config for nvim-notify]], true) +try_loadstring("\27LJ\2\n;\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0 plugins.configs.nvim-notify\frequire\0", "config", "nvim-notify") +time([[Config for nvim-notify]], false) +-- Config for: nvim-autopairs +time([[Config for nvim-autopairs]], true) +try_loadstring("\27LJ\2\n<\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") +time([[Config for nvim-autopairs]], false) +-- Config for: neogit +time([[Config for neogit]], true) +try_loadstring("\27LJ\2\nz\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\17integrations\1\0\1\rdiffview\2\1\0\1 disable_commit_confirmation\2\nsetup\vneogit\frequire\0", "config", "neogit") +time([[Config for neogit]], false) +-- Config for: nvim-lspconfig +time([[Config for nvim-lspconfig]], true) +try_loadstring("\27LJ\2\nW\0\0\3\0\4\0\n6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\0016\0\0\0'\2\3\0B\0\2\1K\0\1\0\24plugins.configs.lsp\nsetup\nmason\frequire\0", "config", "nvim-lspconfig") +time([[Config for nvim-lspconfig]], false) +-- Config for: lsp_lines.nvim +time([[Config for lsp_lines.nvim]], true) +try_loadstring("\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14lsp_lines\frequire\0", "config", "lsp_lines.nvim") +time([[Config for lsp_lines.nvim]], false) +-- Config for: mini.nvim +time([[Config for mini.nvim]], true) +try_loadstring("\27LJ\2\n\1\0\0\4\0\a\0\0156\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\0016\0\0\0'\2\3\0B\0\2\0029\0\2\0005\2\5\0005\3\4\0=\3\6\2B\0\2\1K\0\1\0\rmappings\1\0\0\1\0\a\vdelete\ads\19update_n_lines\5\tfind\5\14find_left\5\14highlight\5\freplace\acs\badd\ags\18mini.surround\nsetup\20mini.cursorword\frequire\0", "config", "mini.nvim") +time([[Config for mini.nvim]], false) +-- Config for: nvim-cmp +time([[Config for nvim-cmp]], true) +try_loadstring("\27LJ\2\n4\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\25plugins.configs._cmp\frequire\0", "config", "nvim-cmp") +time([[Config for nvim-cmp]], false) +-- Config for: workspaces.nvim +time([[Config for workspaces.nvim]], true) +try_loadstring("\27LJ\2\n]\0\0\5\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\1\2\0005\3\4\0005\4\3\0=\4\5\3B\1\2\1K\0\1\0\nhooks\1\0\0\1\0\1\topen\fNeotree\nsetup\15workspaces\frequire\0", "config", "workspaces.nvim") +time([[Config for workspaces.nvim]], false) +-- Load plugins in order defined by `after` +time([[Sequenced loading]], true) +vim.cmd [[ packadd neorg ]] + +-- Config for: neorg +try_loadstring("\27LJ\2\n6\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\27plugins.configs._neorg\frequire\0", "config", "neorg") + +vim.cmd [[ packadd nvim-treesitter-textobjects ]] + +-- Config for: nvim-treesitter-textobjects +try_loadstring("\27LJ\2\n\4\0\0\6\0\20\0\0236\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\18\0005\3\6\0005\4\3\0005\5\4\0=\5\5\4=\4\a\0035\4\b\0005\5\t\0=\5\n\0045\5\v\0=\5\f\0045\5\r\0=\5\14\0045\5\15\0=\5\16\4=\4\17\3=\3\19\2B\0\2\1K\0\1\0\16textobjects\1\0\0\tmove\22goto_previous_end\1\0\3\b[ce\17@class.outer\b[fe\20@function.outer\b[bs\17@block.outer\24goto_previous_start\1\0\3\b[fs\20@function.outer\b[bs\17@block.outer\b[cs\17@class.outer\18goto_next_end\1\0\3\b]be\17@block.outer\b]fe\20@function.outer\b]ce\17@class.outer\20goto_next_start\1\0\3\b]bs\17@block.outer\b]fs\20@function.outer\b]cs\17@class.outer\1\0\2\venable\2\14set_jumps\2\vselect\1\0\0\fkeymaps\1\0\6\aif\20@function.inner\aab\17@block.outer\aib\17@block.inner\aic\17@class.inner\aaf\20@function.outer\aac\17@class.outer\1\0\2\venable\2\14lookahead\2\nsetup\28nvim-treesitter.configs\frequire\0", "config", "nvim-treesitter-textobjects") + +vim.cmd [[ packadd tokyonight.nvim ]] +vim.cmd [[ packadd LuaSnip ]] +vim.cmd [[ packadd nvim-dap ]] + +-- Config for: nvim-dap +try_loadstring("\27LJ\2\ne\0\0\3\0\4\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\0016\0\0\0'\2\3\0B\0\2\1K\0\1\0\25plugins.configs._dap\18load_launchjs\19dap.ext.vscode\frequire\0", "config", "nvim-dap") + +vim.cmd [[ packadd nvim-dap-virtual-text ]] + +-- Config for: nvim-dap-virtual-text +try_loadstring("\27LJ\2\nG\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\26nvim-dap-virtual-text\frequire\0", "config", "nvim-dap-virtual-text") + +vim.cmd [[ packadd nvim-dap-python ]] + +-- Config for: nvim-dap-python +try_loadstring("\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugins.configs.python-dap\frequire\0", "config", "nvim-dap-python") + +vim.cmd [[ packadd nvim-dap-ui ]] + +-- Config for: nvim-dap-ui +try_loadstring("\27LJ\2\n6\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\27plugins.configs.dap-ui\frequire\0", "config", "nvim-dap-ui") + +time([[Sequenced loading]], false) + +-- Command lazy-loads +time([[Defining lazy-load commands]], true) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file ZenMode lua require("packer.load")({'zen-mode.nvim'}, { cmd = "ZenMode", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file Neoformat lua require("packer.load")({'neoformat'}, { cmd = "Neoformat", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file UndotreeToggle lua require("packer.load")({'undotree'}, { cmd = "UndotreeToggle", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file CommentToggle lua require("packer.load")({'nvim-comment'}, { cmd = "CommentToggle", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file new lua require("packer.load")({'mkdir.nvim'}, { cmd = "new", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file SymbolsOutline lua require("packer.load")({'symbols-outline.nvim'}, { cmd = "SymbolsOutline", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file SymbolsOutlineOpen lua require("packer.load")({'symbols-outline.nvim'}, { cmd = "SymbolsOutlineOpen", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file SymbolsOutlineClose lua require("packer.load")({'symbols-outline.nvim'}, { cmd = "SymbolsOutlineClose", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file Trouble lua require("packer.load")({'trouble.nvim'}, { cmd = "Trouble", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file TroubleClose lua require("packer.load")({'trouble.nvim'}, { cmd = "TroubleClose", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file TroubleToggle lua require("packer.load")({'trouble.nvim'}, { cmd = "TroubleToggle", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file TroubleRefresh lua require("packer.load")({'trouble.nvim'}, { cmd = "TroubleRefresh", l1 = , l2 = , bang = , args = , mods = "" }, _G.packer_plugins)]]) +time([[Defining lazy-load commands]], false) + +-- Keymap lazy-loads +time([[Defining lazy-load keymaps]], true) +vim.api.nvim_set_keymap("", "/", "lua require('packer.load')({'nvim-hlslens'}, { keys = '/', prefix = '' }, _G.packer_plugins)", { noremap = true, silent = true }) +time([[Defining lazy-load keymaps]], false) + +vim.cmd [[augroup packer_load_aucmds]] +vim.cmd [[au!]] + -- Filetype lazy-loads +time([[Defining lazy-load filetype autocommands]], true) +vim.cmd [[au FileType markdown ++once lua require("packer.load")({'markdown-preview.nvim'}, { ft = "markdown" }, _G.packer_plugins)]] +time([[Defining lazy-load filetype autocommands]], false) + -- Event lazy-loads +time([[Defining lazy-load event autocommands]], true) +vim.cmd [[au BufRead * ++once lua require("packer.load")({'gitsigns.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] +vim.cmd [[au BufRead Cargo.toml ++once lua require("packer.load")({'crates.nvim'}, { event = "BufRead Cargo.toml" }, _G.packer_plugins)]] +vim.cmd [[au BufEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'friendly-snippets', 'nvim-colorizer.lua', 'nvim-web-devicons', 'todo-comments.nvim'}, { event = "BufEnter *" }, _G.packer_plugins)]] +time([[Defining lazy-load event autocommands]], false) +vim.cmd("augroup END") +if should_profile then save_profiles() end + +end) + +if not no_errors then + error_msg = error_msg:gsub('"', '\\"') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') +end diff --git a/dots/.config/nvim/config/lua/plugins/autocmds.lua b/dots/.config/nvim/config/lua/plugins/autocmds.lua new file mode 100755 index 00000000..08a47c24 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/autocmds.lua @@ -0,0 +1,31 @@ +vim.api.nvim_create_autocmd('BufWritePre', { + pattern = '*', + callback = function() + local filetype = vim.bo.filetype + local neoformat_types = { 'sh' } + local ignore_types = { 'sql' } + + for _, ig_type in ipairs(ignore_types) do + if filetype == ig_type then + return + end + end + + for _, nf_type in ipairs(neoformat_types) do + if filetype == nf_type then + vim.cmd('Neoformat') + return + end + end + + vim.cmd('lua vim.lsp.buf.format({})') + end, +}) + +vim.api.nvim_create_autocmd('BufWritePost', { + pattern = '**/nvim/lua/plugins/plugins.lua', + callback = function() + vim.notify('Compiling Packer') + require('packer').compile() + end, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/_cmp.lua b/dots/.config/nvim/config/lua/plugins/configs/_cmp.lua new file mode 100755 index 00000000..f7dbf0cf --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/_cmp.lua @@ -0,0 +1,240 @@ +local cmp = require('cmp') +local types = require('cmp.types') +local str = require('cmp.utils.str') +local compare = cmp.config.compare +local luasnip = require('luasnip') + +local kind_icons = { + Text = '', + Method = '', + Function = '', + Constructor = '', + Field = '', + Variable = '', + Class = 'ﴯ', + Interface = '', + Module = '', + Property = 'ﰠ', + Unit = '', + Value = '', + Enum = '', + Keyword = '', + Snippet = '', + Color = '', + File = '', + Reference = '', + Folder = '', + EnumMember = '', + Constant = '', + Struct = '', + Event = '', + Operator = '', + TypeParameter = '', +} + +-- Load Snippets +require('luasnip.loaders.from_vscode').lazy_load() + +local border = { + { '╭', 'CmpBorder' }, + { '─', 'CmpBorder' }, + { '╮', 'CmpBorder' }, + { '│', 'CmpBorder' }, + { '╯', 'CmpBorder' }, + { '─', 'CmpBorder' }, + { '╰', 'CmpBorder' }, + { '│', 'CmpBorder' }, +} + +cmp.setup({ + formatting = { + fields = { + cmp.ItemField.Kind, + cmp.ItemField.Abbr, + cmp.ItemField.Menu, + }, + format = function(entry, vim_item) + -- Get the full snippet (and only keep first line) + local word = entry:get_insert_text() + if entry.completion_item.insertTextFormat == types.lsp.InsertTextFormat.Snippet then + word = vim.lsp.util.parse_snippet(word) + end + word = str.oneline(word) + + -- concatenates the string + local max = 50 + if string.len(word) >= max then + local before = string.sub(word, 1, math.floor((max - 3) / 2)) + word = before .. '...' + end + + if entry.completion_item.insertTextFormat == types.lsp.InsertTextFormat.Snippet + and string.sub(vim_item.abbr, -1, -1) == '~' + then + word = word .. '~' + end + vim_item.abbr = word + -- Kind icons + vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind + -- Source + vim_item.menu = ({ + fuzzy_buffer = '[Buffer]', + nvim_lsp = '[Lsp]', + luasnip = '[LuaSnip]', + path = '[Path]', + calc = '[Calculator]', + neorg = '[Neorg]', + emoji = '[Emoji]', + zsh = '[Zsh]', + crates = '[Crates]', + cmdline_history = '[Cmd History]', + rg = '[Ripgrep]', + npm = '[Npm],', + conventionalcommits = '[Commit]', + })[entry.source.name] + return vim_item + end, + }, + window = { + documentation = { + border = border, + }, + completion = { + border = border, + }, + }, + experimental = { + ghost_text = true, + native_menu = false, + }, + snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + end, + }, + mapping = { + [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), + [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), + [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), + [''] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. + [''] = cmp.mapping({ + i = cmp.mapping.abort(), + c = cmp.mapping.close(), + }), + [''] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + [''] = cmp.mapping(function(fallback) + if luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { 'i', 's' }), + [''] = cmp.mapping(function(fallback) + if luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { 'i', 's' }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + else + fallback() + end + end, { 'i', 's' }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { 'i', 's' }), + }, + sources = cmp.config.sources({ + { name = 'nvim_lsp', priority = 10 }, + { name = 'luasnip', priority = 9 }, -- For luasnip users. + { name = 'fuzzy_buffer', priority = 8 }, + { name = 'rg', priority = 7 }, + { name = 'path', priority = 6 }, + { name = 'zsh', priority = 5 }, + { name = 'emoji', keyword_length = 2 }, + { name = 'neorg' }, + { name = 'calc' }, + { name = 'npm', keyword_length = 2 }, + { + name = 'dictionary', + keyword_length = 2, + }, + }), + sorting = { + comparators = { + compare.score, + compare.offset, + compare.recently_used, + compare.exact, + require('cmp_fuzzy_buffer.compare'), + compare.kind, + compare.sort_text, + compare.length, + compare.order, + }, + }, +}) + +-- Git Commit Completions +cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'conventionalcommits', priority = 20 }, + }), +}) + +cmp.setup.filetype('NeogitCommitMesssage', { + sources = cmp.config.sources({ + { name = 'conventionalcommits', priority = 20 }, + }), +}) + +cmp.setup.filetype('toml', { + sources = cmp.config.sources({ + { name = 'crates' }, + }), +}) + +-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline('/', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'fuzzy_buffer' }, + { name = 'cmdline_history' }, + }), +}) + +cmp.setup.cmdline('?', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'fuzzy_buffer' }, + { name = 'cmdline_history' }, + }), +}) + +cmp.setup.cmdline('@', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'fuzzy_buffer' }, + { name = 'cmdline_history' }, + }), +}) + +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' }, + { name = 'cmdline' }, + { name = 'cmdline_history' }, + }), +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/_dap.lua b/dots/.config/nvim/config/lua/plugins/configs/_dap.lua new file mode 100755 index 00000000..3e91509d --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/_dap.lua @@ -0,0 +1,67 @@ +local dap = require('dap') +local async = require('plenary.async') + +--- Gets a path for a given program in the environment +---@param program @The string of a program in the PATH +---@return @The full path to the program if found, or nil if not +local function get_program_path(program) + local home = os.getenv('HOME') + local program_path = home .. '/.local/share/nvim/mason/packages/' .. program .. '/' .. program + return program_path +end + +local lldb_path = get_program_path('lldb-vscode') +-- Adapaters +dap.adapters.lldb = { + type = 'executable', + command = lldb_path, + name = 'lldb', +} + +dap.adapters.coreclr = { + type = 'executable', + command = get_program_path('netcoredbg'), + args = { '--interpreter=vscode' }, +} + +-- configurations +dap.configurations.cpp = { + { + name = 'Launch', + type = 'lldb', + request = 'launch', + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + cwd = '${workspaceFolder}', + stopOnEntry = false, + targetArchitecture = 'arm64', + args = {}, + + -- if you change `runInTerminal` to true, you might need to change the yama/ptrace_scope setting: + -- + -- echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + -- + -- Otherwise you might get the following error: + -- + -- Error on launch: Failed to attach to the target process + -- + -- But you should be aware of the implications: + -- https://www.kernel.org/doc/html/latest/admin-guide/LSM/Yama.html + runInTerminal = false, + }, +} + +dap.configurations.c = dap.configurations.cpp +dap.configurations.rust = dap.configurations.cpp + +dap.configurations.cs = { + { + type = 'coreclr', + name = 'launch - netcoredbg', + request = 'launch', + program = function() + return vim.fn.input('Path to dll: ', vim.fn.getcwd() .. '/bin/Debug/', 'file') + end, + }, +} diff --git a/dots/.config/nvim/config/lua/plugins/configs/_neoclip.lua b/dots/.config/nvim/config/lua/plugins/configs/_neoclip.lua new file mode 100755 index 00000000..1aaf7f23 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/_neoclip.lua @@ -0,0 +1,3 @@ +require('neoclip').setup({ + enable_persistent_history = true, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/_neorg.lua b/dots/.config/nvim/config/lua/plugins/configs/_neorg.lua new file mode 100755 index 00000000..13782bcf --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/_neorg.lua @@ -0,0 +1,50 @@ +local neorg = require('neorg') + +neorg.setup({ + load = { + ['core.defaults'] = {}, + ['core.norg.concealer'] = {}, + ['core.norg.esupports.metagen'] = { + config = { + type = 'auto', + }, + }, + ['core.integrations.nvim-cmp'] = { + config = {}, + }, + ['core.norg.completion'] = { + config = { + engine = 'nvim-cmp', + }, + }, + ['core.keybinds'] = { + config = { + default_keybinds = true, + -- norg_leader = "-" + }, + }, + ['core.norg.dirman'] = { + config = { + workspaces = { + default = '~/.notes', -- Format: = + }, + autochdir = true, -- Automatically change the directory to the current workspace's root every time + index = 'index.norg', -- The name of the main (root) .norg file + last_workspace = vim.fn.stdpath('cache') .. '/neorg_last_workspace.txt', -- The location to write and read the workspace cache file + }, + }, + ['core.integrations.telescope'] = {}, + ['core.norg.qol.toc'] = {}, + ['core.gtd.base'] = { + config = { + workspace = 'default', + }, + }, + ['core.gtd.ui'] = { + config = {}, + }, + ['core.gtd.helpers'] = { + config = {}, + }, + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/_stabilize.lua b/dots/.config/nvim/config/lua/plugins/configs/_stabilize.lua new file mode 100755 index 00000000..c3c6b362 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/_stabilize.lua @@ -0,0 +1,20 @@ +require('stabilize').setup({ + -- stabilize window even when current cursor position will be hidden behind new window + force = true, + -- set context mark to register on force event which can be jumped to with ' + forcemark = nil, + -- do not manage windows matching these file/buftypes + ignore = { + filetype = { 'packer', 'Dashboard', 'Trouble', 'TelescopePrompt' }, + buftype = { + 'packer', + 'Dashboard', + 'terminal', + 'quickfix', + 'loclist', + 'LspInstall', + }, + }, + -- comma-separated list of autocmds that wil trigger the plugins window restore function + nested = nil, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/_windline.lua b/dots/.config/nvim/config/lua/plugins/configs/_windline.lua new file mode 100755 index 00000000..25db6767 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/_windline.lua @@ -0,0 +1,7 @@ +-- Load Animations +require('wlanimation') +-- Load a line (these include setup) +require('wlsample.bubble2') + +-- In the future I may want to implement +-- my own, for now much too lazy for that diff --git a/dots/.config/nvim/config/lua/plugins/configs/alpha.lua b/dots/.config/nvim/config/lua/plugins/configs/alpha.lua new file mode 100644 index 00000000..d88f95fc --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/alpha.lua @@ -0,0 +1,134 @@ +local alpha = require('alpha') +local startify = require('alpha.themes.startify') +local dashboard = require('alpha.themes.dashboard') + +-- Set header +local header = { + type = 'text', + val = { + ' ', + ' ', + ' ', + ' ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ ', + ' ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ', + ' ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ', + ' ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ', + ' ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ', + ' ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ ', + ' ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ', + ' ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ', + ' ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ ', + ' ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ', + ' ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ ', + ' ', + }, + opts = { + position = 'center', + hl = 'Function', + }, +} + +-- Subheader, plugin count +local get_plugins = function() + local num_plugins_loaded = #vim.fn.globpath(vim.fn.stdpath('data') .. '/site/pack/packer/start', '*', 0, 1) + local num_plugins_total = #vim.tbl_keys(packer_plugins) + if num_plugins_total <= 1 then + return num_plugins_loaded .. ' / ' .. num_plugins_total .. ' plugin  loaded' + else + return num_plugins_loaded .. ' / ' .. num_plugins_total .. ' plugins  loaded' + end +end + +local plugin_count = { + type = 'text', + val = { + get_plugins(), + }, + opts = { + hl = 'Comment', + position = 'center', + }, +} + +-- Menu +local button = function(sc, txt, keybind) + local sc_ = sc:gsub('%s', ''):gsub('SPC', '') + + local opts = { + position = 'center', + text = txt, + shortcut = sc, + cursor = 4, + width = 30, + align_shortcut = 'right', + hl_shortcut = 'Number', + hl = 'Function', + } + if keybind then + opts.keymap = { 'n', sc_, keybind, { noremap = true, silent = true } } + end + + return { + type = 'button', + val = txt, + on_press = function() + local key = vim.api.nvim_replace_termcodes(sc_, true, false, true) + vim.api.nvim_feedkeys(key, 'normal', false) + end, + opts = opts, + } +end + +-- Set menu +local buttons = { + type = 'group', + val = { + button('e', ' New File', ':ene startinsert '), + button('f', ' Find File', ':Telescope find_files'), + button('r', ' Recent', ':Telescope oldfiles'), + button('s', ' Settings', ':e ~/.config/nvim/'), + button('u', ' Update Plugins', ':PackerSync'), + button('q', ' Quit', ':qa'), + }, + opts = { + spacing = 0, + }, +} + +-- Footer 2, fortune +local fortune = { + type = 'text', + val = require('alpha.fortune')(), + opts = { + position = 'center', + hl = 'Comment', + }, +} + +local padding = function() + return { type = 'padding', val = 4 } +end +local opts = { + layout = { + padding(), + header, + padding(), + plugin_count, + padding(), + buttons, + padding(), + fortune, + }, + opts = { + margin = 5, + }, +} +-- Send config to alpha +alpha.setup(opts) + +vim.api.nvim_create_autocmd('FileType', { + pattern = 'alpha', + callback = function() + vim.opt_local.cursorline = false + end, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/bufferline.lua b/dots/.config/nvim/config/lua/plugins/configs/bufferline.lua new file mode 100755 index 00000000..abd50440 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/bufferline.lua @@ -0,0 +1,18 @@ +local bufferline = require('bufferline') + +bufferline.setup({ + options = { + numbers = function(opts) + return string.format('%s', opts.id) + end, + diagnostics = 'nvim_lsp', + offsets = { + { + filetype = 'NvimTree', + text = 'File Explorer', + highlight = 'Directory', + text_align = 'left', + }, + }, + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/coq.lua b/dots/.config/nvim/config/lua/plugins/configs/coq.lua new file mode 100755 index 00000000..3b0e0290 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/coq.lua @@ -0,0 +1,10 @@ +-- Alias for vim.g +local g = vim.g + +-- Run COQ on open +g.coq_settings = { + auto_start = 'shut-up', + limits = { + completion_manual_timeout = 2000, + }, +} diff --git a/dots/.config/nvim/config/lua/plugins/configs/dap-ui.lua b/dots/.config/nvim/config/lua/plugins/configs/dap-ui.lua new file mode 100755 index 00000000..5c0df7e9 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/dap-ui.lua @@ -0,0 +1,9 @@ +local fn = vim.fn + +require('dapui').setup({}) + +fn.sign_define('DapBreakpoint', { text = '● ', texthl = 'DiagnosticSignError', linehl = '', numhl = '' }) +fn.sign_define('DapBreakpointCondition', { text = '● ', texthl = 'DiagnosticSignWarn', linehl = '', numhl = '' }) +fn.sign_define('DapLogPoint', { text = '● ', texthl = 'DiagnosticSignInfo', linehl = '', numhl = '' }) +fn.sign_define('DapStopped', { text = '→ ', texthl = 'DiagnosticSignWarn', linehl = '', numhl = '' }) +fn.sign_define('DapBreakpointReject', { text = '●', texthl = 'DiagnosticSignHint', linehl = '', numhl = '' }) diff --git a/dots/.config/nvim/config/lua/plugins/configs/diag-scrollbar.lua b/dots/.config/nvim/config/lua/plugins/configs/diag-scrollbar.lua new file mode 100755 index 00000000..aa479f3c --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/diag-scrollbar.lua @@ -0,0 +1,18 @@ +local colors = require('tokyonight.colors').setup() +require('scrollbar').setup({ + handle = { + color = colors.bg_highlight, + }, + marks = { + Search = { color = colors.orange }, + Error = { color = colors.error }, + Warn = { color = colors.warning }, + Info = { color = colors.info }, + Hint = { color = colors.hint }, + Misc = { color = colors.purple }, + }, + handlers = { + diagnostic = true, + search = true, + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/fidget-spinner.lua b/dots/.config/nvim/config/lua/plugins/configs/fidget-spinner.lua new file mode 100755 index 00000000..0c1fb887 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/fidget-spinner.lua @@ -0,0 +1,10 @@ +local fidget = require('fidget') + +fidget.setup({ + text = { + spinner = 'dots', + }, + window = { + blend = 0, + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/file-explorer.lua b/dots/.config/nvim/config/lua/plugins/configs/file-explorer.lua new file mode 100755 index 00000000..4ccf865b --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/file-explorer.lua @@ -0,0 +1,18 @@ +local nvim_tree = require('nvim-tree.configs') + +nvim_tree.setup({ + highlight = { + enable = true, + additional_vim_regex_highlighting = true, + disable = { + -- Ansible support reasons + 'ansible.yaml', + }, + }, + matchup = { + enable = true, + }, + autotag = { + enable = true, + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/hydra.lua b/dots/.config/nvim/config/lua/plugins/configs/hydra.lua new file mode 100644 index 00000000..a5f4966b --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/hydra.lua @@ -0,0 +1,117 @@ +local hydra = require('hydra') + +-- Side Scroll +hydra({ + name = 'Side scroll', + config = { + { + position = 'bottom-right', + border = 'rounded', + }, + }, + mode = 'n', + body = 'z', + heads = { + { 'h', '5zh' }, + { 'l', '5zl', { desc = '←/→' } }, + { 'H', 'zH' }, + { 'L', 'zL', { desc = 'half screen ←/→' } }, + }, +}) + +-- Git Integration +local gitsigns = require('gitsigns') + +local hint = [[ + _J_: next hunk _s_: stage hunk _d_: show deleted _b_: blame line + _K_: prev hunk _u_: undo stage hunk _p_: preview hunk _B_: blame show full + ^ ^ _S_: stage buffer ^ ^ _/_: show base file + ^ + ^ ^ __: Neogit _q_: exit +]] + +hydra({ + hint = hint, + config = { + color = 'pink', + invoke_on_body = true, + hint = { + position = 'bottom-right', + border = 'rounded', + }, + on_enter = function() + vim.bo.modifiable = false + gitsigns.toggle_signs(true) + gitsigns.toggle_linehl(true) + end, + on_exit = function() + gitsigns.toggle_signs(false) + gitsigns.toggle_linehl(false) + gitsigns.toggle_deleted(false) + end, + }, + mode = { 'n', 'x' }, + body = 'G', + heads = { + { + 'J', + function() + if vim.wo.diff then + return ']c' + end + vim.schedule(function() + gitsigns.next_hunk() + end) + return '' + end, + { expr = true }, + }, + { + 'K', + function() + if vim.wo.diff then + return '[c' + end + vim.schedule(function() + gitsigns.prev_hunk() + end) + return '' + end, + { expr = true }, + }, + { 's', ':Gitsigns stage_hunk', { silent = true } }, + { 'u', gitsigns.undo_stage_hunk }, + { 'S', gitsigns.stage_buffer }, + { 'p', gitsigns.preview_hunk }, + { 'd', gitsigns.toggle_deleted, { nowait = true } }, + { 'b', gitsigns.blame_line }, + { + 'B', + function() + gitsigns.blame_line({ full = true }) + end, + }, + { '/', gitsigns.show, { exit = true } }, -- show the base of the file + { '', 'Neogit', { exit = true } }, + { 'q', nil, { exit = true, nowait = true } }, + }, +}) + +-- Hydra to repeat expanding windows +hydra({ + name = 'Window Sizing', + mode = 'n', + body = '', + config = { + { + position = 'bottom-right', + border = 'rounded', + }, + }, + heads = { + { '<', '2<' }, + { '>', '2>', { desc = '←/→' } }, + { '+', '2+' }, + { '-', '2-', { desc = '↑/↓' } }, + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/indent-blankline.lua b/dots/.config/nvim/config/lua/plugins/configs/indent-blankline.lua new file mode 100755 index 00000000..c154b693 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/indent-blankline.lua @@ -0,0 +1,25 @@ +local g = vim.g + +g.indent_blankline_char = '▏' +g.indent_blankline_context_char = '▏' + +-- Disable indent-blankline on these pages. +g.indent_blankline_filetype_exclude = { + 'help', + 'terminal', + 'alpha', + 'packer', + 'lsp-installer', + 'lspinfo', + 'mason.nvim', +} + +g.indent_blankline_buftype_exclude = { 'terminal' } +g.indent_blankline_show_trailing_blankline_indent = false +g.indent_blankline_show_first_indent_level = true + +require('indent_blankline').setup({ + -- space_char_blankline = " ", + show_current_context = true, + show_current_context_start = true, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/lsp.lua b/dots/.config/nvim/config/lua/plugins/configs/lsp.lua new file mode 100755 index 00000000..ba3ad067 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/lsp.lua @@ -0,0 +1,187 @@ +local mason_lspconfig = require("mason-lspconfig") +local lspconfig = require("lspconfig") +local async = require("plenary.async") + +-- NOTE: Keep this near top +mason_lspconfig.setup({ + automatic_installation = true, +}) + +local function on_attach(client, bufnr) + -- Set autocommands conditional on server_capabilities + async.run(function() + vim.notify + .async("Attached server " .. client.name, "info", { + title = "Lsp Attach", + }).events + .close() + end) +end + +local lsp_capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities()) +local opts = { + capabilities = lsp_capabilities, + on_attach = on_attach, +} + +-- INFO: RUST LSP +-- In the scenario we're using rust it makes more sense to use rust-tools +-- see: https://github.com/williamboman/nvim-lsp-installer/wiki/Rust +-- +-- NOTE: Requires rust_analyzer +-- +-- Dap installation, required vscode and the following extension to be installed: +-- https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb +-- +-- locate it with `find ~/ -name ` +local extension_path = os.getenv("HOME") .. "/.vscode/extensions/vadimcn.vscode-lldb-1.6.10/" +local codelldb_path = extension_path .. "adapter/codelldb" +local liblldb_path = extension_path .. "lldb/lib/liblldb.dylib" + +local rustopts = { + server = opts, + dap = { + adapter = require("rust-tools.dap").get_codelldb_adapter(codelldb_path, liblldb_path), + }, + tools = { + hover_actions = { auto_focus = true }, + crate_graph = { + backend = "svg", + output = "Rust-Crate-Graph-" .. os.time() .. ".svg", + }, + }, +} +require("rust-tools").setup(rustopts) + +-- NOTE: ANSIBLE LSP +-- I use ansible a lot, define exceptions for servers that can use +-- server:setup & vim.cmd at the bottom here +lspconfig.ansiblels.setup({ + opts, + settings = { + ansible = { + ansible = { + useFullyQualifiedCollectionNames = true, + path = "ansible", + }, + ansibleLint = { + enabled = true, + path = "ansible-lint", + }, + python = { + interpreterPath = "python3", + }, + completion = { + provideRedirectModules = false, + }, + }, + }, +}) + +-- NOTE: LUA LSP +local luadev = require("lua-dev").setup({ + lspconfig = opts, +}) + +lspconfig.sumneko_lua.setup(luadev) + +-- NOTE: SQL LSP +lspconfig.sqls.setup({ + on_attach = function(client, bufnr) + require("sqls").on_attach(client, bufnr) + on_attach(client, bufnr) + end, +}) + +-- NOTE: PYTHON LSP +lspconfig.pylsp.setup({ + filetypes = { "python" }, + settings = { + formatCommand = { "black" }, + pylsp = { + plugins = { + jedi_completion = { + include_params = true, + fuzzy = true, + eager = true, + }, + jedi_signature_help = { enabled = true }, + pyflakes = { enabled = true }, + pycodestyle = { + enabled = true, + ignore = { "E501", "E231", "W503", "E731" }, + maxLineLength = 120, + }, + mypy = { enabled = true }, + yapf = { enabled = true }, + rope_completion = { + enabled = true, + eager = true, + }, + }, + }, + }, + capabilities = lsp_capabilities, + on_attach = on_attach, +}) + +lspconfig.yamlls.setup({ + settings = { + yaml = { + schemas = { + ["https://json.schemastore.org/github-workflow.json"] = "/.github/workflows/*", + ["https://raw.githubusercontent.com/microsoft/azure-pipelines-vscode/master/service-schema.json"] = { + "/azure-pipeline*.y*l", + "/*.azure", + }, + ["https://raw.githubusercontent.com/docker/cli/master/cli/compose/schema/data/config_schema_v3.10.json"] = "/docker-compose.y*l", + ["https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json"] = "/.gitlab-ci.yml", + ["https://json.schemastore.org/travis.json"] = "/.travis.y*l", + ["https://raw.githubusercontent.com/ansible-community/schemas/main/f/ansible-inventory.json"] = { + "/inventories/*/*.y*l", + "/inventory/*.y*l", + }, + ["https://raw.githubusercontent.com/ansible-community/schemas/main/f/ansible-vars.json"] = { + "playbooks/vars/*.y*l", + "vars/*.y*l", + "defaults/*.y*l", + "host_vars/*.y*l", + "group_vars/*.y*l", + }, + }, + }, + }, + capabilities = lsp_capabilities, + on_attach = on_attach, +}) + +lspconfig.csharp_ls.setup({ + handlers = { + ["textDocument/definition"] = require("csharpls_extended").handler, + }, + capabilities = lsp_capabilities, + on_attach = on_attach, +}) + +lspconfig.bashls.setup({}) + +-- NOTE: GENERIC LSP SERVERS +for _, server in ipairs({ + "clangd", + "cmake", + "dockerls", + "eslint", + "html", + "jdtls", + "kotlin_language_server", + "terraformls", + "tflint", + "tsserver", + "vimls", + "vuels", + "tsserver", + "jsonls", + "pyright", +}) do + lspconfig[server].setup(opts) +end diff --git a/dots/.config/nvim/config/lua/plugins/configs/neoformat.lua b/dots/.config/nvim/config/lua/plugins/configs/neoformat.lua new file mode 100755 index 00000000..72a2c975 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/neoformat.lua @@ -0,0 +1,8 @@ +vim.cmd([[ +let g:neoformat_python_black = { + \ 'exe': 'black', + \ 'stdin': 1, + \ 'args': ['-q', '-'], + \ } +let g:neoformat_enabled_python = ['black'] +]]) diff --git a/dots/.config/nvim/config/lua/plugins/configs/neotree.lua b/dots/.config/nvim/config/lua/plugins/configs/neotree.lua new file mode 100644 index 00000000..1492e22f --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/neotree.lua @@ -0,0 +1,14 @@ +local neotree = require('neo-tree') + +vim.g.neo_tree_remove_legacy_commands = 1 +neotree.setup({ + filesystem = { + use_libuv_file_watcher = true, + }, + window = { + mappings = { + ['/'] = 'noop', + ['/'] = {}, + }, + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/null_ls.lua b/dots/.config/nvim/config/lua/plugins/configs/null_ls.lua new file mode 100755 index 00000000..04c9c406 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/null_ls.lua @@ -0,0 +1,17 @@ +local null_ls = require('null-ls') + +null_ls.setup({ + sources = { + null_ls.builtins.formatting.shfmt.with({ + extra_args = { '-i 4' }, + }), + null_ls.builtins.diagnostics.shellcheck, + null_ls.builtins.code_actions.shellcheck, + null_ls.builtins.diagnostics.hadolint, + null_ls.builtins.diagnostics.ansiblelint, + null_ls.builtins.code_actions.refactoring, + null_ls.builtins.formatting.black, + null_ls.builtins.formatting.stylua, + null_ls.builtins.formatting.prettier, + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/nvim-colorizer.lua b/dots/.config/nvim/config/lua/plugins/configs/nvim-colorizer.lua new file mode 100755 index 00000000..a6f2cf4e --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/nvim-colorizer.lua @@ -0,0 +1,3 @@ +local colorizer = require('colorizer') +colorizer.setup({}) +vim.cmd('ColorizerAttachToBuffer') diff --git a/dots/.config/nvim/config/lua/plugins/configs/nvim-notify.lua b/dots/.config/nvim/config/lua/plugins/configs/nvim-notify.lua new file mode 100755 index 00000000..5f2f5510 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/nvim-notify.lua @@ -0,0 +1,34 @@ +require('notify').setup({ + -- Animation style (see below for details) + stages = 'fade_in_slide_out', + + -- Function called when a new window is opened, use for changing win settings/config + on_open = nil, + + -- Function called when a window is closed + on_close = nil, + + -- Render function for notifications. See notify-render() + render = 'default', + + -- Default timeout for notifications + timeout = 5000, + + -- For stages that change opacity this is treated as the highlight behind the window + -- Set this to either a highlight group, an RGB hex value e.g. "#000000" or a function returning an RGB code for dynamic values + background_colour = '#000000', + + -- Minimum width for notification windows + minimum_width = 50, + + -- Icons for the different levels + icons = { + ERROR = '', + WARN = '', + INFO = '', + DEBUG = '', + TRACE = '✎', + }, +}) + +vim.notify = require('notify') diff --git a/dots/.config/nvim/config/lua/plugins/configs/python-dap.lua b/dots/.config/nvim/config/lua/plugins/configs/python-dap.lua new file mode 100755 index 00000000..93849bfe --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/python-dap.lua @@ -0,0 +1,3 @@ +local dap_python = require('dap-python') +dap_python.setup('~/.venvs/debugpy/bin/python') +dap_python.test_runner = 'pytest' diff --git a/dots/.config/nvim/config/lua/plugins/configs/statusline.lua b/dots/.config/nvim/config/lua/plugins/configs/statusline.lua new file mode 100755 index 00000000..35f8962e --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/statusline.lua @@ -0,0 +1,137 @@ +local present, lualine = pcall(require, 'lualine') +if not present then + return +end + +-- Thanks to rockyzhang24 (github.com/rockyzhang24) + +local function simplifiedMode(str) + return ' ' .. (str == 'V-LINE' and 'VL' or (str == 'V-BLOCK' and 'VB' or str:sub(1, 1))) +end + +-- For location, show total lines +local function customLocation(str) + return string.gsub(str, '%w+', '%1' .. '/%%L', 1) +end + +-- For progress, add a fancy icon +local function customProgress(str) + return ' ' .. str +end + +-- For filename, show the filename and the filesize +local function fileNameAndSize(str) + -- For doc, only show filename + if string.find(str, '.*/doc/.*%.txt') then + str = vim.fn.expand('%:t') + end + local size = require('lualine.components.filesize')() + return size == '' and str or str .. ' [' .. size .. ']' +end + +local function show_macro_recording() + local recording_register = vim.fn.reg_recording() + if recording_register == '' then + return '' + else + return 'Recording @' .. recording_register + end +end + +lualine.setup({ + options = { + icons_enabled = true, + theme = 'auto', + -- component_separators = { left = '', right = '' }, + -- section_separators = { left = '', right = '' }, + -- component_separators = { left = '', right = '' }, + -- section_separators = { left = '', right = '' }, + component_separators = { left = '', right = '' }, + section_separators = { left = '', right = '' }, + disabled_filetypes = {}, + always_divide_middle = true, + globalstatus = true, -- requires neovim 0.7 or highter + }, + sections = { + -- Left + lualine_a = { + { + 'mode', + fmt = simplifiedMode, + }, + }, + lualine_b = { + { + 'branch', + icon = '', + }, + { + 'diff', + symbols = { added = '+', modified = '~', removed = '-' }, + -- symbols = { added = ' ', modified = ' ', removed = ' ' }, + }, + { + 'diagnostics', + sources = { 'nvim_diagnostic' }, + -- symbols = { error = ' ', warn = ' ', info = ' ', hint = ' ' }, + symbols = { error = ' ', warn = ' ', info = ' ', hint = ' ' }, + }, + { + show_macro_recording, + }, + }, + lualine_c = { + { + 'filename', + path = 3, + symbols = { + modified = '[+]', + readonly = '[]', + unnamed = '[No Name]', + }, + fmt = fileNameAndSize, + }, + }, + + -- Right + lualine_x = { + 'encoding', + 'fileformat', + 'filetype', + }, + lualine_y = { + { + 'location', + fmt = customLocation, + }, + }, + lualine_z = { + { + 'progress', + fmt = customProgress, + }, + }, + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { 'filename' }, + lualine_x = { + { + 'location', + fmt = customLocation, + }, + }, + lualine_y = {}, + lualine_z = {}, + }, + tabline = {}, + extensions = { + 'aerial', + 'fugitive', + 'nvim-tree', + 'neo-tree', + 'quickfix', + 'toggleterm', + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/telescope-nvim.lua b/dots/.config/nvim/config/lua/plugins/configs/telescope-nvim.lua new file mode 100755 index 00000000..40053227 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/telescope-nvim.lua @@ -0,0 +1,90 @@ +local telescope = require("telescope") +local actions = require("telescope.actions") + +telescope.setup({ + pickers = { + find_files = { + find_command = { + "fd", + }, + hidden = true, + }, + }, + defaults = { + vimgrep_arguments = { + "rg", + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + "--no-ignore-exclude", + "--hidden", + "--smart-case", + }, + history = { + path = "~/.local/share/nvim/databases/telescope_history.sqlite3", + limit = 1000, + }, + mappings = { + i = { + [""] = actions.cycle_history_next, + [""] = actions.cycle_history_prev, + }, + }, + prompt_prefix = "  ", + selection_caret = " ", + entry_prefix = " ", + initial_mode = "insert", + selection_strategy = "reset", + sorting_strategy = "ascending", + layout_strategy = "flex", + layout_config = { + vertical = { + prompt_position = "top", + width = 0.90, + height = 0.98, + preview_height = 0.65, + }, + horizontal = { + prompt_position = "top", + width = 0.90, + height = 0.98, + preview_width = 0.70, + }, + flex = { + flip_cloumns = 120, + }, + }, + file_sorter = require("telescope.sorters").get_fuzzy_file, + generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter, + path_display = { "truncate" }, + winblend = 0, + border = {}, + borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" }, + color_devicons = true, + use_less = true, + set_env = { ["COLORTERM"] = "truecolor" }, + file_previewer = require("telescope.previewers").vim_buffer_cat.new, + grep_previewer = require("telescope.previewers").vim_buffer_vimgrep.new, + qflist_previewer = require("telescope.previewers").vim_buffer_qflist.new, + buffer_previewer_maker = require("telescope.previewers").buffer_previewer_maker, + }, + extensions = { + media_files = { + filetypes = { "png", "webp", "jpg", "jpeg" }, + find_cmd = "rg", + }, + ["ui-select"] = { + require("telescope.themes").get_dropdown(), + }, + }, +}) + +telescope.load_extension("media_files") +telescope.load_extension("find_directories") +telescope.load_extension("file_browser") +telescope.load_extension("notify") +telescope.load_extension("fzf") +telescope.load_extension("ui-select") +telescope.load_extension("smart_history") diff --git a/dots/.config/nvim/config/lua/plugins/configs/todo-comments.lua b/dots/.config/nvim/config/lua/plugins/configs/todo-comments.lua new file mode 100755 index 00000000..5fbe08e7 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/todo-comments.lua @@ -0,0 +1 @@ +require('todo-comments').setup({}) diff --git a/dots/.config/nvim/config/lua/plugins/configs/tokyonight.lua b/dots/.config/nvim/config/lua/plugins/configs/tokyonight.lua new file mode 100755 index 00000000..398c754c --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/tokyonight.lua @@ -0,0 +1,7 @@ +local g = vim.g + +g.tokyonight_style = 'night' +g.tokyonight_transparent = true +g.tokyonight_transparent_sidebar = true + +vim.cmd('colorscheme tokyonight') diff --git a/dots/.config/nvim/config/lua/plugins/configs/treesitter.lua b/dots/.config/nvim/config/lua/plugins/configs/treesitter.lua new file mode 100755 index 00000000..d20425ed --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/configs/treesitter.lua @@ -0,0 +1,21 @@ +local nvim_treesitter = require('nvim-treesitter.configs') + +nvim_treesitter.setup({ + ensure_installed = { + 'norg', + }, + highlight = { + enable = true, + additional_vim_regex_highlighting = true, + disable = { 'yaml' }, + }, + matchup = { + enable = true, + }, + autotag = { + enable = true, + }, + yati = { + enable = true, + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/init.lua b/dots/.config/nvim/config/lua/plugins/init.lua new file mode 100755 index 00000000..8451b6d0 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/init.lua @@ -0,0 +1,5 @@ +require('plugins.plugins') +local found, _ = pcall(require, 'packer_compiled') +if not found then + vim.notify('Unable to locate packer_compiled!') +end diff --git a/dots/.config/nvim/config/lua/plugins/mappings.lua b/dots/.config/nvim/config/lua/plugins/mappings.lua new file mode 100755 index 00000000..b19601b6 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/mappings.lua @@ -0,0 +1,162 @@ +local loaded = pcall(require, "plenary.async") + +if not loaded then + return +end + +-- Telescope mappings +vim.keymap.set("n", "tw", ":Telescope live_grep") +vim.keymap.set("n", "tgs", ":Telescope git_status") +vim.keymap.set("n", "tgc", ":Telescope git_commits") +vim.keymap.set("n", "tgb", ":Telescope git_branches") +vim.keymap.set("n", "tf", ":Telescope find_files") +vim.keymap.set("n", "td", ":Telescope find_directories") +vim.keymap.set("n", "tb", ":Telescope buffers") +vim.keymap.set("n", "th", ":Telescope help_tags") +vim.keymap.set("n", "to", ":Telescope oldfiles") +vim.keymap.set("n", "tc", ":Telescope neoclip default") +vim.keymap.set("n", "tr", ":Telescope registers") +vim.keymap.set("n", "tt", ":Telescope file_browser") +vim.keymap.set("n", "ts", ":Telescope spell_suggest") +vim.keymap.set("n", "tl", ":Telescope resume") +vim.keymap.set("n", "tT", ":TodoTelescope") + +-- Lsp Mappings +vim.keymap.set("n", "lD", ":lua vim.lsp.buf.declaration()") +vim.keymap.set("n", "ld", ":lua vim.lsp.buf.definition()") +vim.keymap.set("n", "k", ":lua vim.lsp.buf.hover()") +vim.keymap.set("n", "K", ":lua vim.lsp.buf.signature_help()") +vim.keymap.set("n", "li", ":lua vim.lsp.buf.implementation()") +vim.keymap.set("n", "la", ":lua vim.lsp.buf.add_workspace_folder()") +vim.keymap.set("n", "lx", ":lua vim.lsp.buf.remove_workspace_folder()") +vim.keymap.set("n", "ll", ":lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))") +vim.keymap.set("n", "ln", ":IncRename ") +vim.keymap.set("n", "lc", ":CodeActionMenu") +vim.keymap.set("n", "lr", ":lua vim.lsp.buf.references()") +vim.keymap.set("n", "lR", function() + vim.diagnostic.reset() + vim.cmd(":LspRestart") +end) +vim.keymap.set("n", "ls", ":lua vim.diagnostic.open_float(nil, {focus=false, scope='cursor'})") +vim.keymap.set("n", "lf", ":lua vim.lsp.buf.format({ async = true })") +vim.keymap.set("n", "[l", ":lua vim.diagnostic.goto_prev()") +vim.keymap.set("n", "]l", ":lua vim.diagnostic.goto_next()") +vim.keymap.set("n", "lq", ":Telescope diagnostics bufnr=0") +vim.keymap.set("n", "lt", function() + local virtual_lines_enabled = not vim.diagnostic.config().virtual_lines + vim.diagnostic.config({ virtual_lines = virtual_lines_enabled, virtual_text = not virtual_lines_enabled }) +end, { + desc = "Toggle LSP Diag Style", +}) + +-- Trouble mappings +vim.keymap.set("n", "lT", ":TroubleToggle") + +-- Formatter +vim.keymap.set("n", "nf", ":Neoformat") + +-- DAP Mappings +vim.keymap.set("n", "dR", ':lua require("dap").continue()') +vim.keymap.set("n", "de", ':lua require("dap").terminate()') +vim.keymap.set("n", "db", ':lua require("dap").toggle_breakpoint()') +vim.keymap.set("n", "dr", ":lua require(\"dap\").set_breakpoint(vim.fn.input('Breakpoint condition: '))") +vim.keymap.set( + "n", + "dp", + ":lua require(\"dap\").set_breakpoint(nil, nil, vim.fn.input('Log point message: '))" +) +vim.keymap.set("n", "", ':lua require("dap").step_over()') +vim.keymap.set("n", "", ':lua require("dap").step_into()') +vim.keymap.set("n", "", ':lua require("dap").step_out()') +vim.keymap.set("n", "dB", ':lua require("dap").step_back()') +vim.keymap.set("n", "dc", ':lua require("dap").run_to_cursor()') +vim.keymap.set("n", "do", ':lua require("dap").repl.open()') +vim.keymap.set("n", "dt", ':lua require("dapui").toggle()') +vim.keymap.set("n", "dl", ':lua require("dap").run_last()') + +-- Comments +vim.keymap.set("n", "/", ":CommentToggle") +vim.keymap.set("v", "/", ":'<,'>CommentToggle") + +-- Code Outline +vim.keymap.set("n", "co", ":SymbolsOutline") + +-- Bufferline mappings +vim.keymap.set("n", "", ":BufferLineCyclePrev") +vim.keymap.set("n", "", ":BufferLineCycleNext") +vim.keymap.set("n", "", ":lua require('utils.funcs').close_buffer()") + +-- Vim Notify Mappings +vim.keymap.set("n", "nv", ":lua require('telescope').extensions.notify.notify()") +vim.keymap.set("n", "nd", ":lua require('notify').dismiss()") + +-- Whichkey Mappings +vim.keymap.set("n", "ww", ":WhichKey") +vim.keymap.set("n", "wk", ":Telescope keymaps") +vim.keymap.set("n", "wc", ":Telescope commands") + +-- Neogen Mappings +vim.keymap.set("n", "ng", ":Neogen") + +-- Nvim Tree Mappings +vim.keymap.set("n", "nt", ":Neotree show toggle focus") + +-- Plenary Mappings +vim.keymap.set("n", "pt", "PlenaryTestFile", {}) + +-- Zenmode Mappings +vim.keymap.set("n", "zm", ":ZenMode") + +-- Neogit Mappings +vim.keymap.set("n", "gg", ":Neogit") + +-- Gitsigns Mappings +vim.keymap.set("n", "]g", "Gitsigns next_hunk") +vim.keymap.set("n", "[g", "Gitsigns prev_hunk") +vim.keymap.set("n", "gs", "Gitsigns stage_hunk") +vim.keymap.set("n", "gr", "Gitsigns reset_hunk") +vim.keymap.set("n", "gu", "Gitsigns undo_stage_hunk") + +-- Packer Mappings +local packer = require("packer") +local packer_sync = function() + vim.notify("Syncing packer.", "info", { + title = "Packer", + }) + local snap_shot_time = tostring(os.date("!%Y-%m-%dT%TZ")) + packer.snapshot(snap_shot_time) + packer.sync() +end + +local packer_compile = function() + vim.notify("Compiling packer.", "info", { + title = "Packer", + }) + packer.compile() +end + +vim.keymap.set("n", "ps", packer_sync, { + desc = "PackerSync", +}) + +vim.keymap.set("n", "pc", packer_compile, { + desc = "PackerCompile", +}) + +-- Undotree mappings +vim.keymap.set("n", "ut", ":UndotreeToggle") + +-- Hop Mappings +local hop = require("hop") + +vim.keymap.set("", "f", function() + hop.hint_char1({ + current_line_only = false, + }) +end) + +vim.keymap.set("", ";l", "HopLineStart") +vim.keymap.set("", ";s", "HopPattern") +vim.keymap.set("", ";;", "HopWord") +vim.keymap.set("", ";a", "HopAnywhere") +vim.keymap.set("", ";v", "HopVertical") diff --git a/dots/.config/nvim/config/lua/plugins/plugins.lua b/dots/.config/nvim/config/lua/plugins/plugins.lua new file mode 100755 index 00000000..704f74f7 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/plugins.lua @@ -0,0 +1,797 @@ +local fn = vim.fn +local utils = require("utils.funcs") + +-- Packer strap, install packer automatically and configure plugins +-- See the end of this file for how the variable `packer_strap` gets used +local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" +if fn.empty(fn.glob(install_path)) > 0 then + PACKER_STRAP = fn.system({ + "git", + "clone", + "--depth", + "1", + "https://github.com/wbthomason/packer.nvim", + install_path, + }) + -- Update the runtime so packer can be used + vim.o.runtimepath = vim.fn.stdpath("data") .. "/site/pack/*/start/*," .. vim.o.runtimepath +end + +local packer = require("packer") + +packer.init({ + max_jobs = 20, +}) + +return packer.startup({ + function(use) + -- Performance boost on startup + -- keep at top of plugins + use({ "lewis6991/impatient.nvim" }) + + -- Packer Itself + use({ "wbthomason/packer.nvim" }) + + -- Commonly used library + use({ + "nvim-lua/plenary.nvim", + }) + + -- Nvim Notify + use({ + "rcarriga/nvim-notify", + config = function() + require("plugins.configs.nvim-notify") + end, + }) + + -- Color schemes + use({ "folke/tokyonight.nvim" }) + use({ + "EdenEast/nightfox.nvim", + config = function() + require("nightfox").setup({ + options = { + transparent = true, + dim_inactive = true, + }, + }) + end, + }) + use({ + "rebelot/kanagawa.nvim", + config = function() + local colors = require("kanagawa.colors").setup({}) + vim.opt.fillchars:append({ + horiz = "━", + horizup = "┻", + horizdown = "┳", + vert = "┃", + vertleft = "┨", + vertright = "┣", + verthoriz = "╋", + }) + require("kanagawa").setup({ + transparent = true, + dim_inactive = true, + globalStatus = true, + overrides = { + NeogitHunkHeader = { bg = colors.diff.text }, + NeogitHunkHeaderHighlight = { fg = colors.git.changed, bg = colors.diff.text }, + NeogitDiffContextHighlight = { bg = colors.diff.change }, + NeogitDiffDeleteHighlight = { fg = colors.git.removed, bg = colors.diff.delete }, + NeogitDiffAddHighlight = { fg = colors.git.added, bg = colors.diff.add }, + NeogitCommitViewHeader = { fg = colors.git.changed, bg = colors.diff.text }, + }, + }) + end, + }) + + -- Icons for folders, files, etc. + use({ + "kyazdani42/nvim-web-devicons", + event = "BufEnter", + }) + + -- Tab Line at top of editor + use({ + "akinsho/nvim-bufferline.lua", + after = "nvim-web-devicons", + requires = { "nvim-web-devicons" }, + config = function() + require("plugins.configs.bufferline") + end, + }) + + -- Statusline. + use({ + "nvim-lualine/lualine.nvim", + after = { + "nvim-bufferline.lua", + "tokyonight.nvim", + }, + config = function() + require("plugins.configs.statusline") + end, + }) + + -- Indentation Guides + use({ + "lukas-reineke/indent-blankline.nvim", + event = "BufEnter", + config = function() + require("plugins.configs.indent-blankline") + end, + }) + + -- Treesitter + use({ + "nvim-treesitter/nvim-treesitter", + run = ":TSUpdate", + config = function() + require("plugins.configs.treesitter") + end, + }) + + use({ + "nvim-treesitter/nvim-treesitter-textobjects", + after = "nvim-treesitter", + config = function() + require("nvim-treesitter.configs").setup({ + textobjects = { + select = { + enable = true, + lookahead = true, + keymaps = { + ["af"] = "@function.outer", + ["if"] = "@function.inner", + ["ac"] = "@class.outer", + ["ic"] = "@class.inner", + ["ib"] = "@block.inner", + ["ab"] = "@block.outer", + }, + }, + move = { + enable = true, + set_jumps = true, + goto_next_start = { + ["]fs"] = "@function.outer", + ["]cs"] = "@class.outer", + ["]bs"] = "@block.outer", + }, + goto_next_end = { + ["]fe"] = "@function.outer", + ["]ce"] = "@class.outer", + ["]be"] = "@block.outer", + }, + goto_previous_start = { + ["[fs"] = "@function.outer", + ["[cs"] = "@class.outer", + ["[bs"] = "@block.outer", + }, + goto_previous_end = { + ["[fe"] = "@function.outer", + ["[ce"] = "@class.outer", + ["[bs"] = "@block.outer", + }, + }, + }, + }) + end, + }) + + -- Better treesitter indentations + -- NOTE: Remove this once treesitter gets up to par + -- NOTE: this is just a placeholder until it is. + use({ + "yioneko/nvim-yati", + requires = "nvim-treesitter/nvim-treesitter", + }) + + -- Highlight given color codes + use({ + "norcalli/nvim-colorizer.lua", + event = "BufEnter", + config = function() + require("plugins.configs.nvim-colorizer") + end, + }) + + -- Dashboard when no file is given to nvim + + use({ + "goolord/alpha-nvim", + requires = { "kyazdani42/nvim-web-devicons" }, + config = function() + require("plugins.configs.alpha") + end, + }) + + -- Telescope Extensions + use({ + "nvim-telescope/telescope-fzf-native.nvim", + run = "make", + }) + + use({ + "nvim-telescope/telescope-media-files.nvim", + "nvim-telescope/telescope-file-browser.nvim", + "artart222/telescope_find_directories", + "nvim-telescope/telescope-ui-select.nvim", + { "nvim-telescope/telescope-smart-history.nvim", requires = "tami5/sqlite.lua" }, + }) + + -- Telescope + use({ + "nvim-telescope/telescope.nvim", + config = function() + require("plugins.configs.telescope-nvim") + end, + }) + + -- File Tree + use({ + "nvim-neo-tree/neo-tree.nvim", + branch = "v2.x", + requires = { + "kyazdani42/nvim-web-devicons", + "nvim-lua/plenary.nvim", + "MunifTanjim/nui.nvim", + }, + config = function() + require("plugins.configs.neotree") + end, + }) + + -- Workspaces + use({ + "natecraddock/workspaces.nvim", + config = function() + local workspaces = require("workspaces") + workspaces.setup({ + hooks = { + open = "Neotree", + }, + }) + end, + }) + + -- Lspconfig + use({ + "neovim/nvim-lspconfig", + requires = { + "folke/lua-dev.nvim", + "Decodetalkers/csharpls-extended-lsp.nvim", + "williamboman/mason-lspconfig.nvim", + "williamboman/mason.nvim", + }, + config = function() + require("mason").setup({}) + require("plugins.configs.lsp") + end, + }) + + -- Incremental rename, easier to view renames + use({ + "https://github.com/smjonas/inc-rename.nvim.git", + config = function() + require("inc_rename").setup({}) + end, + }) + + -- Show lsp diags at bottom + use({ + "folke/trouble.nvim", + config = function() + require("trouble").setup() + end, + cmd = { + "Trouble", + "TroubleClose", + "TroubleToggle", + "TroubleRefresh", + }, + }) + + -- Better LSP Virtual Text Lines + use({ + "https://git.sr.ht/~whynothugo/lsp_lines.nvim", + config = function() + require("lsp_lines").setup() + end, + }) + + -- Sql support + use({ + "nanotee/sqls.nvim", + }) + + -- Display LSP Progress + use({ + "j-hui/fidget.nvim", + config = function() + require("plugins.configs.fidget-spinner") + end, + -- after = "nvim-lspconfig" + }) + + -- Display Lsp Signature + use({ + "ray-x/lsp_signature.nvim", + config = function() + require("lsp_signature").setup({ + hint_prefix = "", + hint_enable = true, + floating_window = false, + toggle_key = "", + }) + end, + }) + + -- Code Action Menu, prettier ui for LSP code actions + require("packer").use({ + "weilbith/nvim-code-action-menu", + }) + + -- Lsp From Null LS + use({ + "jose-elias-alvarez/null-ls.nvim", + config = function() + require("plugins.configs.null_ls") + end, + }) + + -- Better LSP Handling for Rust + use({ + "simrat39/rust-tools.nvim", + }) + + -- Autopairs + use({ + "windwp/nvim-autopairs", + config = function() + require("nvim-autopairs").setup() + end, + }) + + -- Snippets + use({ + "rafamadriz/friendly-snippets", + config = function() + require("luasnip.loaders.from_vscode").lazy_load() + end, + requires = { + "L3MON4D3/LuaSnip", + "https://github.com/saadparwaiz1/cmp_luasnip", + }, + after = "LuaSnip", + event = "BufEnter", + }) + + -- Code completion + use({ + "hrsh7th/nvim-cmp", + requires = { + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-path", + "hrsh7th/cmp-cmdline", + "hrsh7th/cmp-emoji", + "hrsh7th/vim-vsnip", + "hrsh7th/cmp-nvim-lsp-document-symbol", + "hrsh7th/cmp-calc", + "davidsierradz/cmp-conventionalcommits", + "tamago324/cmp-zsh", + "dmitmel/cmp-cmdline-history", + "David-Kunz/cmp-npm", + "lukas-reineke/cmp-rg", + }, + config = function() + require("plugins.configs._cmp") + end, + }) + + use({ + "tzachar/cmp-fuzzy-buffer", + requires = { "hrsh7th/nvim-cmp", "tzachar/fuzzy.nvim" }, + }) + use({ "tzachar/cmp-fuzzy-path", requires = { "hrsh7th/nvim-cmp", "tzachar/fuzzy.nvim" } }) + use({ + "saecki/crates.nvim", + event = { "BufRead Cargo.toml" }, + requires = { { "nvim-lua/plenary.nvim" } }, + config = function() + require("crates").setup() + end, + }) + + -- Show code outline + use({ + "simrat39/symbols-outline.nvim", + cmd = { "SymbolsOutline", "SymbolsOutlineOpen", "SymbolsOutlineClose" }, + config = function() + -- TODO: Clean this up and use the `nvim.api.nvim_set_hl` api + vim.cmd( + [[hi FocusedSymbol term=italic,bold cterm=italic ctermbg=yellow ctermfg=darkblue gui=bold,italic guibg=none guifg=#59D0FF]] + ) + end, + }) + + -- DAP, debugger + use({ + "mfussenegger/nvim-dap", + config = function() + require("dap.ext.vscode").load_launchjs() + require("plugins.configs._dap") + end, + after = "nvim-notify", + }) + + -- Python debugger, dapinstall does not play nice with debugpy + use({ + "mfussenegger/nvim-dap-python", + after = "nvim-dap", + config = function() + require("plugins.configs.python-dap") + end, + }) + + -- Virtual Text for DAP + use({ + "theHamsta/nvim-dap-virtual-text", + after = "nvim-dap", + config = function() + require("nvim-dap-virtual-text").setup({}) + end, + }) + + -- Fancy ui for dap + use({ + "rcarriga/nvim-dap-ui", + after = "nvim-dap", + config = function() + require("plugins.configs.dap-ui") + end, + }) + + -- Code formatting + use({ + "sbdchd/neoformat", + cmd = "Neoformat", + config = function() + require("plugins.configs.neoformat") + end, + }) + + use({ + "anuvyklack/pretty-fold.nvim", + requires = "anuvyklack/nvim-keymap-amend", + config = function() + require("pretty-fold").setup({ + fill_char = " ", + }) + end, + }) + + -- Stabalize closing buffers + use({ + "luukvbaal/stabilize.nvim", + config = function() + require("plugins.configs._stabilize") + end, + }) + + -- Git signs + use({ + "lewis6991/gitsigns.nvim", + event = "BufRead", + config = function() + require("gitsigns").setup({ + current_line_blame = true, + current_line_blame_opts = { + delay = 0, + }, + }) + end, + }) + + -- Highlight certain comments, TODO, BUG, etc. + use({ + "folke/todo-comments.nvim", + event = "BufEnter", + config = function() + require("todo-comments").setup({}) + end, + }) + + -- Show possible key bindings during typing + use({ + "folke/which-key.nvim", + config = function() + require("which-key").setup({}) + end, + }) + + -- Create full path if not existing on write + use({ + "jghauser/mkdir.nvim", + cmd = "new", + config = function() + require("mkdir") + end, + }) + + -- Text commenting + use({ + "terrortylor/nvim-comment", + cmd = "CommentToggle", + config = function() + require("nvim_comment").setup() + end, + }) + + -- Move selections with alt+movement key + use({ + "matze/vim-move", + }) + + -- Register support in telescope with persistent save + use({ + "AckslD/nvim-neoclip.lua", + requires = { + { "tami5/sqlite.lua", module = "sqlite" }, + { "nvim-telescope/telescope.nvim" }, + }, + config = function() + require("plugins.configs._neoclip") + end, + }) + + -- Markdown Previewer + use({ + "iamcco/markdown-preview.nvim", + run = "cd app && npm install", + setup = function() + vim.g.mkdp_filetypes = { "markdown" } + end, + ft = { "markdown" }, + }) + + -- Better Git integration + use({ + "TimUntersberger/neogit", + config = function() + require("neogit").setup({ + disable_commit_confirmation = true, + integrations = { + diffview = true, + }, + }) + end, + requires = { + "sindrets/diffview.nvim", + }, + }) + + -- Ansible Syntax Highlighting + use({ + "pearofducks/ansible-vim", + }) + + -- Better search display + use({ + "kevinhwang91/nvim-hlslens", + module = "hlslens", + keys = "/", + }) + + -- Lsp Diags on scrollbar + use({ + "petertriho/nvim-scrollbar", + requires = { + "kevinhwang91/nvim-hlslens", + "folke/tokyonight.nvim", + }, + after = "nvim-hlslens", + config = function() + require("plugins.configs.diag-scrollbar") + end, + }) + + -- Discord Rich Presence + use({ + "andweeb/presence.nvim", + config = function() + require("presence"):setup({ + neovim_image_text = "How do I exit?", + }) + end, + }) + + -- Note Taking + use({ + "nvim-neorg/neorg", + config = function() + require("plugins.configs._neorg") + end, + requires = { + "nvim-lua/plenary.nvim", + "nvim-neorg/neorg-telescope", + }, + after = "nvim-treesitter", + }) + + -- Log Syntax Highlighting + use({ + "MTDL9/vim-log-highlighting", + }) + + -- Lots of small modules pulled into + -- one git repository + use({ + "echasnovski/mini.nvim", + config = function() + -- Underline matching words to word undor cursor + require("mini.cursorword").setup({}) + -- Surround operators + require("mini.surround").setup({ + mappings = { + add = "gs", + delete = "ds", + find = "", + find_left = "", + highlight = "", + replace = "cs", + update_n_lines = "", + }, + }) + end, + }) + + -- Smoother Scrolling + use({ + "karb94/neoscroll.nvim", + config = function() + require("neoscroll").setup({ + easing_function = "circular", + }) + end, + }) + + -- Generate function/class/etc annotations + use({ + "danymat/neogen", + requires = "nvim-treesitter/nvim-treesitter", + config = function() + require("neogen").setup({ + snippet_engine = "luasnip", + }) + end, + }) + + -- Center code, make it visually prettier + use({ + "folke/zen-mode.nvim", + config = function() + require("zen-mode").setup({}) + end, + cmd = "ZenMode", + }) + + -- Multiple cursor/multiple visual selection support + use({ + "mg979/vim-visual-multi", + }) + + -- Editorconfig support + use({ + "gpanders/editorconfig.nvim", + }) + + -- Maintain last cursor position in files + use({ + "ethanholz/nvim-lastplace", + config = function() + require("nvim-lastplace").setup({ + lastplace_ignore_buftype = { "quickfix", "nofile", "help" }, + lastplace_ignore_filetype = { "gitcommit", "gitrebase", "svn", "hgcommit", "fugitive" }, + lastplace_open_folds = true, + }) + end, + }) + + -- Diagnose startup time + use({ "dstein64/vim-startuptime" }) + + -- More codeactions + use({ + "ThePrimeagen/refactoring.nvim", + requires = { + { "nvim-lua/plenary.nvim" }, + { "nvim-treesitter/nvim-treesitter" }, + }, + }) + + -- Http Request Support + use({ + "NTBBloodbath/rest.nvim", + requires = { + "https://github.com/nvim-lua/plenary.nvim", + }, + config = function() + local rest_nvim = require("rest-nvim") + rest_nvim.setup({ + -- This is a dev plugin, makes life easier + skip_ssl_verification = true, + }) + end, + }) + + -- Undotree, similar to git branch history + use({ + "mbbill/undotree", + cmd = "UndotreeToggle", + setup = function() + vim.g.undotree_WindowLayout = 3 + end, + }) + + -- Allows repeating actions and more + use({ + "anuvyklack/hydra.nvim", + requires = { + "anuvyklack/keymap-layer.nvim", + "lewis6991/gitsigns.nvim", + }, + config = function() + require("plugins.configs.hydra") + end, + }) + + -- Faster motions + use({ + "phaazon/hop.nvim", + config = function() + -- you can configure Hop the way you like here; see :h hop-config + require("hop").setup({ keys = "etovxqpdygfblzhckisuran" }) + end, + }) + + -- Leave at end!!! + -- Install and deploy packer plugins + -- automatically + if PACKER_STRAP then + vim.notify("Syncing packer from bootstrap") + + function _G.NotifyRestartNeeded() + local notify_available, _ = require("notify") + local message = "Neovim Restart Required to Finish Installation!" + if notify_available then + vim.notify(message, vim.lsp.log_levels.WARN, { + title = "Packer Strap", + keep = function() + return true + end, + }) + else + vim.notify(message) + end + end + + vim.api.nvim_exec( + [[ + autocmd User PackerCompileDone lua NotifyRestartNeeded() + ]], + false + ) + require("packer").sync() + end + end, + config = { + display = { + open_fn = function() + return require("packer.util").float({ border = "double" }) + end, + }, + compile_path = vim.fn.stdpath("config") .. "/lua/packer_compiled.lua", + }, +}) diff --git a/dots/.config/nvim/config/lua/plugins/postload.lua b/dots/.config/nvim/config/lua/plugins/postload.lua new file mode 100755 index 00000000..4d07de74 --- /dev/null +++ b/dots/.config/nvim/config/lua/plugins/postload.lua @@ -0,0 +1,4 @@ +-- Anything that needs to be loaded LAST +-- needs to required here +require('plugins.mappings') +require('plugins.autocmds') diff --git a/dots/.config/nvim/config/lua/utils/funcs.lua b/dots/.config/nvim/config/lua/utils/funcs.lua new file mode 100755 index 00000000..954ad1bb --- /dev/null +++ b/dots/.config/nvim/config/lua/utils/funcs.lua @@ -0,0 +1,154 @@ +local U = {} + +U.close_buffer = function(force) + -- Yanked from NvChad, thanks to them. This saves + -- a lot of pain + + -- This is a modification of a NeoVim plugin from + -- Author: ojroques - Olivier Roques + -- Src: https://github.com/ojroques/nvim-bufdel + + -- Options + local opts = { + next = 'cycle', -- how to retrieve the next buffer + quit = false, -- exit when last buffer is deleted + --TODO make this a chadrc flag/option + } + + -- ---------------- + -- Helper functions + -- ---------------- + + -- Switch to buffer 'buf' on each window from list 'windows' + local function switch_buffer(windows, buf) + local cur_win = vim.fn.winnr() + for _, winid in ipairs(windows) do + vim.cmd(string.format('%d wincmd w', vim.fn.win_id2win(winid))) + vim.cmd(string.format('buffer %d', buf)) + end + vim.cmd(string.format('%d wincmd w', cur_win)) -- return to original window + end + + -- Select the first buffer with a number greater than given buffer + local function get_next_buf(buf) + local next = vim.fn.bufnr('#') + if opts.next == 'alternate' and vim.fn.buflisted(next) == 1 then + return next + end + for i = 0, vim.fn.bufnr('$') - 1 do + next = (buf + i) % vim.fn.bufnr('$') + 1 -- will loop back to 1 + if vim.fn.buflisted(next) == 1 then + return next + end + end + end + + -- ---------------- + -- End helper functions + -- ---------------- + + local buf = vim.fn.bufnr() + if vim.fn.buflisted(buf) == 0 then -- exit if buffer number is invalid + vim.cmd('close') + return + end + + if #vim.fn.getbufinfo({ buflisted = 1 }) < 2 then + if opts.quit then + -- exit when there is only one buffer left + if force then + vim.cmd('qall!') + else + vim.cmd('confirm qall') + end + return + end + + local chad_term, _ = pcall(function() + return vim.api.nvim_buf_get_var(buf, 'term_type') + end) + + if chad_term then + -- Must be a window type + vim.cmd(string.format('setlocal nobl', buf)) + vim.cmd('enew') + return + end + -- don't exit and create a new empty buffer + vim.cmd('enew') + vim.cmd('bp') + end + + local next_buf = get_next_buf(buf) + local windows = vim.fn.getbufinfo(buf)[1].windows + + -- force deletion of terminal buffers to avoid the prompt + if force or vim.fn.getbufvar(buf, '&buftype') == 'terminal' then + local chad_term, type = pcall(function() + return vim.api.nvim_buf_get_var(buf, 'term_type') + end) + + -- TODO this scope is error prone, make resilient + if chad_term then + if type == 'wind' then + -- hide from bufferline + vim.cmd(string.format('%d bufdo setlocal nobl', buf)) + -- swtich to another buff + -- TODO switch to next bufffer, this works too + vim.cmd('BufferLineCycleNext') + else + local cur_win = vim.fn.winnr() + -- we can close this window + vim.cmd(string.format('%d wincmd c', cur_win)) + return + end + else + switch_buffer(windows, next_buf) + vim.cmd(string.format('bd! %d', buf)) + end + else + switch_buffer(windows, next_buf) + vim.cmd(string.format('silent! confirm bd %d', buf)) + end + -- revert buffer switches if user has canceled deletion + if vim.fn.buflisted(buf) == 1 then + switch_buffer(windows, buf) + end +end + +U.rgbToHex = function(rgb) + return string.format('#%06x', rgb) +end + +U.hexToRgb = function(hex_str) + local hex = '[abcdef0-9][abcdef0-9]' + local pat = '^#(' .. hex .. ')(' .. hex .. ')(' .. hex .. ')$' + hex_str = string.lower(hex_str) + + assert(string.find(hex_str, pat) ~= nil, 'hex_to_rgb: invalid hex_str: ' .. tostring(hex_str)) + + local r, g, b = string.match(hex_str, pat) + return { tonumber(r, 16), tonumber(g, 16), tonumber(b, 16) } +end + +U.blend = function(fg, bg, alpha) + bg = U.hexToRgb(bg) + fg = U.hexToRgb(fg) + + local blendChannel = function(i) + local ret = (alpha * fg[i] + ((1 - alpha) * bg[i])) + return math.floor(math.min(math.max(0, ret), 255) + 0.5) + end + + return string.format('#%02X%02X%02X', blendChannel(1), blendChannel(2), blendChannel(3)) +end + +U.darken = function(hex, amount, bg) + return U.blend(hex, bg or '#000000', math.abs(amount)) +end + +U.lighten = function(hex, amount, fg) + return U.blend(hex, fg or '#ffffff', math.abs(amount)) +end + +return U diff --git a/dots/.config/nvim/config/spell/en.utf-8.add b/dots/.config/nvim/config/spell/en.utf-8.add new file mode 100644 index 00000000..d24af0fd --- /dev/null +++ b/dots/.config/nvim/config/spell/en.utf-8.add @@ -0,0 +1,61 @@ +metalpoint +rotoscope +Vassari +Giorgio +Kathe +Kollwitz's +volumetric +gumwater +Vergine +delle +Rocce +Conte +Vija +Celmin's +photorealistic +unmoving +Vinci's +da +Oilstick +Dubuffet's +Elisabetta +Sirani +de +Mattise +redrawings +Eckstein's +Kentridge +Spiegelman's +Maus +Marjane +Satrapi +limewater +Faiyum +secco +buon +Pozzo +Fra +Scrovegni +Bodhisattiva +Giornata +Encaustic +Gesso +arabic +Photomontage +photomontage +Linocut +linocut +burin +Drypoint +Mezzotint +drypoint +planographic +obscura +Afocal +Grande +Jatte +Gogh +Pollick +Gogh's +fauv +dimensionality diff --git a/dots/.config/nvim/config/spell/en.utf-8.add.spl b/dots/.config/nvim/config/spell/en.utf-8.add.spl new file mode 100644 index 00000000..0e2198b6 Binary files /dev/null and b/dots/.config/nvim/config/spell/en.utf-8.add.spl differ diff --git a/dots/.config/nvim/config/syntax/cf3.vim b/dots/.config/nvim/config/syntax/cf3.vim new file mode 100644 index 00000000..54d0fc0c --- /dev/null +++ b/dots/.config/nvim/config/syntax/cf3.vim @@ -0,0 +1,626 @@ +" vim:foldmethod=marker + +" Vim syntax file +" Language: Cfengine version 3 +" Maintainer: Neil Watson +" Last Change: Jun 02 2018 +" Location: +" +" TODO: +" - would be great to know current promise type +" +" This is my first attempt at a syntax file. Feel free to send me corrections +" or improvements. I'll give you a credit. +" +" USAGE +" There is already a vim file that uses 'cf' as a file extension. You can use +" cf3 for your cf3 file extensions or identify via your vimrc file: +" au BufRead,BufNewFile *.cf set ft=cf3 +" +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded + +if version < 600 " {{{ + syntax clear +elseif exists ("b:current_syntax") + finish +endif + +syn case ignore + +syn match cf3BundleParams /(\w\+\(,\s*\w\+\)*)/hs=s+1,he=e-1 contained +syn match cf3BundleName /\s\+\w\+\s*/ contained nextgroup=cf3BundleParams + +syn keyword cf3BundleTypes agent common server knowledge monitor edit_line contained nextgroup=cf3BundleName skipwhite +syn keyword cf3BundleTypes edit_xml contained nextgroup=cf3BundleName skipwhite +syn match cf3Bundle /^\s*bundle\s\+/ nextgroup=Cf3BundleTypes skipwhite + +syn keyword cf3BodyTypes action classes contain acl changes contained nextgroup=cf3BundleName skipwhite +syn keyword cf3BodyTypes copy_from delete depth_search contained nextgroup=cf3BundleName skipwhite +syn keyword cf3BodyTypes edit_defaults file_select password contained nextgroup=cf3BundleName skipwhite +syn keyword cf3BodyTypes link_from perms rename tcp_ip contained nextgroup=cf3BundleName skipwhite +syn keyword cf3BodyTypes package_method process_count package_module contained nextgroup=cf3BundleName skipwhite +syn keyword cf3BodyTypes process_select service_method contained nextgroup=cf3BundleName skipwhite +syn keyword cf3BodyTypes mount volume printfile match_value contained nextgroup=cf3BundleName skipwhite +syn keyword cf3BodyTypes association select_region delete_select contained nextgroup=cf3BundleName skipwhite +syn keyword cf3BodyTypes insert_select location edit_field replace_with contained nextgroup=cf3BundleName skipwhite +syn keyword cf3BodyTypes common database_server environment_resources contained nextgroup=cf3BundleName skipwhite +syn match cf3Body /^\s*body\s\+/ nextgroup=Cf3BodyTypes skipwhite + +syn match cf3BodyControl /^\s*body\s\+\(common\|agent\|server\)\s\+control/ +syn match cf3BodyControl /^\s*body\s\+\(monitor\|runagent\)\s\+control/ +syn match cf3BodyControl /^\s*body\s\+\(executor\|knowledge\|hub\)\s\+control/ +syn match cf3BodyControl /^\s*body\s\+\(reporter\|file\)\s\+control/ + +syn match cf3Action /\<\(vars\|classes\|reports\|meta\|users\):/ +syn match cf3Action /\<\(commands\|databases\|files\|interfaces\|methods\|packages\|storage\):/ +syn match cf3Action /\<\(access\|measurements\|roles\|topics\|occurrences\|defaults\):/ +syn match cf3Action /\<\(control\|guest_environments\|outputs\|processes\|services\|things\):/ +syn match cf3Action /\<\(delete_lines\|field_edits\|insert_lines\|replace_patterns\):/ + +syn match cf3Class /[^ "\t:#]\+::/ +syn region cf3ClassBlock start=/\[%CFEngine/ end=/%\]/ contains=Cf3Class + +syn keyword TODO todo TODO FIXME TBD NOTE contained +syn match cf3Comment /#.*/ contains=TODO + +syn match cf3Identifier /=>/ + +" Escape sequences in regexes +syn match cf3Esc /\\\\[sSdD+][\+\*]*/ contained +" Array indexes contained in []. Does not seems to be working. +syn region cf3Array start=/\(\\\)\@]/ contains=cf3BuiltIns,cf3Stdlib +syn match cf3Function /\<\w\+[,;()]/ contains=cf3BuiltIns,cf3Stdlib,cf3Evolve_freelib + +syn keyword cf3ControlAttr bundlesequence cache_system_functions goal_categories contained +syn keyword cf3ControlAttr ignore_missing_bundles ignore_missing_inputs inputs contained +syn keyword cf3ControlAttr version lastseenexpireafter output_prefix domain contained +syn keyword cf3ControlAttr require_comments host_licenses_paid site_classes contained +syn keyword cf3ControlAttr syslog_host syslog_port fips_mode protocol_version contained +syn keyword cf3ControlAttr package_module contained +syn keyword cf3MethodAttr usebundle useresult inherit contained +syn keyword cf3CommonAttr action classes if unless ifvarclass handle depends_on comment policy with meta contained +syn keyword cf3ClassesAttr and dist expression not or persistence scope select_class xor contained +syn keyword cf3CommandsAttr args contain module contained +syn keyword cf3ProcessesAttr process_count process_select contained +syn keyword cf3ProcessesAttr process_stop restart_class signals contained +syn keyword cf3PackagesAttr package_architectures package_method package_policy contained +syn keyword cf3PackagesAttr package_select package_version package_module contained +syn keyword cf3GuestEnvAttr environment_host environment_interface contained +syn keyword cf3GuestEnvAttr environment_resources environment_state contained +syn keyword cf3GuestEnvAttr environment_type contained +syn keyword cf3TopicsAttr association synonyms generalizations contained +syn keyword cf3ServicesAttr service_policy service_dependencies service_method contained +syn keyword cf3DatabasesAttr database_server database_type contained +syn keyword cf3DatabasesAttr database_operation database_columns contained +syn keyword cf3DatabasesAttr database_rows registry_exclude contained +syn keyword cf3DefaultsAttr if_match_regex contained +syn keyword cf3StorageAttr mount volume contained +syn keyword cf3FilesAttr acl changes copy_from create delete depth_search contained +syn keyword cf3FilesAttr edit_defaults edit_line edit_template edit_xml file_select contained +syn keyword cf3FilesAttr link_from move_obstructions pathtype perms contained +syn keyword cf3FilesAttr rename repository template_method template_data touch transformer contained +syn keyword cf3AccessAttr admit_ips admit_hostnames admit_keys admit deny deny_ips deny_hostnames deny_keys maproot contained +syn keyword cf3AccessAttr ifencrypted resource_type contained +syn keyword cf3MeasurementsAttr stream_type data_type history_type contained +syn keyword cf3MeasurementsAttr units match_value contained +syn keyword cf3ReportsAttr friend_pattern intermittency lastseen contained +syn keyword cf3ReportsAttr printfile report_to_file showstate contained +syn keyword cf3ReportsAttr bundle_return_value_index contained + +" Bodies +syn keyword cf3EditLineAttr replace_with edit_field whitespace_policy location contained +syn keyword cf3EditLineAttr insert_select insert_type expand_scalars not_matching contained +syn keyword cf3EditLineAttr delete_select select_region contained +syn keyword cf3EditFieldAttr allow_blank_fields extend_fields field_operation contained +syn keyword cf3EditFieldAttr field_separator field_value select_field contained +syn keyword cf3EditFieldAttr start_fields_from_zero value_separator contained +syn keyword cf3ReplaceWithAttr occurrences replace_value contained +syn keyword cf3SelectRegionAttr include_start_delimiter include_end_delimiter contained +syn keyword cf3SelectRegionAttr select_start select_end contained +syn keyword cf3ProcCountAttr in_range_define match_range out_of_range_define contained +syn keyword cf3ProcSelectAttr command pid ppid pgid priority process_owner contained +syn keyword cf3ProcSelectAttr process_result rsize status stime_range ttime_range contained +syn keyword cf3ProcSelectAttr tty threads vsize contained +syn keyword cf3EditDefAttr edit_backup empty_file_before_editing max_file_size recognize_join contained +syn keyword cf3LocationAttr before_after first_last select_line_matching contained +syn keyword cf3BodyFileSelectAttr leaf_name path_name search_mode search_size search_owners contained +syn keyword cf3BodyFileSelectAttr search_groups search_bsdflags ctime mtime atime contained +syn keyword cf3BodyFileSelectAttr exec_regex exec_program file_types issymlinkto file_result contained +syn keyword cf3BodyClassesAttr promise_repaired repair_failed repair_denied contained +syn keyword cf3BodyClassesAttr repair_timeout promise_kept cancel_kept cancel_repaired contained +syn keyword cf3BodyClassesAttr cancel_notkept kept_returncodes repaired_returncodes contained +syn keyword cf3BodyClassesAttr failed_returncodes persist_time scope timer_policy contained +syn keyword cf3BodyLinkFromAttr copy_patterns link_children link_type source contained +syn keyword cf3BodyLinkFromAttr when_linking_children when_no_source contained +syn keyword cf3BodyPermsAttr bsdflags groups mode owners rxdirs contained +syn keyword cf3BodyACLAttr aces acl_directory_inherit acl_method acl_type specify_inherit_aces contained +syn keyword cf3BodyDepthSearchAttr depth exclude_dirs include_basedir include_dirs contained +syn keyword cf3BodyDepthSearchAttr rmdeadlinks traverse_links xdev contained +syn keyword cf3BodyDeleteAttr dirlinks rmdirs contained +syn keyword cf3BodyRenameAttr disable disable_mode disable_suffix newname rotate contained +syn keyword cf3BodyChangesAttr hash report_changes update_hashes report_diffs contained +syn keyword cf3BodyPackageModuleAttr default_options query_installed_ifelapsed contained +syn keyword cf3BodyPackageModuleAttr query_updates_ifelapsed contained +syn keyword cf3BodyPackageMethodAttr package_add_command package_arch_regex contained +syn keyword cf3BodyPackageMethodAttr package_changes package_delete_command contained +syn keyword cf3BodyPackageMethodAttr package_delete_convention package_file_repositories contained +syn keyword cf3BodyPackageMethodAttr package_installed_regex package_list_arch_regex contained +syn keyword cf3BodyPackageMethodAttr package_list_command package_list_name_regex contained +syn keyword cf3BodyPackageMethodAttr package_list_update_command package_list_update_ifelapsed contained +syn keyword cf3BodyPackageMethodAttr package_list_version_regex package_name_convention contained +syn keyword cf3BodyPackageMethodAttr package_name_regex package_noverify_regex contained +syn keyword cf3BodyPackageMethodAttr package_noverify_returncode package_patch_arch_regex contained +syn keyword cf3BodyPackageMethodAttr package_patch_command package_patch_installed_regex contained +syn keyword cf3BodyPackageMethodAttr package_patch_list_command package_patch_name_regex contained +syn keyword cf3BodyPackageMethodAttr package_patch_version_regex package_update_command contained +syn keyword cf3BodyPackageMethodAttr package_verify_command package_version_regex contained +syn keyword cf3BodyPackageMethodAttr package_version_less_command package_version_equal_command contained +syn keyword cf3BodyPackageMethodAttr package_multiline_start contained +syn keyword cf3BodyActionAttr action_policy ifelapsed expireafter log_string contained +syn keyword cf3BodyActionAttr log_level log_kept log_priority log_repaired contained +syn keyword cf3BodyActionAttr log_failed value_kept value_repaired value_notkept contained +syn keyword cf3BodyActionAttr audit background report_level contained +syn keyword cf3BodyActionAttr measurement_class contained +syn keyword cf3BodyContainAttr useshell umask exec_owner exec_group exec_timeout contained +syn keyword cf3BodyContainAttr chdir chroot preview no_output contained +syn keyword cf3BodyCopyFromAttr source servers collapse_destination_dir contained +syn keyword cf3BodyCopyFromAttr compare copy_backup encrypt check_root contained +syn keyword cf3BodyCopyFromAttr copylink_patterns copy_size findertype contained +syn keyword cf3BodyCopyFromAttr linkcopy_patterns link_type force_update contained +syn keyword cf3BodyCopyFromAttr force_ipv4 portnumber preserve protocol_version purge contained +syn keyword cf3BodyCopyFromAttr stealth timeout trustkey type_check verify contained +syn keyword cf3BodyVolumeAttr check_foreign freespace sensible_size contained +syn keyword cf3BodyVolumeAttr sensible_count scan_arrivals contained +syn keyword cf3BodyMountAttr edit_fstab mount_type mount_source contained +syn keyword cf3BodyMountAttr mount_server mount_options unmount contained +syn keyword cf3BodyServiceMethodAttr service_type service_args contained +syn keyword cf3BodyServiceMethodAttr service_autostart_policy service_dependence_chain contained +syn keyword cf3BodyDatabaseServerAttr db_server_owner db_server_password contained +syn keyword cf3BodyDatabaseServerAttr db_server_host db_server_type contained +syn keyword cf3BodyDatabaseServerAttr db_server_connection_db contained +syn keyword cf3BodyEnvResourcesAttr env_cpus env_memory env_disk contained +syn keyword cf3BodyEnvResourcesAttr env_baseline env_spec_file env_spec contained +syn keyword cf3BodyMatchValueAttr select_line_matching select_line_number contained +syn keyword cf3BodyMatchValueAttr extraction_regex track_growing_file contained +syn keyword cf3BodyServiceMethodAttr service_type service_args service_bundle contained +syn keyword cf3BodyServiceMethodAttr service_autostart_policy service_dependence_chain contained +syn keyword cf3BodyEnvInterfaceAttr env_addresses env_name env_network contained +syn keyword cf3BodyServerControlAttr allowallconnects allowconnects allowlegacyconnects contained +syn keyword cf3BodyServerControlAttr allowusers auditing bindtointerface contained +syn keyword cf3BodyServerControlAttr cfruncommand denybadclocks denyconnects contained +syn keyword cf3BodyServerControlAttr dynamicaddresses hostnamekeys keycacheTTL contained +syn keyword cf3BodyServerControlAttr logallconnections logencryptedtransfers contained +syn keyword cf3BodyServerControlAttr maxconnections port serverfacility contained +syn keyword cf3BodyServerControlAttr skipverify trustkeysfrom contained +syn keyword cf3BodyAgentControlAttr abortclasses abortbundleclasses addclasses contained +syn keyword cf3BodyAgentControlAttr agentaccess agentfacility alwaysvalidate contained +syn keyword cf3BodyAgentControlAttr auditing binarypaddingchar bindtointerface contained +syn keyword cf3BodyAgentControlAttr hashupdates childlibpath checksum_alert_time contained +syn keyword cf3BodyAgentControlAttr defaultcopytype dryrun editbinaryfilesize contained +syn keyword cf3BodyAgentControlAttr editfilesize environment exclamation expireafter contained +syn keyword cf3BodyAgentControlAttr files_single_copy files_auto_define hostnamekeys contained +syn keyword cf3BodyAgentControlAttr ifelapsed inform intermittency max_children contained +syn keyword cf3BodyAgentControlAttr maxconnections mountfilesystems nonalphanumfiles contained +syn keyword cf3BodyAgentControlAttr repchar refresh_processes default_repository contained +syn keyword cf3BodyAgentControlAttr secureinput sensiblecount sensiblesize contained +syn keyword cf3BodyAgentControlAttr skipidentify suspiciousnames syslog verbose contained +syn keyword cf3BodyAgentControlAttr track_value timezone default_timeout contained +syn keyword cf3BodyExecutorControlAttr splaytime mailfrom mailsubject mailto smtpserver contained +syn keyword cf3BodyExecutorControlAttr mailmaxlines schedule executorfacility contained +syn keyword cf3BodyExecutorControlAttr exec_command contained +syn keyword cf3BodyEditDefsAttr edit_backup empty_file_before_editing contained +syn keyword cf3BodyEditDefsAttr max_file_size recognize_join inherit contained +syn keyword cf3BodyDeleteSelectAttr delete_if_startwith_from_list contained +syn keyword cf3BodyDeleteSelectAttr delete_if_not_startwith_from_list contained +syn keyword cf3BodyDeleteSelectAttr delete_if_match_from_list contained +syn keyword cf3BodyDeleteSelectAttr delete_if_not_match_from_list contained +syn keyword cf3BodyDeleteSelectAttr delete_if_contains_from_list contained +syn keyword cf3BodyDeleteSelectAttr delete_if_not_contains_from_list contained +syn keyword cf3BodyInsertSelectAttr insert_if_startwith_from_list contained +syn keyword cf3BodyInsertSelectAttr insert_if_not_startwith_from_list contained +syn keyword cf3BodyInsertSelectAttr insert_if_match_from_list contained +syn keyword cf3BodyInsertSelectAttr insert_if_not_match_from_list contained +syn keyword cf3BodyInsertSelectAttr insert_if_contains_from_list contained +syn keyword cf3BodyInsertSelectAttr insert_if_not_contains_from_list contained +syn keyword cf3BodyMonitorControlAttr forgetrate monitorfacility histograms contained +syn keyword cf3BodyMonitorControlAttr tcpdump tcpdumpcommand contained +syn keyword cf3BodyPrintfileAttr file_to_print number_of_lines contained + +syn cluster cf3AttrCluster contains=cf3CommonAttr,cf3ClassesAttr,cf3Identifier, +syn cluster cf3AttrCluster add=cf3ProcessesAttr,cf3FilesAttr,cf3ReportsAttr +syn cluster cf3AttrCluster add=cf3PackagesAttr,cf3GuestEnvAttr,cf3TopicsAttr +syn cluster cf3AttrCluster add=cf3StorageAttr,cf3AccessAttr,cf3MeasurementsAttr +syn cluster cf3AttrCluster add=cf3EditLineAttr,cf3EditFieldAttr,cf3ReplaceWithAttr +syn cluster cf3AttrCluster add=cf3SelectRegionAttr,cf3ProcCountAttr,cf3ProcSelectAttr +syn cluster cf3AttrCluster add=cf3EditDefAttr,cf3LocationAttr,cf3CommandsAttr,cf3BodyFileSelectAttr +syn cluster cf3AttrCluster add=cf3ControlAttr,cf3MethodAttr,cf3BodyClassesAttr +syn cluster cf3AttrCluster add=cf3ServicesAttr,cf3DatabasesAttr,cf3DefaultsAttr + +syn cluster cf3AttrCluster add=cf3BodyLinkFromAttr,cf3BodyPermsAttr,cf3BodyACLAttr +syn cluster cf3AttrCluster add=cf3BodyDepthSearchAttr,cf3BodyDeleteAttr,cf3BodyRenameAttr +syn cluster cf3AttrCluster add=cf3BodyChangesAttr,cf3BodyPackageMethodAttr,cf3BodyActionAttr +syn cluster cf3AttrCluster add=cf3BodyPackageModuleAttr +syn cluster cf3AttrCluster add=cf3BodyContainAttr,cf3BodyCopyFromAttr,cf3BodyVolumeAttr +syn cluster cf3AttrCluster add=cf3BodyMountAttr,cf3BodyServiceMethodAttr,cf3BodyDatabaseServerAttr +syn cluster cf3AttrCluster add=cf3BodyEnvResourcesAttr,cf3BodyMatchValueAttr,cf3BodyServiceMethodAttr +syn cluster cf3AttrCluster add=cf3BodyEnvInterfaceAttr,cf3BodyServerControlAttr,cf3BodyEditDefsAttr +syn cluster cf3AttrCluster add=cf3BodyAgentControlAttr,cf3BodyExecutorControlAttr +syn cluster cf3AttrCluster add=cf3BodyDeleteSelectAttr,cf3BodyInsertSelectAttr +syn cluster cf3AttrCluster add=cf3BodyMonitorControlAttr,cf3BodyPrintfileAttr +syn match cf3Attributes /\w\+\s*=>/ contains=@cf3AttrCluster + +" }}} + +if version >= 508 || !exists("did_cfg_syn_inits") " {{{ + if version < 508 + let did_cfg_syn_inits = 1 + command -nargs=+ HiLink hi link + else + command -nargs=+ HiLink hi def link + endif + + hi cf3Context ctermfg=DarkGreen + hi cf3Arrows ctermfg=DarkCyan + hi cf3Type ctermfg=Magenta + hi Identifier ctermfg=Blue + hi Function ctermfg=DarkGreen + hi Library ctermfg=DarkGrey + hi cf3ClassBlock ctermfg=Yellow + + HiLink cf3Bundle Statement + HiLink cf3BundleTypes Statement + HiLink cf3BundleName Function + HiLink cf3BundleParams Identifier + + HiLink cf3Body Statement + HiLink cf3BodyTypes Statement + HiLink cf3Comment Comment + + HiLink cf3BodyControl Statement + HiLink cf3BodyControlTypes Statement + HiLink cf3BodyControlName Statement + + HiLink cf3Action Underlined + HiLink cf3Class cf3Context + + HiLink cf3String String + HiLink cf3BuiltIns Function + HiLink cf3Evolve_freelib Function + HiLink cf3Stdlib Library + + HiLink cf3Identifier cf3Arrows + HiLink cf3Esc Special + HiLink cf3Array Special + HiLink cf3Var Identifier + + HiLink cf3Type cf3Type + HiLink cf3CommonAttr Statement + HiLink cf3ClassesAttr Statement + HiLink cf3CommandsAttr Statement + HiLink cf3ProcessesAttr Statement + HiLink cf3FilesAttr Statement + HiLink cf3MethodAttr cf3Type + HiLink cf3PackagesAttr Statement + HiLink cf3ControlAttr Statement + HiLink cf3GuestEnvAttr Statement + HiLink cf3TopicsAttr Statement + HiLink cf3ServicesAttr Statement + HiLink cf3DatabasesAttr Statement + HiLink cf3DefaultsAttr Statement + HiLink cf3StorageAttr Statement + HiLink cf3AccessAttr Statement + HiLink cf3MeasurementsAttr Statement + HiLink cf3ReportsAttr Statement + + HiLink cf3EditLineAttr Statement + HiLink cf3EditFieldAttr Statement + HiLink cf3ReplaceWithAttr Statement + HiLink cf3SelectRegionAttr Statement + HiLink cf3ProcCountAttr Statement + HiLink cf3ProcSelectAttr Statement + HiLink cf3EditDefAttr Statement + HiLink cf3LocationAttr Statement + HiLink cf3BodyFileSelectAttr Statement + HiLink cf3BodyClassesAttr Statement + HiLink cf3BodyLinkFromAttr Statement + HiLink cf3BodyPermsAttr Statement + HiLink cf3BodyACLAttr Statement + HiLink cf3BodyDepthSearchAttr Statement + HiLink cf3BodyDeleteAttr Statement + HiLink cf3BodyRenameAttr Statement + HiLink cf3BodyChangesAttr Statement + HiLink cf3BodyPackageMethodAttr Statement + HiLink cf3BodyPackageModuleAttr Statement + HiLink cf3BodyActionAttr Statement + HiLink cf3BodyContainAttr Statement + HiLink cf3BodyCopyFromAttr Statement + HiLink cf3BodyVolumeAttr Statement + HiLink cf3BodyMountAttr Statement + HiLink cf3BodyServiceMethodAttr Statement + HiLink cf3BodyDatabaseServerAttr Statement + HiLink cf3BodyEnvResourcesAttr Statement + HiLink cf3BodyMatchValueAttr Statement + HiLink cf3BodyServiceMethodAttr Statement + HiLink cf3BodyEnvInterfaceAttr Statement + HiLink cf3BodyServerControlAttr Statement + HiLink cf3BodyAgentControlAttr Statement + HiLink cf3BodyExecutorControlAttr Statement + HiLink cf3BodyEditDefsAttr Statement + HiLink cf3BodyInsertSelectAttr Statement + HiLink cf3BodyDeleteSelectAttr Statement + HiLink cf3BodyMonitorControlAttr Statement + HiLink cf3BodyPrintfileAttr Statement + + delcommand HiLink +endif +let b:current_syntax = "cf3" + +" }}} + +" Folding {{{ + +function! CF3Folds() + let line = getline(v:lnum) + + " Don't include blank lines in previous fold {{{ + if line =~? '\v^\s*$' + return '-1' + endif + " }}} + + " Don't include comments in the previous fold {{{ + if line =~? '\v^\s*#.*$' + return '-1' + endif + " }}} + + " Fold bodies/bundles {{{ + let body_types = [ + \"^bundle", + \"^body" + \ ] + for type in body_types + if line =~ type + return ">1" + endif + endfor + " }}} + + " Fold promises {{{ + let promise_types = [ + \"meta:", + \"vars:", + \"defaults:", + \"classes:", + \"users:", + \"files:", + \"packages:", + \"guest_environments:", + \"methods:", + \"processes:", + \"services:", + \"commands:", + \"storage:", + \"databases:", + \"access:", + \"roles:", + \"measurements:", + \"reports:", + \ ] + for promise_type in promise_types + if line =~ promise_type + return ">2" + endif + endfor + " }}} + + " TODO: + " - fold lists + " - include trailing }'s in fdl 1 + + " If nothing matches, keep the previous foldlevel + return '=' + +endfunction + +setlocal foldmethod=expr +setlocal foldexpr=CF3Folds() + +" }}} + +" CREDITS +" Neil Watson +" Aleksey Tsalolikhin +" John Coleman of Yale U +" Matt Lesko +" Ivan Pesin +" Zach Himsel +" +" vim_cf3 files (https://github.com/neilhwatson/vim_cf3) +" Copyright (C) 2011 Neil H. Watson +" +" This program is free software: you can redistribute it and/or modify it under +" the terms of the GNU General Public License as published by the Free Software +" Foundation, either version 3 of the License, or (at your option) any later +" version. +" +" This program is distributed in the hope that it will be useful, but WITHOUT ANY +" WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +" PARTICULAR PURPOSE. See the GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License along with +" this program. If not, see . diff --git a/dots/.config/sqls/config.yml b/dots/.config/sqls/config.yml new file mode 100644 index 00000000..8d32a542 --- /dev/null +++ b/dots/.config/sqls/config.yml @@ -0,0 +1,4 @@ +connections: + - alias: zero2prod + driver: postgresql + dataSourceName: postgres://postgres:password@127.0.0.1:5432/newsletter diff --git a/dots/.config/wezterm/.editorconfig b/dots/.config/wezterm/.editorconfig new file mode 100644 index 00000000..9c61627f --- /dev/null +++ b/dots/.config/wezterm/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_style = space +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/dots/.config/wezterm/.stylua.toml b/dots/.config/wezterm/.stylua.toml new file mode 100644 index 00000000..9b7b3191 --- /dev/null +++ b/dots/.config/wezterm/.stylua.toml @@ -0,0 +1,3 @@ +column_width = 120 +indent_type = "Spaces" +quote_style = "AutoPreferDouble" diff --git a/dots/.config/wezterm/config/events.lua b/dots/.config/wezterm/config/events.lua new file mode 100644 index 00000000..9ed06a7d --- /dev/null +++ b/dots/.config/wezterm/config/events.lua @@ -0,0 +1,17 @@ +local wezterm = require("wezterm") + +wezterm.on("trigger-nvim-with-scrollback", function(window, pane) + local scrollback_lines = require("config.misc").scrollback_lines + local scrollback = pane:get_lines_as_text(scrollback_lines) + local name = os.tmpname() + local f = io.open(name, "w+") + f:write(scrollback) + f:flush() + f:close() + window:perform_action(wezterm.action({ SpawnCommandInNewTab = { args = { "nvim", name } } }), pane) + + wezterm.sleep_ms(1000) + os.remove(name) +end) + +return {} diff --git a/dots/.config/wezterm/config/fonts.lua b/dots/.config/wezterm/config/fonts.lua new file mode 100644 index 00000000..c899a81b --- /dev/null +++ b/dots/.config/wezterm/config/fonts.lua @@ -0,0 +1,32 @@ +local wezterm = require("wezterm") +local lib = require("wlib") + +return { + -- use_cap_height_to_scale_fallback_fonts = true, + font = wezterm.font_with_fallback({ + { + family = "JetBrains Mono", + weight = "DemiBold", + }, + -- NOTE: Attempt to resolve missing symbols etc. + -- , BuiltIn + { family = "Symbols Nerd Font Mono", scale = 0.8 }, + "Noto Sans Symbols2", + "PowerlineExtraSymbols", + { family = "FiraCode NF", weight = "DemiBold", scale = 1.2 }, + "MesloLGS NF", + + -- , BuiltIn + -- Assumed to have Emoji Presentation + -- Pixel sizes: [128] + "Noto Color Emoji", + + -- , BuiltIn + "Last Resort High-Efficiency", + }), + font_dirs = { + "fonts", + }, + font_locator = "ConfigDirsOnly", + font_size = 14, +} diff --git a/dots/.config/wezterm/config/keybinds.lua b/dots/.config/wezterm/config/keybinds.lua new file mode 100644 index 00000000..3c84e5a9 --- /dev/null +++ b/dots/.config/wezterm/config/keybinds.lua @@ -0,0 +1,74 @@ +local wezterm = require("wezterm") + +return { + disable_default_key_bindings = true, + leader = { key = "a", mods = "CTRL", timeout_milliseconds = 100000 }, + keys = { + { key = "r", mods = "SUPER", action = "ReloadConfiguration" }, + { key = "z", mods = "SUPER", action = wezterm.action({ ActivateTabRelative = -1 }) }, + { key = "x", mods = "SUPER", action = wezterm.action({ ActivateTabRelative = 1 }) }, + { key = "t", mods = "SUPER", action = wezterm.action({ SpawnTab = "CurrentPaneDomain" }) }, + { key = "w", mods = "ALT", action = wezterm.action({ CloseCurrentPane = { confirm = false } }) }, + { key = "w", mods = "SUPER", action = wezterm.action({ CloseCurrentTab = { confirm = false } }) }, + { key = "c", mods = "SUPER", action = wezterm.action({ CopyTo = "Clipboard" }) }, + { key = "v", mods = "SUPER", action = wezterm.action({ PasteFrom = "Clipboard" }) }, + -- NOTE: Pane Splitting + { + key = "RightArrow", + mods = "SHIFT", + action = wezterm.action({ SplitPane = { direction = "Right" } }), + }, + { + key = "LeftArrow", + mods = "SHIFT", + action = wezterm.action({ SplitPane = { direction = "Left" } }), + }, + { + key = "UpArrow", + mods = "SHIFT", + action = wezterm.action({ SplitPane = { direction = "Up" } }), + }, + { + key = "DownArrow", + mods = "SHIFT", + action = wezterm.action({ SplitPane = { direction = "Down" } }), + }, + -- NOTE: Pane Selecting + { + key = "RightArrow", + mods = "CTRL", + action = wezterm.action({ ActivatePaneDirection = "Right" }), + }, + { + key = "LeftArrow", + mods = "CTRL", + action = wezterm.action({ ActivatePaneDirection = "Left" }), + }, + { + key = "UpArrow", + mods = "CTRL", + action = wezterm.action({ ActivatePaneDirection = "Up" }), + }, + { + key = "DownArrow", + mods = "CTRL", + action = wezterm.action({ ActivatePaneDirection = "Down" }), + }, + { key = "=", mods = "CTRL", action = "IncreaseFontSize" }, + { key = "-", mods = "CTRL", action = "DecreaseFontSize" }, + { key = "0", mods = "CTRL", action = "ResetFontAndWindowSize" }, + + -- NOTE: Leader dependent binds + { key = "h", mods = "LEADER", action = wezterm.action({ EmitEvent = "trigger-nvim-with-scrollback" }) }, + { key = "f", mods = "LEADER", action = wezterm.action.ToggleFullScreen }, + + -- NOTE: Quick bindings for in terminal use + { key = "w", mods = "LEADER", action = { SendString = "wgrep\x0D" } }, + { key = "t", mods = "LEADER", action = { SendString = "fd --color=always | fzf\x0D" } }, + + -- NOTE: Copy & Paste + { key = "v", mods = "LEADER", action = wezterm.action.PasteFrom("Clipboard") }, + { key = "c", mods = "LEADER", action = wezterm.action.CopyTo("Clipboard") }, + }, + key_tables = {}, +} diff --git a/dots/.config/wezterm/config/misc.lua b/dots/.config/wezterm/config/misc.lua new file mode 100644 index 00000000..4b1d2632 --- /dev/null +++ b/dots/.config/wezterm/config/misc.lua @@ -0,0 +1,9 @@ +return { + automatically_reload_config = true, + window_close_confirmation = "NeverPrompt", + exit_behavior = "Close", + scrollback_lines = 20000, + native_macos_fullscreen_mode = true, + -- term = "wezterm", + warn_about_missing_glyphs = true, +} diff --git a/dots/.config/wezterm/config/os/windows.lua b/dots/.config/wezterm/config/os/windows.lua new file mode 100644 index 00000000..dda99bfd --- /dev/null +++ b/dots/.config/wezterm/config/os/windows.lua @@ -0,0 +1,3 @@ +return { + window_decorations = "TITLE | RESIZE", +} diff --git a/dots/.config/wezterm/config/rendering.lua b/dots/.config/wezterm/config/rendering.lua new file mode 100644 index 00000000..b128b81b --- /dev/null +++ b/dots/.config/wezterm/config/rendering.lua @@ -0,0 +1,13 @@ +return { + freetype_load_target = "Normal", + window_padding = { + left = 2, + right = 0, + top = 0, + bottom = 0, + }, + enable_scroll_bar = true, + -- HACK: This lets custom chars like '' render better, + -- HACK: but wez intends to resolve and remove this at a later time + anti_alias_custom_block_glyphs = false, +} diff --git a/dots/.config/wezterm/config/tabbar.lua b/dots/.config/wezterm/config/tabbar.lua new file mode 100644 index 00000000..3afc4078 --- /dev/null +++ b/dots/.config/wezterm/config/tabbar.lua @@ -0,0 +1,5 @@ +local wezterm = require("wezterm") + +return { + hide_tab_bar_if_only_one_tab = true, +} diff --git a/dots/.config/wezterm/config/theme/colors.lua b/dots/.config/wezterm/config/theme/colors.lua new file mode 100644 index 00000000..0cbab412 --- /dev/null +++ b/dots/.config/wezterm/config/theme/colors.lua @@ -0,0 +1,36 @@ +local M = {} +M.colors = { + tokyonight_night = { + foreground = "#c0caf5", + background = "#0f111d", + cursor_bg = "#c0caf5", + cursor_border = "#c0caf5", + cursor_fg = "#1a1b26", + selection_bg = "#33467C", + selection_fg = "#c0caf5", + ansi = { "#15161E", "#f7768e", "#9ece6a", "#e0af68", "#7aa2f7", "#bb9af7", "#7dcfff", "#a9b1d6" }, + brights = { "#414868", "#f7768e", "#9ece6a", "#e0af68", "#7aa2f7", "#bb9af7", "#7dcfff", "#c0caf5" }, + }, + kanagawa = { + foreground = "#dcd7ba", + background = "#1f1f28", + + cursor_bg = "#c8c093", + cursor_fg = "#c8c093", + cursor_border = "#c8c093", + + selection_fg = "#c8c093", + selection_bg = "#2d4f67", + + scrollbar_thumb = "#16161d", + split = "#16161d", + + ansi = { "#090618", "#c34043", "#76946a", "#c0a36e", "#7e9cd8", "#957fb8", "#6a9589", "#c8c093" }, + brights = { "#727169", "#e82424", "#98bb6c", "#e6c384", "#7fb4ca", "#938aa9", "#7aa89f", "#dcd7ba" }, + indexed = { [16] = "#ffa066", [17] = "#ff5d62" }, + }, +} + +M.theme = M.colors.kanagawa + +return M diff --git a/dots/.config/wezterm/config/theme/theme.lua b/dots/.config/wezterm/config/theme/theme.lua new file mode 100644 index 00000000..e0600f9b --- /dev/null +++ b/dots/.config/wezterm/config/theme/theme.lua @@ -0,0 +1,15 @@ +local colors = require("config.theme.colors") + +return { + enable_scroll_bar = true, + window_decorations = "RESIZE", + window_background_opacity = 0.95, + text_background_opacity = 1.0, + inactive_pane_hsb = { + brightness = 0.75, + hue = 1.0, + saturation = 1.0, + }, + colors = colors.theme, + force_reverse_video_cursor = true, +} diff --git a/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..6a7339aa Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..0485c095 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono.otf new file mode 100644 index 00000000..2d01abd0 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..6ad20541 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..c8ec3260 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..bef3694b Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete.otf new file mode 100644 index 00000000..98c43537 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete.ttf new file mode 100644 index 00000000..9109daeb Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Bold Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..c7063605 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..599a8ef7 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono.otf new file mode 100644 index 00000000..1280c0d3 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..29beae22 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..54c198b5 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..88d60b57 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete.otf new file mode 100644 index 00000000..147cca65 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete.ttf new file mode 100644 index 00000000..c97381dd Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Light Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..5109781d Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..9294d565 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono.otf new file mode 100644 index 00000000..d1c0352f Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..bcbb90e1 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..2db48d4a Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..9aaf6903 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete.otf new file mode 100644 index 00000000..754330b8 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete.ttf new file mode 100644 index 00000000..ce277e83 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Medium Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..4e4f7548 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..d29b1806 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono.otf new file mode 100644 index 00000000..a02a9c05 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..c1073e3c Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..ed8c64dd Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..5c59280d Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete.otf new file mode 100644 index 00000000..20f58471 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete.ttf new file mode 100644 index 00000000..6d6a9a43 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Regular Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..0ef11237 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..f3e0a60e Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono.otf new file mode 100644 index 00000000..e1d46bea Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..92592025 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..23d3cc14 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..0757c470 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete.otf new file mode 100644 index 00000000..e354a3a3 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete.ttf new file mode 100644 index 00000000..82054d9f Binary files /dev/null and b/dots/.config/wezterm/fonts/Fira Code Retina Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/FiraCode-Retina.ttf b/dots/.config/wezterm/fonts/FiraCode-Retina.ttf new file mode 100644 index 00000000..660742d6 Binary files /dev/null and b/dots/.config/wezterm/fonts/FiraCode-Retina.ttf differ diff --git a/dots/.config/wezterm/fonts/FiraCode-VF.ttf b/dots/.config/wezterm/fonts/FiraCode-VF.ttf new file mode 100644 index 00000000..c05ac827 Binary files /dev/null and b/dots/.config/wezterm/fonts/FiraCode-VF.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..02d027d0 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..5e36d33f Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono.otf new file mode 100644 index 00000000..9ac59abd Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..fe63a30d Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..3958578f Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..4c2b2c46 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete.otf new file mode 100644 index 00000000..2780f2a2 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete.ttf new file mode 100644 index 00000000..78e3a8a8 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Bold Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..9d1577a9 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..a22e17a3 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono.otf new file mode 100644 index 00000000..c621024a Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..b45754a6 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..8d509c25 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..53e63b44 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete.otf new file mode 100644 index 00000000..41437670 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete.ttf new file mode 100644 index 00000000..f9b180a6 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Light Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..3d0457f4 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..f1146cb7 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono.otf new file mode 100644 index 00000000..6caacf3e Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..297c267f Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..033a357b Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..3303f5f3 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete.otf new file mode 100644 index 00000000..1dd67354 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete.ttf new file mode 100644 index 00000000..cbda4378 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Medium Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..c7cdda6f Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..5ca0a245 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono.otf new file mode 100644 index 00000000..56d3872f Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..265554cf Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..76477cb8 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..cf0dd69d Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete.otf new file mode 100644 index 00000000..6e655855 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete.ttf new file mode 100644 index 00000000..09689821 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Regular Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..718eb647 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..21a4b2e2 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono.otf new file mode 100644 index 00000000..3f224a4f Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..b2177d7a Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..f8624c32 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..282a30fc Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete.otf new file mode 100644 index 00000000..af45df18 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete.ttf new file mode 100644 index 00000000..c02b8d42 Binary files /dev/null and b/dots/.config/wezterm/fonts/Fura Code Retina Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Hack Bold Italic Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Hack Bold Italic Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..9ce718b7 Binary files /dev/null and b/dots/.config/wezterm/fonts/Hack Bold Italic Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Hack Bold Italic Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Hack Bold Italic Nerd Font Complete.ttf new file mode 100644 index 00000000..8dc2d8a5 Binary files /dev/null and b/dots/.config/wezterm/fonts/Hack Bold Italic Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Hack Bold Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Hack Bold Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..883937b5 Binary files /dev/null and b/dots/.config/wezterm/fonts/Hack Bold Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Hack Bold Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Hack Bold Nerd Font Complete.ttf new file mode 100644 index 00000000..290d487c Binary files /dev/null and b/dots/.config/wezterm/fonts/Hack Bold Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Hack Italic Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Hack Italic Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..ad9214e0 Binary files /dev/null and b/dots/.config/wezterm/fonts/Hack Italic Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Hack Italic Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Hack Italic Nerd Font Complete.ttf new file mode 100644 index 00000000..d1d70676 Binary files /dev/null and b/dots/.config/wezterm/fonts/Hack Italic Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/Hack Regular Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/Hack Regular Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..57568a64 Binary files /dev/null and b/dots/.config/wezterm/fonts/Hack Regular Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/Hack Regular Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/Hack Regular Nerd Font Complete.ttf new file mode 100644 index 00000000..d770b830 Binary files /dev/null and b/dots/.config/wezterm/fonts/Hack Regular Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Bold Italic Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Bold Italic Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..7e358123 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Bold Italic Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Bold Italic Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Bold Italic Nerd Font Complete.ttf new file mode 100644 index 00000000..3455d650 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Bold Italic Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..1c63e5a5 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..a930276a Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..0f3d0c5b Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete.ttf new file mode 100644 index 00000000..8013d467 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Bold Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..931d4549 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..a4224150 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..58dccdb4 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete.ttf new file mode 100644 index 00000000..d563b013 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtBd Ita Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..e9141dc0 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..55ede64a Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..b02c9b76 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete.ttf new file mode 100644 index 00000000..048499f8 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Extra Bold Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..2579ecb3 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..5b9d8fda Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..192eb39e Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete.ttf new file mode 100644 index 00000000..2605be05 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExBd I Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..c55a0267 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..c59539bd Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..8ab76e1c Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete.ttf new file mode 100644 index 00000000..020d0eb5 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono ExtraBold ExtBd Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..d1ff0f7a Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..786cbe2e Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..7be48b49 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete.ttf new file mode 100644 index 00000000..f905a3d9 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Italic Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..0becf94a Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..795159f8 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..ca48341a Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete.ttf new file mode 100644 index 00000000..b4d2edc7 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Italic Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..857b6ba4 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..6e8559d7 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..b779b7f1 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete.ttf new file mode 100644 index 00000000..acd7cfbd Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Med Ita Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..7682f95f Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..7be13596 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..e695507f Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete.ttf new file mode 100644 index 00000000..5d68f108 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Medium Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..f226fa79 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..78846c4d Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..4367a7dd Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete.ttf new file mode 100644 index 00000000..7a02cc8b Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Medium Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete Mono Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete Mono Windows Compatible.ttf new file mode 100644 index 00000000..3fb2726e Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete Mono Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete Mono.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete Mono.ttf new file mode 100644 index 00000000..a2c6b645 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete Mono.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete Windows Compatible.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete Windows Compatible.ttf new file mode 100644 index 00000000..a2162d58 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete Windows Compatible.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete.ttf b/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete.ttf new file mode 100644 index 00000000..c286efff Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrains Mono Regular Nerd Font Complete.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-Bold.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-Bold.ttf new file mode 100644 index 00000000..0a928091 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-Bold.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-BoldItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-BoldItalic.ttf new file mode 100644 index 00000000..d051920c Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-BoldItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-ExtraBold.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-ExtraBold.ttf new file mode 100644 index 00000000..f85a85b5 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-ExtraBold.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-ExtraBoldItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-ExtraBoldItalic.ttf new file mode 100644 index 00000000..30bd7e65 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-ExtraBoldItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-ExtraLight.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-ExtraLight.ttf new file mode 100644 index 00000000..a3b844e4 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-ExtraLight.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-ExtraLightItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-ExtraLightItalic.ttf new file mode 100644 index 00000000..1457b442 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-ExtraLightItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-Italic.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-Italic.ttf new file mode 100644 index 00000000..e54a46ee Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-Italic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-Light.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-Light.ttf new file mode 100644 index 00000000..dba79a74 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-Light.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-LightItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-LightItalic.ttf new file mode 100644 index 00000000..b5ac2168 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-LightItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-Medium.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-Medium.ttf new file mode 100644 index 00000000..a6ba5529 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-Medium.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-MediumItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-MediumItalic.ttf new file mode 100644 index 00000000..3c5aff85 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-MediumItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-Regular.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-Regular.ttf new file mode 100644 index 00000000..8da8aa40 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-Regular.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-SemiBold.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-SemiBold.ttf new file mode 100644 index 00000000..94c1b18c Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-SemiBold.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-SemiBoldItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-SemiBoldItalic.ttf new file mode 100644 index 00000000..51d8fdd2 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-SemiBoldItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-Thin.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-Thin.ttf new file mode 100644 index 00000000..d1b977d6 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-Thin.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMono-ThinItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMono-ThinItalic.ttf new file mode 100644 index 00000000..4e2f8c86 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMono-ThinItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-Bold.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Bold.ttf new file mode 100644 index 00000000..b5962a32 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Bold.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-BoldItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-BoldItalic.ttf new file mode 100644 index 00000000..7dce20ed Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-BoldItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraBold.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraBold.ttf new file mode 100644 index 00000000..9a82e891 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraBold.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraBoldItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraBoldItalic.ttf new file mode 100644 index 00000000..15416ae7 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraBoldItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraLight.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraLight.ttf new file mode 100644 index 00000000..dfc95ca6 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraLight.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraLightItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraLightItalic.ttf new file mode 100644 index 00000000..c79c70a3 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-ExtraLightItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-Italic.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Italic.ttf new file mode 100644 index 00000000..ef28958e Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Italic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-Light.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Light.ttf new file mode 100644 index 00000000..e4fc2889 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Light.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-LightItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-LightItalic.ttf new file mode 100644 index 00000000..4cbe624e Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-LightItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-Medium.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Medium.ttf new file mode 100644 index 00000000..3d866abd Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Medium.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-MediumItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-MediumItalic.ttf new file mode 100644 index 00000000..756440c5 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-MediumItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-Regular.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Regular.ttf new file mode 100644 index 00000000..1aa91ec2 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Regular.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-SemiBold.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-SemiBold.ttf new file mode 100644 index 00000000..aad3b86b Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-SemiBold.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-SemiBoldItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-SemiBoldItalic.ttf new file mode 100644 index 00000000..0beb4fb2 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-SemiBoldItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-Thin.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Thin.ttf new file mode 100644 index 00000000..bcd94221 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-Thin.ttf differ diff --git a/dots/.config/wezterm/fonts/JetBrainsMonoNL-ThinItalic.ttf b/dots/.config/wezterm/fonts/JetBrainsMonoNL-ThinItalic.ttf new file mode 100644 index 00000000..56f40739 Binary files /dev/null and b/dots/.config/wezterm/fonts/JetBrainsMonoNL-ThinItalic.ttf differ diff --git a/dots/.config/wezterm/fonts/MesloLGS NF Bold Italic.ttf b/dots/.config/wezterm/fonts/MesloLGS NF Bold Italic.ttf new file mode 100644 index 00000000..be059c0c Binary files /dev/null and b/dots/.config/wezterm/fonts/MesloLGS NF Bold Italic.ttf differ diff --git a/dots/.config/wezterm/fonts/MesloLGS NF Bold.ttf b/dots/.config/wezterm/fonts/MesloLGS NF Bold.ttf new file mode 100644 index 00000000..6142dd04 Binary files /dev/null and b/dots/.config/wezterm/fonts/MesloLGS NF Bold.ttf differ diff --git a/dots/.config/wezterm/fonts/MesloLGS NF Italic.ttf b/dots/.config/wezterm/fonts/MesloLGS NF Italic.ttf new file mode 100644 index 00000000..90ca5696 Binary files /dev/null and b/dots/.config/wezterm/fonts/MesloLGS NF Italic.ttf differ diff --git a/dots/.config/wezterm/fonts/MesloLGS NF Regular.ttf b/dots/.config/wezterm/fonts/MesloLGS NF Regular.ttf new file mode 100644 index 00000000..e9e4de5f Binary files /dev/null and b/dots/.config/wezterm/fonts/MesloLGS NF Regular.ttf differ diff --git a/dots/.config/wezterm/fonts/NotoSansSymbols2-Regular.ttf b/dots/.config/wezterm/fonts/NotoSansSymbols2-Regular.ttf new file mode 100644 index 00000000..a7e501bd Binary files /dev/null and b/dots/.config/wezterm/fonts/NotoSansSymbols2-Regular.ttf differ diff --git a/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..b5d2b9df Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete Mono.otf new file mode 100644 index 00000000..74b59eac Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..28b7617a Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete.otf new file mode 100644 index 00000000..66124577 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Bold Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..59366f6b Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete Mono.otf new file mode 100644 index 00000000..660204e7 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..beef2261 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete.otf new file mode 100644 index 00000000..c8ae5e42 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraBold Italic Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..8927cdef Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete Mono.otf new file mode 100644 index 00000000..8621892c Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..06ab0711 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete.otf new file mode 100644 index 00000000..0fe094ff Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraBold Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..ff08011a Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete Mono.otf new file mode 100644 index 00000000..d2e6718e Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..8e7b7b09 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete.otf new file mode 100644 index 00000000..1d5343d2 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraLight Italic Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..9e0b9733 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete Mono.otf new file mode 100644 index 00000000..17c87c21 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..94d09c6b Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete.otf new file mode 100644 index 00000000..ad9d02f8 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass ExtraLight Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..dda58cb1 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete Mono.otf new file mode 100644 index 00000000..d3eb295b Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..079d76b4 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete.otf new file mode 100644 index 00000000..4b08c38c Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Heavy Italic Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..d9906520 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete Mono.otf new file mode 100644 index 00000000..fcf8a5e8 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..2aeee651 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete.otf new file mode 100644 index 00000000..0ce59cd3 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Heavy Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..0977abbe Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete Mono.otf new file mode 100644 index 00000000..9cb57c52 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..803cb744 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete.otf new file mode 100644 index 00000000..648010d4 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Italic Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..b81ea8b4 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete Mono.otf new file mode 100644 index 00000000..95afd35a Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..59ec25a5 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete.otf new file mode 100644 index 00000000..448003f0 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Light Italic Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..354278f2 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete Mono.otf new file mode 100644 index 00000000..21b960d0 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..c9dccb94 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete.otf new file mode 100644 index 00000000..32c0e2ab Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Light Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..eb46ae6b Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete Mono.otf new file mode 100644 index 00000000..485e7376 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..11e3cde9 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete.otf new file mode 100644 index 00000000..4d609aaf Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Bold Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..2f7e7c7a Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete Mono.otf new file mode 100644 index 00000000..943989f6 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..81cb6702 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete.otf new file mode 100644 index 00000000..624d3b4c Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Light Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..55c70c14 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete Mono.otf new file mode 100644 index 00000000..2d07988f Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..36953c6a Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete.otf new file mode 100644 index 00000000..d4fad1f9 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono Regular Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..5908ddf2 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete Mono.otf new file mode 100644 index 00000000..711482c2 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..ce4da90b Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete.otf new file mode 100644 index 00000000..ef10d03b Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Mono SemiBold Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..3f1bab3b Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete Mono.otf new file mode 100644 index 00000000..15d0e151 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..807111de Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete.otf new file mode 100644 index 00000000..f2e16253 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Regular Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..f8ee4640 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete Mono.otf new file mode 100644 index 00000000..9b3d4c17 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..bd7d026e Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete.otf new file mode 100644 index 00000000..7293f74f Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass SemiBold Italic Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..2468db4d Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete Mono.otf new file mode 100644 index 00000000..cacf575f Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..7b78ddf0 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete.otf new file mode 100644 index 00000000..8a95ed27 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass SemiBold Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..c250574e Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete Mono.otf new file mode 100644 index 00000000..b6c79447 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..119e1816 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete.otf new file mode 100644 index 00000000..75e70d41 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Thin Italic Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete Mono Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete Mono Windows Compatible.otf new file mode 100644 index 00000000..af663fe3 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete Mono Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete Mono.otf b/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete Mono.otf new file mode 100644 index 00000000..51316044 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete Mono.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete Windows Compatible.otf b/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete Windows Compatible.otf new file mode 100644 index 00000000..82a5f187 Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete Windows Compatible.otf differ diff --git a/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete.otf b/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete.otf new file mode 100644 index 00000000..41a0ae3c Binary files /dev/null and b/dots/.config/wezterm/fonts/Overpass Thin Nerd Font Complete.otf differ diff --git a/dots/.config/wezterm/fonts/all-the-icons.ttf b/dots/.config/wezterm/fonts/all-the-icons.ttf new file mode 100644 index 00000000..634d48e9 Binary files /dev/null and b/dots/.config/wezterm/fonts/all-the-icons.ttf differ diff --git a/dots/.config/wezterm/fonts/file-icons.ttf b/dots/.config/wezterm/fonts/file-icons.ttf new file mode 100644 index 00000000..dd42225c Binary files /dev/null and b/dots/.config/wezterm/fonts/file-icons.ttf differ diff --git a/dots/.config/wezterm/fonts/fontawesome.ttf b/dots/.config/wezterm/fonts/fontawesome.ttf new file mode 100644 index 00000000..f221e50a Binary files /dev/null and b/dots/.config/wezterm/fonts/fontawesome.ttf differ diff --git a/dots/.config/wezterm/fonts/material-design-icons.ttf b/dots/.config/wezterm/fonts/material-design-icons.ttf new file mode 100644 index 00000000..7015564a Binary files /dev/null and b/dots/.config/wezterm/fonts/material-design-icons.ttf differ diff --git a/dots/.config/wezterm/fonts/nonicons.ttf b/dots/.config/wezterm/fonts/nonicons.ttf new file mode 100644 index 00000000..7a8228ca Binary files /dev/null and b/dots/.config/wezterm/fonts/nonicons.ttf differ diff --git a/dots/.config/wezterm/fonts/octicons.ttf b/dots/.config/wezterm/fonts/octicons.ttf new file mode 100644 index 00000000..6f3edd66 Binary files /dev/null and b/dots/.config/wezterm/fonts/octicons.ttf differ diff --git a/dots/.config/wezterm/fonts/weathericons.ttf b/dots/.config/wezterm/fonts/weathericons.ttf new file mode 100644 index 00000000..948f0a5d Binary files /dev/null and b/dots/.config/wezterm/fonts/weathericons.ttf differ diff --git a/dots/.config/wezterm/wezterm.lua b/dots/.config/wezterm/wezterm.lua new file mode 100644 index 00000000..cc9325ed --- /dev/null +++ b/dots/.config/wezterm/wezterm.lua @@ -0,0 +1,27 @@ +local wezterm = require("wezterm") +local wlib = require("wlib") + +-- NOTE: Should be merged +-- NOTE: base configuration +local events = require("config.events") +local fonts = require("config.fonts") +local theme = require("config.theme.theme") +local tabbar = require("config.tabbar") +local rendering = require("config.rendering") +local keybinds = require("config.keybinds") +local misc = require("config.misc") + +-- NOTE: Pull in the OS specific config, this is passed last to the mergeable +-- NOTE: as the last item to be merged (last item passed) overrides all others +local os_config_mod = "config.os." .. wlib.get_os_arch().name:lower() +wezterm.log_info("Loading os config from " .. os_config_mod) +local found, os_config = pcall(require, os_config_mod) +if not found then + wezterm.log_warn("Could not load a os config from " .. os_config_mod) + -- Empty out os_config if we can't find a valid configuration, won't + -- override any settings + os_config = {} +end + +local config = wlib.Table.merge(events, fonts, theme, tabbar, misc, rendering, keybinds, os_config) +return config diff --git a/dots/.config/wezterm/wlib.lua b/dots/.config/wezterm/wlib.lua new file mode 100644 index 00000000..7aa0beea --- /dev/null +++ b/dots/.config/wezterm/wlib.lua @@ -0,0 +1,148 @@ +local os = require("os") +local M = {} + +M.Table = {} + +--- Dump a table into a json-ish string format, +--- shamelessly taken from https://stackoverflow.com/a/27028488 +---@param o table +function M.Table.dump(o) + if type(o) == "table" then + local s = "{\n" + for k, v in pairs(o) do + if type(k) ~= "number" then + k = '"' .. k .. '"' + end + s = s .. " [" .. k .. "] = " .. M.Table.dump(v) .. ",\n" + end + return s .. "} " + else + return tostring(o) + end +end + +--- Allows the combining of multiple tables, where the last table given has the highest +--- priority (it overrides the keys of other tables) +---@vararg table +---@return table +function M.Table.merge(...) + local ret = {} + for _, tbl in ipairs({ ... }) do + for k, v in pairs(tbl) do + ret[k] = v + end + end + return ret +end + +--- Return a table with `name` representing the OS name and `arch` representing +--- the architecture. +--- +--- For Windows, the OS identification is based on environment variables +--- On unix, a call to uname is used. +--- +--- OS possible values: Windows, Linux, Mac, BSD, Solaris +--- Arch possible values: x86, x86864, powerpc, arm, mips +--- +--- On Windows, detection based on environment variable is limited +--- to what Windows is willing to tell through environement variables. In particular +--- 64bits is not always indicated so do not rely hardly on this value. +--- +--- NOTE: Adapted from (and credit to): https://github.com/bluebird75/lua_get_os_name +function M.get_os_arch() + local raw_os_name, raw_arch_name = "", "" + + -- LuaJIT shortcut + if package.config:sub(1, 1) == "\\" then + -- Windows + -- NOTE: See https://docs.microsoft.com/en-us/windows/win32/winprog64/wow64-implementation-details + local env_OS = os.getenv("OS") + local env_ARCH = os.getenv("PROCESSOR_ARCHITECTURE") + if env_OS then + raw_os_name = env_OS + end + if env_ARCH then + raw_arch_name = env_ARCH + end + + if not env_OS then + -- Windows variables were not forthcoming, time to check variables + -- that are less system dependent, but still pretty much a Windows + -- only thing. Everything under this `else` statement is a fallback, + -- a prayer that we can extract some information instead of none. + + -- Gather Variables + + -- Most consistent variable to dependend upon for user detection + local env_USERPROFILE = os.getenv("USERPROFILE") + + -- If these two exist then the user has logged in once and explorer + -- has generated these variables + local env_HOME = os.getenv("HOMEPATH") + local env_HOME_DRIVE = os.getenv("HOMEDRIVE") + + if env_USERPROFILE then + raw_os_name = "windows" + elseif env_HOME and env_HOME_DRIVE then + raw_os_name = "windows" + end + end + else + -- other platform, assume uname support and popen support + raw_os_name = io.popen("uname -s", "r"):read("*l") + raw_arch_name = io.popen("uname -m", "r"):read("*l") + + -- TODO: Increase the backup checks done here in the instance uname is + -- TODO: is not found/giving poor results + end + + raw_os_name = raw_os_name:lower() + raw_arch_name = raw_arch_name:lower() + + local os_patterns = { + ["windows"] = "Windows", + ["linux"] = "Linux", + ["osx"] = "Mac", + ["mac"] = "Mac", + ["darwin"] = "Mac", + ["^mingw"] = "Windows", + ["^cygwin"] = "Windows", + ["bsd$"] = "BSD", + ["sunos"] = "Solaris", + } + + local arch_patterns = { + ["^x86$"] = "x86", + ["i[%d]86"] = "x86", + ["amd64"] = "x86_64", + ["x86_64"] = "x86_64", + ["x64"] = "x86_64", + ["power macintosh"] = "powerpc", + ["^arm"] = "arm", + ["^mips"] = "mips", + ["i86pc"] = "x86", + } + + local os_name, arch_name = "", "" + + for pattern, name in pairs(os_patterns) do + if raw_os_name:match(pattern) then + os_name = name + break + end + end + for pattern, name in pairs(arch_patterns) do + if raw_arch_name:match(pattern) then + arch_name = name + break + end + end + + local os_table = { + name = os_name, + arch = arch_name, + } + return os_table +end + +return M diff --git a/dots/.config/zsh/config/completions/completions/_Note b/dots/.config/zsh/config/completions/completions/_Note new file mode 100644 index 00000000..5a8b776d --- /dev/null +++ b/dots/.config/zsh/config/completions/completions/_Note @@ -0,0 +1,26 @@ +#compdef note + +local file_name_comp='*: :_files -W ${NOTES_DIR} -g "*.norg(:r)" -S " "' + +(( $+functions[_Note_subcommand] )) || +_Note_command() { + local -a args + args=( + {--open,-o}'[Create or edit a note]' + {--delete,-d}'[Delete a note]' + {--list,-l}'[List all notes]' + {--help,-h}'[Show help menu]' + {--version,-V}'[Show program version]' + "${file_name_comp}" + ) + + _arguments -S -s $args +} + +if (( ${#words} == 2 )); then + _Note_command +elif (( ${#words} == 3)); then + _arguments "${file_name_comp}" +elif (( ${#words} > 3 )) && [[ ${words[2]} = "--delete" || ${words[2]} = "-d" ]]; then + _arguments "${file_name_comp}" +fi diff --git a/dots/.config/zsh/config/completions/completions/_aws b/dots/.config/zsh/config/completions/completions/_aws new file mode 100644 index 00000000..2ff6bb51 --- /dev/null +++ b/dots/.config/zsh/config/completions/completions/_aws @@ -0,0 +1,6 @@ +#compdef aws +_aws () { + local e + e=$(dirname ${funcsourcetrace[1]%:*})/aws_zsh_completer.sh + if [[ -f $e ]]; then source $e; fi +} diff --git a/dots/.config/zsh/config/completions/completions/_bat b/dots/.config/zsh/config/completions/completions/_bat new file mode 100644 index 00000000..6699067a --- /dev/null +++ b/dots/.config/zsh/config/completions/completions/_bat @@ -0,0 +1,99 @@ +#compdef bat + +local context state state_descr line +typeset -A opt_args + +(( $+functions[_bat_cache_subcommand] )) || +_bat_cache_subcommand() { + local -a args + args=( + '(-b --build -c --clear)'{-b,--build}'[Initialize or update the syntax/theme cache]' + '(-b --build -c --clear)'{-c,--clear}'[Remove the cached syntax definitions and themes]' + '(--source)'--source='[Use a different directory to load syntaxes and themes from]:directory:_files -/' + '(--target)'--target='[Use a different directory to store the cached syntax and theme set]:directory:_files -/' + '(--blank)'--blank'[Create completely new syntax and theme sets]' + '(: -)'{-h,--help}'[Prints help information]' + '*: :' + ) + + _arguments -S -s $args +} + +(( $+functions[_bat_main] )) || +_bat_main() { + local -a args + args=( + '(-A --show-all)'{-A,--show-all}'[Show non-printable characters (space, tab, newline, ..)]' + '*'{-p,--plain}'[Show plain style (alias for `--style=plain`), repeat twice to disable disable automatic paging (alias for `--paging=never`)]' + '(-l --language)'{-l+,--language=}'[Set the language for syntax highlighting]::->language' + '(-H --highlight-line)'{-H,--highlight-line}'[Highlight lines N through M]:...' + '(--file-name)'--file-name'[Specify the name to display for a file]:...:_files' + '(-d --diff)'--diff'[Only show lines that have been added/removed/modified]' + '(--diff-context)'--diff-context'[Include N lines of context around added/removed/modified lines when using `--diff`]: (lines):()' + '(--tabs)'--tabs'[Set the tab width to T spaces]: (tab width):()' + '(--wrap)'--wrap='[Specify the text-wrapping mode]::(auto never character)' + '(--terminal-width)'--terminal-width'[Explicitly set the width of the terminal instead of determining it automatically]:' + '(-n --number)'{-n,--number}'[Show line numbers]' + '(--color)'--color='[When to use colors]::(auto never always)' + '(--italic-text)'--italic-text='[Use italics in output]::(always never)' + '(--decorations)'--decorations='[When to show the decorations]::(auto never always)' + '(--paging)'--paging='[Specify when to use the pager]::(auto never always)' + '(-m --map-syntax)'{-m+,--map-syntax=}'[Use the specified syntax for files matching the glob pattern]:...' + '(--theme)'--theme='[Set the color theme for syntax highlighting]::->theme' + '(: --list-themes --list-languages -L)'--list-themes'[Display all supported highlighting themes]' + '(--style)'--style='[Comma-separated list of style elements to display]::->style' + '(-r --line-range)'{-r+,--line-range=}'[Only print the lines from N to M]:...' + '(: --list-themes --list-languages -L)'{-L,--list-languages}'[Display all supported languages]' + '(: --no-config)'--no-config'[Do not use the configuration file]' + '(: --no-custom-assets)'--no-custom-assets'[Do not load custom assets]' + '(: --config-dir)'--config-dir'[Show bat'"'"'s configuration directory]' + '(: --config-file)'--config-file'[Show path to the configuration file]' + '(: --generate-config-file)'--generate-config-file'[Generates a default configuration file]' + '(: --cache-dir)'--cache-dir'[Show bat'"'"'s cache directory]' + '(: -)'{-h,--help}'[Print this help message]' + '(: -)'{-V,--version}'[Show version information]' + '*: :_files' + ) + + _arguments -S -s $args + + case "$state" in + language) + local IFS=$'\n' + local -a languages + languages=( $(bat --list-languages | awk -F':|,' '{ for (i = 1; i <= NF; ++i) printf("%s:%s\n", $i, $1) }') ) + + _describe 'language' languages + ;; + + theme) + local IFS=$'\n' + local -a themes + themes=( $(bat --list-themes | sort) ) + + _values 'theme' $themes + ;; + + style) + _values -s , 'style' auto full plain changes header grid rule numbers snip + ;; + esac +} + +# first positional argument +if (( ${#words} == 2 )); then + local -a subcommands + subcommands=('cache:Modify the syntax-definition and theme cache') + _describe subcommand subcommands + _bat_main +else + case $words[2] in + cache) + _bat_cache_subcommand + ;; + + *) + _bat_main + ;; + esac +fi diff --git a/dots/.config/zsh/config/completions/completions/_cargo b/dots/.config/zsh/config/completions/completions/_cargo new file mode 100644 index 00000000..5356313b --- /dev/null +++ b/dots/.config/zsh/config/completions/completions/_cargo @@ -0,0 +1,426 @@ +#compdef cargo + +autoload -U regexp-replace + +_cargo() { + local curcontext="$curcontext" ret=1 + local -a command_scope_spec common parallel features msgfmt triple target registry + local -a state line state_descr # These are set by _arguments + typeset -A opt_args + + common=( + '(-q --quiet)*'{-v,--verbose}'[use verbose output]' + '(-q --quiet -v --verbose)'{-q,--quiet}'[no output printed to stdout]' + '-Z+[pass unstable (nightly-only) flags to cargo]: :_cargo_unstable_flags' + '--frozen[require that Cargo.lock and cache are up-to-date]' + '--locked[require that Cargo.lock is up-to-date]' + '--color=[specify colorization option]:coloring:(auto always never)' + '(- 1 *)'{-h,--help}'[show help message]' + ) + + # leading items in parentheses are an exclusion list for the arguments following that arg + # See: http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Completion-Functions + # - => exclude all other options + # 1 => exclude positional arg 1 + # * => exclude all other args + # +blah => exclude +blah + _arguments -s -S -C $common \ + '(- 1 *)--list[list installed commands]' \ + '(- 1 *)--explain=[provide a detailed explanation of an error message]:error code' \ + '(- 1 *)'{-V,--version}'[show version information]' \ + '(+beta +nightly)+stable[use the stable toolchain]' \ + '(+stable +nightly)+beta[use the beta toolchain]' \ + '(+stable +beta)+nightly[use the nightly toolchain]' \ + '1: :_cargo_cmds' \ + '*:: :->args' + + # These flags are mutually exclusive specifiers for the scope of a command; as + # they are used in multiple places without change, they are expanded into the + # appropriate command's `_arguments` where appropriate. + command_scope_spec=( + '(--bin --example --test --lib)--bench=[specify benchmark name]: :_cargo_benchmark_names' + '(--bench --bin --test --lib)--example=[specify example name]:example name:_cargo_example_names' + '(--bench --example --test --lib)--bin=[specify binary name]:binary name' + '(--bench --bin --example --test)--lib=[specify library name]:library name' + '(--bench --bin --example --lib)--test=[specify test name]:test name' + ) + + parallel=( + '(-j --jobs)'{-j+,--jobs=}'[specify number of parallel jobs]:jobs [# of CPUs]' + ) + + features=( + '(--all-features)--features=[specify features to activate]:feature' + '(--features)--all-features[activate all available features]' + "--no-default-features[don't build the default features]" + ) + + msgfmt='--message-format=[specify error format]:error format [human]:(human json short)' + triple='--target=[specify target triple]:target triple:_cargo_target_triple' + target='--target-dir=[specify directory for all generated artifacts]:directory:_directories' + manifest='--manifest-path=[specify path to manifest]:path:_directories' + registry='--registry=[specify registry to use]:registry' + + case $state in + args) + curcontext="${curcontext%:*}-${words[1]}:" + case ${words[1]} in + bench) + _arguments -s -A "^--" $common $parallel $features $msgfmt $triple $target $manifest \ + "${command_scope_spec[@]}" \ + '--all-targets[benchmark all targets]' \ + "--no-run[compile but don't run]" \ + '(-p --package)'{-p+,--package=}'[specify package to run benchmarks for]:package:_cargo_package_names' \ + '--exclude=[exclude packages from the benchmark]:spec' \ + '--no-fail-fast[run all benchmarks regardless of failure]' \ + '1: :_guard "^-*" "bench name"' \ + '*:args:_default' + ;; + + build | b) + _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ + '--all-targets[equivalent to specifying --lib --bins --tests --benches --examples]' \ + "${command_scope_spec[@]}" \ + '(-p --package)'{-p+,--package=}'[specify package to build]:package:_cargo_package_names' \ + '--release[build in release mode]' \ + '--build-plan[output the build plan in JSON]' \ + ;; + + check | c) + _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ + '--all-targets[equivalent to specifying --lib --bins --tests --benches --examples]' \ + "${command_scope_spec[@]}" \ + '(-p --package)'{-p+,--package=}'[specify package to check]:package:_cargo_package_names' \ + '--release[check in release mode]' \ + ;; + + clean) + _arguments -s -S $common $triple $target $manifest \ + '(-p --package)'{-p+,--package=}'[specify package to clean]:package:_cargo_package_names' \ + '--release[clean release artifacts]' \ + '--doc[clean just the documentation directory]' + ;; + + doc | d) + _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ + '--no-deps[do not build docs for dependencies]' \ + '--document-private-items[include non-public items in the documentation]' \ + '--open[open docs in browser after the build]' \ + '(-p --package)'{-p+,--package=}'[specify package to document]:package:_cargo_package_names' \ + '--release[build artifacts in release mode, with optimizations]' \ + ;; + + fetch) + _arguments -s -S $common $triple $manifest + ;; + + fix) + _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ + "${command_scope_spec[@]}" \ + '--broken-code[fix code even if it already has compiler errors]' \ + '--edition[fix in preparation for the next edition]' \ + '--edition-idioms[fix warnings to migrate to the idioms of an edition]' \ + '--allow-no-vcs[fix code even if a VCS was not detected]' \ + '--allow-dirty[fix code even if the working directory is dirty]' \ + '--allow-staged[fix code even if the working directory has staged changes]' + ;; + + generate-lockfile) + _arguments -s -S $common $manifest + ;; + + help) + _cargo_cmds + ;; + + init) + _arguments -s -S $common $registry \ + '--lib[use library template]' \ + '--edition=[specify edition to set for the crate generated]:edition:(2015 2018 2021)' \ + '--vcs=[initialize a new repo with a given VCS]:vcs:(git hg pijul fossil none)' \ + '--name=[set the resulting package name]:name' \ + '1:path:_directories' + ;; + + install) + _arguments -s -S $common $parallel $features $triple $registry \ + '(-f --force)'{-f,--force}'[force overwriting of existing crates or binaries]' \ + '--bin=[only install the specified binary]:binary' \ + '--branch=[branch to use when installing from git]:branch' \ + '--debug[build in debug mode instead of release mode]' \ + '--example=[install the specified example instead of binaries]:example:_cargo_example_names' \ + '--git=[specify URL from which to install the crate]:url:_urls' \ + '--path=[local filesystem path to crate to install]: :_directories' \ + '--rev=[specific commit to use when installing from git]:commit' \ + '--root=[directory to install packages into]: :_directories' \ + '--tag=[tag to use when installing from git]:tag' \ + '--vers=[version to install from crates.io]:version' \ + '--list[list all installed packages and their versions]' \ + '*: :_guard "^-*" "crate"' + ;; + + locate-project) + _arguments -s -S $common $manifest \ + '--message-format=[specify output representation]:output representation [json]:(json plain)' + '--workspace[locate Cargo.toml of the workspace root]' + ;; + + login) + _arguments -s -S $common $registry \ + '*: :_guard "^-*" "token"' + ;; + + metadata) + _arguments -s -S $common $features $manifest \ + "--no-deps[output information only about the root package and don't fetch dependencies]" \ + '--format-version=[specify format version]:version [1]:(1)' + ;; + + new) + _arguments -s -S $common $registry \ + '--lib[use library template]' \ + '--vcs:initialize a new repo with a given VCS:(git hg none)' \ + '--name=[set the resulting package name]' + ;; + + owner) + _arguments -s -S $common $registry \ + '(-a --add)'{-a,--add}'[specify name of a user or team to invite as an owner]:name' \ + '--index=[specify registry index]:index' \ + '(-l --list)'{-l,--list}'[list owners of a crate]' \ + '(-r --remove)'{-r,--remove}'[specify name of a user or team to remove as an owner]:name' \ + '--token=[specify API token to use when authenticating]:token' \ + '*: :_guard "^-*" "crate"' + ;; + + package) + _arguments -s -S $common $parallel $features $triple $target $manifest \ + '(-l --list)'{-l,--list}'[print files included in a package without making one]' \ + '--no-metadata[ignore warnings about a lack of human-usable metadata]' \ + '--allow-dirty[allow dirty working directories to be packaged]' \ + "--no-verify[don't build to verify contents]" + ;; + + pkgid) + _arguments -s -S $common $manifest \ + '(-p --package)'{-p+,--package=}'[specify package to get ID specifier for]:package:_cargo_package_names' \ + '*: :_guard "^-*" "spec"' + ;; + + publish) + _arguments -s -S $common $parallel $features $triple $target $manifest $registry \ + '--index=[specify registry index]:index' \ + '--allow-dirty[allow dirty working directories to be packaged]' \ + "--no-verify[don't verify the contents by building them]" \ + '--token=[specify token to use when uploading]:token' \ + '--dry-run[perform all checks without uploading]' + ;; + + read-manifest) + _arguments -s -S $common $manifest + ;; + + run | r) + _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ + '--example=[name of the bin target]:name:_cargo_example_names' \ + '--bin=[name of the bin target]:name' \ + '(-p --package)'{-p+,--package=}'[specify package with the target to run]:package:_cargo_package_names' \ + '--release[build in release mode]' \ + '*: :_default' + ;; + + rustc) + _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ + '(-p --package)'{-p+,--package=}'[specify package to build]:package:_cargo_package_names' \ + '--profile=[specify profile to build the selected target for]:profile' \ + '--release[build artifacts in release mode, with optimizations]' \ + "${command_scope_spec[@]}" \ + '*: : _dispatch rustc rustc -default-' + ;; + + rustdoc) + _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ + '--document-private-items[include non-public items in the documentation]' \ + '--open[open the docs in a browser after the operation]' \ + '(-p --package)'{-p+,--package=}'[specify package to document]:package:_cargo_package_names' \ + '--release[build artifacts in release mode, with optimizations]' \ + "${command_scope_spec[@]}" \ + '*: : _dispatch rustdoc rustdoc -default-' + ;; + + search) + _arguments -s -S $common $registry \ + '--index=[specify registry index]:index' \ + '--limit=[limit the number of results]:results [10]' \ + '*: :_guard "^-*" "query"' + ;; + + test | t) + _arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \ + '--test=[test name]: :_cargo_test_names' \ + '--no-fail-fast[run all tests regardless of failure]' \ + '--no-run[compile but do not run]' \ + '(-p --package)'{-p+,--package=}'[package to run tests for]:package:_cargo_package_names' \ + '--all[test all packages in the workspace]' \ + '--release[build artifacts in release mode, with optimizations]' \ + '1: :_cargo_test_names' \ + '(--doc --bin --example --test --bench)--lib[only test library]' \ + '(--lib --bin --example --test --bench)--doc[only test documentation]' \ + '(--lib --doc --example --test --bench)--bin=[binary name]' \ + '(--lib --doc --bin --test --bench)--example=[example name]:_cargo_example_names' \ + '(--lib --doc --bin --example --bench)--test=[test name]' \ + '(--lib --doc --bin --example --test)--bench=[benchmark name]' \ + '*: :_default' + ;; + + tree) + _arguments -s -S $common $features $triple $manifest \ + '(-p --package)'{-p+,--package=}'[package to use as the root]:package:_cargo_package_names' \ + '(-i --invert)'{-i+,--invert=}'[invert the tree for the given package]:package:_cargo_package_names' \ + '--prefix=[line prefix]:prefix:(depth indent none)' \ + '--no-dedupe[repeat shared dependencies]' \ + '(-d --duplicates)'{-d,--duplicates}'[packages with multiple versions]' \ + '--charset=[utf8 or ascii]:charset:(utf8 ascii)' \ + '(-f --format)'{-f,--format=}'[format string]:format' \ + '(-e --edges)'{-e,--edges=}'[edge kinds]:kind:(features normal build dev all no-dev no-build no-normal)' \ + ;; + + uninstall) + _arguments -s -S $common \ + '(-p --package)'{-p+,--package=}'[specify package to uninstall]:package:_cargo_package_names' \ + '--bin=[only uninstall the specified binary]:name' \ + '--root=[directory to uninstall packages from]: :_files -/' \ + '*:crate:_cargo_installed_crates -F line' + ;; + + update) + _arguments -s -S $common $manifest \ + '--aggressive=[force dependency update]' \ + "--dry-run[don't actually write the lockfile]" \ + '(-p --package)'{-p+,--package=}'[specify package to update]:package:_cargo_package_names' \ + '--precise=[update single dependency to precise release]:release' + ;; + + verify-project) + _arguments -s -S $common $manifest + ;; + + version) + _arguments -s -S $common + ;; + + yank) + _arguments -s -S $common $registry \ + '--vers=[specify yank version]:version' \ + '--undo[undo a yank, putting a version back into the index]' \ + '--index=[specify registry index to yank from]:registry index' \ + '--token=[specify API token to use when authenticating]:token' \ + '*: :_guard "^-*" "crate"' + ;; + *) + # allow plugins to define their own functions + if ! _call_function ret _cargo-${words[1]}; then + # fallback on default completion for unknown commands + _default && ret=0 + fi + (( ! ret )) + ;; + esac + ;; + esac +} + +_cargo_unstable_flags() { + local flags + flags=( help ${${${(M)${(f)"$(_call_program flags cargo -Z help)"}:#*--*}/ #-- #/:}##*-Z } ) + _describe -t flags 'unstable flag' flags +} + +_cargo_installed_crates() { + local expl + _description crates expl 'crate' + compadd "$@" "$expl[@]" - ${${${(f)"$(cargo install --list)"}:# *}%% *} +} + +_cargo_cmds() { + local -a commands + # This uses Parameter Expansion Flags, which are a built-in Zsh feature. + # See more: http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags + # and http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion + # + # # How this work? + # + # First it splits the result of `cargo --list` at newline, then it removes the first line. + # Then it removes indentation (4 whitespaces) before each items. (Note the x## pattern [1]). + # Then it replaces those spaces between item and description with a `:` + # + # [1]: https://github.com/zsh-users/zsh-completions/blob/master/zsh-completions-howto.org#patterns + commands=( ${${${(M)"${(f)$(_call_program commands cargo --list)}":# *}/ ##/}/ ##/:} ) + _describe -t commands 'command' commands +} + +_cargo_target_triple() { + local -a targets + targets=( ${(f)"$(rustc --print target-list)"} ) + _describe 'target triple' targets +} + +#FIXME: Disabled until fixed +#gets package names from the manifest file +_cargo_package_names() { + _message -e packages package +} + +# Extracts the values of "name" from the array given in $1 and shows them as +# command line options for completion +_cargo_names_from_array() { + local manifest=$(cargo locate-project --message-format plain) + if [[ -z $manifest ]]; then + return 0 + fi + + local last_line + local -a names; + local in_block=false + local block_name=$1 + names=() + while read -r line; do + if [[ $last_line == "[[$block_name]]" ]]; then + in_block=true + else + if [[ $last_line =~ '\s*\[\[.*' ]]; then + in_block=false + fi + fi + + if [[ $in_block == true ]]; then + if [[ $line =~ '\s*name\s*=' ]]; then + regexp-replace line '^\s*name\s*=\s*|"' '' + names+=( "$line" ) + fi + fi + + last_line=$line + done < "$manifest" + _describe "$block_name" names + +} + +#Gets the test names from the manifest file +_cargo_test_names() { + _cargo_names_from_array "test" +} + +#Gets the bench names from the manifest file +_cargo_benchmark_names() { + _cargo_names_from_array "bench" +} + +_cargo_example_names() { + if [[ -d examples ]]; then + local -a files=(${(@f)$(echo examples/*.rs(:t:r))}) + _values 'example' "${files[@]}" + fi +} + +_cargo diff --git a/dots/.config/zsh/config/completions/completions/_cmake b/dots/.config/zsh/config/completions/completions/_cmake new file mode 100644 index 00000000..a0b0a0e4 --- /dev/null +++ b/dots/.config/zsh/config/completions/completions/_cmake @@ -0,0 +1,597 @@ +#compdef cmake -value-,CMAKE_GENERATOR,-default- +# ------------------------------------------------------------------------------ +# Copyright (c) 2017 Github zsh-users - http://github.com/zsh-users +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the zsh-users nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------- +# Description +# ----------- +# +# Completion script for CMake (http://www.cmake.org). +# +# ------------------------------------------------------------------------- +# Authors +# ------- +# +# * Scott M. Kroll (initial version) +# * Paul Seyfert (handling of --build and updates) +# * Norbert Lange (presets, command mode, updates) +# +# ------------------------------------------------------------------------- +# Notes +# ----- +# +# * By default only C and C++ languages are supported for compiler flag +# variables. To define your own list of languages: +# +# cmake_langs=('C' 'C' +# 'CXX' 'C++') +# zstyle ':completion:*:cmake:*' languages $cmake_langs +# +# ------------------------------------------------------------------------- + +local context state line curcontext="$curcontext" cmake_args + +local cmake_build_options;cmake_build_options=( + '-S[Explicitly specify a source directory]:source directory:_path_files -/' + '-B[Explicitly specify a build directory]:build directory:_path_files -/' + '-C[Pre-load a script to populate the cache]:initial cache:_files' + '*-D-[Create a cmake cache entry]:property:_cmake_define_property' + '*-U[Remove matching entries from CMake cache]:globbing expression' + '-G[Specify a makefile generator]:generator:_cmake_generators' + '-T[Specify toolset name if supported by generator]:toolset name' + '-A[Specify platform name if supported by generator]:platform name' + + # Warnings + '(-Wdev)-Wno-dev[Suppress/Enable developer warnings]' + '(-Wno-dev)-Wdev[Suppress/Enable developer warnings]' + '(-Wdeprecated)-Wno-deprecated[Suppress/Enable deprecation warnings]' + '(-Wno-deprecated)-Wdeprecated[Suppress/Enable deprecation warnings]' + '(-Werror=dev)-Wno-error=dev[Make developer warnings (not) errors]' + '(-Wno-error=dev)-Werror=dev[Make developer warnings (not) errors]' + '(-Wno-error=deprecated)-Werror=deprecated[Make deprecated macro and function warnings (not) errors]' + '(-Werror=deprecated)-Wno-error=deprecated[Make deprecated macro and function warnings (not) errors]' + + '--preset=[Specify a configure preset]:preset:_cmake_presets' + '--list-presets[List available presets]' + + '-E[CMake command mode]:command:_cmake_command_help' + + '-L-[List cache variables]::_values "options" "[non-advanced cache variables]" "A[advanced cache variables]" "H[non-advanced cached variables with help]" "AH[advanced cache variables with help]"' + + '--build[Build a CMake-generated project binary tree]:project directory:_path_files -/' + '--install[Install a CMake-generated project binary tree]:project directory:_path_files -/' + '--open[Open generated project in the associated application]:project directory:_path_files -/' + + '-N[View mode only]' + '-P[Process script mode]:script:_files' + + '--find-package[Legacy pkg-config like mode. Do not use]' + + '--graphviz=[Generate graphviz of dependencies, see CMakeGraphVizOptions.cmake for more]:graphviz output:_files' + '--system-information[Dump information about this system]::system information output:_files' + + '--log-level=[Set the verbosity of messages from CMake files]:log level:(ERROR WARNING NOTICE STATUS VERBOSE DEBUG TRACE)' + '--log-context[Prepend log messages with context, if given]' + + '--debug-trycompile[Do not delete the try_compile build tree. Only useful on one try_compile at a time]' + '--debug-output[Put cmake in a debug mode]' + '--debug-find[Put cmake find in a debug mode]' + + '(--trace-expand)--trace[Put cmake in trace mode]' + '(--trace)--trace-expand[Put cmake in trace mode with variable expansion]' + '--trace-format=[Set the output format of the trace]:trace format:(human json-v1)' + '*--trace-source[Trace only this CMake file/module. Multiple options allowed]:filename:_files' + '--trace-redirect[Redirect trace output to a file instead of stderr]:trace output:_files' + + '--warn-uninitialized[Warn about uninitialized values]' + '--no-warn-unused-cli[Do not warn about command line options]' + '--warn-unused-vars[Warn about unused variables]' + '--check-system-vars[Find problems with variable usage in system files]' + + '--profiling-format[Output data for profiling CMake scripts]:profiling format:(google-trace)' + '--profiling-output[Select an output path for the profiling data]:filename:_files' + + ':cmake project:_path_files -/' +) + +# ------------------------ +# _cmake_generator_options +# +# arguments are $1: build working directory (top level Makefile or build.ninja file) +# $2: position of "--" in the command line +# ------------------------ +(( $+functions[_cmake_generator_options] )) || +_cmake_generator_options() { + # pass only the part of the command line starting at "--" to the completion + shift (( $2 - 1 )) words + (( CURRENT = $CURRENT + 1 - $2 )) + if [ -f $1/Makefile ] + then + $_comps[make] + elif [ -f $1/build.ninja ] + then + $_comps[ninja] + fi +} + +# -------------- +# _cmake_presets +# -------------- +(( $+functions[_cmake_presets] )) || +_cmake_presets() { + local invoke; invoke=(${words[@]}) + # TODO: remove all arguments -* except -S + invoke[$CURRENT]=--list-presets + + # TODO: Problems with quotes need eval + # would need a way to exec the array + local list_presets; list_presets=(${(f)"$(eval "${invoke[@]} 2> /dev/null" | sed -n 's,^[[:space:]]*"\([^"]*\)"[[:space:]]*-[[:space:]]*\(.*\),\1:\2,p' )"}) + + _describe 'presets' list_presets +} + +# -------------- +# _cmake_targets +# -------------- +(( $+functions[_cmake_targets] )) || +_cmake_targets() { + local -a targets + if [ -f $1/Makefile ] + then + # `make help` doesn't work for Makefiles in general, but for CMake generated Makefiles it does. + i=1 + for target in $(make -f $1/Makefile help | \grep -e "\.\.\." | sed "s/\.\.\. //" | sed "s/ (the default.*//") ; do + targets[$i]=$target + (( i = $i + 1 )) + done + elif [ -f $1/build.ninja ] + then + # `ninja help` doesn't seem to be the list of targets we're interested in + i=1 + for target in $(ninja -C $1 -t targets all 2&>/dev/null | awk -F: '{print $1}') ; do + targets[$i]="$target" + (( i++ )) + done + fi + _describe 'build targets' targets +} + +_cmake_suggest_builddirs() { + _alternative ':current directory:(.)' 'directory::_directories' && return 0 +} + +_cmake_suggest_installdirs() { + _alternative ':current directory:(.)' 'directory::_directories' && return 0 +} + +_cmake_on_build() { + local build_extras;build_extras=( + '--[Native build tool options]' + '--target[specify build target]' + '--clean-first[build target clean first]' + '--config[For multi-configuration tools]' + '--parallel[maximum number of build processes]' + '--use-stderr') + local -a undescribed_build_extras + i=1 + for be in $build_extras ; do + undescribed_build_extras[$i]=$(echo $be | sed "s/\[.*//") + (( i++ )) + done + inbuild=false + dashdashposition=-1 + for ((i = (($CURRENT - 1)); i > 1 ; i--)); do + if [[ $words[$i] == --build ]] ; then + inbuild=true + buildat=$i + (( difference = $CURRENT - $i )) + elif [[ $words[$i] == -- ]] ; then + dashdashposition=$i + fi + done + # check if build mode has been left + outofbuild=false + for ((i = (($CURRENT - 1)); i > (($buildat + 1)); i--)); do + # don't check the word after --build (should be a directory) + if [[ ${undescribed_build_extras[(r)$words[$i]]} == $words[$i] ]] ; then continue ; fi + if [[ $words[(($i - 1))] == --target ]] ; then continue ; fi + if [[ $words[(($i - 1))] == --config ]] ; then continue ; fi + if [[ $words[(($i - 1))] == --parallel ]] ; then continue ; fi + outofbuild=true + done + if (( $dashdashposition > 0 )) ; then + _cmake_generator_options $words[(($buildat + 1))] $dashdashposition && return 0 + fi + if [[ "$inbuild" == false || "$difference" -eq 1 ]] ; then + # either there is no --build or completing the directory after --build + _arguments -C -s \ + - build_opts \ + "$cmake_build_options[@]" \ + - build_cmds \ + "$cmake_suggest_build[@]" && return 0 + elif [[ $words[(($CURRENT - 1))] == --target ]] ; then + # after --build --target, suggest targets + _cmake_targets $words[(($buildat + 1))] && return 0 + elif [[ $words[(($CURRENT - 1))] == --config ]] ; then + # after --build --config, no idea + return 0 + elif [[ $words[(($CURRENT - 1))] == --parallel ]] ; then + # after --build --parallel + return 0 + elif [ "$outofbuild" = true ] ; then + # after --build --, suggest other cmake_build_options (like -Wno-dev) + _arguments "$cmake_build_options[@]" && return 0 + else + # after --build , suggest other cmake_build_options (like -Wno-dev) or --build options (like --clean-first) + _arguments "$build_extras[@]" "$cmake_build_options[@]" && return 0 + fi +} + +_cmake_on_install() { + local build_extras;build_extras=( + '--[Native build tool options]' + '--prefix[Override the installation prefix, CMAKE_INSTALL_PREFIX]' + '--config[For multi-configuration generators(e.g. Visual Studio)]' + '--component[Component-based install]' + '--strip[Strip before installing.]' + ) + local -a undescribed_build_extras + i=1 + for be in $build_extras ; do + undescribed_build_extras[$i]=$(echo $be | sed "s/\[.*//") + (( i++ )) + done + inbuild=false + dashdashposition=-1 + for ((i = (($CURRENT - 1)); i > 1 ; i--)); do + if [[ $words[$i] == --install ]] ; then + inbuild=true + buildat=$i + (( difference = $CURRENT - $i )) + elif [[ $words[$i] == -- ]] ; then + dashdashposition=$i + fi + done + outofbuild=false + for ((i = (($CURRENT - 1)); i > (($buildat + 1)); i--)); do + # don't check the word after --install (should be a directory) + if [[ ${undescribed_build_extras[(r)$words[$i]]} == $words[$i] ]] ; then continue ; fi + if [[ $words[(($i - 1))] == --prefix ]] ; then continue ; fi + if [[ $words[(($i - 1))] == --config ]] ; then continue ; fi + if [[ $words[(($i - 1))] == --component ]] ; then continue ; fi + outofbuild=true + done + if (( $dashdashposition > 0 )) ; then + _cmake_generator_options $words[(($buildat + 1))] $dashdashposition && return 0 + fi + if [[ "$inbuild" == false || "$difference" -eq 1 ]] ; then + # either there is no --install or completing the directory after --install + _arguments -C -s \ + - build_opts \ + "$cmake_build_options[@]" \ + - build_cmds \ + "$cmake_suggest_install[@]" && return 0 + elif [[ $words[(($CURRENT - 1))] == --prefix ]] ; then + # after --install --prefix, no idea + return 0 + elif [[ $words[(($CURRENT - 1))] == --config ]] ; then + # after --install --config, no idea + return 0 + elif [[ $words[(($CURRENT - 1))] == --component ]] ; then + # after --build --component, no idea + return 0 + elif [ "$outofbuild" = true ] ; then + # after --build --, suggest other cmake_build_options (like -Wno-dev) + _arguments "$cmake_build_options[@]" && return 0 + else + # after --build , suggest other cmake_build_options (like -Wno-dev) or --build options (like --clean-first) + _arguments "$build_extras[@]" "$cmake_build_options[@]" && return 0 + fi +} + +local cmake_help_actions;cmake_help_actions=( + '(- 1)'{--help,-help,-usage,-h,-H}'[Print usage information and exit]' + '(- 1)'{--version,-version}'[Print version number and exit]' + '(- 1)--help-full[Print all help manuals and exit]' + '(- 1)--help-manual[Print one help manual and exit]:module-name: _cmake_list_names --help-manual-list "manual name"' + '(- 1)--help-manual-list[List help manuals available and exit]' + '(- 1)--help-command[Print help for one command and exit]:command-name: _cmake_list_names --help-command-list "command name"' + '(- 1)--help-command-list[List commands with help available and exit]' + '(- 1)--help-commands[Print cmake-commands manual and exit]' + '(- 1)--help-module[Print help for one module and exit]:module-name: _cmake_list_names --help-module-list "module name"' + '(- 1)--help-module-list[List modules with help available and exit]' + '(- 1)--help-modules[Print cmake-modules manual and exit]' + '(- 1)--help-policy[Print help for one policy and exit]:policy-name: _cmake_list_names --help-policy-list "policy name"' + '(- 1)--help-policy-list[List policies with help available and exit]' + '(- 1)--help-policies[Print cmake-policies manual and exit]' + '(- 1)--help-property[Print help for one property and exit]:property-name: _cmake_list_names --help-property-list "property name" brakremove' + '(- 1)--help-property-list[List properties with help available and exit]' + '(- 1)--help-properties[Print cmake-properties manual and exit]' + '(- 1)--help-variable[Print help for one variable and exit]:variable-name: _cmake_list_names --help-variable-list "variable name" brakremove' + '(- 1)--help-variable-list[List variables with help available and exit]' + '(- 1)--help-variables[Print cmake-variables manual and exit]' +) +_cmake_help() { + _arguments -C -s - help "$cmake_help_actions[@]" +} + +# ----------------- +# _cmake_list_names +# ----------------- +(( $+functions[_cmake_list_names] )) || +_cmake_list_names() { + local command; command="$@[1]" + local desc; desc="$@[2]" + local opts; opts=($@[3]) + local list_names; list_names=(${(f)"$($service $command 2> /dev/null)"}) + # Older CMake (< 3.0) writes out the version + list_names=(${^list_names##cmake version*}) + + if [[ ${opts[(i)brakremove]} -le ${#opts} ]]; then + list_names=(${^list_names//\[/\\\[}) + list_names=(${^list_names//\]/\\\]}) + fi + + _values ${desc} ${list_names[@]:-1} && return 0 +} + +# ---------------------- +# _cmake_define_property +# ---------------------- +(( $+functions[_cmake_define_property] )) || +_cmake_define_property() { + if compset -P '*='; then + _wanted property-values expl 'property value' _cmake_define_property_values ${${IPREFIX%=}#-D} && return 0 + else + _wanted property-names expl 'property name' _cmake_define_property_names -qS= && return 0 + fi +} + +# ---------------------------- +# _cmake_define_property_names +# ---------------------------- +(( $+functions[_cmake_define_property_names] )) || +_cmake_define_property_names() { + local alternatives; alternatives=( + 'common-property-names:common property name:_cmake_define_common_property_names -qS=' + ) + local -A cmake_langs + zstyle -a ":completion:${curcontext}:" languages cmake_langs + [[ $#cmake_langs -eq 0 ]] && cmake_langs=('C' 'C' 'CXX' 'C++') + + for cmake_lang in ${(k)cmake_langs}; do + cmake_lang_desc="${cmake_langs[$cmake_lang]}" + alternatives+=("${cmake_lang//:/-}-property-names:${cmake_lang_desc} language property name:_cmake_define_lang_property_names -qS= ${cmake_lang} ${cmake_lang_desc}") + done + + _alternative "${alternatives[@]}" +} + +# --------------------------------- +# _cmake_define_lang_property_names +# --------------------------------- +(( $+functions[_cmake_define_lang_property_names] )) || +_cmake_define_lang_property_names() { + local cmake_lang="$@[-2]" cmake_lang_desc="$@[-1]" + local properties; properties=( + "CMAKE_${cmake_lang}_COMPILER:${cmake_lang_desc} compiler" + "CMAKE_${cmake_lang}_COMPILER_LAUNCHER:${cmake_lang_desc} compiler launcher (e.g. ccache)" + "CMAKE_${cmake_lang}_FLAGS:${cmake_lang_desc} compiler flags for all builds" + "CMAKE_${cmake_lang}_FLAGS_DEBUG:${cmake_lang_desc} compiler flags for all Debug build" + "CMAKE_${cmake_lang}_FLAGS_RELEASE:${cmake_lang_desc} compiler flags for all Release build" + "CMAKE_${cmake_lang}_FLAGS_MINSIZREL:${cmake_lang_desc} compiler flags for all MinSizRel build" + "CMAKE_${cmake_lang}_FLAGS_RELWITHDEBINFO:${cmake_lang_desc} compiler flags for all RelWithDebInfo build" + "CMAKE_${cmake_lang}_STANDARD:${cmake_lang_desc} language standard" + "CMAKE_${cmake_lang}_STANDARD_REQUIRED:${cmake_lang_desc} language standard is required" + "CMAKE_${cmake_lang}_EXTENSIONS:${cmake_lang_desc} enable compiler specific extensions" + ) + + _describe -t "${cmake_lang//:/-}-property-names" "${cmake_lang_desc} property name" properties $@[0,-3] && return 0 +} + +# ----------------------------------- +# _cmake_define_common_property_names +# ----------------------------------- +(( $+functions[_cmake_define_common_property_names] )) || +_cmake_define_common_property_names() { + local properties; properties=( + 'CMAKE_MODULE_PATH:Search path for CMake modules (FindPROJECT.cmake)' + 'CMAKE_PREFIX_PATH:Search path for installations (PROJECTConfig.cmake)' + 'CMAKE_BUILD_TYPE:Specifies the build type for make based generators' + 'CMAKE_TOOLCHAIN_FILE:Absolute or relative path to a CMake script which sets up toolchain related variables' + 'CMAKE_COLOR_MAKEFILE:Enables/disables color output when using the Makefile generator' + 'CMAKE_INSTALL_PREFIX:Install directory used by install' + 'CMAKE_EXPORT_COMPILE_COMMANDS:Enable/disable output of compilation database during generation' + 'CMAKE_RULE_MESSAGES:Specify whether to report a message for each make rule' + 'CMAKE_VERBOSE_MAKEFILE:Enable verbose output from Makefile builds' + 'CMAKE_UNITY_BUILD:Batch include source files' + ) + + _describe -t 'common-property-names' 'common property name' properties $@ +} + +local _cmake_build_types=('Debug' 'Release' 'RelWithDebInfo' 'MinSizeRel') +local _cmake_c_standards=(90 99 11) +local _cmake_cxx_standards=(98 11 14 17 20) + +# ---------------------------- +# _cmake_define_property_values +# ---------------------------- +(( $+functions[_cmake_define_property_values] )) || +_cmake_define_property_values() { + local ret=1 + setopt localoptions extendedglob + case $@[-1] in + (CMAKE_BUILD_TYPE) _wanted build-types expl 'build type' _values 'build type' ${_cmake_build_types[@]} && ret=0;; + (CMAKE_CXX_STANDARD) _wanted cxx-standards expl 'cxx standard' _values 'cxx standard' ${_cmake_cxx_standards[@]} && ret=0;; + (CMAKE_C_STANDARD) _wanted c-standards expl 'c standard' _values 'c standard' ${_cmake_c_standards[@]} && ret=0;; + (CMAKE_TOOLCHAIN_FILE) _wanted toolchain-files expl 'file' _cmake_toolchain_files && ret=0;; + (CMAKE_COLOR_MAKEFILE) _wanted booleans expl 'boolean' ${_cmake_booleans[@]} && ret=0;; + (CMAKE_RULE_MESSAGES) _wanted booleans expl 'boolean' ${_cmake_booleans[@]} && ret=0;; + (CMAKE_VERBOSE_MAKEFILE) _wanted booleans expl 'boolean' ${_cmake_booleans[@]} && ret=0;; + (CMAKE_UNITY_BUILD) _wanted booleans expl 'boolean' ${_cmake_booleans[@]} && ret=0;; + (CMAKE_INSTALL_PREFIX) _files -/ && ret=0;; + (CMAKE_EXPORT_COMPILE_COMMANDS) _wanted booleans expl 'boolean' ${_cmake_booleans[@]} && ret=0;; + (CMAKE_*_COMPILER) _wanted compilers expl 'compiler' _cmake_compilers && ret=0;; + (CMAKE_*_COMPILER_LAUNCHER) _wanted compilers expl 'compiler launcher' _cmake_launchers && ret=0;; + (CMAKE_*_FLAGS(|_?*)) _message -e compiler-flags 'compiler flags' && _dispatch $service -value-,CPPFLAGS,-default- && ret=0;; + (CMAKE_*_STANDARD_REQUIRED) _wanted booleans expl 'boolean' ${_cmake_booleans[@]} && ret=0;; + (CMAKE_*_EXTENSIONS) _wanted booleans expl 'boolean' ${_cmake_booleans[@]} && ret=0;; + (*) _files && ret=0;; + esac + + return ret +} + +local _cmake_generator_list +_cmake_generator_list=( + 'Green Hills MULTI' + 'Unix Makefiles' + 'Ninja' + 'Ninja Multi-Config' + 'CodeBlocks - Ninja' + 'CodeBlocks - Unix Makefiles' + 'CodeLite - Ninja' + 'CodeLite - Unix Makefiles' + 'Eclipse CDT4 - Ninja' + 'Eclipse CDT4 - Unix Makefiles' + 'Kate - Ninja' + 'Kate - Unix Makefiless' + 'Sublime Text 2 - Ninja' + 'Sublime Text 2 - Unix Makefiles' +) + +# ----------------- +# _cmake_generators +# ----------------- +(( $+functions[_cmake_generators] )) || +_cmake_generators() { + _describe -t generators 'generator' _cmake_generator_list +} + +# ---------------------- +# _cmake_toolchain_files +# ---------------------- +(( $+functions[_cmake_toolchain_files] )) || +_cmake_toolchain_files() { + _files -g '*\.cmake*' +} + + +local _cmake_booleans=(_describe -t booleans 'boolean' 'YES' 'NO') + +# --------------- +# _cmake_compilers +# +# by default just executable commands, but can be overridden by users. +# --------------- +(( $+functions[_cmake_compilers] )) || +_cmake_compilers() { + _command_names -e +} + +# --------------- +# _cmake_launchers +# +# by default just executable commands, but can be overridden by users. +# useful commands might be ccache, distcc, ... +# --------------- +(( $+functions[_cmake_launchers] )) || +_cmake_launchers() { + _command_names -e +} + +local _cmake_commands=( + 'capabilities:Report capabilities built into cmake in JSON format' \ + 'cat:concat the files and print them to the standard output' \ + 'chdir:run command in a given directory' \ + 'compare_files:check if file1 is same as file2' \ + 'copy:copy files to destination (either file or directory)' \ + 'copy_directory:copy content of ... directories to destination directory' \ + 'copy_if_different:copy files if it has changed' \ + 'echo:displays arguments as text' \ + 'echo_append:displays arguments as text but no new line' \ + 'env:run command in a modified environment' \ + 'environment:display the current environment' \ + 'make_directory:create parent and directories' \ + 'md5sum:create MD5 checksum of files' \ + 'sha1sum:create SHA1 checksum of files' \ + 'sha224sum:create SHA224 checksum of files' \ + 'sha256sum:create SHA256 checksum of files' \ + 'sha384sum:create SHA384 checksum of files' \ + 'sha512sum:create SHA512 checksum of files' \ + 'remove:remove the file(s), use -f to force it' \ + 'remove_directory:remove directories and their contents' \ + 'rename:rename a file or directory (on one volume)' \ + 'rm:remove files or directories' \ + 'server:start cmake in server mode' \ + 'sleep:sleep for given number of seconds' \ + 'tar:create or extract a tar or zip archive' \ + 'time:run command and display elapsed time' \ + 'touch:touch a ' \ + 'touch_nocreate:touch a but do not create it' \ + 'create_symlink:create a symbolic link new -> old' \ + 'create_hardlink:create a hard link new -> old' \ + 'true:do nothing with an exit code of 0' \ + 'false:do nothing with an exit code of 1' +) +_cmake_command() { + _arguments -C \ + '-E[CMake command mode]:command:(("${_cmake_commands[@]}"))' + +} +local cmake_suggest_build;cmake_suggest_build=( + '--build[build]:build dir:_cmake_suggest_builddirs' +) + +local cmake_suggest_install;cmake_suggest_install=( + '--install[install]:install dir:_cmake_suggest_installdirs' +) + +if [[ "$service" = -value-*CMAKE_GENERATOR* ]]; then + _cmake_generators +elif [ $CURRENT -eq 2 ] ; then + _arguments -C -s \ + - help \ + "$cmake_help_actions[@]" \ + - command \ + '-E[CMake command mode]:command:( )' \ + - build_opts \ + "$cmake_build_options[@]" \ + - build_cmds \ + "$cmake_suggest_build[@]" \ + - install_cmds \ + "$cmake_suggest_install[@]" && return 0 +elif [[ $words[2] = --help* ]] ; then + _cmake_help +elif [[ $words[2] == --build ]] ; then + _cmake_on_build +elif [[ $words[2] == --install ]] ; then + _cmake_on_install +elif [[ $words[2] == -E ]]; then + _cmake_command +else + _arguments "$cmake_build_options[@]" +fi diff --git a/dots/.config/zsh/config/completions/completions/_curl b/dots/.config/zsh/config/completions/completions/_curl new file mode 100644 index 00000000..f42ea95c --- /dev/null +++ b/dots/.config/zsh/config/completions/completions/_curl @@ -0,0 +1,257 @@ +#compdef curl + +# curl zsh completion + +local curcontext="$curcontext" state state_descr line +typeset -A opt_args + +local rc=1 + +_arguments -C -S \ + --aws-sigv4'[Use AWS V4 signature authentication]':'' \ + {-c,--cookie-jar}'[Write cookies to after operation]':'':_files \ + --resolve'[Resolve the host+port to this address]':'<[+]host\:port\:addr[,addr]...>' \ + {-D,--dump-header}'[Write the received headers to ]':'':_files \ + {-y,--speed-time}'[Trigger '\''speed-limit'\'' abort after this time]':'' \ + --proxy-cacert'[CA certificate to verify peer against for proxy]':'':_files \ + --happy-eyeballs-timeout-ms'[Time for IPv6 before trying IPv4]':'' \ + --proxy-ssl-auto-client-cert'[Use auto client certificate for proxy (Schannel)]' \ + {-E,--cert}'[Client certificate file and password]':'' \ + --connect-timeout'[Maximum time allowed for connection]':'' \ + --etag-save'[Parse ETag from a request and save it to a file]':'':_files \ + --libcurl'[Dump libcurl equivalent code of this command line]':'':_files \ + --proxy-capath'[CA directory to verify peer against for proxy]':'':_files \ + --proxy-pinnedpubkey'[FILE/HASHES public key to verify proxy with]':'' \ + --doh-cert-status'[Verify the status of the DoH server cert via OCSP-staple]' \ + --etag-compare'[Pass an ETag from a file as a custom header]':'':_files \ + --curves'[(EC) TLS key exchange algorithm(s) to request]':'' \ + --proxy-negotiate'[Use HTTP Negotiate (SPNEGO) authentication on the proxy]' \ + --hostpubsha256'[Acceptable SHA256 hash of the host public key]':'' \ + --mail-rcpt-allowfails'[Allow RCPT TO command to fail for some recipients]' \ + {-m,--max-time}'[Maximum time allowed for transfer]':'' \ + --socks5-hostname'[SOCKS5 proxy, pass host name to proxy]':'' \ + --abstract-unix-socket'[Connect via abstract Unix domain socket]':'' \ + --pinnedpubkey'[FILE/HASHES Public key to verify peer against]':'' \ + --proxy-insecure'[Do HTTPS proxy connections without verifying the proxy]' \ + --proxy-pass'[Pass phrase for the private key for HTTPS proxy]':'' \ + --proxy-ssl-allow-beast'[Allow security flaw for interop for HTTPS proxy]' \ + {-p,--proxytunnel}'[Operate through an HTTP proxy tunnel (using CONNECT)]' \ + --proto-default'[Use PROTOCOL for any URL missing a scheme]':'' \ + --proxy-tls13-ciphers'[TLS 1.3 proxy cipher suites]':'' \ + --socks5-gssapi-service'[SOCKS5 proxy service name for GSS-API]':'' \ + --ftp-alternative-to-user'[String to replace USER \[name\]]':'' \ + {-T,--upload-file}'[Transfer local FILE to destination]':'':_files \ + --form-escape'[Escape multipart form field/file names using backslash]' \ + --local-port'[Force use of RANGE for local port numbers]':'' \ + --proxy-tlsauthtype'[TLS authentication type for HTTPS proxy]':'' \ + {-R,--remote-time}'[Set the remote file'\''s time on the local output]' \ + --ssl-revoke-best-effort'[Ignore missing/offline cert CRL dist points]' \ + --ftp-ssl-control'[Require SSL/TLS for FTP login, clear for transfer]' \ + --parallel-immediate'[Do not wait for multiplexing (with --parallel)]' \ + --cert-status'[Verify the status of the server cert via OCSP-staple]' \ + --proxy-cert-type'[Client certificate type for HTTPS proxy]':'' \ + {-Q,--quote}'[Send command(s) to server before transfer]':'' \ + {-O,--remote-name}'[Write output to a file named as the remote file]' \ + --retry-connrefused'[Retry on connection refused (use with --retry)]' \ + --sasl-authzid'[Identity for SASL PLAIN authentication]':'' \ + --suppress-connect-headers'[Suppress proxy CONNECT response headers]' \ + --trace-ascii'[Like --trace, but without hex output]':'':_files \ + --expect100-timeout'[How long to wait for 100-continue]':'' \ + {-g,--globoff}'[Disable URL sequences and ranges using {} and \[\]]' \ + {-j,--junk-session-cookies}'[Ignore session cookies read from file]' \ + --parallel-max'[Maximum concurrency for parallel transfers]':'' \ + --tls13-ciphers'[TLS 1.3 cipher suites to use]':'' \ + --dns-ipv4-addr'[IPv4 address to use for DNS requests]':'
' \ + --dns-ipv6-addr'[IPv6 address to use for DNS requests]':'
' \ + --location-trusted'[Like --location, and send auth to other hosts]' \ + --mail-auth'[Originator address of the original email]':'
' \ + --noproxy'[List of hosts which do not use proxy]':'' \ + --proto-redir'[Enable/disable PROTOCOLS on redirect]':'' \ + --proxy-cert'[Set client certificate for proxy]':'' \ + --dns-interface'[Interface to use for DNS requests]':'' \ + --hostpubmd5'[Acceptable MD5 hash of the host public key]':'' \ + --keepalive-time'[Interval time for keepalive probes]':'' \ + --random-file'[File for reading random data from]':'':_files \ + --socks5-basic'[Enable username/password auth for SOCKS5 proxies]' \ + --cacert'[CA certificate to verify peer against]':'':_files \ + {-H,--header}'[Pass custom header(s) to server]':'
' \ + --ignore-content-length'[Ignore the size of the remote resource]' \ + {-i,--include}'[Include protocol response headers in the output]' \ + --preproxy'[\[protocol\://\]host\[\:port\] Use this proxy first]' \ + --proxy-header'[Pass custom header(s) to proxy]':'
' \ + --unix-socket'[Connect through this Unix domain socket]':'' \ + {-w,--write-out}'[Use output FORMAT after completion]':'' \ + {-b,--cookie}'[Send cookies from string/file]':'' \ + {-o,--output}'[Write to file instead of stdout]':'':_files \ + --request-target'[Specify the target for this request]':'' \ + --socks4a'[SOCKS4a proxy on given host + port]':'' \ + --ssl-auto-client-cert'[Use auto client certificate (Schannel)]' \ + {-U,--proxy-user}'[Proxy user and password]':'' \ + --proxy1.0'[Use HTTP/1.0 proxy on given port]':'' \ + {-Y,--speed-limit}'[Stop transfers slower than this]':'' \ + {-z,--time-cond}'[Transfer based on a time condition]':'