diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 0000000..22243be --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,45 @@ +{ + "LazyVim": { "branch": "main", "commit": "3f034d0a7f58031123300309f2efd3bb0356ee21" }, + "SchemaStore.nvim": { "branch": "main", "commit": "c61a74033522c3efbb8465fe6e9c75b27f5c3667" }, + "blink.cmp": { "branch": "main", "commit": "cb5e346d9e0efa7a3eee7fd4da0b690c48d2a98e" }, + "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, + "catppuccin": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" }, + "conform.nvim": { "branch": "master", "commit": "eebc724d12c5579d733d1f801386e0ceb909d001" }, + "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, + "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, + "gitsigns.nvim": { "branch": "main", "commit": "17ab794b6fce6fce768430ebc925347e349e1d60" }, + "grug-far.nvim": { "branch": "main", "commit": "6ef402861468c6bd987155be17a34ba4291dc1d0" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, + "lualine.nvim": { "branch": "master", "commit": "7de0a690bc1878dd6fc347c599a19a0f34f48dec" }, + "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, + "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, + "mini.ai": { "branch": "main", "commit": "e139eb1101beb0250fea322f8c07a42f0f175688" }, + "mini.hipatterns": { "branch": "main", "commit": "e5083df391171dc9d8172645606f8496d9443374" }, + "mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" }, + "mini.pairs": { "branch": "main", "commit": "69864a2efb36c030877421634487fd90db1e4298" }, + "mini.surround": { "branch": "main", "commit": "5aab42fcdcf31fa010f012771eda5631c077840a" }, + "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, + "nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, + "nvim-lint": { "branch": "master", "commit": "e7b4ffa6ab763af012e38b21af2c9159f10d2d33" }, + "nvim-lspconfig": { "branch": "master", "commit": "d3ad666b7895f958d088cceb6f6c199672c404fe" }, + "nvim-treesitter": { "branch": "master", "commit": "205faba1768a6e4c854f156bc6a21a41b242599c" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "698b5f805722254bca3c509591c1806d268b6c2f" }, + "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, + "persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "render-markdown.nvim": { "branch": "main", "commit": "a615baed85137a8c6fc8e95f5545f64d33f5f384" }, + "smear-cursor.nvim": { "branch": "main", "commit": "01570fdc358979678380ff8704184307e87d8a29" }, + "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, + "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, + "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, + "ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" }, + "vim-dadbod": { "branch": "master", "commit": "9f0ca8bcef704659820a95c3bbd2c262583a66a1" }, + "vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" }, + "vim-dadbod-ui": { "branch": "master", "commit": "685e75b34ee0e12f92ec4507ea8bb7f1aaa936e5" }, + "vim-wakatime": { "branch": "master", "commit": "e46d7c4f98ee0f40782008dd60cb2a79c377fb1d" }, + "vimade": { "branch": "master", "commit": "f63ca5cb9cf811b2c526694e820b87fe2238deb6" }, + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } +} diff --git a/lazyvim.json b/lazyvim.json new file mode 100644 index 0000000..45eb2ce --- /dev/null +++ b/lazyvim.json @@ -0,0 +1,23 @@ +{ + "extras": [ + "lazyvim.plugins.extras.coding.mini-surround", + "lazyvim.plugins.extras.editor.aerial", + "lazyvim.plugins.extras.formatting.prettier", + "lazyvim.plugins.extras.lang.docker", + "lazyvim.plugins.extras.lang.json", + "lazyvim.plugins.extras.lang.markdown", + "lazyvim.plugins.extras.lang.prisma", + "lazyvim.plugins.extras.lang.sql", + "lazyvim.plugins.extras.lang.tailwind", + "lazyvim.plugins.extras.lang.typescript", + "lazyvim.plugins.extras.linting.eslint", + "lazyvim.plugins.extras.ui.smear-cursor", + "lazyvim.plugins.extras.util.dot", + "lazyvim.plugins.extras.util.mini-hipatterns" + ], + "install_version": 8, + "news": { + "NEWS.md": "10960" + }, + "version": 8 +} \ No newline at end of file diff --git a/lua/plugins/all.lua b/lua/plugins/all.lua new file mode 100644 index 0000000..83b5793 --- /dev/null +++ b/lua/plugins/all.lua @@ -0,0 +1,3 @@ +return { + { "wakatime/vim-wakatime", lazy = false }, +} diff --git a/lua/plugins/blink-cmp.lua b/lua/plugins/blink-cmp.lua new file mode 100644 index 0000000..4d9b23b --- /dev/null +++ b/lua/plugins/blink-cmp.lua @@ -0,0 +1,42 @@ +return { + "saghen/blink.cmp", + -- optional: provides snippets for the snippet source + dependencies = "rafamadriz/friendly-snippets", + + -- use a release tag to download pre-built binaries + version = "*", + -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust + -- build = 'cargo build --release', + -- If you use nix, you can build from source using latest nightly rust with: + -- build = 'nix run .#build-plugin', + + ---@module 'blink.cmp' + ---@type blink.cmp.Config + opts = { + -- 'default' for mappings similar to built-in completion + -- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate) + -- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept + -- See the full "keymap" documentation for information on defining your own keymap. + keymap = { + preset = "enter", + [""] = { "select_next", "snippet_forward", "fallback" }, + [""] = { "select_prev", "snippet_backward", "fallback" }, + }, + appearance = { + -- Sets the fallback highlight groups to nvim-cmp's highlight groups + -- Useful for when your theme doesn't support blink.cmp + -- Will be removed in a future release + use_nvim_cmp_as_default = true, + -- Set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font' + -- Adjusts spacing to ensure icons are aligned + nerd_font_variant = "mono", + }, + + -- Default list of enabled providers defined so that you can extend it + -- elsewhere in your config, without redefining it, due to `opts_extend` + sources = { + default = { "lsp", "path", "snippets", "buffer" }, + }, + }, + opts_extend = { "sources.default" }, +} diff --git a/lua/plugins/vimade.lua b/lua/plugins/vimade.lua new file mode 100644 index 0000000..a66daa7 --- /dev/null +++ b/lua/plugins/vimade.lua @@ -0,0 +1,164 @@ +return { + "tadaa/vimade", + -- default opts (you can partially set these or configure them however you like) + opts = { + -- Recipe can be any of 'default', 'minimalist', 'duo', and 'ripple' + -- Set animate = true to enable animations on any recipe. + -- See the docs for other config options. + recipe = { "default", { animate = false } }, + -- ncmode = 'windows' will fade inactive windows. + -- ncmode = 'focus' will only fade after you activate the `:VimadeFocus` command. + ncmode = "buffers", + fadelevel = 0.4, -- any value between 0 and 1. 0 is hidden and 1 is opaque. + -- Changes the real or theoretical background color. basebg can be used to give + -- transparent terminals accurating dimming. See the 'Preparing a transparent terminal' + -- section in the README.md for more info. + -- basebg = [23,23,23], + basebg = "", + tint = { + -- bg = {rgb={0,0,0}, intensity=0.3}, -- adds 30% black to background + -- fg = {rgb={0,0,255}, intensity=0.3}, -- adds 30% blue to foreground + -- fg = {rgb={120,120,120}, intensity=1}, -- all text will be gray + -- sp = {rgb={255,0,0}, intensity=0.5}, -- adds 50% red to special characters + -- you can also use functions for tint or any value part in the tint object + -- to create window-specific configurations + -- see the `Tinting` section of the README for more details. + }, + -- prevent a window or buffer from being styled. You + blocklist = { + default = { + highlights = { + laststatus_3 = function(win, active) + -- Global statusline, laststatus=3, is currently disabled as multiple windows take + -- ownership of the StatusLine highlight (see #85). + if vim.go.laststatus == 3 then + -- you can also return tables (e.g. {'StatusLine', 'StatusLineNC'}) + return "StatusLine" + end + end, + -- Prevent ActiveTabs from highlighting. + "TabLineSel", + "Pmenu", + "PmenuSel", + "PmenuKind", + "PmenuKindSel", + "PmenuExtra", + "PmenuExtraSel", + "PmenuSbar", + "PmenuThumb", + -- Lua patterns are supported, just put the text between / symbols: + -- '/^StatusLine.*/' -- will match any highlight starting with "StatusLine" + }, + buf_opts = { buftype = { "prompt" } }, + -- buf_name = {'name1','name2', name3'}, + -- buf_vars = { variable = {'match1', 'match2'} }, + -- win_opts = { option = {'match1', 'match2' } }, + -- win_vars = { variable = {'match1', 'match2'} }, + -- win_type = {'name1','name2', name3'}, + -- win_config = { variable = {'match1', 'match2'} }, + }, + default_block_floats = function(win, active) + return win.win_config.relative ~= "" and (win ~= active or win.buf_opts.buftype == "terminal") and true or false + end, + -- any_rule_name1 = { + -- buf_opts = {} + -- }, + -- only_behind_float_windows = { + -- buf_opts = function(win, current) + -- if (win.win_config.relative == '') + -- and (current and current.win_config.relative ~= '') then + -- return false + -- end + -- return true + -- end + -- }, + }, + -- Link connects windows so that they style or unstyle together. + -- Properties are matched against the active window. Same format as blocklist above + link = {}, + groupdiff = true, -- links diffs so that they style together + groupscrollbind = false, -- link scrollbound windows so that they style together. + -- enable to bind to FocusGained and FocusLost events. This allows fading inactive + -- tmux panes. + enablefocusfading = false, + -- Time in milliseconds before re-checking windows. This is only used when usecursorhold + -- is set to false. + checkinterval = 1000, + -- enables cursorhold event instead of using an async timer. This may make Vimade + -- feel more performant in some scenarios. See h:updatetime. + usecursorhold = false, + -- when nohlcheck is disabled the highlight tree will always be recomputed. You may + -- want to disable this if you have a plugin that creates dynamic highlights in + -- inactive windows. 99% of the time you shouldn't need to change this value. + nohlcheck = true, + focus = { + providers = { + filetypes = { + default = { + -- If you use mini.indentscope, snacks.indent, or hlchunk, you can also highlight + -- using the same indent scope! + -- {'snacks', {}}, + -- {'mini', {}}, + -- {'hlchunk', {}}, + { + "treesitter", + { + min_node_size = 2, + min_size = 1, + max_size = 0, + -- exclude types either too large and/or mundane + exclude = { + "script_file", + "stream", + "document", + "source_file", + "translation_unit", + "chunk", + "module", + "stylesheet", + "statement_block", + "block", + "pair", + "program", + "switch_case", + "catch_clause", + "finally_clause", + "property_signature", + "dictionary", + "assignment", + "expression_statement", + "compound_statement", + }, + }, + }, + -- if treesitter fails or there isn't a good match, fallback to blanks + -- (similar to limelight) + { "blanks", { + min_size = 1, + max_size = "35%", + } }, + -- if blanks fails to find a good match, fallback to static 35% + { "static", { + size = "35%", + } }, + }, + -- You can make custom configurations for any filetype. Here are some examples. + -- markdown ={{'blanks', {min_size=0, max_size='50%'}}, {'static', {max_size='50%'}}} + -- javascript = { + -- -- only use treesitter (no fallbacks) + -- {'treesitter', { min_node_size = 2, include = {'if_statement', ...}}}, + -- }, + -- typescript = { + -- {'treesitter', { min_node_size = 2, exclude = {'if_statement'}}}, + -- {'static', {size = '35%'}} + -- }, + -- java = { + -- -- mini with a fallback to blanks + -- {'mini', {min_size = 1, max_size = 20}}, + -- {'blanks', {min_size = 1, max_size = '100%' }}, + -- }, + }, + }, + }, + }, +}