Last active
September 19, 2024 00:13
-
-
Save aofei/27d1425c22c4f570058acd7197a71151 to your computer and use it in GitHub Desktop.
Aofei Sheng flavored nvim/init.lua file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" | |
if not vim.uv.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) | |
local afterloads = {} | |
local original_require = require | |
require = function(modname) | |
local result = original_require(modname) | |
local afterload = afterloads[modname] | |
if afterload then | |
afterload() | |
end | |
return result | |
end | |
afterloads["lazyvim.config.options"] = function() | |
vim.g.mapleader = nil | |
vim.g.maplocalleader = nil | |
vim.g.lazyvim_prettier_needs_config = true -- Require a config file for Prettier | |
vim.g.minipairs_disable = true -- Disable minipairs | |
vim.opt.colorcolumn = "81" -- Highlight column 81 | |
vim.opt.conceallevel = 0 -- Disable conceal | |
vim.opt.expandtab = false -- Use tabs | |
vim.opt.mouse = "" -- Disable mouse | |
vim.opt.relativenumber = false -- Disable relative line numbers | |
vim.opt.shiftwidth = 8 -- Size of an indent | |
vim.opt.tabstop = 8 -- Number of spaces tabs count for | |
end | |
afterloads["lazyvim.config.autocmds"] = function() | |
-- Special settings for some verbose filetypes | |
vim.api.nvim_create_autocmd({ "FileType" }, { | |
pattern = { | |
"css", | |
"graphql", | |
"hcl", | |
"html", | |
"javascript", | |
"javascriptreact", | |
"json", | |
"jsonc", | |
"less", | |
"lua", | |
"markdown", | |
"markdown.mdx", | |
"proto", | |
"sass", | |
"sql", | |
"tmux", | |
"toml", | |
"typescript", | |
"typescriptreact", | |
"vim", | |
"vue", | |
"xml", | |
"yaml", | |
}, | |
callback = function() | |
vim.opt_local.colorcolumn = "121" | |
vim.opt_local.shiftwidth = 2 | |
vim.opt_local.tabstop = 2 | |
end, | |
}) | |
-- Use spaces instead of tabs for some filetypes | |
vim.api.nvim_create_autocmd({ "FileType" }, { | |
pattern = { | |
"markdown", | |
"markdown.mdx", | |
}, | |
callback = function() | |
vim.opt_local.expandtab = true | |
end, | |
}) | |
-- Special settings for Copilot Chat | |
vim.api.nvim_create_autocmd({ "BufEnter" }, { | |
pattern = "copilot-chat", | |
callback = function() | |
vim.opt_local.colorcolumn = "" | |
end, | |
}) | |
end | |
afterloads["lazyvim.config.keymaps"] = function() | |
-- Delete some keymaps introduced by LazyVim | |
vim.keymap.del("n", "<leader>ub") | |
vim.keymap.del("t", "<C-h>") | |
vim.keymap.del("t", "<C-j>") | |
vim.keymap.del("t", "<C-k>") | |
vim.keymap.del("t", "<C-l>") | |
-- Toggle mouse | |
local mouse = vim.o.mouse ~= "" and vim.o.mouse or "a" | |
LazyVim.toggle.map("<leader>um", { | |
name = "Mouse", | |
get = function() | |
return vim.o.mouse ~= "" | |
end, | |
set = function(state) | |
vim.o.mouse = state and mouse or "" | |
end, | |
}) | |
end | |
require("lazy").setup({ | |
spec = { | |
-- LazyVim | |
{ | |
{ | |
"LazyVim/LazyVim", | |
import = "lazyvim.plugins", | |
opts = { | |
colorscheme = "catppuccin", | |
}, | |
}, | |
{ import = "lazyvim.plugins.extras.coding.copilot" }, | |
{ import = "lazyvim.plugins.extras.coding.copilot-chat" }, | |
{ import = "lazyvim.plugins.extras.coding.mini-surround" }, | |
{ import = "lazyvim.plugins.extras.coding.yanky" }, | |
{ import = "lazyvim.plugins.extras.dap.core" }, | |
{ import = "lazyvim.plugins.extras.dap.nlua" }, | |
{ import = "lazyvim.plugins.extras.editor.dial" }, | |
{ import = "lazyvim.plugins.extras.editor.inc-rename" }, | |
{ import = "lazyvim.plugins.extras.editor.navic" }, | |
{ import = "lazyvim.plugins.extras.editor.outline" }, | |
{ import = "lazyvim.plugins.extras.editor.overseer" }, | |
{ import = "lazyvim.plugins.extras.editor.refactoring" }, | |
{ import = "lazyvim.plugins.extras.formatting.prettier" }, | |
{ import = "lazyvim.plugins.extras.lang.clangd" }, | |
{ import = "lazyvim.plugins.extras.lang.git" }, | |
{ import = "lazyvim.plugins.extras.lang.go" }, | |
{ import = "lazyvim.plugins.extras.lang.typescript" }, | |
{ import = "lazyvim.plugins.extras.lang.vue" }, | |
{ import = "lazyvim.plugins.extras.linting.eslint" }, | |
{ import = "lazyvim.plugins.extras.test.core" }, | |
{ import = "lazyvim.plugins.extras.util.mini-hipatterns" }, | |
-- Polish it up a bit | |
{ | |
{ | |
"nvim-neo-tree/neo-tree.nvim", | |
opts = { | |
filesystem = { | |
filtered_items = { | |
hide_dotfiles = false, | |
hide_gitignored = true, | |
hide_by_name = { ".git" }, | |
}, | |
}, | |
}, | |
}, | |
{ | |
"nvim-telescope/telescope.nvim", | |
keys = { | |
{ "<leader>uC", false }, | |
}, | |
}, | |
{ | |
"nvim-treesitter/nvim-treesitter", | |
opts = { ensure_installed = { "scss" } }, | |
}, | |
{ | |
"stevearc/conform.nvim", | |
opts = function(_, opts) | |
for _, ft in ipairs({ | |
"fish", | |
"sh", | |
}) do | |
opts.formatters_by_ft[ft] = nil | |
end | |
end, | |
}, | |
{ | |
"hrsh7th/nvim-cmp", | |
opts = function(_, opts) | |
local cmp = require("cmp") | |
opts.window = { | |
completion = cmp.config.window.bordered(), | |
documentation = cmp.config.window.bordered(), | |
} | |
end, | |
}, | |
{ | |
"neovim/nvim-lspconfig", | |
opts = { | |
inlay_hints = { enabled = false }, | |
servers = { | |
gopls = { | |
settings = { | |
gopls = { | |
analyses = { | |
fieldalignment = false, | |
unusedparams = false, | |
}, | |
}, | |
}, | |
}, | |
}, | |
}, | |
}, | |
{ | |
"CopilotC-Nvim/CopilotChat.nvim", | |
opts = { | |
show_help = false, | |
}, | |
}, | |
}, | |
}, | |
-- Match-up | |
{ | |
"andymass/vim-matchup", | |
event = "BufReadPost", | |
config = function() | |
vim.g.matchup_matchparen_offscreen = { method = "status_manual" } | |
end, | |
}, | |
-- Markdown Preview | |
{ | |
"iamcco/markdown-preview.nvim", | |
cmd = { | |
"MarkdownPreviewToggle", | |
"MarkdownPreview", | |
"MarkdownPreviewStop", | |
}, | |
build = function() | |
require("lazy").load({ plugins = { "markdown-preview.nvim" } }) | |
vim.fn["mkdp#util#install"]() | |
end, | |
keys = { | |
{ | |
"<leader>cp", | |
ft = "markdown", | |
"<cmd>MarkdownPreviewToggle<cr>", | |
desc = "Markdown Preview", | |
}, | |
}, | |
config = function() | |
vim.cmd([[do FileType]]) | |
end, | |
}, | |
}, | |
performance = { | |
rtp = { | |
-- Disable some RTP plugins | |
disabled_plugins = { | |
"gzip", | |
"matchit", | |
"matchparen", | |
"netrwPlugin", | |
"tarPlugin", | |
"tohtml", | |
"tutor", | |
"zipPlugin", | |
}, | |
}, | |
}, | |
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"CopilotChat.nvim": { "branch": "canary", "commit": "2352cd3e7e980cd73594be05f96b2dc4c0dd4a74" }, | |
"LazyVim": { "branch": "main", "commit": "a1c3ec4cd43fe61e3b614237a46ac92771191c81" }, | |
"bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" }, | |
"catppuccin": { "branch": "main", "commit": "63685e1562ef53873c9764b483d7ac5c7a608922" }, | |
"clangd_extensions.nvim": { "branch": "main", "commit": "385a44f133f4145e3a3da1a2a557225dccc3e1f8" }, | |
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, | |
"cmp-git": { "branch": "main", "commit": "50d526dff0f6bc441b51fc269d9fdc99a50c76af" }, | |
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, | |
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, | |
"conform.nvim": { "branch": "master", "commit": "1a99fdc1d3aa9ccdf3021e67982a679a8c5c740c" }, | |
"copilot-cmp": { "branch": "master", "commit": "b6e5286b3d74b04256d0a7e3bd2908eabec34b44" }, | |
"copilot.lua": { "branch": "master", "commit": "1a237cf50372830a61d92b0adf00d3b23882e0e1" }, | |
"dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" }, | |
"dial.nvim": { "branch": "master", "commit": "ed4d6a5bbd5e479b4c4a3019d148561a2e6c1490" }, | |
"dressing.nvim": { "branch": "master", "commit": "1b7921eecc65af1baf8ac1dc06f0794934cbcfb2" }, | |
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" }, | |
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" }, | |
"gitsigns.nvim": { "branch": "main", "commit": "1ef74b546732f185d0f806860fa5404df7614f28" }, | |
"grug-far.nvim": { "branch": "main", "commit": "62feb8e2a0fc564d8c712e813210accfcea5d69d" }, | |
"inc-rename.nvim": { "branch": "main", "commit": "8ba77017ca468f3029bf88ef409c2d20476ea66b" }, | |
"indent-blankline.nvim": { "branch": "master", "commit": "18603eb949eba08300799f64027af11ef922283f" }, | |
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, | |
"lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" }, | |
"lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" }, | |
"luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, | |
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, | |
"mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" }, | |
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" }, | |
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, | |
"mini.ai": { "branch": "main", "commit": "40e380a589d07ec2c856940c6422aafe5d949a0d" }, | |
"mini.hipatterns": { "branch": "main", "commit": "fdad87bf545aec5210ca9a2c49fddf6284d72d1e" }, | |
"mini.icons": { "branch": "main", "commit": "2d89252993fec829b24720097a687412d10f6c85" }, | |
"mini.pairs": { "branch": "main", "commit": "e543c760edc5e746e5b6cbd02c066c17ead3ef16" }, | |
"mini.surround": { "branch": "main", "commit": "0e67c4bc147f2a15cee94e7c94dcc0e115b9f55e" }, | |
"neo-tree.nvim": { "branch": "main", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" }, | |
"neotest": { "branch": "master", "commit": "6d6ad113f56edc7c3f2a77a0836ea8c1b955ebea" }, | |
"neotest-golang": { "branch": "main", "commit": "cb12409f4e69d77713eae4843a9ebb7b6ae1edff" }, | |
"noice.nvim": { "branch": "main", "commit": "c1ba80ccf6b3bd8c7fc88fe2e61085131d44ad65" }, | |
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" }, | |
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" }, | |
"nvim-dap": { "branch": "master", "commit": "90616ae6ae40053103dc66872886fc26b94c70c8" }, | |
"nvim-dap-go": { "branch": "main", "commit": "5511788255c92bdd845f8d9690f88e2e0f0ff9f2" }, | |
"nvim-dap-ui": { "branch": "master", "commit": "1c351e4e417d4691da12948b6ecf966936a56d28" }, | |
"nvim-dap-virtual-text": { "branch": "master", "commit": "3497eb39bf413a57ab5b7e7e2e192683e462148c" }, | |
"nvim-lint": { "branch": "master", "commit": "99cab0b885aaa2f59736c047d23e9a7835d4f9a9" }, | |
"nvim-lspconfig": { "branch": "master", "commit": "73e0002b6f211376bbf36c31a2f812aedf6bd6b0" }, | |
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, | |
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, | |
"nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, | |
"nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" }, | |
"nvim-treesitter": { "branch": "master", "commit": "3c6af36794b26e1bcac3f126b43e0f646154725d" }, | |
"nvim-treesitter-textobjects": { "branch": "master", "commit": "bf8d2ad35d1d1a687eae6c065c3d524f7ab61b23" }, | |
"nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" }, | |
"one-small-step-for-vimkind": { "branch": "main", "commit": "0f0d5bc67786c36edc2cb6fb5faa5c09dd1a6e10" }, | |
"outline.nvim": { "branch": "main", "commit": "41e7b88a2b0baa90619af5ec8af462fcb442db65" }, | |
"overseer.nvim": { "branch": "master", "commit": "a2734d90c514eea27c4759c9f502adbcdfbce485" }, | |
"persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" }, | |
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, | |
"refactoring.nvim": { "branch": "master", "commit": "c406fc5fb4d7ba5fce7b668637075fad6e75e9f8" }, | |
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, | |
"telescope.nvim": { "branch": "master", "commit": "0df05c9e9f791dbc542c1fb612195f4dc97209b6" }, | |
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" }, | |
"tokyonight.nvim": { "branch": "main", "commit": "817bb6ffff1b9ce72cdd45d9fcfa8c9cd1ad3839" }, | |
"trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" }, | |
"ts-comments.nvim": { "branch": "main", "commit": "98d7d4dec0af1312d38e288f800bbf6ff562b6ab" }, | |
"vim-matchup": { "branch": "master", "commit": "1975afe63198ab6a0dff7200919828e5cd4330b9" }, | |
"which-key.nvim": { "branch": "main", "commit": "fb070344402cfc662299d9914f5546d840a22126" }, | |
"yanky.nvim": { "branch": "main", "commit": "73215b77d22ebb179cef98e7e1235825431d10e4" } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment