My nvim configuration
fix: treesitter
8 files changed, +130 -39
+3-0.gitignore
| @@ -6,3 +6,6 @@ debug | ||
| 6 | 6 | foo.* |
| 7 | 7 | *.log |
| 8 | 8 | data |
| 9 | + | |
| 10 | +# opensrc — vendored dependency sources (not tracked) | |
| 11 | +opensrc/ |
+33-32lazy-lock.json
| @@ -1,51 +1,52 @@ | ||
| 1 | 1 | { |
| 2 | - "auto-session": { "branch": "main", "commit": "292492ab7af4bd8b9e37e28508bc8ce995722fd5" }, | |
| 3 | - "blink.cmp": { "branch": "main", "commit": "40380e711b616a28affb0f4086a2f7de2f2a556b" }, | |
| 4 | - "bruno.nvim": { "branch": "main", "commit": "114155856d1ff76ad766efbb66fb270f20006c32" }, | |
| 2 | + "auto-session": { "branch": "main", "commit": "3e145ee9af42eb6764908a1a481f53fe7f0bdbe5" }, | |
| 3 | + "blink.cmp": { "branch": "main", "commit": "5ee69ea52492fa038b3a1cd8de55edffe205c77d" }, | |
| 4 | + "blink.lib": { "branch": "main", "commit": "2cb62890cee636fe46722d03b7b2331e54fb3755" }, | |
| 5 | + "bruno.nvim": { "branch": "main", "commit": "54bdebc62aa6ffc7906464a20d182c0a660be836" }, | |
| 5 | 6 | "crates.nvim": { "branch": "main", "commit": "afcd1cc3eeceb5783676fc8464389b9216a29d05" }, |
| 6 | 7 | "dotenv.nvim": { "branch": "main", "commit": "7d516e9293c6e3ac21830fb10a4e8674c02747c6" }, |
| 7 | 8 | "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, |
| 8 | - "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, | |
| 9 | - "gitsigns.nvim": { "branch": "main", "commit": "20ad4419564d6e22b189f6738116b38871082332" }, | |
| 10 | - "grug-far.nvim": { "branch": "main", "commit": "b58b2d65863f4ebad88b10a1ddd519e5380466e0" }, | |
| 9 | + "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, | |
| 10 | + "gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" }, | |
| 11 | + "grug-far.nvim": { "branch": "main", "commit": "5506c2f59dc9ab2ed6c233585412b24d31d51521" }, | |
| 11 | 12 | "hydra.nvim": { "branch": "main", "commit": "8c4a9f621ec7cdc30411a1f3b6d5eebb12b469dc" }, |
| 12 | - "image.nvim": { "branch": "master", "commit": "da2be65c153ba15a14a342b05591652a6df70d58" }, | |
| 13 | - "kulala.nvim": { "branch": "main", "commit": "c328aeb219c4b77106917dd2698c90ea9657281b" }, | |
| 14 | - "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, | |
| 15 | - "leetcode.nvim": { "branch": "master", "commit": "fdd3f91800b3983e27bc9fcfb99cfa7293d7f11a" }, | |
| 13 | + "image.nvim": { "branch": "master", "commit": "44e07129cd0ea0c60afa7a1991d35b5765b51a6b" }, | |
| 14 | + "kulala.nvim": { "branch": "main", "commit": "6397ad2406995d5ceb061ba04677f7a96fcfb953" }, | |
| 15 | + "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, | |
| 16 | + "leetcode.nvim": { "branch": "master", "commit": "4e8b3683940a8377379ce9398e7f329e3560b42c" }, | |
| 16 | 17 | "lsp_signature.nvim": { "branch": "master", "commit": "62cadce83aaceed677ffe7a2d6a57141af7131ea" }, |
| 17 | - "lspkind.nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" }, | |
| 18 | - "lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" }, | |
| 18 | + "lspkind.nvim": { "branch": "master", "commit": "c7274c48137396526b59d86232eabcdc7fed8a32" }, | |
| 19 | + "lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" }, | |
| 19 | 20 | "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, |
| 20 | - "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, | |
| 21 | - "mini.ai": { "branch": "main", "commit": "0d3c9cf22e37b86b7a0dfbe7ef129ee7a5f4f93c" }, | |
| 21 | + "mason.nvim": { "branch": "main", "commit": "16ba83bfc8a25f52bb545134f5bee082b195c460" }, | |
| 22 | + "mini.ai": { "branch": "main", "commit": "4ce4c35e411ea329a15d4b15e9c89c2a3089e437" }, | |
| 22 | 23 | "mini.pairs": { "branch": "main", "commit": "b7fde3719340946feb75017ef9d75edebdeb0566" }, |
| 23 | - "mini.surround": { "branch": "main", "commit": "d205d1741d1fcc1f3117b4e839bf00f74ad72fa2" }, | |
| 24 | - "none-ls-extras.nvim": { "branch": "main", "commit": "70659cc3d38151424298ab46b0f67f2251cef231" }, | |
| 25 | - "none-ls.nvim": { "branch": "main", "commit": "550197530c12b4838d685cf4e0d5eb4cca8d52c7" }, | |
| 24 | + "mini.surround": { "branch": "main", "commit": "1e37ade260e2b655c3a9b8407ba7e6b0fb995b28" }, | |
| 25 | + "none-ls-extras.nvim": { "branch": "main", "commit": "167f29529ff1438e673b1792a71aaf79ddd6c74f" }, | |
| 26 | + "none-ls.nvim": { "branch": "main", "commit": "f9d557ac7cd28a3a993b5ea49716498bd540b01f" }, | |
| 26 | 27 | "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, |
| 27 | - "nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" }, | |
| 28 | - "nvim-lspconfig": { "branch": "master", "commit": "2010fc6ec03e2da552b4886fceb2f7bc0fc2e9c0" }, | |
| 28 | + "nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" }, | |
| 29 | + "nvim-lspconfig": { "branch": "master", "commit": "9573948c38bfabeec353ae7dd7d3ffec4c506a6b" }, | |
| 29 | 30 | "nvim-navic": { "branch": "master", "commit": "f5eba192f39b453675d115351808bd51276d9de5" }, |
| 30 | - "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, | |
| 31 | - "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, | |
| 32 | - "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, | |
| 33 | - "otter.nvim": { "branch": "main", "commit": "a455e68a99d395889ab30a25ac3846a135e93c46" }, | |
| 34 | - "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, | |
| 31 | + "nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" }, | |
| 32 | + "nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" }, | |
| 33 | + "nvim-web-devicons": { "branch": "master", "commit": "dfbfaa967a6f7ec50789bead7ef87e336c1fa63c" }, | |
| 34 | + "otter.nvim": { "branch": "main", "commit": "d781eda3bc18dbc8677f9a24abdc705fb74e4428" }, | |
| 35 | + "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, | |
| 35 | 36 | "rusty": { "branch": "main", "commit": "f310310991ecd50ca10745f8960cb5b8bd2ef208" }, |
| 36 | - "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" }, | |
| 37 | + "snacks.nvim": { "branch": "main", "commit": "882c996cf28183f4d63640de0b4c02ec886d01f2" }, | |
| 37 | 38 | "telescope-changed-files": { "branch": "main", "commit": "0ccf50680abba21127c46c477f4646f2c5589767" }, |
| 38 | - "telescope-live-grep-args.nvim": { "branch": "master", "commit": "b80ec2c70ec4f32571478b501218c8979fab5201" }, | |
| 39 | - "telescope.nvim": { "branch": "master", "commit": "0294ae3eafe662c438addb8692d9c98ef73a983e" }, | |
| 40 | - "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, | |
| 39 | + "telescope-live-grep-args.nvim": { "branch": "master", "commit": "53e9df55b3651dd7cf77e172f1e8c9a17407acca" }, | |
| 40 | + "telescope.nvim": { "branch": "master", "commit": "7d324792b7943e4aa16ad007212e6acc6f9fe335" }, | |
| 41 | + "tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" }, | |
| 41 | 42 | "tree-sitter-html": { "branch": "master", "commit": "73a3947324f6efddf9e17c0ea58d454843590cc0" }, |
| 42 | - "vim-dadbod": { "branch": "master", "commit": "e95afed23712f969f83b4857a24cf9d59114c2e6" }, | |
| 43 | + "vim-dadbod": { "branch": "master", "commit": "6d1d41da4873a445c5605f2005ad2c68c99d8770" }, | |
| 43 | 44 | "vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" }, |
| 44 | - "vim-dadbod-ui": { "branch": "master", "commit": "236179fd6bdc2aabeb1326d428e6b29d41044d8e" }, | |
| 45 | + "vim-dadbod-ui": { "branch": "master", "commit": "07e92e22114cc5b1ba4938d99897d85b58e20475" }, | |
| 45 | 46 | "vim-dispatch": { "branch": "master", "commit": "a2ff28abdb2d89725192db5b8562977d392a4d3f" }, |
| 46 | 47 | "vim-easy-align": { "branch": "master", "commit": "9815a55dbcd817784458df7a18acacc6f82b1241" }, |
| 47 | - "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, | |
| 48 | + "vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" }, | |
| 48 | 49 | "vim-visual-multi": { "branch": "master", "commit": "a6975e7c1ee157615bbc80fc25e4392f71c344d4" }, |
| 49 | 50 | "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }, |
| 50 | - "yazi.nvim": { "branch": "main", "commit": "3f81faf0cf838acb312f0f0d75ac1a8ac69166ed" } | |
| 51 | + "yazi.nvim": { "branch": "main", "commit": "81097571080ce0c5ab9e0311ed8ad03ff080ef47" } | |
| 51 | 52 | } |
+70-0lsp/astro.lua
| @@ -0,0 +1,70 @@ | ||
| 1 | +---@brief | |
| 2 | +--- | |
| 3 | +--- https://github.com/withastro/language-tools/tree/main/packages/language-server | |
| 4 | +--- | |
| 5 | +--- `astro-ls` can be installed via `npm`: | |
| 6 | +--- ```sh | |
| 7 | +--- npm install -g @astrojs/language-server | |
| 8 | +--- ``` | |
| 9 | +--- | |
| 10 | +--- If typescript is installed globally, you might get the `\`typescript.tsdk\` init option is required` error. | |
| 11 | +--- You will need to manually pass the typescript SDK path. Here is an example of a Nix configuration where typescript is installed via Nix's Home-manager: | |
| 12 | +--- | |
| 13 | +--- ```nix | |
| 14 | +--- { config, pkgs, ... }: | |
| 15 | +--- | |
| 16 | +--- { | |
| 17 | +--- home.packages = with pkgs; [ | |
| 18 | +--- typescript | |
| 19 | +--- ]; | |
| 20 | +--- | |
| 21 | +--- programs.neovim = { | |
| 22 | +--- plugins = with pkgs.vimPlugins; [ | |
| 23 | +--- nvim-lspconfig | |
| 24 | +--- ]; | |
| 25 | +--- extraPackages = with pkgs; [ | |
| 26 | +--- astro-language-server | |
| 27 | +--- ]; | |
| 28 | +--- initLua = '' | |
| 29 | +--- vim.lsp.config['astro'] = { | |
| 30 | +--- init_options = { | |
| 31 | +--- typescript = { | |
| 32 | +--- tsdk = ${pkgs.typescript}/lib/node_modules/typescript/lib, | |
| 33 | +--- }, | |
| 34 | +--- }, | |
| 35 | +--- } | |
| 36 | +--- | |
| 37 | +--- vim.lsp.enable('astro') | |
| 38 | +--- | |
| 39 | +--- -- ... | |
| 40 | +--- ''; | |
| 41 | +--- }; | |
| 42 | +--- } | |
| 43 | +--- ``` | |
| 44 | +--- The path can also be passed via a variable, like `vim.g.tsdk = "${pkgs.typescript}/lib/node_modules/typescript/lib"` and then used in the Lua Neovim config. | |
| 45 | + | |
| 46 | +local util = require("lspconfig.util") | |
| 47 | + | |
| 48 | +---@type vim.lsp.Config | |
| 49 | +return { | |
| 50 | + cmd = function(dispatchers, config) | |
| 51 | + local cmd = "astro-ls" | |
| 52 | + if (config or {}).root_dir then | |
| 53 | + local local_cmd = vim.fs.joinpath(config.root_dir, "node_modules/.bin", cmd) | |
| 54 | + if vim.fn.executable(local_cmd) == 1 then | |
| 55 | + cmd = local_cmd | |
| 56 | + end | |
| 57 | + end | |
| 58 | + return vim.lsp.rpc.start({ cmd, "--stdio" }, dispatchers) | |
| 59 | + end, | |
| 60 | + filetypes = { "astro" }, | |
| 61 | + root_markers = { "package.json", "tsconfig.json", "jsconfig.json", ".git" }, | |
| 62 | + init_options = { | |
| 63 | + typescript = {}, | |
| 64 | + }, | |
| 65 | + before_init = function(_, config) | |
| 66 | + if config.init_options and config.init_options.typescript and not config.init_options.typescript.tsdk then | |
| 67 | + config.init_options.typescript.tsdk = util.get_typescript_server_path(config.root_dir) | |
| 68 | + end | |
| 69 | + end, | |
| 70 | +} |
+0-0lsp/aws-yml.lua → lsp/aws-yml.backup
No content changes (mode or rename only).
+14-2lua/commands.lua
| @@ -16,6 +16,18 @@ vim.api.nvim_create_user_command("DBUITab", function(_) | ||
| 16 | 16 | vim.cmd("DBUI") |
| 17 | 17 | end, { desc = "Open new tab in /tmp/sql with DBUI" }) |
| 18 | 18 | |
| 19 | +--- New buffer for given file type | |
| 20 | +vim.api.nvim_create_user_command("Enew", function(opts) | |
| 21 | + vim.cmd("enew") | |
| 22 | + vim.bo.filetype = opts.args | |
| 23 | +end, { | |
| 24 | + desc = "New buffer for file type", | |
| 25 | + nargs = 1, | |
| 26 | + complete = function(arglead) | |
| 27 | + return vim.fn.getcompletion(arglead, "filetype") | |
| 28 | + end, | |
| 29 | +}) | |
| 30 | + | |
| 19 | 31 | -- ########################################################################## -- |
| 20 | 32 | -- -Scratch |
| 21 | 33 | -- ########################################################################## -- |
| @@ -65,10 +77,10 @@ vim.api.nvim_create_autocmd("BufEnter", { | ||
| 65 | 77 | |
| 66 | 78 | vim.api.nvim_create_autocmd("BufEnter", { |
| 67 | 79 | pattern = "*.zsh", |
| 68 | - callback = function () | |
| 80 | + callback = function() | |
| 69 | 81 | vim.bo.filetype = "sh" |
| 70 | 82 | vim.bo.syntax = "sh" |
| 71 | - end | |
| 83 | + end, | |
| 72 | 84 | }) |
| 73 | 85 | |
| 74 | 86 | -- ########################################################################## -- |
+3-1lua/plugins.lua
| @@ -11,8 +11,10 @@ local plugins = { | ||
| 11 | 11 | backend = "sixel", |
| 12 | 12 | processor = "magick_cli", |
| 13 | 13 | integrations = { |
| 14 | + -- Disabled: sixel rendering under tmux throws on every cursor move | |
| 15 | + -- through a markdown file. Use :MarkdownPreview for rendered READMEs. | |
| 14 | 16 | markdown = { |
| 15 | - enabled = true, | |
| 17 | + enabled = false, | |
| 16 | 18 | only_render_image_at_cursor = true, |
| 17 | 19 | only_render_image_at_cursor_mode = "popup", |
| 18 | 20 | }, |
+4-1lua/plugins/blink.lua
| @@ -42,11 +42,14 @@ return { | ||
| 42 | 42 | "saghen/blink.cmp", |
| 43 | 43 | dependencies = { |
| 44 | 44 | "rafamadriz/friendly-snippets", |
| 45 | + "saghen/blink.lib", | |
| 45 | 46 | -- "tamago324/nlsp-settings.nvim", |
| 46 | 47 | { "onsails/lspkind.nvim", config = lspkind_config }, |
| 47 | 48 | "kristijanhusak/vim-dadbod-completion", |
| 48 | 49 | }, |
| 49 | - build = "cargo build --release", | |
| 50 | + build = function() | |
| 51 | + require("blink.cmp").build():pwait() | |
| 52 | + end, | |
| 50 | 53 | opts = { |
| 51 | 54 | enabled = function() |
| 52 | 55 | return vim.g.blink_cmp_enabled ~= false |
+3-3lua/plugins/treesitter.lua
| @@ -1,12 +1,12 @@ | ||
| 1 | 1 | ---@type LazySpec |
| 2 | 2 | return { |
| 3 | 3 | "nvim-treesitter/nvim-treesitter", |
| 4 | - branch = 'master', | |
| 4 | + branch = 'main', | |
| 5 | 5 | lazy = false, |
| 6 | 6 | build = ":TSUpdate", |
| 7 | 7 | config = function() |
| 8 | - require("nvim-treesitter.configs").setup({ | |
| 9 | - ensure_installed = { "c", "lua", "vim", "vimdoc", "json", "python", "rust", "typescript", "markdown", "bash", "http" }, | |
| 8 | + require("nvim-treesitter.config").setup({ | |
| 9 | + ensure_installed = { "c", "lua", "vim", "vimdoc", "json", "python", "rust", "typescript", "markdown", "bash", "http", "astro" }, | |
| 10 | 10 | highlight = { |
| 11 | 11 | enable = true |
| 12 | 12 | }, |