diff --git a/config/astronvim/lua/user/plugins/init.lua b/config/astronvim/lua/user/plugins/init.lua index 315b85d..305ce06 100644 --- a/config/astronvim/lua/user/plugins/init.lua +++ b/config/astronvim/lua/user/plugins/init.lua @@ -1,7 +1,7 @@ return { - ["/nvim-neo-tree/neo-tree.nvim"] = { disable = true }, + -- ["/nvim-neo-tree/neo-tree.nvim"] = { disable = true }, ["rcarriga/nvim-notify"] = { disable = true }, - + -- ["catppuccin/nvim"] = { as = "catppuccin", config = function() @@ -13,26 +13,22 @@ return { require("treesitter-context").setup() end, }, - ["ahmedkhalf/project.nvim"] = { config = function() require("user.plugins.project") end, }, - - ["kyazdani42/nvim-tree.lua"] = { - config = function() - require("user.plugins.nvim-tree") - end, - }, - + -- ["kyazdani42/nvim-tree.lua"] = { + -- config = function() + -- require("user.plugins.nvim-tree") + -- end, + -- }, ["kylechui/nvim-surround"] = { tag = "*", -- Use for stability; omit to use `main` branch for the latest features config = function() require("nvim-surround").setup() end, }, - ["s1n7ax/nvim-comment-frame"] = { requires = { { "nvim-treesitter" }, @@ -50,14 +46,12 @@ return { requires = "nvim-treesitter/nvim-treesitter", tag = "*", -- stable releases }, - ["folke/todo-comments.nvim"] = { requires = "nvim-lua/plenary.nvim", config = function() require("todo-comments").setup({}) end, }, - ["folke/trouble.nvim"] = { requires = "kyazdani42/nvim-web-devicons", config = function() @@ -77,10 +71,22 @@ return { }) end, }, - ["ThePrimeagen/harpoon"] = { config = function() require("user.plugins.harpoon") end, }, + ["ckolkey/ts-node-action"] = { + requires = { "nvim-treesitter" }, + config = function() + require("user.plugins.ts-node-action") + end, + }, + ["phaazon/mind.nvim"] = { + branch = "v2", + requires = { "nvim-lua/plenary.nvim" }, + config = function() + require("user.plugins.mind") + end, + }, } diff --git a/config/astronvim/lua/user/plugins/mind.lua b/config/astronvim/lua/user/plugins/mind.lua new file mode 100644 index 0000000..c16c643 --- /dev/null +++ b/config/astronvim/lua/user/plugins/mind.lua @@ -0,0 +1 @@ +require("mind").setup() diff --git a/config/astronvim/lua/user/plugins/neo-tree.lua b/config/astronvim/lua/user/plugins/neo-tree.lua new file mode 100644 index 0000000..85ec4a0 --- /dev/null +++ b/config/astronvim/lua/user/plugins/neo-tree.lua @@ -0,0 +1,142 @@ +return { + hide_root_node = true, + retain_hidden_root_indent = true, + enable_diagnostics = true, + default_component_configs = { + same_level = true, + indent = { + with_expanders = true, + }, + git_status = { + symbols = { + added = "", + deleted = "", + modified = "", + renamed = "➜", + untracked = "★", + ignored = "◌", + unstaged = "✗", + staged = "✓", + conflict = "", + }, + }, + }, + window = { + width = 30, + mappings = { + ["<2-LeftMouse>"] = "open_with_window_picker", + [""] = "open_with_window_picker", + ["o"] = "o", + ["l"] = "open_with_window_picker", + ["S"] = "split_with_window_picker:", + ["v"] = "vsplit_with_window_picker:", + ["h"] = "close_node", + [""] = "end_preview", + [""] = { "toggle_preview", config = { use_float = true } }, + ["."] = "set_root", + ["i"] = "toggle_hidden", + ["R"] = "refresh", + ["/"] = "fuzzy_finder", + ["f"] = "filter_on_submit", + [""] = "clear_filter", + ["a"] = { "add", config = { show_path = "relative" } }, + ["d"] = "delete", + ["r"] = "rename", + ["y"] = "copy_to_clipboard", + ["x"] = "cut_to_clipboard", + ["p"] = "paste_from_clipboard", + ["c"] = "copy", + ["m"] = "move", + ["q"] = "close_window", + ["e"] = function() + vim.api.nvim_exec("Neotree focus filesystem left", true) + end, + ["b"] = function() + vim.api.nvim_exec("Neotree focus buffers left", true) + end, + ["g"] = function() + vim.api.nvim_exec("Neotree focus git_status left", true) + end, + }, + }, + filesystem = { + group_empty_dirs = true, + hijack_netrw_behavior = "open_default", + filtered_items = { + hide_by_name = { + ".DS_Store", + "thumbs.db", + "node_modules", + "__pycache__", + }, + }, + components = { + harpoon_index = function(config, node) + local Marked = require("harpoon.mark") + local path = node:get_id() + local succuss, index = pcall(Marked.get_index_of, path) + if succuss and index and index > 0 then + return { + text = string.format("-> %d", index), -- <-- Add your favorite harpoon like arrow here + highlight = config.highlight or "NeoTreeDirectoryIcon", + } + else + return {} + end + end, + }, + renderers = { + file = { + { "icon" }, + { "name", use_git_status_colors = true }, + { "harpoon_index" }, --> This is what actually adds the component in where you want it + { "diagnostics" }, + { "git_status", highlight = "NeoTreeDimText" }, + }, + }, + window = { + mappings = { + ["h"] = "close_node", + }, + }, + }, + buffers = { + show_unloaded = true, + window = { + mappings = { + ["bd"] = "buffer_delete", + }, + }, + }, + git_status = { + window = { + position = "float", + mappings = { + ["A"] = "git_add_all", + ["gu"] = "git_unstage_file", + ["ga"] = "git_add_file", + ["gr"] = "git_revert_file", + ["gc"] = "git_commit", + ["gp"] = "git_push", + ["gg"] = "git_commit_and_push", + }, + }, + }, + event_handlers = { + { + event = "vim_buffer_enter", + handler = function(_) + if vim.bo.filetype == "neo-tree" then + vim.wo.signcolumn = "auto" + end + end, + }, + { + event = "file_opened", + handler = function() + --auto close + require("neo-tree").close_all() + end, + }, + }, +} diff --git a/config/astronvim/lua/user/plugins/nvim-tree.lua b/config/astronvim/lua/user/plugins/nvim-tree.lua index 9e593cf..afcef9f 100644 --- a/config/astronvim/lua/user/plugins/nvim-tree.lua +++ b/config/astronvim/lua/user/plugins/nvim-tree.lua @@ -29,18 +29,43 @@ tree.setup({ list = { { key = { "l", "", "o", "<2-LeftMouse>" }, action = "edit" }, -- {key = {"L", "<2-RightMouse>", ""}, action = "cd"}, - { key = "s", action = "vsplit" }, - { key = "v", action = "split" }, - { key = "t", action = "tabnew" }, - { key = { "h", "" }, action = "close_node" }, - { key = "i", action = "toggle_dotfiles" }, - { key = "I", action = "toggle_ignored" }, - { key = { "", "" }, cb = tree_cb("system_open") }, + { key = "s", action = "vsplit" }, + { key = "v", action = "split" }, + { key = "t", action = "tabnew" }, + { key = { "h", "" }, action = "close_node" }, + { key = "i", action = "toggle_dotfiles" }, + { key = "I", action = "toggle_ignored" }, + { key = { "", "" }, cb = tree_cb("system_open") }, }, }, }, }) +-- Auto open when a dir is opened + +local function open_nvim_tree(data) + -- buffer is a directory + local directory = vim.fn.isdirectory(data.file) == 1 + + if not directory then + return + end + + -- create a new, empty buffer + vim.cmd.enew() + + -- wipe the directory buffer + vim.cmd.bw(data.buf) + + -- change to the directory + vim.cmd.cd(data.file) + + -- open the tree + require("nvim-tree.api").tree.open() +end + +vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree }) + -- bindings vim.keymap.set("n", "e", ":NvimTreeToggle", { desc = "Toggle file tree", silent = true }) vim.keymap.set("n", "", ":NvimTreeToggle", { desc = "Toggle file tree", silent = true }) diff --git a/config/astronvim/lua/user/plugins/ts-node-action.lua b/config/astronvim/lua/user/plugins/ts-node-action.lua new file mode 100644 index 0000000..027df0b --- /dev/null +++ b/config/astronvim/lua/user/plugins/ts-node-action.lua @@ -0,0 +1,12 @@ +require("ts-node-action").setup({}) + +vim.keymap.set({ "n" }, "lA", require("ts-node-action").node_action, { desc = "Trigger Node Action" }) + +require("null-ls").register({ + name = "more_actions", + method = { require("null-ls").methods.CODE_ACTION }, + filetypes = { "_all" }, + generator = { + fn = require("ts-node-action").available_actions, + }, +}) diff --git a/config/fzf/fzfrc b/config/fzf/fzfrc index aadf140..d7c9236 100644 --- a/config/fzf/fzfrc +++ b/config/fzf/fzfrc @@ -24,10 +24,10 @@ cat <<-EOF EOF )" -export FZF_THEME_CATPPUCCIN_MOCHA=" ---color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \ ---color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \ ---color=marker:#f5e0dc,fg+:blue,border:blue,prompt:#cba6f7,hl+:#f38ba8" +export FZF_DEFAULT_OPTS=" \ +--color=bg+:#363a4f,bg:#24273a,spinner:#f4dbd6,hl:#ed8796 \ +--color=fg:#cad3f5,header:#ed8796,info:#c6a0f6,pointer:#f4dbd6 \ +--color=marker:#f4dbd6,fg+:#cad3f5,prompt:#c6a0f6,hl+:#ed8796" export FZF_PREVIEW_OPTS="--preview '([[ {} =~ ('.jpg'|'.jpeg'|'.png'|'.gif'|'.bmp'|'.svg'|'.mp4'|'.mkv')$ ]] && (chafa --center=on {} && exiftool {})) || @@ -127,4 +127,4 @@ _fzf_compgen_path() { } _fzf_compgen_dir() { fd --color=always --type d --hidden --follow --exclude ".git" . "$1" -} \ No newline at end of file +} diff --git a/config/nvim.old/lua/plugins/ts-node-action.lua b/config/nvim.old/lua/plugins/ts-node-action.lua new file mode 100644 index 0000000..dfd9f63 --- /dev/null +++ b/config/nvim.old/lua/plugins/ts-node-action.lua @@ -0,0 +1,3 @@ +require("ts-node-action").setup({}) + +vim.keymap.set({ "n" }, "lt", require("ts-node-action").node_action, { desc = "Trigger Node Action" }) diff --git a/config/zsh/aliases/configs.zsh b/config/zsh/aliases/configs.zsh new file mode 100644 index 0000000..40ef0c7 --- /dev/null +++ b/config/zsh/aliases/configs.zsh @@ -0,0 +1,3 @@ +alias \ + ckb='cd ~/qmk_firmware && $EDITOR keyboards/sofle/keymaps/aleee-idk' \ + dots='cd $DOTS && $EDITOR' diff --git a/config/zsh/config/options.zsh b/config/zsh/config/options.zsh index 9bdd097..9c7bdf6 100644 --- a/config/zsh/config/options.zsh +++ b/config/zsh/config/options.zsh @@ -4,11 +4,11 @@ SAVEHIST=1000 setopt BANG_HIST setopt EXTENDED_HISTORY setopt HIST_EXPIRE_DUPS_FIRST -setopt HIST_IGNORE_DUPS -setopt HIST_FIND_NO_DUPS -setopt HIST_IGNORE_ALL_DUPS +# setopt HIST_IGNORE_DUPS +# setopt HIST_FIND_NO_DUPS +# setopt HIST_IGNORE_ALL_DUPS setopt HIST_IGNORE_SPACE -setopt HIST_SAVE_NO_DUPS +# setopt HIST_SAVE_NO_DUPS setopt HIST_VERIFY setopt SHARE_HISTORY diff --git a/config/zsh/zshrc b/config/zsh/zshrc index b274d20..c662551 100755 --- a/config/zsh/zshrc +++ b/config/zsh/zshrc @@ -104,6 +104,8 @@ files=( $DOTS/config/zsh/**/*.zsh # fzf scripts that need to be sourced $DOTS/scripts/fzf-flatpak + # fzf config file + $DOOTS/config/fzf/fzfrc ) for file in $files; do diff --git a/scripts/fzf-nf-icon b/scripts/fzf-nf-icon new file mode 100755 index 0000000..0f9feb5 --- /dev/null +++ b/scripts/fzf-nf-icon @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +if [ "$(uname -s)" == "Linux" ]; then + NF_LS_DIR="$HOME/.cache/fzf/nf-ls" +elif [ "$(uname -s)" == "Darwin" ]; then + NF_LS_DIR="/Library/Caches/fzf/nf-ls" +fi + +get_nf_cheat_sheets() { + echo -ne "$( + curl -s https://www.nerdfonts.com/cheat-sheet | + grep -o '
.*
' | + sed -e 's/
\(.*\)<\/div>
\(.*\)<\/div>/\\u\2\tnf-\1/' + )" +} + +update_nf-ls_cache() { + get_nf_cheat_sheets >"$NF_LS_DIR"/nf-ls-cheat.sh +} +export -f update_nf-ls_cache + +if [ ! -d "$NF_LS_DIR" ]; then + mkdir -p "$NF_LS_DIR" + update_nf-ls_cache +fi + +awk '{print $1 " -- " $2}' "$NF_LS_DIR"/nf-ls-cheat.sh | column -t | +fzf -m \ + --header "Nerd Font Cheat.sh" \ + --bind "enter:execute(wl-copy {+1}; notify-send 'Nerd Font Cheat.sh' '{+1} {+3} - icon has been copied')" \ + --bind "alt-u:execute(bash -c update_nf-ls_cache)" diff --git a/scripts/fzf-nerd-fonts b/scripts/fzf-nf-install similarity index 100% rename from scripts/fzf-nerd-fonts rename to scripts/fzf-nf-install