Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions docs/maintenance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Maintenance

## Upgrading plugins

* Run "upgrade all" in Lazy first to get the list of plugins with breaking
changes.
* Note down all the plugins with breaking changes.
* Reset the "upgrade all".
* Manually upgrade each broken plugin one step by one step. If possible, in the
commit message, note down each commit that is marked breaking change, and
mention whether there's any changes required.
* After all plugins with breaking changes are done, try to "upgrade all" again.
If there are still broken stuff, reset "upgrade all" and manually upgrade
those again one by one.
* Once all broken plugins are fixed, run "upgrade all" and this time, keep the
change
* Ensure that `:checkhealth` did not have any `ERROR`, and ensure that all
`WARNING` are acceptable.
* Test the upgrades on other OS.
7 changes: 4 additions & 3 deletions docs/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
### Common
* Rust
* Rationale: Mainly for compiling
* Clang
* Plugin users: Treesitter
* Note: For Windows, setting up `PATH` is essential so that Treesitter can access clang. For more details, see [Treesitter Wiki](https://github.com/nvim-treesitter/nvim-treesitter/wiki/Windows-support) ("Through Visual Studio")
* Clang (non-Windows only)
* Plugin users: Treesiiter
* Zig (Windows only)
* Plugin users: Treesitter (clang is a pain to setup on Windows)
* Nodejs
* Plugin users: Lsp
* Nerd Fonts
Expand Down
73 changes: 37 additions & 36 deletions lazy-lock.json
Original file line number Diff line number Diff line change
@@ -1,43 +1,44 @@
{
"LuaSnip": { "branch": "master", "commit": "2dbef19461198630b3d7c39f414d09fb07d1fdd2" },
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
"conform.nvim": { "branch": "master", "commit": "c0e0e80f0c233cb3a249f719a44324c660163a3f" },
"LuaSnip": { "branch": "master", "commit": "ce0a05ab4e2839e1c48d072c5236cce846a387bc" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"conform.nvim": { "branch": "master", "commit": "25d48271e3d4404ba017cb92a37d3a681c1ad149" },
"darcula": { "branch": "master", "commit": "faf8dbab27bee0f27e4f1c3ca7e9695af9b1242b" },
"fidget.nvim": { "branch": "main", "commit": "1d1042d418ee8cb70d68f1e38db639844331c093" },
"gitsigns.nvim": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" },
"gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" },
"fidget.nvim": { "branch": "main", "commit": "d855eed8a06531a7e8fd0684889b2943f373c469" },
"gitsigns.nvim": { "branch": "main", "commit": "f074844b60f9e151970fbcdbeb8a2cd52b6ef25a" },
"gruvbox-material": { "branch": "master", "commit": "91f8170a31ae6e31670629cd339df297dbd5fd5f" },
"harpoon": { "branch": "master", "commit": "ccae1b9bec717ae284906b0bf83d720e59d12b91" },
"indent-blankline.nvim": { "branch": "master", "commit": "12e92044d313c54c438bd786d11684c88f6f78cd" },
"kanagawa.nvim": { "branch": "master", "commit": "c19b9023842697ec92caf72cd3599f7dd7be4456" },
"lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" },
"indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
"kanagawa.nvim": { "branch": "master", "commit": "e5f7b8a804360f0a48e40d0083a97193ee4fcc87" },
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
"lsp-inlayhints.nvim": { "branch": "main", "commit": "d981f65c9ae0b6062176f0accb9c151daeda6f16" },
"lsp-zero.nvim": { "branch": "v3.x", "commit": "e14aa165d820fc8943704c273e27fbce4a96b29f" },
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
"lualine.nvim": { "branch": "master", "commit": "7d131a8d3ba5016229e8a1d08bf8782acea98852" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "2b3d247fce06f53934174f5dfe0362c42d65c00c" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "3614a39aae98ccd34124b072939d6283853b3dd2" },
"mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "e578fe7a5832421b0d2c5b3c0a7a1e40e0f6a47a" },
"nui.nvim": { "branch": "main", "commit": "35da9ca1de0fc4dda96c2e214d93d363c145f418" },
"nvim-autopairs": { "branch": "master", "commit": "096d0baecc34f6c5d8a6dd25851e9d5ad338209b" },
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
"nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" },
"nvim-dap": { "branch": "master", "commit": "9adbfdca13afbe646d09a8d7a86d5d031fb9c5a5" },
"nvim-dap-ui": { "branch": "master", "commit": "d845ebd798ad1cf30aa4abd4c4eff795cdcfdd4f" },
"nvim-lspconfig": { "branch": "master", "commit": "9a6279953c82d01b58825a46ede032ab246a5983" },
"lsp-zero.nvim": { "branch": "v3.x", "commit": "56db3d5ce5476b183783160e6045f7337ba12b83" },
"lspkind.nvim": { "branch": "master", "commit": "cff4ae321a91ee3473a92ea1a8c637e3a9510aec" },
"lualine.nvim": { "branch": "master", "commit": "544dd1583f9bb27b393f598475c89809c4d5e86b" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "ba9c2f0b93deb48d0a99ae0e8d8dd36f7cc286d6" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4ba55f9755ebe8297d92c419b90a946123292ae6" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "29f7c215332ba95e470811c380ddbce2cebe2af4" },
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
"nvim-autopairs": { "branch": "master", "commit": "e38c5d837e755ce186ae51d2c48e1b387c4425c6" },
"nvim-cmp": { "branch": "main", "commit": "d818fd0624205b34e14888358037fb6f5dc51234" },
"nvim-colorizer.lua": { "branch": "master", "commit": "194ec600488f7c7229668d0e80bd197f3a2b84ff" },
"nvim-dap": { "branch": "master", "commit": "bc03b83c94d0375145ff5ac6a6dcf28c1241e06f" },
"nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" },
"nvim-lspconfig": { "branch": "master", "commit": "f95d371c1a274f60392edfd8ea5121b42dca736e" },
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" },
"nvim-spectre": { "branch": "master", "commit": "d1ce28b6dc287a6f673461218f3326f0266d75f7" },
"nvim-treesitter": { "branch": "master", "commit": "1cda98132abfde758c1778096960f9b2c0bd78c1" },
"nvim-web-devicons": { "branch": "master", "commit": "aaec87dbdaa776bfa0a13c8694bec9bcb7454719" },
"onedark.nvim": { "branch": "master", "commit": "1230aaf2a427b2c5b73aba6e4a9a5881d3e69429" },
"plenary.nvim": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" },
"telescope-file-browser.nvim": { "branch": "master", "commit": "6dd6522bc1a4cbe5883eb0272f5cc7a54ae3858b" },
"telescope-zf-native.nvim": { "branch": "master", "commit": "beb34b6c48154ec117930180f257a5592606d48f" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-spectre": { "branch": "master", "commit": "9a28f926d3371b7ef02243cbbb653a0478d06e31" },
"nvim-treesitter": { "branch": "master", "commit": "e265fec94c7dc0c8c64cb86820ff5ad3ee135c7d" },
"nvim-web-devicons": { "branch": "master", "commit": "e612de3d3a41a6b7be47f51e956dddabcbf419d9" },
"onedark.nvim": { "branch": "master", "commit": "fae34f7c635797f4bf62fb00e7d0516efa8abe37" },
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
"telescope-file-browser.nvim": { "branch": "master", "commit": "8574946bf6d0d820d7f600f3db808f5900a2ae23" },
"telescope-zf-native.nvim": { "branch": "master", "commit": "9c23e2fce1c0c7445f68f7765e5f3e512920184b" },
"telescope.nvim": { "branch": "master", "commit": "7011eaae0ac1afe036e30c95cf80200b8dc3f21a" },
"todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" },
"tokyonight.nvim": { "branch": "main", "commit": "610179f7f12db3d08540b6cc61434db2eaecbcff" },
"vim-commentary": { "branch": "master", "commit": "f67e3e67ea516755005e6cccb178bc8439c6d402" },
"vim-fugitive": { "branch": "master", "commit": "e7bf502a6ae492f42a91d231864e25630286319b" },
"todo-comments.nvim": { "branch": "main", "commit": "8f45f353dc3649cb9b44cecda96827ea88128584" },
"tokyonight.nvim": { "branch": "main", "commit": "b0e7c7382a7e8f6456f2a95655983993ffda745e" },
"vim-commentary": { "branch": "master", "commit": "c4b8f52cbb7142ec239494e5a2c4a512f92c4d07" },
"vim-fugitive": { "branch": "master", "commit": "0444df68cd1cdabc7453d6bd84099458327e5513" },
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
"vscode.nvim": { "branch": "main", "commit": "380c1068612b1bfbe35d70a4f2e58be5030a0707" }
}
"vscode.nvim": { "branch": "main", "commit": "3ba16d763097cecc75eb93761f4a981467acfc23" }
}
31 changes: 21 additions & 10 deletions lua/wangleng/lazy.lua
Original file line number Diff line number Diff line change
@@ -1,17 +1,28 @@
----- BOOTSTRAP LAZY.NVIM -----
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
if not (vim.uv or vim.loop).fs_stat(lazypath) then
print("Bootstrapping lazy.nvim")
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)

----- SETUP -----
require("lazy").setup("wangleng.plugins")
require("lazy").setup({
spec = {
{ import = "wangleng.plugins" },
},
rocks = {
enabled = false,
}
})
6 changes: 3 additions & 3 deletions lua/wangleng/plugins/colorscheme.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ local colorSchemePriority = 1000

return {
{
'morhetz/gruvbox',
'sainnhe/gruvbox-material',
priority = colorSchemePriority,
lazy = false,
config = function()
-- vim.cmd('colorscheme gruvbox')
vim.cmd('colorscheme gruvbox-material')
end
},
{
Expand Down Expand Up @@ -40,7 +40,7 @@ return {
priority = colorSchemePriority,
lazy = false,
config = function()
vim.cmd('colorscheme kanagawa')
-- vim.cmd('colorscheme kanagawa')
end
},
{
Expand Down
2 changes: 1 addition & 1 deletion lua/wangleng/plugins/debugger.lua
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ return {
-- dap: user interface
{
'rcarriga/nvim-dap-ui',
dependencies = { 'mfussenegger/nvim-dap' },
dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" },
config = function()
local dap = require('dap')
local dapui = require('dapui')
Expand Down
54 changes: 37 additions & 17 deletions lua/wangleng/plugins/lsp.lua
Original file line number Diff line number Diff line change
Expand Up @@ -188,24 +188,45 @@ return {
{
'stevearc/conform.nvim',
config = function()
-- second layer nesting is an either-or
-- e.g. formatter = { "eslint", { "prettierd", "prettier" }}
-- means: eslint AND (prettierd OR prettier)
local prettier = { "prettierd", "prettier" }
local eslint = "eslint_d"
local web_formatters = { eslint, prettier }
---Selects the first available formatter.
---
---@param bufnr integer
---@param ... string
---@return string
local function first(bufnr, ...)
local conform = require("conform")
for i = 1, select("#", ...) do
local formatter = select(i, ...)
if conform.get_formatter_info(formatter, bufnr).available then
return formatter
end
end
return select(1, ...)
end

local function select_prettier(bufnr)
return first(bufnr, "prettierd", "prettier")
end

local function use_prettier(bufnr)
return { select_prettier(bufnr) }
end

local function use_web_formatters(bufnr)
return { "eslint_d", select_prettier(bufnr) }
end

require("conform").setup({
formatters_by_ft = {
javascript = web_formatters,
javascriptreact = web_formatters,
typescript = web_formatters,
typescriptreact = web_formatters,
html = { prettier },
vue = web_formatters,
svelte = web_formatters,
json = { prettier },
css = web_formatters,
javascript = use_web_formatters,
javascriptreact = use_web_formatters,
typescript = use_web_formatters,
typescriptreact = use_web_formatters,
html = use_prettier,
vue = use_web_formatters,
svelte = use_web_formatters,
json = use_prettier,
css = use_web_formatters,
},
})

Expand All @@ -218,7 +239,7 @@ return {
-- so that we don't have to manually set it up
-- for other languages like rust, go, etc...
-- which already know how to format
lsp_fallback = true,
lsp_format = 'fallback',
})
end,
})
Expand Down Expand Up @@ -271,4 +292,3 @@ return {
}
},
}

12 changes: 10 additions & 2 deletions lua/wangleng/plugins/treesitter.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ return {
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
local is_win32 = vim.fn.has('win32') == 1

if is_win32 then
-- on Windows, it is a pain to set up clang properly
require("nvim-treesitter.install").compilers = { "zig" }
end

local configs = require("nvim-treesitter.configs")

configs.setup({
Expand All @@ -19,7 +26,9 @@ return {
"zig",
},
-- install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- zig can only install synchronously, async install somehow have problems
-- (and since Windows is using zig, have to disable async install, which is the default)
sync_install = is_win32,
-- enable highlighting
highlight = { enable = true },
-- enable indent behaviour when using '=' operator
Expand All @@ -28,4 +37,3 @@ return {
end
},
}