From f2eef701721d51365fa24ad89c4f1b25678de3d1 Mon Sep 17 00:00:00 2001 From: Dustin Stiles Date: Wed, 26 Feb 2025 16:57:47 -0500 Subject: [PATCH] initial commit again --- .tmux.conf | 16 ++ .zshrc | 86 ++++++ git/cfacorp.toml | 3 + git/common.toml | 6 + git/dustinws.toml | 3 + git/gitconfig.example | 7 + nvim/init.lua | 6 + nvim/lazy-lock.json | 57 ++++ nvim/lua/wqtt/core/options.lua | 35 +++ nvim/lua/wqtt/core/remap.lua | 22 ++ nvim/lua/wqtt/lazy.lua | 23 ++ nvim/lua/wqtt/plugins/comment.lua | 16 ++ nvim/lua/wqtt/plugins/copilot.lua | 1 + nvim/lua/wqtt/plugins/formatting.lua | 38 +++ nvim/lua/wqtt/plugins/gitsigns.lua | 6 + nvim/lua/wqtt/plugins/hop.lua | 9 + nvim/lua/wqtt/plugins/linting.lua | 25 ++ nvim/lua/wqtt/plugins/lsp/lspconfig.lua | 91 ++++++ nvim/lua/wqtt/plugins/lsp/mason.lua | 48 ++++ nvim/lua/wqtt/plugins/lualine.lua | 7 + nvim/lua/wqtt/plugins/markdown-preview.lua | 9 + nvim/lua/wqtt/plugins/nvim-cmp.lua | 57 ++++ nvim/lua/wqtt/plugins/nvimtree.lua | 283 +++++++++++++++++++ nvim/lua/wqtt/plugins/plenary.lua | 3 + nvim/lua/wqtt/plugins/rest.lua | 10 + nvim/lua/wqtt/plugins/telescope.lua | 34 +++ nvim/lua/wqtt/plugins/themes/catppuccin.lua | 55 ++++ nvim/lua/wqtt/plugins/themes/everforest.lua | 3 + nvim/lua/wqtt/plugins/themes/github.lua | 1 + nvim/lua/wqtt/plugins/themes/gruvbox.lua | 3 + nvim/lua/wqtt/plugins/themes/melange.lua | 1 + nvim/lua/wqtt/plugins/themes/nightfox.lua | 3 + nvim/lua/wqtt/plugins/themes/nord.lua | 1 + nvim/lua/wqtt/plugins/themes/onedark.lua | 4 + nvim/lua/wqtt/plugins/themes/onenord.lua | 1 + nvim/lua/wqtt/plugins/themes/rose-pine.lua | 4 + nvim/lua/wqtt/plugins/themes/seoul256.lua | 3 + nvim/lua/wqtt/plugins/themes/solarized.lua | 10 + nvim/lua/wqtt/plugins/themes/sweetie.lua | 3 + nvim/lua/wqtt/plugins/themes/tokyo-night.lua | 3 + nvim/lua/wqtt/plugins/themes/vscode.lua | 3 + nvim/lua/wqtt/plugins/themes/zenbones.lua | 7 + nvim/lua/wqtt/plugins/tmux.nvim.lua | 6 + nvim/lua/wqtt/plugins/todo-comments.lua | 10 + nvim/lua/wqtt/plugins/transparent.lua | 7 + nvim/lua/wqtt/plugins/tree-sitter.lua | 41 +++ nvim/lua/wqtt/plugins/trouble.lua | 37 +++ nvim/lua/wqtt/plugins/which-key.lua | 13 + 48 files changed, 1120 insertions(+) create mode 100644 .tmux.conf create mode 100644 .zshrc create mode 100644 git/cfacorp.toml create mode 100644 git/common.toml create mode 100644 git/dustinws.toml create mode 100644 git/gitconfig.example create mode 100644 nvim/init.lua create mode 100644 nvim/lazy-lock.json create mode 100644 nvim/lua/wqtt/core/options.lua create mode 100644 nvim/lua/wqtt/core/remap.lua create mode 100644 nvim/lua/wqtt/lazy.lua create mode 100644 nvim/lua/wqtt/plugins/comment.lua create mode 100644 nvim/lua/wqtt/plugins/copilot.lua create mode 100644 nvim/lua/wqtt/plugins/formatting.lua create mode 100644 nvim/lua/wqtt/plugins/gitsigns.lua create mode 100644 nvim/lua/wqtt/plugins/hop.lua create mode 100644 nvim/lua/wqtt/plugins/linting.lua create mode 100644 nvim/lua/wqtt/plugins/lsp/lspconfig.lua create mode 100644 nvim/lua/wqtt/plugins/lsp/mason.lua create mode 100644 nvim/lua/wqtt/plugins/lualine.lua create mode 100644 nvim/lua/wqtt/plugins/markdown-preview.lua create mode 100644 nvim/lua/wqtt/plugins/nvim-cmp.lua create mode 100644 nvim/lua/wqtt/plugins/nvimtree.lua create mode 100644 nvim/lua/wqtt/plugins/plenary.lua create mode 100644 nvim/lua/wqtt/plugins/rest.lua create mode 100644 nvim/lua/wqtt/plugins/telescope.lua create mode 100644 nvim/lua/wqtt/plugins/themes/catppuccin.lua create mode 100644 nvim/lua/wqtt/plugins/themes/everforest.lua create mode 100644 nvim/lua/wqtt/plugins/themes/github.lua create mode 100644 nvim/lua/wqtt/plugins/themes/gruvbox.lua create mode 100644 nvim/lua/wqtt/plugins/themes/melange.lua create mode 100644 nvim/lua/wqtt/plugins/themes/nightfox.lua create mode 100644 nvim/lua/wqtt/plugins/themes/nord.lua create mode 100644 nvim/lua/wqtt/plugins/themes/onedark.lua create mode 100644 nvim/lua/wqtt/plugins/themes/onenord.lua create mode 100644 nvim/lua/wqtt/plugins/themes/rose-pine.lua create mode 100644 nvim/lua/wqtt/plugins/themes/seoul256.lua create mode 100644 nvim/lua/wqtt/plugins/themes/solarized.lua create mode 100644 nvim/lua/wqtt/plugins/themes/sweetie.lua create mode 100644 nvim/lua/wqtt/plugins/themes/tokyo-night.lua create mode 100644 nvim/lua/wqtt/plugins/themes/vscode.lua create mode 100644 nvim/lua/wqtt/plugins/themes/zenbones.lua create mode 100644 nvim/lua/wqtt/plugins/tmux.nvim.lua create mode 100644 nvim/lua/wqtt/plugins/todo-comments.lua create mode 100644 nvim/lua/wqtt/plugins/transparent.lua create mode 100644 nvim/lua/wqtt/plugins/tree-sitter.lua create mode 100644 nvim/lua/wqtt/plugins/trouble.lua create mode 100644 nvim/lua/wqtt/plugins/which-key.lua diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..eca52f2 --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,16 @@ +set -g base-index 1 # start indexing windows at 1 instead of 0 +set -g detach-on-destroy off # don't exit from tmux when closing a session +set -g escape-time 0 # zero-out escape time delay +set -g history-limit 1000000 # increase history size (from 2,000) +set -g renumber-windows on # renumber all windows when any window is closed +set -g set-clipboard on # use system clipboard + +set-window-option -g mode-keys vi + +set -g mouse on +set -g status-style "fg=blue bg=default" + +set -g @plugin 'omerxx/tmux-sessionx' +set -g @plugin 'tmux-plugins/tpm' + +run '~/.tmux/plugins/tpm/tpm' diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..96dfa8f --- /dev/null +++ b/.zshrc @@ -0,0 +1,86 @@ +# ----------------------------------------------------------------------------- +# oh my zsh + +# Tell oh-my-zsh where it lives. +export ZSH="$HOME/.oh-my-zsh" + +# Minimal theme. +ZSH_THEME="alanpeabody" + +# Minimal plugins. +plugins=(git) + +# Knock em' dead. +source $ZSH/oh-my-zsh.sh + +# ----------------------------------------------------------------------------- +# Aliases + +# Use nvm to manage node because system package managers are bad at it. +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm + +# ----------------------------------------------------------------------------- +# Secrets + +# Load up secrets from the host machine. +# TODO: Encrypt secrets and just store in git. +[ -f "$HOME/.devcreds" ] && source "$HOME/.devcreds" + +# ----------------------------------------------------------------------------- +# Aliases + +# Catch typos +alias vi="nvim" +alias vim="nvim" + +# Be lazy +alias c="clear" + +# Tui Shortcuts +alias lg="lazygit" +alias ldr="lazydocker" + +# ----------------------------------------------------------------------------- +# Environment Variables + +# Set the shell, or some things can behave funny. +export SHELL=$(which zsh) + +# Use god's editor. +export EDITOR=nvim + +# ----------------------------------------------------------------------------- +# GPG / SSH + +# This allows gpg to correctly route the pinentry program to the TTY used by +# the session. +export GPG_TTY=$(tty) + + +# This sets the askpass program for ssh to be whatever is set here (qt4-ssh-askpass). +# On most systems, ssh will not be able to prompt for the yubikey unlock code +# without an explicit askpass program being set. +eval "$(ssh-agent -s; SSH_ASKPASS=/usr/bin/qt4-ssh-askpass)" + +# This allows ssh to redirect authentication requests to gpg so that I can use +# my yubikey as a derived ssh key. +export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) + +# This refreshes the gpg agent allowing different yubikeys to be used in the +# same session. You can switch yubikeys, source this config, and then gpg will +# begin to pick up on the new key. +gpg-connect-agent updatestartuptty /bye +gpgconf --launch gpg-agent + +# ----------------------------------------------------------------------------- +# Path + +# My stuff +export PATH=$PATH:~/repos/dustinws/dots/bin + +# Go's stuff +export PATH=$PATH:~/go/bin + +# Rust's stuff +export PATH=$PATH:~/.cargo/bin diff --git a/git/cfacorp.toml b/git/cfacorp.toml new file mode 100644 index 0000000..2770476 --- /dev/null +++ b/git/cfacorp.toml @@ -0,0 +1,3 @@ +[user] + signingkey = 28BB3D566CE2122B + email = dustin.stiles1@accesscfa.com diff --git a/git/common.toml b/git/common.toml new file mode 100644 index 0000000..d5e5717 --- /dev/null +++ b/git/common.toml @@ -0,0 +1,6 @@ +[commit] + gpgsign = true +[user] + name = Dustin Stiles +[init] + defaultBranch = main diff --git a/git/dustinws.toml b/git/dustinws.toml new file mode 100644 index 0000000..bb61265 --- /dev/null +++ b/git/dustinws.toml @@ -0,0 +1,3 @@ +[user] + signingkey = BCD9912EC231FC87 + email = duwstiles@pm.me diff --git a/git/gitconfig.example b/git/gitconfig.example new file mode 100644 index 0000000..40d93ab --- /dev/null +++ b/git/gitconfig.example @@ -0,0 +1,7 @@ +path = ~/repos/dustinws/dots/git/common.toml + +[includeIf "gitdir:~/repos/dustinws/"] + path = ~/repos/dustinws/dots/git/dustinws.toml + +[includeIf "gitdir:~/repos/cfacorp/"] + path = ~/repos/duwstiles/dots/git/cfacorp.toml diff --git a/nvim/init.lua b/nvim/init.lua new file mode 100644 index 0000000..fbff047 --- /dev/null +++ b/nvim/init.lua @@ -0,0 +1,6 @@ +require("wqtt.core.remap") +require("wqtt.lazy") +require("wqtt.core.options") + +vim.cmd("colorscheme catppuccin-latte") +vim.cmd("set background=light") diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json new file mode 100644 index 0000000..4285e6b --- /dev/null +++ b/nvim/lazy-lock.json @@ -0,0 +1,57 @@ +{ + "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, + "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, + "catppuccin": { "branch": "main", "commit": "4bb938bbba41d306db18bf0eb0633a5f28fd7ba0" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, + "conform.nvim": { "branch": "master", "commit": "a6f5bdb78caa305496357d17e962bbc4c0b392e2" }, + "copilot.vim": { "branch": "release", "commit": "cd7f01009fb7b30e22840cadc4faad88b05c6eef" }, + "everforest": { "branch": "master", "commit": "c3b375b5fb2a07c3b75f24fefb8a7031015d8231" }, + "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, + "github-nvim-theme": { "branch": "main", "commit": "c106c9472154d6b2c74b74565616b877ae8ed31d" }, + "gitsigns.nvim": { "branch": "main", "commit": "4c40357994f386e72be92a46f41fc1664c84c87d" }, + "gruvbox.nvim": { "branch": "main", "commit": "089b60e92aa0a1c6fa76ff527837cd35b6f5ac81" }, + "hererocks": { "branch": "master", "commit": "c9c5444dea1e07e005484014a8231aa667be30b6" }, + "hop.nvim": { "branch": "v2", "commit": "90db1b2c61b820e230599a04fedcd2679e64bd07" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" }, + "lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" }, + "lush.nvim": { "branch": "main", "commit": "45a79ec4acb5af783a6a29673a999ce37f00497e" }, + "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "374c78d3ebb5c53f43ea6bd906b6587b5e899b9e" }, + "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, + "melange-nvim": { "branch": "master", "commit": "2db5407f2f6d6d6286f50f2f7365728d66f6f3ae" }, + "neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" }, + "nightfox.nvim": { "branch": "main", "commit": "ba47d4b4c5ec308718641ba7402c143836f35aa9" }, + "nord.nvim": { "branch": "master", "commit": "80c1e5321505aeb22b7a9f23eb82f1e193c12470" }, + "nvim-cmp": { "branch": "main", "commit": "5a11682453ac6b13dbf32cd403da4ee9c07ef1c3" }, + "nvim-lint": { "branch": "master", "commit": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8" }, + "nvim-lsp-file-operations": { "branch": "master", "commit": "9744b738183a5adca0f916527922078a965515ed" }, + "nvim-lspconfig": { "branch": "master", "commit": "9e932edb0af4e20880685ddb96a231669fbe8091" }, + "nvim-tree.lua": { "branch": "master", "commit": "6709463b2d18e77f7a946027917aa00d4aaed6f4" }, + "nvim-treesitter": { "branch": "master", "commit": "e6d02ec9efd396d294a7793f2066e2527b07b03a" }, + "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" }, + "nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" }, + "onedarkpro.nvim": { "branch": "main", "commit": "b2712b3163f2b531cc26d1af07f49f683460e5a3" }, + "onenord.nvim": { "branch": "main", "commit": "af734ccc21847ce56830eed1f593ef320ffa27ff" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "rest.nvim": { "branch": "main", "commit": "98f0bfc0c4d8b0c75df1d9fe30293f2a0e390504" }, + "rose-pine": { "branch": "main", "commit": "3fe41d3959110139e03bcbc6c0c648be83d06b33" }, + "seoul256.vim": { "branch": "master", "commit": "b21c9e63f7c2d543db8b34a393a0b42ec7e9b891" }, + "solarized.nvim": { "branch": "main", "commit": "c0dfe1cbfabd93b546baf5f1408f5df7e02e2050" }, + "sweetie.nvim": { "branch": "master", "commit": "d4b3d94b57ffcd0229f567e050850248be2b1dad" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "2a5ceff981501cff8f46871d5402cd3378a8ab6a" }, + "telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" }, + "tmux.nvim": { "branch": "main", "commit": "b646e89907a84bf40c9bda3de6fbcab2edd6e393" }, + "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, + "transparent.nvim": { "branch": "main", "commit": "8a2749a2fa74f97fe6557f61b89ac7fd873f3c21" }, + "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, + "vscode.nvim": { "branch": "main", "commit": "e5e61a0ea00b5de7a74dada2760e61ac59ecb98e" }, + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }, + "zenbones.nvim": { "branch": "main", "commit": "bc74669c7f1b35984efdfa0d531dd802b968cf2e" } +} diff --git a/nvim/lua/wqtt/core/options.lua b/nvim/lua/wqtt/core/options.lua new file mode 100644 index 0000000..f91759a --- /dev/null +++ b/nvim/lua/wqtt/core/options.lua @@ -0,0 +1,35 @@ +-- Line Numbers +vim.opt.number = true +vim.opt.relativenumber = true + +-- Tabs & Indentation +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.expandtab = true +vim.opt.autoindent = true + +-- No line wraps +vim.opt.wrap = false + +-- Search Settings +vim.opt.ignorecase = true +vim.opt.smartcase = true + +-- Higlight the line the cursor is currently on +vim.opt.cursorline = true + +-- Tell neovim that our terminal is true color +vim.opt.termguicolors = true +vim.opt.signcolumn = "yes" + +-- Allow backspace to work as you would expect +vim.opt.backspace = "indent,eol,start" + +-- Use system clipboard as default register +vim.opt.clipboard:append("unnamedplus") + +vim.cmd([[ + set nobackup "no backup files + set nowritebackup "only in case you don't want a backup file while editing + set noswapfile "no swap files +]]) diff --git a/nvim/lua/wqtt/core/remap.lua b/nvim/lua/wqtt/core/remap.lua new file mode 100644 index 0000000..78708ba --- /dev/null +++ b/nvim/lua/wqtt/core/remap.lua @@ -0,0 +1,22 @@ +vim.g.mapleader = " " + +vim.keymap.set("i", "jj", "", { desc = "Exit insert mode with jj" }) +vim.keymap.set("n", "nh", ":nohl", { desc = "Clear highlights with nh" }) + +vim.keymap.set("n", "wc", ":w", { desc = "Write the current buffer" }) +vim.keymap.set("n", "wa", ":wa", { desc = "Write all open buffers" }) +vim.keymap.set("n", "q", ":q", { desc = "Quit" }) + +vim.keymap.set("n", "ns", ":source ~/.config/nvim/init.lua", { desc = "Source the nvim configuration" }) + +vim.keymap.set("v", "fmt", ":!column -t -s '|' -o '|'", { desc = "format the selected markdown table" }) + +vim.keymap.set("n", "rgm", ":! go run main.go", { desc = "Run the main.go file" }) + +vim.keymap.set("n", "fc", ":foldclose", { desc = "Close a fold" }) +vim.keymap.set("n", "fo", ":foldopen", { desc = "Open a fold" }) + +vim.cmd([[ + vnoremap :m '<-2gv=gv + vnoremap :m '>+1gv=gv +]]) diff --git a/nvim/lua/wqtt/lazy.lua b/nvim/lua/wqtt/lazy.lua new file mode 100644 index 0000000..e948789 --- /dev/null +++ b/nvim/lua/wqtt/lazy.lua @@ -0,0 +1,23 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + { import = "wqtt.plugins" }, + { import = "wqtt.plugins.lsp" }, + { import = "wqtt.plugins.themes" }, +}, { + change_detection = { + enabled = true, + notify = true, + }, +}) diff --git a/nvim/lua/wqtt/plugins/comment.lua b/nvim/lua/wqtt/plugins/comment.lua new file mode 100644 index 0000000..92e52f4 --- /dev/null +++ b/nvim/lua/wqtt/plugins/comment.lua @@ -0,0 +1,16 @@ +return { + "numToStr/Comment.nvim", + event = { "BufReadPre", "BufNewFile" }, + dependencies = { + "JoosepAlviste/nvim-ts-context-commentstring", + }, + config = function() + local comment = require("Comment") + + local ts_context_contextstring = require("ts_context_commentstring.integrations.comment_nvim") + + comment.setup({ + pre_hook = ts_context_contextstring.create_pre_hook(), + }) + end, +} diff --git a/nvim/lua/wqtt/plugins/copilot.lua b/nvim/lua/wqtt/plugins/copilot.lua new file mode 100644 index 0000000..9a02202 --- /dev/null +++ b/nvim/lua/wqtt/plugins/copilot.lua @@ -0,0 +1 @@ +return { "github/copilot.vim" } diff --git a/nvim/lua/wqtt/plugins/formatting.lua b/nvim/lua/wqtt/plugins/formatting.lua new file mode 100644 index 0000000..174e10d --- /dev/null +++ b/nvim/lua/wqtt/plugins/formatting.lua @@ -0,0 +1,38 @@ +return { + "stevearc/conform.nvim", + event = { "BufReadPre", "BufNewFile" }, + config = function() + local conform = require("conform") + + conform.setup({ + formatters_by_ft = { + javascript = { "prettier" }, + typescript = { "prettier" }, + javascriptreact = { "prettier" }, + typescriptreact = { "prettier" }, + css = { "prettier" }, + html = { "prettier" }, + json = { "prettier" }, + yaml = { "prettier" }, + markdown = { "prettier" }, + graphql = { "prettier" }, + lua = { "stylua" }, + elm = { "elm-format" }, + templ = { "templ", "injected" }, + }, + format_on_save = { + lsp_fallback = true, + async = false, + timeout_ms = 1000, + }, + }) + + vim.keymap.set({ "n", "v" }, "mp", function() + conform.format({ + lsp_fallback = true, + async = false, + timeout_ms = 1000, + }) + end, { desc = "Format file or range" }) + end, +} diff --git a/nvim/lua/wqtt/plugins/gitsigns.lua b/nvim/lua/wqtt/plugins/gitsigns.lua new file mode 100644 index 0000000..df45ec6 --- /dev/null +++ b/nvim/lua/wqtt/plugins/gitsigns.lua @@ -0,0 +1,6 @@ +return { + "lewis6991/gitsigns.nvim", + config = function() + require("gitsigns").setup() + end, +} diff --git a/nvim/lua/wqtt/plugins/hop.lua b/nvim/lua/wqtt/plugins/hop.lua new file mode 100644 index 0000000..6dc1d46 --- /dev/null +++ b/nvim/lua/wqtt/plugins/hop.lua @@ -0,0 +1,9 @@ +return { + "phaazon/hop.nvim", + branch = "v2", -- optional but strongly recommended + config = function() + require("hop").setup() + + vim.keymap.set("n", "gw", "HopWord", { desc = "Activate word jumping" }) + end, +} diff --git a/nvim/lua/wqtt/plugins/linting.lua b/nvim/lua/wqtt/plugins/linting.lua new file mode 100644 index 0000000..eac3387 --- /dev/null +++ b/nvim/lua/wqtt/plugins/linting.lua @@ -0,0 +1,25 @@ +return { + "mfussenegger/nvim-lint", + event = { "BufReadPre", "BufNewFile" }, + config = function() + local lint = require("lint") + + lint.linters_by_ft = { + python = { "pylint" }, + go = { "revive" }, + } + + local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true }) + + vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { + group = lint_augroup, + callback = function() + lint.try_lint() + end, + }) + + vim.keymap.set("n", "l", function() + lint.try_lint() + end, { desc = "Trigger linting for current file" }) + end, +} diff --git a/nvim/lua/wqtt/plugins/lsp/lspconfig.lua b/nvim/lua/wqtt/plugins/lsp/lspconfig.lua new file mode 100644 index 0000000..2b49da9 --- /dev/null +++ b/nvim/lua/wqtt/plugins/lsp/lspconfig.lua @@ -0,0 +1,91 @@ +return { + "neovim/nvim-lspconfig", + event = { "BufReadPre", "BufNewFile" }, + dependencies = { + "hrsh7th/cmp-nvim-lsp", + { "antosha417/nvim-lsp-file-operations", config = true }, + { "folke/neodev.nvim", opts = {} }, + }, + config = function() + local lspconfig = require("lspconfig") + local mason_lspconfig = require("mason-lspconfig") + local cmp_nvim_lsp = require("cmp_nvim_lsp") + + lspconfig.gleam.setup({}) + lspconfig.roc_ls.setup({}) + + vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("UserLspConfig", {}), + callback = function(ev) + local opts = { buffer = ev.buf, silent = true } + + opts.desc = "Show LSP references" + vim.keymap.set("n", "gR", "Telescope lsp_references", opts) + + opts.desc = "Go to declaration" + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) + + opts.desc = "Show LSP definitions" + vim.keymap.set("n", "gi", "Telescope lsp_definitions", opts) + + opts.desc = "Show LSP type definitions" + vim.keymap.set("n", "gt", "Telescope lsp_type_definitions", opts) + + opts.desc = "See available code actions" + vim.keymap.set({ "n", "v" }, "ca", vim.lsp.buf.code_action, opts) + + opts.desc = "Smart rename" + vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) + + opts.desc = "Show buffer diagnostics" + vim.keymap.set("n", "D", "Telescope diagnostics bufnr=0", opts) + + opts.desc = "Show line diagnostics" + vim.keymap.set("n", "d", vim.diagnostic.open_float, opts) + + opts.desc = "Go to previous diagnostic" + vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) + + opts.desc = "Go to next diagnostic" + vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) + + opts.desc = "Show documentation for current symbol" + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) + + opts.desc = "Restart LSP" + vim.keymap.set("n", "rs", ":LspRestart", opts) + end, + }) + + local capabilities = cmp_nvim_lsp.default_capabilities() + + mason_lspconfig.setup_handlers({ + function(server_name) + lspconfig[server_name].setup({ + capabilities = capabilities, + }) + end, + ["tailwindcss"] = function() + lspconfig["tailwindcss"].setup({ + capabilities = capabilities, + filetypes = { "html", "ts", "tsx", "js", "jsx", "elm", "gleam", "templ" }, + }) + end, + ["lua_ls"] = function() + lspconfig["lua_ls"].setup({ + capabilities = capabilities, + settings = { + Lua = { + diagnostics = { + globals = { "vim" }, + }, + completion = { + callSnippet = "Replace", + }, + }, + }, + }) + end, + }) + end, +} diff --git a/nvim/lua/wqtt/plugins/lsp/mason.lua b/nvim/lua/wqtt/plugins/lsp/mason.lua new file mode 100644 index 0000000..6b76738 --- /dev/null +++ b/nvim/lua/wqtt/plugins/lsp/mason.lua @@ -0,0 +1,48 @@ +return { + "williamboman/mason.nvim", + dependencies = { + "williamboman/mason-lspconfig.nvim", + "WhoIsSethDaniel/mason-tool-installer.nvim", + }, + config = function() + local mason = require("mason") + local mason_lspconfig = require("mason-lspconfig") + + mason.setup() + + mason_lspconfig.setup({ + ensure_installed = { + "ts_ls", + "html", + "cssls", + "tailwindcss", + "lua_ls", + "graphql", + "prismals", + "pyright", + "elmls", + "golangci_lint_ls", + "gopls", + "yamlls", + "terraformls", + "rust_analyzer", + "marksman", + "elixirls", + "docker_compose_language_service", + "cypher_ls", + "clangd", + "bashls", + }, + }) + + local mason_tool_installer = require("mason-tool-installer") + + mason_tool_installer.setup({ + ensure_installed = { + "prettier", + "stylua", + "elm-format", + }, + }) + end, +} diff --git a/nvim/lua/wqtt/plugins/lualine.lua b/nvim/lua/wqtt/plugins/lualine.lua new file mode 100644 index 0000000..ff23b26 --- /dev/null +++ b/nvim/lua/wqtt/plugins/lualine.lua @@ -0,0 +1,7 @@ +return { + "nvim-lualine/lualine.nvim", + dependencies = { "nvim-tree/nvim-web-devicons" }, + config = function() + require("lualine").setup() + end, +} diff --git a/nvim/lua/wqtt/plugins/markdown-preview.lua b/nvim/lua/wqtt/plugins/markdown-preview.lua new file mode 100644 index 0000000..70cc5a3 --- /dev/null +++ b/nvim/lua/wqtt/plugins/markdown-preview.lua @@ -0,0 +1,9 @@ +return { + "iamcco/markdown-preview.nvim", + cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, + build = "cd app && npm install", + init = function() + vim.g.mkdp_filetypes = { "markdown" } + end, + ft = { "markdown" }, +} diff --git a/nvim/lua/wqtt/plugins/nvim-cmp.lua b/nvim/lua/wqtt/plugins/nvim-cmp.lua new file mode 100644 index 0000000..cc09f49 --- /dev/null +++ b/nvim/lua/wqtt/plugins/nvim-cmp.lua @@ -0,0 +1,57 @@ +return { + "hrsh7th/nvim-cmp", + event = "InsertEnter", + dependencies = { + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + { + "L3MON4D3/LuaSnip", + version = "v2.*", + build = "make install_jsregexp", + }, + "saadparwaiz1/cmp_luasnip", + "rafamadriz/friendly-snippets", + "onsails/lspkind.nvim", + "hrsh7th/cmp-nvim-lsp", + }, + config = function() + local cmp = require("cmp") + local luasnip = require("luasnip") + local lspkind = require("lspkind") + + require("luasnip.loaders.from_vscode").lazy_load() + + cmp.setup({ + completion = { + completeopt = "menu,menuone,preview,noselect", + }, + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ select = false }), + }), + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "buffer" }, + { name = "path" }, + { name = "neorg" }, + }), + formatting = { + format = lspkind.cmp_format({ + maxwidth = 50, + ellipsis_char = "...", + }), + }, + }) + end, +} diff --git a/nvim/lua/wqtt/plugins/nvimtree.lua b/nvim/lua/wqtt/plugins/nvimtree.lua new file mode 100644 index 0000000..221b9fc --- /dev/null +++ b/nvim/lua/wqtt/plugins/nvimtree.lua @@ -0,0 +1,283 @@ +return { + "nvim-tree/nvim-tree.lua", + dependencies = "nvim-tree/nvim-web-devicons", + config = function() + require("nvim-tree").setup({ -- BEGIN_DEFAULT_OPTS + on_attach = "default", + hijack_cursor = false, + auto_reload_on_write = true, + disable_netrw = false, + hijack_netrw = true, + hijack_unnamed_buffer_when_opening = false, + root_dirs = {}, + prefer_startup_root = false, + sync_root_with_cwd = false, + reload_on_bufenter = false, + respect_buf_cwd = false, + select_prompts = false, + sort = { + sorter = "name", + folders_first = true, + files_first = false, + }, + view = { + centralize_selection = false, + cursorline = true, + debounce_delay = 15, + side = "right", + preserve_window_proportions = false, + number = false, + relativenumber = false, + signcolumn = "yes", + width = 30, + float = { + enable = false, + quit_on_focus_loss = true, + open_win_config = { + relative = "editor", + border = "rounded", + width = 30, + height = 30, + row = 1, + col = 1, + }, + }, + }, + renderer = { + add_trailing = false, + group_empty = false, + full_name = false, + root_folder_label = ":~:s?$?/..?", + indent_width = 2, + special_files = { "Cargo.toml", "Makefile", "README.md", "readme.md" }, + symlink_destination = true, + highlight_git = "none", + highlight_diagnostics = "none", + highlight_opened_files = "none", + highlight_modified = "none", + highlight_hidden = "none", + highlight_bookmarks = "none", + highlight_clipboard = "name", + indent_markers = { + enable = false, + inline_arrows = true, + icons = { + corner = "└", + edge = "│", + item = "│", + bottom = "─", + none = " ", + }, + }, + icons = { + web_devicons = { + file = { + enable = true, + color = true, + }, + folder = { + enable = false, + color = true, + }, + }, + git_placement = "before", + modified_placement = "after", + hidden_placement = "after", + diagnostics_placement = "signcolumn", + bookmarks_placement = "signcolumn", + padding = " ", + symlink_arrow = " ➛ ", + show = { + file = true, + folder = true, + folder_arrow = true, + git = true, + modified = true, + hidden = false, + diagnostics = true, + bookmarks = true, + }, + glyphs = { + default = "", + symlink = "", + bookmark = "󰆤", + modified = "●", + hidden = "󰜌", + folder = { + arrow_closed = "", + arrow_open = "", + default = "", + open = "", + empty = "", + empty_open = "", + symlink = "", + symlink_open = "", + }, + git = { + unstaged = "✗", + staged = "✓", + unmerged = "", + renamed = "➜", + untracked = "★", + deleted = "", + ignored = "◌", + }, + }, + }, + }, + hijack_directories = { + enable = true, + auto_open = true, + }, + update_focused_file = { + enable = false, + update_root = { + enable = false, + ignore_list = {}, + }, + exclude = false, + }, + system_open = { + cmd = "", + args = {}, + }, + git = { + enable = true, + show_on_dirs = true, + show_on_open_dirs = true, + disable_for_dirs = {}, + timeout = 400, + cygwin_support = false, + }, + diagnostics = { + enable = false, + show_on_dirs = false, + show_on_open_dirs = true, + debounce_delay = 50, + severity = { + min = vim.diagnostic.severity.HINT, + max = vim.diagnostic.severity.ERROR, + }, + icons = { + hint = "", + info = "", + warning = "", + error = "", + }, + }, + modified = { + enable = false, + show_on_dirs = true, + show_on_open_dirs = true, + }, + filters = { + enable = true, + git_ignored = true, + dotfiles = false, + git_clean = false, + no_buffer = false, + no_bookmark = false, + custom = {}, + exclude = {}, + }, + live_filter = { + prefix = "[FILTER]: ", + always_show_folders = true, + }, + filesystem_watchers = { + enable = true, + debounce_delay = 50, + ignore_dirs = {}, + }, + actions = { + use_system_clipboard = true, + change_dir = { + enable = true, + global = false, + restrict_above_cwd = false, + }, + expand_all = { + max_folder_discovery = 300, + exclude = {}, + }, + file_popup = { + open_win_config = { + col = 1, + row = 1, + relative = "cursor", + border = "shadow", + style = "minimal", + }, + }, + open_file = { + quit_on_open = false, + eject = true, + resize_window = true, + window_picker = { + enable = true, + picker = "default", + chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", + exclude = { + filetype = { "notify", "packer", "qf", "diff", "fugitive", "fugitiveblame" }, + buftype = { "nofile", "terminal", "help" }, + }, + }, + }, + remove_file = { + close_window = true, + }, + }, + trash = { + cmd = "gio trash", + }, + tab = { + sync = { + open = false, + close = false, + ignore = {}, + }, + }, + notify = { + threshold = vim.log.levels.INFO, + absolute_path = true, + }, + help = { + sort_by = "key", + }, + ui = { + confirm = { + remove = true, + trash = true, + default_yes = false, + }, + }, + experimental = { + actions = { + open_file = { + relative_path = false, + }, + }, + }, + log = { + enable = false, + truncate = false, + types = { + all = false, + config = false, + copy_paste = false, + dev = false, + diagnostics = false, + git = false, + profile = false, + watcher = false, + }, + }, + }) -- END_DEFAULT_OPTS + + local api = require("nvim-tree.api") + + vim.keymap.set("n", "e", function() + api.tree.toggle() + end, { desc = "Toggle the file explorer" }) + end, +} diff --git a/nvim/lua/wqtt/plugins/plenary.lua b/nvim/lua/wqtt/plugins/plenary.lua new file mode 100644 index 0000000..857227c --- /dev/null +++ b/nvim/lua/wqtt/plugins/plenary.lua @@ -0,0 +1,3 @@ +return { + "nvim-lua/plenary.nvim", +} diff --git a/nvim/lua/wqtt/plugins/rest.lua b/nvim/lua/wqtt/plugins/rest.lua new file mode 100644 index 0000000..92435c5 --- /dev/null +++ b/nvim/lua/wqtt/plugins/rest.lua @@ -0,0 +1,10 @@ +return { + "rest-nvim/rest.nvim", + dependencies = { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + table.insert(opts.ensure_installed, "http") + end, + }, +} diff --git a/nvim/lua/wqtt/plugins/telescope.lua b/nvim/lua/wqtt/plugins/telescope.lua new file mode 100644 index 0000000..e14d634 --- /dev/null +++ b/nvim/lua/wqtt/plugins/telescope.lua @@ -0,0 +1,34 @@ +return { + "nvim-telescope/telescope.nvim", + tag = "0.1.6", + dependencies = { + "nvim-lua/plenary.nvim", + { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, + "folke/todo-comments.nvim", + }, + config = function() + local telescope = require("telescope") + local builtin = require("telescope.builtin") + + telescope.load_extension("fzf") + + vim.keymap.set("n", "", builtin.git_files, { desc = "Show all files in git" }) + vim.keymap.set("n", "fr", builtin.oldfiles, { desc = "Show recent files" }) + vim.keymap.set("n", "ff", builtin.find_files, { desc = "show all files in the current directory" }) + vim.keymap.set("n", "fg", builtin.live_grep, { desc = "live grep" }) + vim.keymap.set("n", "fb", builtin.buffers, { desc = "show all open buffers" }) + vim.keymap.set("n", "ft", "TodoTelescope", { desc = "find todos" }) + vim.keymap.set( + "n", + "fs", + "Telescope lsp_document_symbols query=searchTerm", + { desc = "Search the document for symbols" } + ) + vim.keymap.set( + "n", + "fws", + "Telescope lsp_workspace_symbols query=searchTerm", + { desc = "Search the workspace for symbols" } + ) + end, +} diff --git a/nvim/lua/wqtt/plugins/themes/catppuccin.lua b/nvim/lua/wqtt/plugins/themes/catppuccin.lua new file mode 100644 index 0000000..c7b10f2 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/catppuccin.lua @@ -0,0 +1,55 @@ +return { + "catppuccin/nvim", + name = "catppuccin", + priority = 1000, + config = function() + require("catppuccin").setup({ + flavour = "frappe", -- latte, frappe, macchiato, mocha + background = { -- :h background + light = "latte", + dark = "mocha", + }, + transparent_background = true, -- disables setting the background color. + show_end_of_buffer = true, -- shows the '~' characters after the end of buffers + term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`) + dim_inactive = { + enabled = false, -- dims the background color of inactive window + shade = "dark", + percentage = 0.15, -- percentage of the shade to apply to the inactive window + }, + no_italic = false, -- Force no italic + no_bold = false, -- Force no bold + no_underline = false, -- Force no underline + styles = { -- Handles the styles of general hi groups (see `:h highlight-args`): + comments = { "italic" }, -- Change the style of comments + conditionals = { "italic" }, + loops = {}, + functions = {}, + keywords = {}, + strings = {}, + variables = {}, + numbers = {}, + booleans = {}, + properties = {}, + types = {}, + operators = {}, + -- miscs = {}, -- Uncomment to turn off hard-coded styles + }, + color_overrides = {}, + custom_highlights = {}, + default_integrations = true, + integrations = { + cmp = true, + gitsigns = true, + nvimtree = true, + treesitter = true, + notify = false, + mini = { + enabled = true, + indentscope_color = "", + }, + -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations) + }, + }) + end, +} diff --git a/nvim/lua/wqtt/plugins/themes/everforest.lua b/nvim/lua/wqtt/plugins/themes/everforest.lua new file mode 100644 index 0000000..8858238 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/everforest.lua @@ -0,0 +1,3 @@ +return { + "sainnhe/everforest", +} diff --git a/nvim/lua/wqtt/plugins/themes/github.lua b/nvim/lua/wqtt/plugins/themes/github.lua new file mode 100644 index 0000000..90df9b3 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/github.lua @@ -0,0 +1 @@ +return { "projekt0n/github-nvim-theme" } diff --git a/nvim/lua/wqtt/plugins/themes/gruvbox.lua b/nvim/lua/wqtt/plugins/themes/gruvbox.lua new file mode 100644 index 0000000..6e2599a --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/gruvbox.lua @@ -0,0 +1,3 @@ +return { + "ellisonleao/gruvbox.nvim", +} diff --git a/nvim/lua/wqtt/plugins/themes/melange.lua b/nvim/lua/wqtt/plugins/themes/melange.lua new file mode 100644 index 0000000..0ea79a9 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/melange.lua @@ -0,0 +1 @@ +return { "savq/melange-nvim" } diff --git a/nvim/lua/wqtt/plugins/themes/nightfox.lua b/nvim/lua/wqtt/plugins/themes/nightfox.lua new file mode 100644 index 0000000..e28ef35 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/nightfox.lua @@ -0,0 +1,3 @@ +return { + "EdenEast/nightfox.nvim", +} diff --git a/nvim/lua/wqtt/plugins/themes/nord.lua b/nvim/lua/wqtt/plugins/themes/nord.lua new file mode 100644 index 0000000..20102f5 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/nord.lua @@ -0,0 +1 @@ +return { "shaunsingh/nord.nvim" } diff --git a/nvim/lua/wqtt/plugins/themes/onedark.lua b/nvim/lua/wqtt/plugins/themes/onedark.lua new file mode 100644 index 0000000..76c739c --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/onedark.lua @@ -0,0 +1,4 @@ +return { + "olimorris/onedarkpro.nvim", + priority = 1000, -- Ensure it loads first +} diff --git a/nvim/lua/wqtt/plugins/themes/onenord.lua b/nvim/lua/wqtt/plugins/themes/onenord.lua new file mode 100644 index 0000000..c23c3cd --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/onenord.lua @@ -0,0 +1 @@ +return { "rmehri01/onenord.nvim" } diff --git a/nvim/lua/wqtt/plugins/themes/rose-pine.lua b/nvim/lua/wqtt/plugins/themes/rose-pine.lua new file mode 100644 index 0000000..41f94c4 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/rose-pine.lua @@ -0,0 +1,4 @@ +return { + "rose-pine/neovim", + name = "rose-pine", +} diff --git a/nvim/lua/wqtt/plugins/themes/seoul256.lua b/nvim/lua/wqtt/plugins/themes/seoul256.lua new file mode 100644 index 0000000..1dfef79 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/seoul256.lua @@ -0,0 +1,3 @@ +return { + "junegunn/seoul256.vim", +} diff --git a/nvim/lua/wqtt/plugins/themes/solarized.lua b/nvim/lua/wqtt/plugins/themes/solarized.lua new file mode 100644 index 0000000..907b49c --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/solarized.lua @@ -0,0 +1,10 @@ +return { + "maxmx03/solarized.nvim", + lazy = false, + priority = 1000, + setup = function() + require("solarized").setup({ + transparent = true, + }) + end, +} diff --git a/nvim/lua/wqtt/plugins/themes/sweetie.lua b/nvim/lua/wqtt/plugins/themes/sweetie.lua new file mode 100644 index 0000000..1a42688 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/sweetie.lua @@ -0,0 +1,3 @@ +return { + { "NTBBloodbath/sweetie.nvim" }, +} diff --git a/nvim/lua/wqtt/plugins/themes/tokyo-night.lua b/nvim/lua/wqtt/plugins/themes/tokyo-night.lua new file mode 100644 index 0000000..446339a --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/tokyo-night.lua @@ -0,0 +1,3 @@ +return { + "folke/tokyonight.nvim", +} diff --git a/nvim/lua/wqtt/plugins/themes/vscode.lua b/nvim/lua/wqtt/plugins/themes/vscode.lua new file mode 100644 index 0000000..93e6d20 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/vscode.lua @@ -0,0 +1,3 @@ +return { + "Mofiqul/vscode.nvim", +} diff --git a/nvim/lua/wqtt/plugins/themes/zenbones.lua b/nvim/lua/wqtt/plugins/themes/zenbones.lua new file mode 100644 index 0000000..cd025f6 --- /dev/null +++ b/nvim/lua/wqtt/plugins/themes/zenbones.lua @@ -0,0 +1,7 @@ +return { + "zenbones-theme/zenbones.nvim", + -- Optionally install Lush. Allows for more configuration or extending the colorscheme + -- If you don't want to install lush, make sure to set g:zenbones_compat = 1 + -- In Vim, compat mode is turned on as Lush only works in Neovim. + dependencies = { "rktjmp/lush.nvim" }, +} diff --git a/nvim/lua/wqtt/plugins/tmux.nvim.lua b/nvim/lua/wqtt/plugins/tmux.nvim.lua new file mode 100644 index 0000000..ab74e77 --- /dev/null +++ b/nvim/lua/wqtt/plugins/tmux.nvim.lua @@ -0,0 +1,6 @@ +return { + "aserowy/tmux.nvim", + config = function() + return require("tmux").setup() + end, +} diff --git a/nvim/lua/wqtt/plugins/todo-comments.lua b/nvim/lua/wqtt/plugins/todo-comments.lua new file mode 100644 index 0000000..0045e68 --- /dev/null +++ b/nvim/lua/wqtt/plugins/todo-comments.lua @@ -0,0 +1,10 @@ +return { + "folke/todo-comments.nvim", + event = { "BufReadPre", "BufNewFile" }, + dependencies = { + "nvim-lua/plenary.nvim", + }, + config = function() + require("todo-comments").setup() + end, +} diff --git a/nvim/lua/wqtt/plugins/transparent.lua b/nvim/lua/wqtt/plugins/transparent.lua new file mode 100644 index 0000000..982143a --- /dev/null +++ b/nvim/lua/wqtt/plugins/transparent.lua @@ -0,0 +1,7 @@ +return { + "xiyaowong/transparent.nvim", + extra_groups = { + "NormalFloat", -- plugins which have float panel such as Lazy, Mason, LspInfo + "NvimTreeNormal", -- NvimTree + }, +} diff --git a/nvim/lua/wqtt/plugins/tree-sitter.lua b/nvim/lua/wqtt/plugins/tree-sitter.lua new file mode 100644 index 0000000..c3df621 --- /dev/null +++ b/nvim/lua/wqtt/plugins/tree-sitter.lua @@ -0,0 +1,41 @@ +return { + "nvim-treesitter/nvim-treesitter", + event = { "BufReadPre", "BufNewFile" }, + build = ":TSUpdate", + dependencies = { + "windwp/nvim-ts-autotag", + }, + config = function() + local treesitter = require("nvim-treesitter.configs") + + treesitter.setup({ + highlight = { enable = true }, + indent = { enable = true }, + autotag = { enable = true }, + ensure_installed = { + "json", + "java", + "javascript", + "typescript", + "tsx", + "yaml", + "html", + "css", + "prisma", + "markdown", + "markdown_inline", + "graphql", + "gleam", + "bash", + "lua", + "vim", + "dockerfile", + "gitignore", + "c", + "rust", + "elm", + "go", + }, + }) + end, +} diff --git a/nvim/lua/wqtt/plugins/trouble.lua b/nvim/lua/wqtt/plugins/trouble.lua new file mode 100644 index 0000000..ea93837 --- /dev/null +++ b/nvim/lua/wqtt/plugins/trouble.lua @@ -0,0 +1,37 @@ +return { + "folke/trouble.nvim", + opts = {}, -- for default options, refer to the configuration section for custom setup. + cmd = "Trouble", + keys = { + { + "xx", + "Trouble diagnostics toggle", + desc = "Diagnostics (Trouble)", + }, + { + "xw", + "Trouble diagnostics toggle filter.buf=0", + desc = "Buffer Diagnostics (Trouble)", + }, + { + "xd", + "Trouble symbols toggle focus=false", + desc = "Symbols (Trouble)", + }, + { + "xq", + "Trouble lsp toggle focus=false win.position=right", + desc = "LSP Definitions / references / ... (Trouble)", + }, + { + "xl", + "Trouble loclist toggle", + desc = "Location List (Trouble)", + }, + { + "xt", + "Trouble qflist toggle", + desc = "Quickfix List (Trouble)", + }, + }, +} diff --git a/nvim/lua/wqtt/plugins/which-key.lua b/nvim/lua/wqtt/plugins/which-key.lua new file mode 100644 index 0000000..6f820e0 --- /dev/null +++ b/nvim/lua/wqtt/plugins/which-key.lua @@ -0,0 +1,13 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + init = function() + vim.o.timeout = true + vim.o.timeoutlen = 300 + end, + opts = { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + } +}