diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf index a9169fd..4220ca3 100644 --- a/.config/kitty/kitty.conf +++ b/.config/kitty/kitty.conf @@ -16,9 +16,8 @@ enable_audio_bell no hide_window_decorations yes # tab bar at bottom -# if ever wanted to use bottom tab bar change tab_bar_style to powerline from hidden -tab_bar_style hidden -tab_bar_min_tabs 1 +tab_bar_style powerline +tab_bar_min_tabs 2 tab_title_template "{index}:{tab.active_exe}" active_tab_title_template "{index}:{tab.active_exe}*" tab_bar_background none diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 0b27622..89501d3 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -1,2 +1,641 @@ -require("lilJ.core") -require("lilJ.lazy_init") +--[[ + +===================================================================== +==================== READ THIS BEFORE CONTINUING ==================== +===================================================================== +======== .-----. ======== +======== .----------------------. | === | ======== +======== |.-""""""""""""""""""-.| |-----| ======== +======== || || | === | ======== +======== || KICKSTART.NVIM || |-----| ======== +======== || || | === | ======== +======== || || |-----| ======== +======== ||:Tutor || |:::::| ======== +======== |'-..................-'| |____o| ======== +======== `"")----------------(""` ___________ ======== +======== /::::::::::| |::::::::::\ \ no mouse \ ======== +======== /:::========| |==hjkl==:::\ \ required \ ======== +======== '""""""""""""' '""""""""""""' '""""""""""' ======== +======== ======== +===================================================================== +===================================================================== + +I hope you enjoy your Neovim journey, +- TJ +--]] + +-- TJ said to use my own settings too + +-- Use 4 space tabs +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.shiftwidth = 4 + +-- Prevent continue comment on new line +vim.api.nvim_create_autocmd( + "FileType", + { pattern = "*", command = [[setlocal formatoptions-=c formatoptions-=r formatoptions-=o]] } +) +vim.opt.wildignore = "*/.git/*,*/.DS_Store/*,*/target/*,*/node_modules/*" +vim.opt.expandtab = true + +-- netrw settings +vim.g.netrw_banner = 0 +vim.g.netrw_browse_split = 0 +vim.g.netrw_winsize = 25 + +-- line wrap settings +vim.o.linebreak = true +vim.o.wrap = true +vim.o.breakindent = true +vim.o.showbreak = "↳ " + +-- stay in indent mode only +vim.keymap.set("v", "<", "", ">gv") + +-- Move lines by selecting +vim.keymap.set("v", "J", ":m '>+1gv=gv") +vim.keymap.set("v", "K", ":m '<-2gv=gv") + +-- Keep yaa head straight +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "", "zz") + +-- Default TJ settings. +-- +vim.g.mapleader = " " +vim.g.maplocalleader = " " + +vim.g.have_nerd_font = true + +vim.opt.number = true +vim.opt.relativenumber = true + +-- Enable mouse mode, can be useful for resizing splits for example! +vim.opt.mouse = "a" + +-- Don't show the mode, since it's already in the status line +vim.opt.showmode = false + +-- Sync clipboard between OS and Neovim. +vim.opt.clipboard = "unnamedplus" + +-- Enable break indent +vim.opt.breakindent = true + +-- Save undo history +vim.opt.undofile = true + +-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term +vim.opt.ignorecase = true +vim.opt.smartcase = true + +-- Keep signcolumn on by default +vim.opt.signcolumn = "yes" + +-- Decrease update time +vim.opt.updatetime = 250 + +-- Sets how neovim will display certain whitespace characters in the editor. +-- vim.opt.list = true +-- vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } + +-- Preview substitutions live, as you type! +vim.opt.inccommand = "split" + +-- Show which line your cursor is on +vim.opt.cursorline = true + +-- Minimal number of screen lines to keep above and below the cursor. +vim.opt.scrolloff = 10 + +-- [[ Basic Keymaps ]] + +-- Navigate with Netrw +vim.keymap.set("n", "n", vim.cmd.Ex, { desc = "Open [N]etrw" }) +-- Prime said this is greatest remap ever +vim.keymap.set("x", "p", [["_dP]]) + +-- Next greatest reamap +vim.keymap.set({ "n", "v" }, "d", [["_d]]) + +-- Set highlight on search, but clear on pressing in normal mode +vim.opt.hlsearch = true +vim.keymap.set("n", "", "nohlsearch") + +-- Diagnostic keymaps +vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous [D]iagnostic message" }) +vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next [D]iagnostic message" }) +vim.keymap.set("n", "e", vim.diagnostic.open_float, { desc = "Show diagnostic [E]rror messages" }) +vim.keymap.set("n", "q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" }) + +-- Disable arrow keys in normal mode +vim.keymap.set("n", "", 'echo "Use h to move!!"') +vim.keymap.set("n", "", 'echo "Use l to move!!"') +vim.keymap.set("n", "", 'echo "Use k to move!!"') +vim.keymap.set("n", "", 'echo "Use j to move!!"') + +-- [[ Basic Autocommands ]] +-- See `:help lua-guide-autocommands` + +-- Highlight when yanking (copying) text +vim.api.nvim_create_autocmd("TextYankPost", { + desc = "Highlight when yanking (copying) text", + group = vim.api.nvim_create_augroup("kickstart-highlight-yank", { clear = true }), + callback = function() + vim.highlight.on_yank() + end, +}) + +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) +end ---@diagnostic disable-next-line: undefined-field +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + "tpope/vim-sleuth", -- Detect tabstop and shiftwidth automatically + + -- Use `opts = {}` to force a plugin to be loaded. + + { "numToStr/Comment.nvim", opts = {} }, + + { + "lewis6991/gitsigns.nvim", + opts = { + signs = { + add = { text = "+" }, + change = { text = "~" }, + delete = { text = "_" }, + topdelete = { text = "‾" }, + changedelete = { text = "~" }, + }, + }, + }, + + { + "nvim-telescope/telescope.nvim", + event = "VimEnter", + branch = "0.1.x", + dependencies = { + "nvim-lua/plenary.nvim", + { + "nvim-telescope/telescope-fzf-native.nvim", + + build = "make", + + cond = function() + return vim.fn.executable("make") == 1 + end, + }, + { "nvim-telescope/telescope-ui-select.nvim" }, + + { "nvim-tree/nvim-web-devicons", enabled = vim.g.have_nerd_font }, + }, + + config = function() + -- Telescope is a fuzzy finder that comes with a lot of different things that + -- it can fuzzy find! It's more than just a "file finder", it can search + -- many different aspects of Neovim, your workspace, LSP, and more! + -- + -- Two important keymaps to use while in Telescope are: + -- - Insert mode: + -- - Normal mode: ? + -- + -- This opens a window that shows you all of the keymaps for the current + -- Telescope picker. This is really useful to discover what Telescope can + -- do as well as how to actually do it! + + require("telescope").setup({ + defaults = { + file_ignore_patterns = { ".git/", "node%_modules/.*" }, + prompt_prefix = "🔭 ", + selection_caret = " ", + initial_mode = "normal", + }, + + extensions = { + ["ui-select"] = { + require("telescope.themes").get_dropdown(), + }, + }, + }) + + -- Enable Telescope extensions if they are installed + pcall(require("telescope").load_extension, "fzf") + pcall(require("telescope").load_extension, "ui-select") + + local builtin = require("telescope.builtin") + vim.keymap.set("n", "sh", builtin.help_tags, { desc = "[S]earch [H]elp" }) + vim.keymap.set("n", "sk", builtin.keymaps, { desc = "[S]earch [K]eymaps" }) + vim.keymap.set("n", "sf", builtin.find_files, { desc = "[S]earch [F]iles" }) + vim.keymap.set("n", "ss", builtin.builtin, { desc = "[S]earch [S]elect Telescope" }) + + --[[ IDK how to make grep work on my machine... (skill issues tbh) + vim.keymap.set('n', 'sw', builtin.grep_string, { desc = '[S]earch current [W]ord' }) + vim.keymap.set('n', 'sg', builtin.live_grep, { desc = '[S]earch by [G]rep' }) ]] + + vim.keymap.set("n", "sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" }) + vim.keymap.set("n", "sr", builtin.resume, { desc = "[S]earch [R]esume" }) + vim.keymap.set("n", "s.", builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) + vim.keymap.set("n", "", builtin.buffers, { desc = "[ ] Find existing buffers" }) + + -- Slightly advanced example of overriding default behavior and theme + vim.keymap.set("n", "/", function() + builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({ + winblend = 50, + previewer = false, + })) + end, { desc = "[/] Fuzzily search in current buffer" }) + + --[[ vim.keymap.set('n', 's/', function() + builtin.live_grep { + grep_open_files = true, + prompt_title = 'Live Grep in Open Files', + } + end, { desc = '[S]earch [/] in Open Files' }) ]] + + -- Shortcut for searching your Neovim configuration files + vim.keymap.set("n", "sn", function() + builtin.find_files({ cwd = vim.fn.stdpath("config") }) + end, { desc = "[S]earch [N]eovim files" }) + end, + }, + + { + "neovim/nvim-lspconfig", + dependencies = { + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", + "WhoIsSethDaniel/mason-tool-installer.nvim", + + { "j-hui/fidget.nvim", opts = {} }, + + -- `neodev` configures Lua LSP for your Neovim config, runtime and plugins + -- used for completion, annotations and signatures of Neovim apis + { "folke/neodev.nvim", opts = {} }, + }, + config = function() + vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }), + callback = function(event) + local map = function(keys, func, desc) + vim.keymap.set("n", keys, func, { buffer = event.buf, desc = "LSP: " .. desc }) + end + + -- Jump to the definition of the word under your cursor. + -- This is where a variable was first declared, or where a function is defined, etc. + -- To jump back, press . + map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition") + + -- Find references for the word under your cursor. + map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences") + + -- Jump to the implementation of the word under your cursor. + -- Useful when your language has ways of declaring types without an actual implementation. + map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation") + + -- Jump to the type of the word under your cursor. + -- Useful when you're not sure what type a variable is and you want to see + -- the definition of its *type*, not where it was *defined*. + map("D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition") + + -- Fuzzy find all the symbols in your current document. + -- Symbols are things like variables, functions, types, etc. + map("ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols") + + -- Fuzzy find all the symbols in your current workspace. + -- Similar to document symbols, except searches over your entire project. + map( + "ws", + require("telescope.builtin").lsp_dynamic_workspace_symbols, + "[W]orkspace [S]ymbols" + ) + + -- Rename the variable under your cursor. + -- Most Language Servers support renaming across files, etc. + map("rn", vim.lsp.buf.rename, "[R]e[n]ame") + + -- Execute a code action, usually your cursor needs to be on top of an error + -- or a suggestion from your LSP for this to activate. + map("ca", vim.lsp.buf.code_action, "[C]ode [A]ction") + + -- Opens a popup that displays documentation about the word under your cursor + -- See `:help K` for why this keymap. + map("K", vim.lsp.buf.hover, "Hover Documentation") + + -- WARN: This is not Goto Definition, this is Goto Declaration. + -- For example, in C this would take you to the header. + map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration") + + -- The following two autocommands are used to highlight references of the + -- word under your cursor when your cursor rests there for a little while. + local client = vim.lsp.get_client_by_id(event.data.client_id) + if client and client.server_capabilities.documentHighlightProvider then + vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { + buffer = event.buf, + callback = vim.lsp.buf.document_highlight, + }) + + vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, { + buffer = event.buf, + callback = vim.lsp.buf.clear_references, + }) + end + end, + }) + + local capabilities = vim.lsp.protocol.make_client_capabilities() + capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities()) + + -- Enable the following language servers + local servers = { + gopls = {}, + pyright = {}, + tsserver = {}, + + lua_ls = { + -- cmd = {...}, + -- filetypes = { ...}, + -- capabilities = {}, + settings = { + Lua = { + completion = { + callSnippet = "Replace", + }, + -- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings + -- diagnostics = { disable = { 'missing-fields' } }, + }, + }, + }, + } + + require("mason").setup() + + local ensure_installed = vim.tbl_keys(servers or {}) + vim.list_extend(ensure_installed, { + "stylua", + }) + require("mason-tool-installer").setup({ ensure_installed = ensure_installed }) + + require("mason-lspconfig").setup({ + handlers = { + function(server_name) + local server = servers[server_name] or {} + server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {}) + require("lspconfig")[server_name].setup(server) + end, + }, + }) + end, + }, + + { + "stevearc/conform.nvim", + opts = { + notify_on_error = false, + format_on_save = function(bufnr) + local disable_filetypes = { c = true, cpp = true } + return { + timeout_ms = 500, + lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype], + } + end, + formatters_by_ft = { + go = { "gopls" }, + lua = { "stylua" }, + json = { "biome" }, + python = { "isort", "black" }, + javascript = { { "biome", "prettierd", "prettier" } }, + javascriptreact = { { "biome", "prettierd", "prettier" } }, + typescript = { { "biome", "prettierd", "prettier" } }, + typescriptreact = { { "biome", "prettierd", "prettier" } }, + }, + }, + }, + + { + "hrsh7th/nvim-cmp", + event = "InsertEnter", + dependencies = { + { + "L3MON4D3/LuaSnip", + build = (function() + if vim.fn.has("win32") == 1 or vim.fn.executable("make") == 0 then + return + end + return "make install_jsregexp" + end)(), + dependencies = { + -- https://github.com/rafamadriz/friendly-snippets + { + "rafamadriz/friendly-snippets", + config = function() + require("luasnip.loaders.from_vscode").lazy_load() + end, + }, + }, + }, + "saadparwaiz1/cmp_luasnip", + + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-path", + }, + config = function() + local cmp = require("cmp") + local luasnip = require("luasnip") + luasnip.config.setup({}) + + cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + completion = { completeopt = "menu,menuone,noinsert" }, + + -- No, but seriously. Please read `:help ins-completion`, it is really good! + mapping = cmp.mapping.preset.insert({ + -- Select the [n]ext item + [""] = cmp.mapping.select_next_item(), + -- Select the [p]revious item + [""] = cmp.mapping.select_prev_item(), + + -- Scroll the documentation window [b]ack / [f]orward + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + + [""] = cmp.mapping.confirm({ select = true }), + + [""] = cmp.mapping.complete({}), + + -- Think of as moving to the right of your snippet expansion. + -- So if you have a snippet that's like: + -- function $name($args) + -- $body + -- end + -- + -- will move you to the right of each of the expansion locations. + -- is similar, except moving you backwards. + [""] = cmp.mapping(function() + if luasnip.expand_or_locally_jumpable() then + luasnip.expand_or_jump() + end + end, { "i", "s" }), + [""] = cmp.mapping(function() + if luasnip.locally_jumpable(-1) then + luasnip.jump(-1) + end + end, { "i", "s" }), + }), + sources = { + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "path" }, + }, + }) + end, + }, + + { + "catppuccin/nvim", + name = "catpuccin", + priority = 1000, + init = function() + require("catppuccin").setup({ + transparent_background = true, + }) + vim.cmd.colorscheme("catppuccin") + + vim.cmd.hi("Comment gui=none") + vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) + vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) + end, + }, + + -- Highlight todo, notes, etc in comments + { + "folke/todo-comments.nvim", + event = "VimEnter", + dependencies = { "nvim-lua/plenary.nvim" }, + opts = { signs = false }, + }, + + { + "echasnovski/mini.nvim", + config = function() + -- Better Around/Inside textobjects + -- + -- Examples: + -- - va) - [V]isually select [A]round [)]paren + -- - yinq - [Y]ank [I]nside [N]ext [']quote + -- - ci' - [C]hange [I]nside [']quote + require("mini.ai").setup({ n_lines = 500 }) + + -- Add/delete/replace surroundings (brackets, quotes, etc.) + -- + -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren + -- - sd' - [S]urround [D]elete [']quotes + -- - sr)' - [S]urround [R]eplace [)] ['] + require("mini.surround").setup() + + local statusline = require("mini.statusline") + statusline.setup({ use_icons = vim.g.have_nerd_font }) + + ---@diagnostic disable-next-line: duplicate-set-field + statusline.section_location = function() + return "%2l:%-2v" + end + + -- Check out: https://github.com/echasnovski/mini.nvim + end, + }, + + { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + dependencies = { + "nvim-treesitter/nvim-treesitter-textobjects", + }, + opts = { + ensure_installed = { "c", "go", "html", "lua", "markdown", "typescript", "tsx" }, + auto_install = true, + highlight = { + enable = true, + additional_vim_regex_highlighting = { "ruby" }, + }, + indent = { enable = true, disable = { "ruby" } }, + }, + config = function(_, opts) + ---@diagnostic disable-next-line: missing-fields + require("nvim-treesitter.configs").setup(opts) + end, + }, + + -- Navigate tmux with vim keybindings + { + "alexghergh/nvim-tmux-navigation", + + lazy = false, + + config = function() + local nvim_tmux_nav = require("nvim-tmux-navigation") + + nvim_tmux_nav.setup({ + disable_when_zoomed = true, + }) + + vim.keymap.set("n", "", nvim_tmux_nav.NvimTmuxNavigateLeft) + vim.keymap.set("n", "", nvim_tmux_nav.NvimTmuxNavigateDown) + vim.keymap.set("n", "", nvim_tmux_nav.NvimTmuxNavigateUp) + vim.keymap.set("n", "", nvim_tmux_nav.NvimTmuxNavigateRight) + vim.keymap.set("n", "", nvim_tmux_nav.NvimTmuxNavigateLastActive) + vim.keymap.set("n", "", nvim_tmux_nav.NvimTmuxNavigateNext) + end, + }, + + { + "akinsho/bufferline.nvim", + version = "*", + + dependencies = "nvim-tree/nvim-web-devicons", + + config = function() + require("bufferline").setup({ + options = { + always_show_bufferline = false, + diagnostics = "nvim_lsp", + }, + }) + end, + }, + + -- NOTE: uncomment debug to enable debugging in neoVim + -- require("lilJ.plugins.debug"), + + require("lilJ.plugins.indent_line"), + require("lilJ.plugins.lint"), +}, { + ui = { + icons = vim.g.have_nerd_font and {} or { + cmd = "⌘", + config = "🛠", + event = "📅", + ft = "📂", + init = "⚙", + keys = "🗝", + plugin = "🔌", + runtime = "💻", + require = "🌙", + source = "📄", + start = "🚀", + task = "📌", + lazy = "💤 ", + }, + }, +}) + +-- The line beneath this is called `modeline`. See `:help modeline` +-- vim: ts=2 sts=2 sw=2 et diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 318c59f..69f7583 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,38 +1,33 @@ { "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, - "LuaSnip": { "branch": "master", "commit": "2dbef19461198630b3d7c39f414d09fb07d1fdd2" }, - "bufferline.nvim": { "branch": "main", "commit": "6c456b888823d9e4832aa91c482bccd19445c009" }, - "catppuccin": { "branch": "main", "commit": "f288876c6d05d3bb91b0e72b8031fe9e26ef05b8" }, - "cloak.nvim": { "branch": "main", "commit": "951b163e55ce7639eb320c450bde9283c4fe968b" }, - "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "LuaSnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" }, + "bufferline.nvim": { "branch": "main", "commit": "64e2c5def50dfd6b6f14d96a45fa3d815a4a1eef" }, + "catpuccin": { "branch": "main", "commit": "56fb98218d22d5c326387bf9e4076227e7372e6b" }, "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "copilot.vim": { "branch": "release", "commit": "49e0348bfb913fae63ca5ddb987a8bccd193da86" }, - "fidget.nvim": { "branch": "main", "commit": "3a93300c076109d86c7ce35ec67a8034ae6ba9db" }, - "formatter.nvim": { "branch": "master", "commit": "cb4778b8432f1ae86dae4634c0b611cb269a4c2f" }, - "friendly-snippets": { "branch": "main", "commit": "69a2c1675b66e002799f5eef803b87a12f593049" }, - "gitsigns.nvim": { "branch": "main", "commit": "4aaacbf5e5e2218fd05eb75703fe9e0f85335803" }, - "go.nvim": { "branch": "master", "commit": "24d2fa373d55d9900cd4b502a88214dc17e6fab6" }, - "guihua.lua": { "branch": "master", "commit": "9fb6795474918b492d9ab01b1ebaf85e8bf6fe0b" }, - "indent-blankline.nvim": { "branch": "master", "commit": "12e92044d313c54c438bd786d11684c88f6f78cd" }, - "lazy.nvim": { "branch": "main", "commit": "747bb955c5bfb2dc5d51280132f00a56a53f9f6d" }, - "lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" }, - "lualine.nvim": { "branch": "master", "commit": "566b7036f717f3d676362742630518a47f132fff" }, - "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "3ba1b92b771f33256b4969d696b82c8ae7075364" }, - "mason.nvim": { "branch": "main", "commit": "e110bc3be1a7309617cecd77bfe4bf86ba1b8134" }, - "nvim-cmp": { "branch": "main", "commit": "538e37ba87284942c1d76ed38dd497e54e65b891" }, - "nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" }, - "nvim-lint": { "branch": "master", "commit": "b32127ba52f3a1f7dc86773c2ca3f0029afa12c1" }, - "nvim-lspconfig": { "branch": "master", "commit": "042aa6b27b8b8d4f4e1bd42de2037c83d676a8a0" }, - "nvim-tmux-navigation": { "branch": "main", "commit": "d9efffa413a530bdea3783af4fea86be84940283" }, - "nvim-treesitter": { "branch": "master", "commit": "4a4dbe1cb1da34d87fc42a40aaf8e218af4cfe0f" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "19a91a38b02c1c28c14e0ba468d20ae1423c39b2" }, - "nvim-web-devicons": { "branch": "master", "commit": "140edfcf25093e8b321d13e154cbce89ee868ca0" }, - "plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" }, - "telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }, + "conform.nvim": { "branch": "master", "commit": "bf109f061fc3cd75394b7823923187ae045cbf22" }, + "fidget.nvim": { "branch": "main", "commit": "933db4596e4bab1b09b6d48a10e21819e4cc458f" }, + "friendly-snippets": { "branch": "main", "commit": "dcd4a586439a1c81357d5b9d26319ae218cc9479" }, + "gitsigns.nvim": { "branch": "main", "commit": "078041e9d060a386b0c9d3a8c7a7b019a35d3fb0" }, + "indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" }, + "lazy.nvim": { "branch": "main", "commit": "af6afefbb46ab29a8a1db69536b04290a9403876" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "9dfcf2036c223920826140f0151d929a43f9eceb" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "1212fb6082b7177dde17ea65e429e027835aeb40" }, + "mason.nvim": { "branch": "main", "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" }, + "mini.nvim": { "branch": "main", "commit": "a683bfe8e03293e3bb079e24c94e51977756a3ec" }, + "neodev.nvim": { "branch": "main", "commit": "6a533ed9d3435dcaa456380d833ea04da37ea2ed" }, + "nvim-cmp": { "branch": "main", "commit": "6ed1c93465c33f6a53b4c3f103bf9d1ab696382a" }, + "nvim-lint": { "branch": "master", "commit": "2669aabb8362fdc36aced5ba864b7135636ea863" }, + "nvim-lspconfig": { "branch": "master", "commit": "24662f92c18edd397ef12d635b11dbdedef2d094" }, + "nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" }, + "nvim-treesitter": { "branch": "master", "commit": "b009aba903565163442f2adecff72bc3193bb8fd" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "d2a4ffc22d9d38d44edb73da007b3cf43451e9b4" }, + "nvim-web-devicons": { "branch": "master", "commit": "585b2dc4bba2b5973f2b1d3e576709af5ac34fb6" }, + "plenary.nvim": { "branch": "master", "commit": "f7adfc4b3f4f91aab6caebf42b3682945fbc35be" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, + "telescope.nvim": { "branch": "0.1.x", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" }, "todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" }, - "trouble.nvim": { "branch": "main", "commit": "f1168feada93c0154ede4d1fe9183bf69bac54ea" }, - "vim-fugitive": { "branch": "master", "commit": "ec8f7eed103c6d5b75eac69196bb87db0825629a" } + "vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" } } \ No newline at end of file diff --git a/.config/nvim/lua/lilJ/core/init.lua b/.config/nvim/lua/lilJ/core/init.lua deleted file mode 100644 index 1331621..0000000 --- a/.config/nvim/lua/lilJ/core/init.lua +++ /dev/null @@ -1,2 +0,0 @@ -require("lilJ.core.remap") -require("lilJ.core.set") diff --git a/.config/nvim/lua/lilJ/core/remap.lua b/.config/nvim/lua/lilJ/core/remap.lua deleted file mode 100644 index 7a4800d..0000000 --- a/.config/nvim/lua/lilJ/core/remap.lua +++ /dev/null @@ -1,34 +0,0 @@ -vim.g.mapleader = " " - -vim.keymap.set("n", "n", vim.cmd.Ex) - --- Prime said this is greatest remap ever -vim.keymap.set("x", "p", [["_dP]]) -vim.keymap.set('n', 'P', '"+p') - --- some next greatest remaps -vim.keymap.set({"n", "v"}, "y", [["+y]]) -vim.keymap.set({"n", "v"}, "d", [["_d]]) - -vim.keymap.set("v", "J", ":m '>+1gv=gv") -vim.keymap.set("v", "K", ":m '<-2gv=gv") - - --- stay in indent mode only -vim.keymap.set("v", "<", "", ">gv") - - -vim.keymap.set('n', 'vp', vim.cmd.split) -vim.keymap.set('n', 'hp', vim.cmd.vsplit) - - --- Keep ya head straight -vim.keymap.set("n", "J", "mzJ`z") -vim.keymap.set('n', '', 'zz') -vim.keymap.set('n', '', 'zz') - - -vim.keymap.set("n", "", vim.cmd.bnext) -vim.keymap.set("n", "", vim.cmd.bprev) -vim.keymap.set('n', 'q', vim.cmd.bdelete) diff --git a/.config/nvim/lua/lilJ/core/set.lua b/.config/nvim/lua/lilJ/core/set.lua deleted file mode 100644 index 7360e65..0000000 --- a/.config/nvim/lua/lilJ/core/set.lua +++ /dev/null @@ -1,43 +0,0 @@ -vim.opt.nu = true -vim.opt.rnu = true - -vim.opt.autoread = true - --- Prevent continue comment on new line -vim.api.nvim_create_autocmd( - "FileType", - { pattern = "*", command = [[setlocal formatoptions-=c formatoptions-=r formatoptions-=o]] } -) -vim.opt.wildignore = "*/.git/*,*/.DS_Store/*,*/target/*,*/node_modules/*" - -vim.opt.tabstop = 4 -vim.opt.softtabstop = 4 -vim.opt.shiftwidth = 4 -vim.opt.expandtab = true - -vim.opt.smartindent = true -vim.opt.smartcase = true - -vim.opt.wrap = false - -vim.opt.hlsearch = true -vim.opt.incsearch = true - -vim.opt.scrolloff = 8 -vim.opt.signcolumn = 'yes' - -vim.cmd.termguicolors = true - --- netrw settings -vim.g.netrw_banner = 0 -vim.g.netrw_browse_split = 0 -vim.g.netrw_winsize = 25 - -vim.o.wrapmargin = 0 -vim.o.textwidth = 0 - -vim.o.wrap = true -vim.o.linebreak = true -vim.o.breakindent = true -vim.o.showbreak = "↳ " --- vim.opt_local.columns = 144 diff --git a/.config/nvim/lua/lilJ/health.lua b/.config/nvim/lua/lilJ/health.lua new file mode 100644 index 0000000..e1d6041 --- /dev/null +++ b/.config/nvim/lua/lilJ/health.lua @@ -0,0 +1,52 @@ +--[[ +-- +-- This file is not required for your own configuration, +-- but helps people determine if their system is setup correctly. +-- +--]] + +local check_version = function() + local verstr = string.format("%s.%s.%s", vim.version().major, vim.version().minor, vim.version().patch) + if not vim.version.cmp then + vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr)) + return + end + + if vim.version.cmp(vim.version(), { 0, 9, 4 }) >= 0 then + vim.health.ok(string.format("Neovim version is: '%s'", verstr)) + else + vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr)) + end +end + +local check_external_reqs = function() + -- Basic utils: `git`, `make`, `unzip` + for _, exe in ipairs({ "git", "make", "unzip", "rg" }) do + local is_executable = vim.fn.executable(exe) == 1 + if is_executable then + vim.health.ok(string.format("Found executable: '%s'", exe)) + else + vim.health.warn(string.format("Could not find executable: '%s'", exe)) + end + end + + return true +end + +return { + check = function() + vim.health.start("kickstart.nvim") + + vim.health.info([[NOTE: Not every warning is a 'must-fix' in `:checkhealth` + + Fix only warnings for plugins and languages you intend to use. + Mason will give warnings for languages that are not installed. + You do not need to install, unless you want to use those languages!]]) + + local uv = vim.uv or vim.loop + vim.health.info("System Information: " .. vim.inspect(uv.os_uname())) + + check_version() + check_external_reqs() + end, +} diff --git a/.config/nvim/lua/lilJ/lazy/bufferline.lua b/.config/nvim/lua/lilJ/lazy/bufferline.lua deleted file mode 100644 index 68bc3e0..0000000 --- a/.config/nvim/lua/lilJ/lazy/bufferline.lua +++ /dev/null @@ -1,19 +0,0 @@ -return { - { - "akinsho/bufferline.nvim", - - version = "*", - - dependencies = "nvim-tree/nvim-web-devicons", - - config = function() - require("bufferline").setup{ - options={ - always_show_bufferline = false, - diagnostics = "nvim_lsp", - } - } - end - }, -} - diff --git a/.config/nvim/lua/lilJ/lazy/cloak.lua b/.config/nvim/lua/lilJ/lazy/cloak.lua deleted file mode 100644 index d21877f..0000000 --- a/.config/nvim/lua/lilJ/lazy/cloak.lua +++ /dev/null @@ -1,23 +0,0 @@ -return{ - "laytan/cloak.nvim", - - config = function() - require("cloak").setup({ - enabled = true, - cloak_character = "*", - -- The applied highlight group (colors) on the cloaking, see `:h highlight`. - highlight_group = "Comment", - patterns = { - { - -- Match any file starting with '.env'. - -- This can be a table to match multiple file patterns. - file_pattern = ".env*", - -- Match an equals sign and any character after it. - -- This can also be a table of patterns to cloak, - -- example: cloak_pattern = { ':.+', '-.+' } for yaml files. - cloak_pattern = "=.+", - }, - }, - }) - end -} diff --git a/.config/nvim/lua/lilJ/lazy/color.lua b/.config/nvim/lua/lilJ/lazy/color.lua deleted file mode 100644 index cffdf98..0000000 --- a/.config/nvim/lua/lilJ/lazy/color.lua +++ /dev/null @@ -1,22 +0,0 @@ -function ColorMyPencils(color) - color = color or "catppuccin" - vim.cmd([[colorscheme catppuccin]]) - - vim.api.nvim_set_hl(0, 'Normal', { bg = "none" }) - vim.api.nvim_set_hl(0, 'NormalFloat', { bg = "none" }) -end - -return{ - { - "catppuccin/nvim", - name= "catppuccin", - priority = 1000, - config = function() - require("catppuccin").setup({ - flavour = "mocha", - transparent_background = true, - }) - ColorMyPencils() - end - }, -} diff --git a/.config/nvim/lua/lilJ/lazy/conform.lua b/.config/nvim/lua/lilJ/lazy/conform.lua deleted file mode 100644 index 14b0792..0000000 --- a/.config/nvim/lua/lilJ/lazy/conform.lua +++ /dev/null @@ -1,41 +0,0 @@ -return { - - "stevearc/conform.nvim", - - event = { "BufReadPre", "BufNewFile" }, - - config = function() - local conform = require("conform") - - conform.setup({ - formatters_by_ft = { - lua = { "stylua" }, - javascript = { "prettierd", "prettier" }, - typescript = { "prettierd", "prettier" }, - javascriptreact = { "prettierd", "prettier" }, - typescriptreact = { "prettierd", "prettier" }, - json = { "prettierd", "prettier" }, - markdown = { "prettierd", "prettier" }, - html = { "htmlbeautifier" }, - css = { "prettierd", "prettier" }, - python = { "flake8" }, - }, - }) - - vim.keymap.set({ "n", "v" }, "ff", function() - conform.format({ - lsp_fallback = true, - async = false, - timeout_ms = 500, - }) - end, { desc = "Format file or range (in visual mode)" }) - - vim.api.nvim_buf_create_user_command(0, "ConformFormat", function() - conform.format({ - lsp_fallback = true, - async = false, - timeout_ms = 500, - }) - end, {}) - end, -} diff --git a/.config/nvim/lua/lilJ/lazy/conform.lua.bak b/.config/nvim/lua/lilJ/lazy/conform.lua.bak deleted file mode 100644 index 7c1ea7d..0000000 --- a/.config/nvim/lua/lilJ/lazy/conform.lua.bak +++ /dev/null @@ -1,37 +0,0 @@ ---[[ return { - "stevearc/conform.nvim", - - event = { "BufReadPre", "BufNewFile" }, - - config = function() - local conform = require("conform") - - conform.setup({ - formatters_by_ft = { - lua = { "stylua" }, - html = { "htmlbeautifier" }, - css = { { "prettierd", "prettier" } }, - javascript = { { "prettierd", "prettier" } }, - typescript = { { "prettierd", "prettier" } }, - javascriptreact = { { "prettierd", "prettier" } }, - typescriptreact = { { "prettierd", "prettier" } }, - json = { { "prettierd", "prettier" } }, - markdown = { { "prettierd", "prettier" } }, - }, - }) - - vim.keymap.set({ "n", "v" }, "ll", function() - conform.format({ - lsp_fallback = true, - async = false, - timeout_ms = 500, - - -- Format on save - format_on_save = { - timeout_ms = 500, - lsp_fallback = true, - }, - }) - end, { desc = "Format file or range (in visual mode)" }) - end, -} ]] diff --git a/.config/nvim/lua/lilJ/lazy/fugitive.lua b/.config/nvim/lua/lilJ/lazy/fugitive.lua deleted file mode 100644 index d5cf244..0000000 --- a/.config/nvim/lua/lilJ/lazy/fugitive.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - "tpope/vim-fugitive", - config = function() - vim.keymap.set("n", "gs", vim.cmd.Git); - end -} - diff --git a/.config/nvim/lua/lilJ/lazy/indentblankline.lua b/.config/nvim/lua/lilJ/lazy/indentblankline.lua deleted file mode 100644 index b7a4f0b..0000000 --- a/.config/nvim/lua/lilJ/lazy/indentblankline.lua +++ /dev/null @@ -1,37 +0,0 @@ -return{ - "lukas-reineke/indent-blankline.nvim", - - config = function() - local highlight = { - "RainbowRed", - "RainbowYellow", - "RainbowBlue", - "RainbowOrange", - "RainbowGreen", - "RainbowViolet", - "RainbowCyan", - } - local hooks = require "ibl.hooks" - -- create the highlight groups in the highlight setup hook, so they are reset - -- every time the colorscheme changes - hooks.register(hooks.type.HIGHLIGHT_SETUP, function() - vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" }) - vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" }) - vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" }) - vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" }) - vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" }) - vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" }) - vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" }) - end) - - vim.g.rainbow_delimiters = { highlight = highlight } - require("ibl").setup { - scope = { - highlight = highlight, - char = '┊', - }, - } - - hooks.register(hooks.type.SCOPE_HIGHLIGHT, hooks.builtin.scope_highlight_from_extmark) - end -} diff --git a/.config/nvim/lua/lilJ/lazy/init.lua b/.config/nvim/lua/lilJ/lazy/init.lua deleted file mode 100644 index 3374127..0000000 --- a/.config/nvim/lua/lilJ/lazy/init.lua +++ /dev/null @@ -1,55 +0,0 @@ -return { - "nvim-lua/plenary.nvim", - - "github/copilot.vim", - - "nvim-tree/nvim-web-devicons", - - { - "numToStr/Comment.nvim", - config = function() - require('Comment').setup({ - toggler = { - line = "gcc", - block = "gbc", - }, - opleader = { - line = "gc", - block = "gb", - }, - }) - end - }, - - { - "folke/todo-comments.nvim", - dependencies = { - "nvim-lua/plenary.nvim" - }, - -- TODO: this is not working - opts = {}, - }, - - { - "lewis6991/gitsigns.nvim", - config = function() - require("gitsigns").setup() - end - }, - - { - "NvChad/nvim-colorizer.lua", - opts = { - user_default_options = { - tailwind = true, - }, - }, - }, - - { - "iamcco/markdown-preview.nvim", - cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, - ft = { "markdown" }, - build = function() vim.fn["mkdp#util#install"]() end, - }, -} diff --git a/.config/nvim/lua/lilJ/lazy/lint.lua b/.config/nvim/lua/lilJ/lazy/lint.lua deleted file mode 100644 index 87b19ad..0000000 --- a/.config/nvim/lua/lilJ/lazy/lint.lua +++ /dev/null @@ -1,30 +0,0 @@ -return { - "mfussenegger/nvim-lint", - - event = { - "BufReadPre", - "BufNewFile", - }, - - config = function() - local lint = require("lint") - - lint.linters_by_ft = { - typescript = { "eslint_d" }, - javascript = { "eslint_d" }, - javascriptreact = { "eslint" }, - typescriptreact = { "eslint" }, - python = { "flake8" }, - } - - vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { - callback = function() - lint.try_lint() - end, - }) - - vim.api.nvim_buf_create_user_command(0, "Lint", function() - lint.try_lint() - end, {}) - end, -} diff --git a/.config/nvim/lua/lilJ/lazy/lsp/completions.lua b/.config/nvim/lua/lilJ/lazy/lsp/completions.lua deleted file mode 100644 index 4ab979c..0000000 --- a/.config/nvim/lua/lilJ/lazy/lsp/completions.lua +++ /dev/null @@ -1,66 +0,0 @@ -return { - "hrsh7th/nvim-cmp", - - event = "InsertEnter", - - dependencies = { - "L3MON4D3/LuaSnip", - "saadparwaiz1/cmp_luasnip", - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-path", - "rafamadriz/friendly-snippets", - "onsails/lspkind.nvim", - "hrsh7th/cmp-buffer", - }, - - config = function() - - local cmp = require("cmp") - local luasnip = require("luasnip") - - local lspkind = require("lspkind") - - require("luasnip.loaders.from_vscode").lazy_load() - luasnip.config.setup({}) - - cmp.setup({ - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - - completion = { - completeopt = "menu,menuone,noselect", - }, - - mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.select_next_item(cmp_select), - [""] = cmp.mapping.select_prev_item(cmp_select), - [""] = cmp.mapping.confirm({ select = true }), - ["CR"] = cmp.mapping.confirm({ - behavior = cmp.ConfirmBehavior.Replace, - select = true, - }), - }), - - sources = cmp.config.sources({ - { name = "nvim_lsp" }, - { name = "luasnip" }, - { name = "path" }, - { name = "treesitter" }, - { name = "tmux" }, - }, { - { name = "buffer" }, - }), - - formatting = { - format = lspkind.cmp_format({ - maxwidth = 25, - ellipses_char = "", - }), - }, - }) - end -} diff --git a/.config/nvim/lua/lilJ/lazy/lsp/mason.lua b/.config/nvim/lua/lilJ/lazy/lsp/mason.lua deleted file mode 100644 index 25fb681..0000000 --- a/.config/nvim/lua/lilJ/lazy/lsp/mason.lua +++ /dev/null @@ -1,128 +0,0 @@ -return { - "williamboman/mason.nvim", - - event = { "BufReadPre", "BufNewFile" }, - - dependencies = { - "ray-x/go.nvim", - "ray-x/guihua.lua", - "j-hui/fidget.nvim", - "neovim/nvim-lspconfig", - "williamboman/mason-lspconfig.nvim", - }, - - config = function() - require("fidget").setup({ - progress = { - display = { - render_limit = 3, - }, - }, - }) - - - local mason = require("mason") - local mason_lspconfig = require("mason-lspconfig") - local cmp_lsp = require("cmp_nvim_lsp") - local lspconfig = require("lspconfig") - - mason.setup({ - ui = { - icons = { - package_installed = "✓", - package_pending = "➜", - package_uninstalled = "✗", - }, - }, - }) - - local on_attach = function(_, bufnr) - local buf_map = vim.api.nvim_buf_set_keymap - - local opts = { noremap = true, silent = true } - - buf_map(bufnr, "n", "K", "lua vim.lsp.buf.hover()", opts) - - buf_map(bufnr, "n", "gd", "lua vim.lsp.buf.definition()", opts) - - buf_map(bufnr, "n", "gD", "lua vim.lsp.buf.declaration()", opts) - - buf_map(bufnr, "n", "gi", "lua vim.lsp.buf.implementation()", opts) - - buf_map(bufnr, { "n", "v" }, "ca", "lua vim.lsp.buf.code_action()", opts) - - buf_map(bufnr, "n", "rn", "lua vim.lsp.buf.rename()", opts) - - buf_map(bufnr, "n", "vd", "lua vim.diagnostic.open_float()", opts) - - buf_map(bufnr, "n", "rr", "lua vim.lsp.buf.references()", opts) - - buf_map(bufnr, "i", "", "lua vim.lsp.buf.signature_help()", opts) - - buf_map(bufnr, "n", "ws", "lua vim.lsp.buf.workspace_symbol()", opts) - end - - - require("go").setup({ - max_line_len = 120, - comment_placeholder = "  ", - }) - - local format_go = vim.api.nvim_create_augroup("GoFormat", {}) - vim.api.nvim_create_autocmd("BufWritePre", { - pattern = "*.go", - callback = function() - require('go.format').goimport() - end, - group = format_go, - }) - - local capabilities = vim.lsp.protocol.make_client_capabilities() - capabilities = cmp_lsp.default_capabilities(capabilities) - - mason_lspconfig.setup({ - ensure_installed = { - "clangd", - "cssls", - "gopls", - "html", - "java_language_server", - "pyright", - "tailwindcss", - "tsserver", - }, - - automatic_installation = true, - - handlers = { - function(server_name) - -- print("another server " .. server_name) - lspconfig[server_name].setup { - capabilities = capabilities, - on_attach = on_attach, - settings = { - [server_name] = { - analyses = { - unusedparams = true, - shadow = true, - }, - staticcheck = true, - }, - }, - } - end, - - ["lua_ls"] = function() - lspconfig.lua_ls.setup({ - capabilities = capabilities, - settings = { - Lua = { - diagnostics = { globals = {"vim"} }, - }, - }, - }) - end, - }, - }) - end, -} diff --git a/.config/nvim/lua/lilJ/lazy/lualine.lua b/.config/nvim/lua/lilJ/lazy/lualine.lua deleted file mode 100644 index cc125be..0000000 --- a/.config/nvim/lua/lilJ/lazy/lualine.lua +++ /dev/null @@ -1,24 +0,0 @@ -return { - "nvim-lualine/lualine.nvim", - - dependencies = { - "nvim-tree/nvim-web-devicons" - }, - - config = function() - require('lualine').setup { - options = { - icons_enabled = true, - theme = 'catppuccin', - }, - sections = { - lualine_a = { - { - 'filename', - path = 1, - } - } - } - } - end, -} diff --git a/.config/nvim/lua/lilJ/lazy/telescope.lua b/.config/nvim/lua/lilJ/lazy/telescope.lua deleted file mode 100644 index 36fd509..0000000 --- a/.config/nvim/lua/lilJ/lazy/telescope.lua +++ /dev/null @@ -1,28 +0,0 @@ -return { - "nvim-telescope/telescope.nvim", - - tag = "0.1.5", - - dependencies = { - "nvim-lua/plenary.nvim", - }, - - config = function() - require('telescope').setup({ - defaults = { - file_ignore_patterns = { ".git/", "node%_modules/.*" }, - layout_strategy = 'horizontal', - prompt_prefix = '🔭 ', - selection_caret = ' ', - initial_mode = 'insert', - }, - }) - - local builtin = require('telescope.builtin') - - vim.keymap.set('n', 'f', builtin.find_files, {}) - vim.keymap.set('n', '', builtin.git_files, {}) - vim.keymap.set('n', '', builtin.live_grep, {}) - -- vim.keymap.set('n', 'fh', builtin.help_tags, {}) - end -} diff --git a/.config/nvim/lua/lilJ/lazy/tmuxnavigator.lua b/.config/nvim/lua/lilJ/lazy/tmuxnavigator.lua deleted file mode 100644 index d6f56a9..0000000 --- a/.config/nvim/lua/lilJ/lazy/tmuxnavigator.lua +++ /dev/null @@ -1,15 +0,0 @@ -return { - "alexghergh/nvim-tmux-navigation", - - config = function() - require("nvim-tmux-navigation").setup { - keybindings = { - left = "", - down = "", - up = "", - right = "", - next = "", - } - } - end, -} diff --git a/.config/nvim/lua/lilJ/lazy/treesitter.lua b/.config/nvim/lua/lilJ/lazy/treesitter.lua deleted file mode 100644 index 66be8de..0000000 --- a/.config/nvim/lua/lilJ/lazy/treesitter.lua +++ /dev/null @@ -1,30 +0,0 @@ -return { - { - "nvim-treesitter/nvim-treesitter", - - build = ":TSUpdate", - - dependencies = { - "nvim-treesitter/nvim-treesitter-textobjects", - }, - - config = function() - require("nvim-treesitter.configs").setup ({ - ensure_installed = { "typescript", "tsx", "python", "go", "c", "cpp", "lua", "markdown" }, - - sync_install = false, - - auto_install = true, - - highlight = { - enable = true, - additional_vim_regex_highlighting = false, - }, - - indent = { - enable = true, - }, - }) - end - }, -} diff --git a/.config/nvim/lua/lilJ/lazy/trouble.lua b/.config/nvim/lua/lilJ/lazy/trouble.lua deleted file mode 100644 index 00e8def..0000000 --- a/.config/nvim/lua/lilJ/lazy/trouble.lua +++ /dev/null @@ -1,23 +0,0 @@ -return { - { - "folke/trouble.nvim", - - config = function() - require("trouble").setup { - icons=true, - } - - vim.keymap.set("n", "tt", function() - require("trouble").toggle() - end) - - vim.keymap.set("n", "[d", function() - require("trouble").next({ skip_groups = true, jump = true }) - end) - - vim.keymap.set("n", "]d", function() - require("trouble").previous({ skip_groups = true, jump = true }) - end) - end - }, -} diff --git a/.config/nvim/lua/lilJ/lazy_init.lua b/.config/nvim/lua/lilJ/lazy_init.lua deleted file mode 100644 index 9cafe56..0000000 --- a/.config/nvim/lua/lilJ/lazy_init.lua +++ /dev/null @@ -1,22 +0,0 @@ -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -if not vim.loop.fs_stat(lazypath) then - vim.fn.system({ - "git", - "clone", - "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", - lazypath, - }) -end -vim.opt.rtp:prepend(lazypath) - -require("lazy").setup({ - { import = "lilJ.lazy" }, - { import = "lilJ.lazy.lsp" } -}, { - change_detection = { - enabled = true, - notify = false, - }, -}) diff --git a/.config/nvim/lua/lilJ/plugins/debug.lua b/.config/nvim/lua/lilJ/plugins/debug.lua new file mode 100644 index 0000000..37b8de2 --- /dev/null +++ b/.config/nvim/lua/lilJ/plugins/debug.lua @@ -0,0 +1,90 @@ +-- debug.lua +-- +-- Shows how to use the DAP plugin to debug your code. +-- +-- Primarily focused on configuring the debugger for Go, but can +-- be extended to other languages as well. That's why it's called +-- kickstart.nvim and not kitchen-sink.nvim ;) + +return { + -- NOTE: Yes, you can install new plugins here! + "mfussenegger/nvim-dap", + -- NOTE: And you can specify dependencies as well + dependencies = { + -- Creates a beautiful debugger UI + "rcarriga/nvim-dap-ui", + + -- Required dependency for nvim-dap-ui + "nvim-neotest/nvim-nio", + + -- Installs the debug adapters for you + "williamboman/mason.nvim", + "jay-babu/mason-nvim-dap.nvim", + + -- Add your own debuggers here + "leoluz/nvim-dap-go", + }, + config = function() + local dap = require("dap") + local dapui = require("dapui") + + require("mason-nvim-dap").setup({ + -- Makes a best effort to setup the various debuggers with + -- reasonable debug configurations + automatic_setup = true, + + -- You can provide additional configuration to the handlers, + -- see mason-nvim-dap README for more information + handlers = {}, + + -- You'll need to check that you have the required things installed + -- online, please don't ask me how to install them :) + ensure_installed = { + -- Update this to ensure that you have the debuggers for the langs you want + "delve", + }, + }) + + -- Basic debugging keymaps, feel free to change to your liking! + vim.keymap.set("n", "", dap.continue, { desc = "Debug: Start/Continue" }) + vim.keymap.set("n", "", dap.step_into, { desc = "Debug: Step Into" }) + vim.keymap.set("n", "", dap.step_over, { desc = "Debug: Step Over" }) + vim.keymap.set("n", "", dap.step_out, { desc = "Debug: Step Out" }) + vim.keymap.set("n", "b", dap.toggle_breakpoint, { desc = "Debug: Toggle Breakpoint" }) + vim.keymap.set("n", "B", function() + dap.set_breakpoint(vim.fn.input("Breakpoint condition: ")) + end, { desc = "Debug: Set Breakpoint" }) + + -- Dap UI setup + -- For more information, see |:help nvim-dap-ui| + dapui.setup({ + -- Set icons to characters that are more likely to work in every terminal. + -- Feel free to remove or use ones that you like more! :) + -- Don't feel like these are good choices. + icons = { expanded = "▾", collapsed = "▸", current_frame = "*" }, + controls = { + icons = { + pause = "⏸", + play = "▶", + step_into = "⏎", + step_over = "⏭", + step_out = "⏮", + step_back = "b", + run_last = "▶▶", + terminate = "⏹", + disconnect = "⏏", + }, + }, + }) + + -- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception. + vim.keymap.set("n", "", dapui.toggle, { desc = "Debug: See last session result." }) + + dap.listeners.after.event_initialized["dapui_config"] = dapui.open + dap.listeners.before.event_terminated["dapui_config"] = dapui.close + dap.listeners.before.event_exited["dapui_config"] = dapui.close + + -- Install golang specific config + require("dap-go").setup() + end, +} diff --git a/.config/nvim/lua/lilJ/plugins/indent_line.lua b/.config/nvim/lua/lilJ/plugins/indent_line.lua new file mode 100644 index 0000000..1b3edf3 --- /dev/null +++ b/.config/nvim/lua/lilJ/plugins/indent_line.lua @@ -0,0 +1,10 @@ +return { + { + "lukas-reineke/indent-blankline.nvim", + main = "ibl", + opts = { + indent = { char = "┊" }, + whitespace = { highlight = { "Whitespace", "NonText" } }, + }, + }, +} diff --git a/.config/nvim/lua/lilJ/plugins/lint.lua b/.config/nvim/lua/lilJ/plugins/lint.lua new file mode 100644 index 0000000..6074e5a --- /dev/null +++ b/.config/nvim/lua/lilJ/plugins/lint.lua @@ -0,0 +1,59 @@ +return { + + { + "mfussenegger/nvim-lint", + event = { "BufReadPre", "BufNewFile" }, + config = function() + local lint = require("lint") + + lint.linters_by_ft = { + dockerfile = { "hadolint" }, + json = { "jsonlint" }, + markdown = { "markdownlint" }, + python = { "flake8" }, + } + + -- To allow other plugins to add linters to require('lint').linters_by_ft, + -- instead set linters_by_ft like this: + -- lint.linters_by_ft = lint.linters_by_ft or {} + -- lint.linters_by_ft['markdown'] = { 'markdownlint' } + -- + -- However, note that this will enable a set of default linters, + -- which will cause errors unless these tools are available: + -- { + -- clojure = { "clj-kondo" }, + -- dockerfile = { "hadolint" }, + -- inko = { "inko" }, + -- janet = { "janet" }, + -- json = { "jsonlint" }, + -- markdown = { "vale" }, + -- rst = { "vale" }, + -- ruby = { "ruby" }, + -- terraform = { "tflint" }, + -- text = { "vale" } + -- } + -- + -- You can disable the default linters by setting their filetypes to nil: + -- lint.linters_by_ft['clojure'] = nil + -- lint.linters_by_ft['dockerfile'] = nil + -- lint.linters_by_ft['inko'] = nil + -- lint.linters_by_ft['janet'] = nil + -- lint.linters_by_ft['json'] = nil + -- lint.linters_by_ft['markdown'] = nil + -- lint.linters_by_ft['rst'] = nil + -- lint.linters_by_ft['ruby'] = nil + -- lint.linters_by_ft['terraform'] = nil + -- lint.linters_by_ft['text'] = nil + + -- Create autocommand which carries out the actual linting + -- on the specified events. + local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true }) + vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { + group = lint_augroup, + callback = function() + require("lint").try_lint() + end, + }) + end, + }, +} diff --git a/.config/tmux/plugins/tmux-yank b/.config/tmux/plugins/tmux-yank deleted file mode 160000 index acfd36e..0000000 --- a/.config/tmux/plugins/tmux-yank +++ /dev/null @@ -1 +0,0 @@ -Subproject commit acfd36e4fcba99f8310a7dfb432111c242fe7392 diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf index 00bb0de..6074d76 100644 --- a/.config/tmux/tmux.conf +++ b/.config/tmux/tmux.conf @@ -1,32 +1,33 @@ -set-option -sa terminal-overrides ',xterm*:Tc' -set -s escape-time 0 - -unbind-key C-b -set-option -g prefix C-x -bind-key C-x send-prefix - -set -g @plugin 'catppuccin/tmux' -set -g @catppuccin_user 'on' -set -g @plugin 'tmux-plugins/tpm' -set -g @plugin 'tmux-plugins/tmux-yank' -set -g @plugin 'tmux-plugins/tmux-sensible' -set -g @plugin 'christoomey/vim-tmux-navigator' -set -g @plugin 'dreamsofcode-io/catppuccin-tmux' -run '~/.config/tmux/plugins/tpm/tpm' - +set-option -sa terminal-overrides ",xterm*:Tc" set -g mouse on + +unbind C-b +set -g prefix C-x +bind C-x send-prefix + +# Start windows and panes at 1, not 0 set -g base-index 1 set -g pane-base-index 1 set-window-option -g pane-base-index 1 set-option -g renumber-windows on +set -g @plugin 'catppuccin/tmux' +set -g @catppuccin_user 'on' + +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'christoomey/vim-tmux-navigator' +set -g @plugin 'dreamsofcode-io/catppuccin-tmux' + +run '~/.config/tmux/plugins/tpm/tpm' + +# Better split window keybind and same directory for new panes unbind '"' unbind % -bind - split-window -v -c #{pane_current_path}' -bind _ split-window -h -c #{pane_current_path}' +bind - split-window -v -c "#{pane_current_path}" +bind _ split-window -h -c "#{pane_current_path}" -bind -r ^ last-window bind -r k select-pane -U bind -r j select-pane -D bind -r h select-pane -L diff --git a/.config/zed/settings.json b/.config/zed/settings.json new file mode 100644 index 0000000..5887a99 --- /dev/null +++ b/.config/zed/settings.json @@ -0,0 +1,23 @@ +{ + "features": { + "copilot": false + }, + "telemetry": { + "diagnostics": false, + "metrics": false + }, + "theme": "Rosé Pine", + "vim_mode": true, + "ui_font_size": 14, + "buffer_font_size": 14, + "tab_size": 4, + "buffer_font_family": "MesloLGS NF", + "confirm_quit": true, + "format_on_save": "language_server", + "show_whitespaces": "all", + "preferred_line_length": 80, + "relative_line_numbers": true, + "scrollbar": { + "show": "never" + } +} diff --git a/.zshrc b/.zshrc index a8bbed2..3a9632a 100644 --- a/.zshrc +++ b/.zshrc @@ -74,7 +74,6 @@ plugins=( git zsh-syntax-highlighting zsh-autosuggestions - you-should-use ) source $ZSH/oh-my-zsh.sh @@ -116,27 +115,22 @@ alias python='python3' alias ls='colorls' alias nv='nvim' +# Go hot reload package +alias air="~/go/bin/air" + # homebrew eval "$(/opt/homebrew/bin/brew shellenv)" # cool to use tools (if ever wanted to) +# alias neofetch="macchina" # neofetch -# macchina - -# bun completions -[ -s "/Users/kulvir/.bun/_bun" ] && source "/Users/kulvir/.bun/_bun" # bun export BUN_INSTALL="$HOME/.bun" export PATH="$BUN_INSTALL/bin:$PATH" -# pnpm -export PNPM_HOME="/Users/kulvir/Library/pnpm" -case ":$PATH:" in - *":$PNPM_HOME:"*) ;; - *) export PATH="$PNPM_HOME:$PATH" ;; -esac -# pnpm end +# bun completions +[ -s "/Users/kulvir/.bun/_bun" ] && source "/Users/kulvir/.bun/_bun" -# spaceship +# spaceship for zsh prompts source /opt/homebrew/opt/spaceship/spaceship.zsh diff --git a/readme.md b/readme.md index d96b714..6d12794 100644 --- a/readme.md +++ b/readme.md @@ -1,15 +1,15 @@ -# This is to make my reinstalls easier +# Fow weekly hard resets ## Install all the applications using Homebrew. ```bash -sudo brew install --cask aerial alacritty alfred cloudflare-warp discord duckduckgo firefox google-chrome iterm2 keka kitty linearmouse microsoft-edge notion numi postman raycast shottr slack spotify stats telegram ticktick visual-studio-code vlc zoom +sudo brew install aerial alacritty cloudflare-warp discord duckduckgo firefox google-chrome keka kitty linearmouse microsoft-edge obsidian postman raycast spotify stats telegram visual-studio-code zoom ``` ## Install all the Formulae with Homebrew ```bash -brew install docker git macchina neofetch neovim python3 spaceship tmux colorls +brew install docker git go macchina neofetch neovim node python3@latest spaceship tmux colorls ``` ## Some of the applications to install from appstore @@ -18,15 +18,13 @@ brew install docker git macchina neofetch neovim python3 spaceship tmux colorls - Microsoft Powepoint - -## Accessing my own github +## I always forget to set it up first 1. Go to [Github](https://github.com/settings/tokens) and generate PAT. -2. Run the command `git config --global credential.helper cache`. It will store the next entered credentials. +2. `git config --global credential.helper cache` -3. Clone any of my repo, It will ask for username and password. - -4. Enter github username and PAT in place of password and now I am good to go. +3. Enter github username and PAT. ## misc stuff @@ -37,7 +35,6 @@ brew install docker git macchina neofetch neovim python3 spaceship tmux colorls - [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) - [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) -- [zsh-you-should-use](https://github.com/MichaelAquilina/zsh-you-should-use) @@ -45,7 +42,5 @@ brew install docker git macchina neofetch neovim python3 spaceship tmux colorls Package Managers - [bun](https://bun.sh/docs/installation) -- [yarn](https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable) -- [pnpm](https://pnpm.io/installation)