feat(nvim): add config
This commit is contained in:
parent
5060cd1068
commit
ed3cdde970
|
@ -0,0 +1,6 @@
|
|||
column_width = 120
|
||||
line_endings = "Unix"
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
quote_style = "AutoPreferDouble"
|
||||
call_parentheses = "None"
|
|
@ -0,0 +1,47 @@
|
|||
vim.g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/"
|
||||
vim.g.mapleader = " "
|
||||
|
||||
-- bootstrap lazy and all plugins
|
||||
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
||||
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
local repo = "https://github.com/folke/lazy.nvim.git"
|
||||
vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath }
|
||||
end
|
||||
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
local lazy_config = require "configs.lazy"
|
||||
|
||||
-- load plugins
|
||||
require("lazy").setup({
|
||||
{
|
||||
"NvChad/NvChad",
|
||||
lazy = false,
|
||||
branch = "v2.5",
|
||||
import = "nvchad.plugins",
|
||||
config = function()
|
||||
require "options"
|
||||
end,
|
||||
},
|
||||
|
||||
{ import = "plugins" },
|
||||
}, lazy_config)
|
||||
|
||||
-- load theme
|
||||
dofile(vim.g.base46_cache .. "defaults")
|
||||
dofile(vim.g.base46_cache .. "statusline")
|
||||
|
||||
require "nvchad.autocmds"
|
||||
|
||||
require "configs.dap"
|
||||
require "configs.highlights"
|
||||
require "configs.lsp"
|
||||
require "configs.nvim-ts-autotag"
|
||||
|
||||
vim.schedule(function()
|
||||
require "mappings"
|
||||
end)
|
||||
|
||||
local neogit = require('neogit')
|
||||
neogit.setup {}
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "7552e6504ee95a9c8cfc6db53e389122ded46cd4" },
|
||||
"NvChad": { "branch": "v2.5", "commit": "c40c5116c4c091f4da620abcd9c58bd5ee4b8497" },
|
||||
"base46": { "branch": "v2.5", "commit": "b8ae372d62f2027e005477b834e24c06313e76d8" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||
"conform.nvim": { "branch": "master", "commit": "25d48271e3d4404ba017cb92a37d3a681c1ad149" },
|
||||
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
|
||||
"fzf-lua": { "branch": "main", "commit": "c59e076dddae6fa85f8a97da8ff5304014ba5768" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "0ed466953fe5885166e0d60799172a8b1f752d16" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
|
||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||
"neogit": { "branch": "master", "commit": "2b74a777b963dfdeeabfabf84d5ba611666adab4" },
|
||||
"noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" },
|
||||
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "e38c5d837e755ce186ae51d2c48e1b387c4425c6" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "194ec600488f7c7229668d0e80bd197f3a2b84ff" },
|
||||
"nvim-dap": { "branch": "master", "commit": "dcc85d12d6e2c18c5fa0f9a304d9f5e767e1401a" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" },
|
||||
"nvim-dap-vscode-js": { "branch": "main", "commit": "03bd29672d7fab5e515fc8469b7d07cc5994bbf6" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "e6528f4613c8db2e04be908eb2b5886d63f62a98" },
|
||||
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
|
||||
"nvim-tree.lua": { "branch": "master", "commit": "48d0e82f9434691cc50d970898142a8c084a49d6" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "09bad640e4507885fa0e7035348c7854c531b3d6" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "dc5e1687ab76ee02e0f11c5ce137f530b36e98b3" },
|
||||
"nvim-ufo": { "branch": "main", "commit": "4cc3ba9303c0708b81fd681786a4835fd31518ac" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "5be6c4e685618b99c3210a69375b38a1202369b4" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||
"promise-async": { "branch": "main", "commit": "28c1d5a295eb5310afa2523d4ae9aa41ec5a9de2" },
|
||||
"rust.vim": { "branch": "master", "commit": "889b9a7515db477f4cb6808bef1769e53493c578" },
|
||||
"rustaceanvim": { "branch": "master", "commit": "047f9c9d8cd2861745eb9de6c1570ee0875aa795" },
|
||||
"tailwind-tools.nvim": { "branch": "master", "commit": "7e280a515389536d3d020986cac68686ce7b5a64" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "3b1600d0fd5172ad9fae00987362ca0ef3d8895d" },
|
||||
"ts-comments.nvim": { "branch": "main", "commit": "98d7d4dec0af1312d38e288f800bbf6ff562b6ab" },
|
||||
"ui": { "branch": "v2.5", "commit": "967d8b27811f3b2a2ac3fd2de27e5a4992dc0770" },
|
||||
"vim-react-snippets": { "branch": "main", "commit": "755e288bd0db1052be4195fcc82a25e28b609e0b" },
|
||||
"vscode-js-debug": { "branch": "main", "commit": "14b430024ccadd5e573228214a39fac7781bd759" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" }
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
-- This file needs to have same structure as nvconfig.lua
|
||||
-- https://github.com/NvChad/ui/blob/v2.5/lua/nvconfig.lua
|
||||
|
||||
---@type ChadrcConfig
|
||||
local M = {}
|
||||
|
||||
M.base46 = {
|
||||
theme = "catppuccin_latte",
|
||||
|
||||
-- hl_override = {
|
||||
-- Comment = { italic = true },
|
||||
-- ["@comment"] = { italic = true },
|
||||
-- },
|
||||
}
|
||||
|
||||
return M
|
|
@ -0,0 +1,15 @@
|
|||
local options = {
|
||||
formatters_by_ft = {
|
||||
lua = { "stylua" },
|
||||
-- css = { "prettier" },
|
||||
-- html = { "prettier" },
|
||||
},
|
||||
|
||||
-- format_on_save = {
|
||||
-- -- These options will be passed to conform.format()
|
||||
-- timeout_ms = 500,
|
||||
-- lsp_fallback = true,
|
||||
-- },
|
||||
}
|
||||
|
||||
require("conform").setup(options)
|
|
@ -0,0 +1,57 @@
|
|||
local dap = require("dap")
|
||||
local DEBUGGER_PATH = vim.fn.stdpath('data') .. "/lazy/vscode-js-debug"
|
||||
|
||||
require("dap-vscode-js").setup({
|
||||
-- node_path = "node", -- Path of node executable. Defaults to $NODE_PATH, and then "node"
|
||||
debugger_path = DEBUGGER_PATH, -- Path to vscode-js-debug installation.
|
||||
-- debugger_cmd = { "js-debug-adapter" }, -- Command to use to launch the debug server. Takes precedence over `node_path` and `debugger_path`.
|
||||
adapters = { 'firefox', 'pwa-node', 'pwa-chrome', 'pwa-msedge', 'node-terminal', 'pwa-extensionHost' }, -- which adapters to register in nvim-dap
|
||||
-- log_file_path = "(stdpath cache)/dap_vscode_js.log" -- Path for file logging
|
||||
-- log_file_level = false -- Logging level for output to file. Set to false to disable file logging.
|
||||
-- log_console_level = vim.log.levels.ERROR -- Logging level for output to console. Set to false to disable console output.
|
||||
})
|
||||
|
||||
local js_langs = {
|
||||
"javascript",
|
||||
"typescript",
|
||||
"javascriptreact",
|
||||
"typescriptreact",
|
||||
}
|
||||
|
||||
for _, lang in ipairs(js_langs) do
|
||||
|
||||
dap.configurations[lang] = {
|
||||
{
|
||||
name = 'Next.js: debug server-side',
|
||||
type = "pwa-node",
|
||||
request = "launch",
|
||||
skipFiles = {"<node_internals>/**"},
|
||||
cwd = "${workspaceFolder}",
|
||||
runtimeExecutable = "npm",
|
||||
runtimeArgs = {"run-script", "dev"},
|
||||
},
|
||||
{
|
||||
name = 'Next.js: debug client-side',
|
||||
type = 'pwa-chrome',
|
||||
request = 'launch',
|
||||
url = 'http://localhost:3000',
|
||||
webRoot = '${workspaceFolder}',
|
||||
sourceMaps = true, -- https://github.com/vercel/next.js/issues/56702#issuecomment-1913443304
|
||||
sourceMapPathOverrides = {
|
||||
['webpack://_N_E/*'] = '${webRoot}/*',
|
||||
},
|
||||
},
|
||||
{
|
||||
name = "Next.js: debug full stack",
|
||||
type = "node-terminal",
|
||||
request = "launch",
|
||||
command = "npm run dev",
|
||||
serverReadyAction = {
|
||||
pattern = "- Local:.+(https?://.+)",
|
||||
uriFormat = "%s",
|
||||
action = "debugWithChrome"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end;
|
|
@ -0,0 +1,19 @@
|
|||
require "nvim-treesitter.configs".setup {
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
playground = {
|
||||
enable = true,
|
||||
}
|
||||
}
|
||||
|
||||
-- require 'colorizer'.setup {
|
||||
-- user_default_options = { names = false },
|
||||
-- filetypes = {
|
||||
-- css = {
|
||||
-- rgb_fn = true;
|
||||
-- names = true;
|
||||
-- }; -- Enable parsing rgb(...) functions in css.
|
||||
-- html = { names = false; } -- Disable parsing "names" like Blue or Gray
|
||||
-- },
|
||||
-- }
|
|
@ -0,0 +1,47 @@
|
|||
return {
|
||||
defaults = { lazy = true },
|
||||
install = { colorscheme = { "nvchad" } },
|
||||
|
||||
ui = {
|
||||
icons = {
|
||||
ft = "",
|
||||
lazy = " ",
|
||||
loaded = "",
|
||||
not_loaded = "",
|
||||
},
|
||||
},
|
||||
|
||||
performance = {
|
||||
rtp = {
|
||||
disabled_plugins = {
|
||||
"2html_plugin",
|
||||
"tohtml",
|
||||
"getscript",
|
||||
"getscriptPlugin",
|
||||
"gzip",
|
||||
"logipat",
|
||||
"netrw",
|
||||
"netrwPlugin",
|
||||
"netrwSettings",
|
||||
"netrwFileHandlers",
|
||||
"matchit",
|
||||
"tar",
|
||||
"tarPlugin",
|
||||
"rrhelper",
|
||||
"spellfile_plugin",
|
||||
"vimball",
|
||||
"vimballPlugin",
|
||||
"zip",
|
||||
"zipPlugin",
|
||||
"tutor",
|
||||
"rplugin",
|
||||
"syntax",
|
||||
"synmenu",
|
||||
"optwin",
|
||||
"compiler",
|
||||
"bugreport",
|
||||
"ftplugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
callback = function(args)
|
||||
local bufnr = args.buf
|
||||
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
||||
|
||||
client.server_capabilities.semanticTokensProvider = nil
|
||||
|
||||
end,
|
||||
})
|
|
@ -0,0 +1,24 @@
|
|||
-- load defaults i.e lua_lsp
|
||||
require("nvchad.configs.lspconfig").defaults()
|
||||
|
||||
local lspconfig = require "lspconfig"
|
||||
|
||||
-- EXAMPLE
|
||||
local servers = { "html", "cssls" }
|
||||
local nvlsp = require "nvchad.configs.lspconfig"
|
||||
|
||||
-- lsps with default config
|
||||
for _, lsp in ipairs(servers) do
|
||||
lspconfig[lsp].setup {
|
||||
on_attach = nvlsp.on_attach,
|
||||
on_init = nvlsp.on_init,
|
||||
capabilities = nvlsp.capabilities,
|
||||
}
|
||||
end
|
||||
|
||||
-- configuring single server, example: typescript
|
||||
-- lspconfig.tsserver.setup {
|
||||
-- on_attach = nvlsp.on_attach,
|
||||
-- on_init = nvlsp.on_init,
|
||||
-- capabilities = nvlsp.capabilities,
|
||||
-- }
|
|
@ -0,0 +1,18 @@
|
|||
require("vim-react-snippets").lazy_load()
|
||||
|
||||
require('nvim-ts-autotag').setup({
|
||||
opts = {
|
||||
-- Defaults
|
||||
enable_close = true, -- Auto close tags
|
||||
enable_rename = true, -- Auto rename pairs of tags
|
||||
enable_close_on_slash = false -- Auto close on trailing </
|
||||
},
|
||||
-- Also override individual filetype configs, these take priority.
|
||||
-- Empty by default, useful if one of the "opts" global settings
|
||||
-- doesn't work well in a specific filetype
|
||||
per_filetype = {
|
||||
["html"] = {
|
||||
enable_close = false
|
||||
}
|
||||
}
|
||||
})
|
|
@ -0,0 +1,42 @@
|
|||
require "nvchad.mappings"
|
||||
|
||||
-- add yours here
|
||||
|
||||
local map = vim.keymap.set
|
||||
local ufo = require("ufo")
|
||||
|
||||
map("n", ";", ":", { desc = "CMD enter command mode" })
|
||||
|
||||
map("n", "mk", "<cmd>RustLsp moveItem up<cr>")
|
||||
map("n", "m,", "<cmd>RustLsp moveItem down<cr>")
|
||||
map("n", "rs", "<cmd>RustLsp run<cr>")
|
||||
map("n", "hh", "<cmd>RustLsp hover actions<cr>")
|
||||
map("n", "ca", "<cmd>RustLsp codeAction<cr>")
|
||||
map("n", "<C-s>", "<cmd>w!<cr>")
|
||||
map("i", "<C-s>", "<cmd>w!<cr>")
|
||||
|
||||
map("n", "<leader>sn", "<Cmd>split<cr>", { desc = "Horizontal split" })
|
||||
map("n", "<leader>sv", "<Cmd>vsplit<cr>", { desc = "Vertical split" })
|
||||
|
||||
map("n", "<leader>dr", "<cmd> DapContinue <cr>", { desc = "Continue debug" } )
|
||||
|
||||
map("n", "do", function()
|
||||
require("dapui").open()
|
||||
end, { desc = "Open DAP ui" })
|
||||
map("n", "dc", function()
|
||||
require("dapui").close()
|
||||
end, { desc = "Start or continue debug" })
|
||||
map("n", "dt", function()
|
||||
require("dapui").toggle()
|
||||
end, { desc = "Toggle DAP ui" })
|
||||
|
||||
map("n", "<F9>", "<cmd>DapContinue<cr>", { desc = "Start or continue debug" })
|
||||
|
||||
map("n", "+", "<cmd>vertical resize +5<cr>", { desc = "Increase vertical buffer" }) -- make the window biger vertically
|
||||
map("n", "-", "<cmd>vertical resize -5<cr>", { desc = "Decrease vertical buffer" }) -- make the window smaller vertically
|
||||
map("n", "_", "<cmd>horizontal resize +2<cr>", { desc = "Increase horizontal buffer" }) -- make the window bigger horizontally by pressing shift and =
|
||||
map("n", "=", "<cmd>horizontal resize -2<cr>", { desc = "Decrease horizontal buffer" }) -- make the window smaller horizontally by pressing shift and -
|
||||
|
||||
map('n', 'zR', ufo.openAllFolds)
|
||||
map('n', 'zM', ufo.closeAllFolds)
|
||||
-- map({ "n", "i", "v" }, "<C-s>", "<cmd> w <cr>")-- map({ "n", "i", "v" }, "<C-s>", "<cmd> w <cr>")
|
|
@ -0,0 +1,6 @@
|
|||
require "nvchad.options"
|
||||
|
||||
-- add yours here!
|
||||
|
||||
-- local o = vim.o
|
||||
-- o.cursorlineopt ='both' -- to enable cursorline!
|
|
@ -0,0 +1,126 @@
|
|||
return {
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
-- event = 'BufWritePre', -- uncomment for format on save
|
||||
opts = require "configs.conform",
|
||||
},
|
||||
|
||||
-- These are some examples, uncomment them if you want to see them work!
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
require "configs.lspconfig"
|
||||
end,
|
||||
},
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"eslint-lsp",
|
||||
"js-debug-adapter",
|
||||
"prettier",
|
||||
"typescript-language-server",
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"luckasRanarison/tailwind-tools.nvim",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
opts = {}
|
||||
},
|
||||
{
|
||||
'kevinhwang91/nvim-ufo',
|
||||
dependencies = { 'kevinhwang91/promise-async' },
|
||||
},
|
||||
{
|
||||
'microsoft/vscode-js-debug',
|
||||
lazy = false,
|
||||
build = "npm install --legacy-peer-deps && npx gulp vsDebugServerBundle && mv dist out"
|
||||
},
|
||||
{
|
||||
"mfussenegger/nvim-dap",
|
||||
event = "VeryLazy",
|
||||
},
|
||||
{
|
||||
"rcarriga/nvim-dap-ui",
|
||||
dependencies = {
|
||||
"nvim-neotest/nvim-nio",
|
||||
"mfussenegger/nvim-dap",
|
||||
},
|
||||
event = "VeryLazy",
|
||||
config = function()
|
||||
require("dapui").setup()
|
||||
end
|
||||
},
|
||||
{
|
||||
"microsoft/vscode-js-debug",
|
||||
opt = true,
|
||||
run = "npm install --legacy-peer-deps && npx gulp vsDebugServerBundle && mv dist out"
|
||||
},
|
||||
{
|
||||
"NvChad/nvim-colorizer.lua"
|
||||
},
|
||||
{
|
||||
"folke/neodev.nvim", opts = {}
|
||||
},
|
||||
{
|
||||
"mxsdev/nvim-dap-vscode-js"
|
||||
},
|
||||
{
|
||||
"mlaursen/vim-react-snippets",
|
||||
},
|
||||
{
|
||||
"windwp/nvim-ts-autotag",
|
||||
},
|
||||
{
|
||||
"folke/ts-comments.nvim",
|
||||
opts = {},
|
||||
event = "VeryLazy",
|
||||
enabled = vim.fn.has("nvim-0.10.0") == 1,
|
||||
},
|
||||
{
|
||||
'windwp/nvim-autopairs',
|
||||
event = "InsertEnter",
|
||||
config = true
|
||||
-- use opts = {} for passing setup options
|
||||
-- this is equalent to setup({}) function
|
||||
},
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
},
|
||||
{
|
||||
"rust-lang/rust.vim",
|
||||
ft = "rust",
|
||||
init = function ()
|
||||
vim.g.rustfmt_autosave = 1
|
||||
end
|
||||
},
|
||||
{
|
||||
'mrcjkb/rustaceanvim',
|
||||
version = '^4', -- Recommended
|
||||
ft = "rust",
|
||||
lazy = false, -- This plugin is already lazy
|
||||
},
|
||||
{
|
||||
"NeogitOrg/neogit",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim", -- required
|
||||
"sindrets/diffview.nvim", -- optional - Diff integration
|
||||
|
||||
-- Only one of these is needed, not both.
|
||||
"nvim-telescope/telescope.nvim", -- optional
|
||||
"ibhagwan/fzf-lua", -- optional
|
||||
},
|
||||
config = true
|
||||
},
|
||||
{
|
||||
"folke/noice.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
-- add any options here
|
||||
},
|
||||
dependencies = {
|
||||
-- if you lazy-load any plugin below, make sure to add proper module="..." entries
|
||||
"MunifTanjim/nui.nvim",
|
||||
}
|
||||
}}
|
Loading…
Reference in New Issue