- commit
- eaba55e
- parent
- e068476
- author
- Eric Bower
- date
- 2025-08-15 10:10:12 -0400 EDT
chore(nvim): reorg treesitter code
1 files changed,
+67,
-66
+67,
-66
1@@ -29,16 +29,21 @@ o.smartcase = true
2 o.swapfile = false
3 vim.g.mapleader = ","
4 vim.g.maplocalleader = ","
5+vim.diagnostic.config({
6+ severity_sort = true,
7+})
8
9 local opts = { silent = true }
10 local map = vim.keymap.set
11+map("t", "<Esc>", [[<C-\><C-n>]], opts) -- exit terminal mode
12 map("n", "<leader>t", ":bd<CR>", opts)
13 map("n", "Q", "<nop>", opts) -- disable "Q"
14-map("t", "<Esc>", [[<C-\><C-n>]], opts) -- exit terminal mode
15 map("n", "<C-k>", ":wincmd k<CR>", opts) -- navigate splits
16 map("n", "<C-j>", ":wincmd j<CR>", opts)
17 map("n", "<C-h>", ":wincmd h<CR>", opts)
18 map("n", "<C-l>", ":wincmd l<CR>", opts)
19+map("n", "<leader>e", vim.diagnostic.open_float, opts)
20+map("n", "<leader>q", vim.diagnostic.setloclist, opts)
21 map({ "n", "v" }, "<leader>gy", "<cmd>GitLink<cr>", opts)
22 -- https://github.com/shell-pool/shpool/issues/71#issuecomment-2632396805
23 map({ "n", "v", "i", "t" }, "<C-space><C-d>", function()
24@@ -58,12 +63,6 @@ autocmd("Filetype", { group = augroup, pattern = { "make" }, command = makewrap
25 autocmd("Filetype", { group = augroup, pattern = { "markdown" }, command = mdwrap })
26
27 local function setup_lsp()
28- vim.diagnostic.config({
29- severity_sort = true,
30- })
31- map("n", "<leader>e", vim.diagnostic.open_float, opts)
32- map("n", "<leader>q", vim.diagnostic.setloclist, opts)
33-
34 vim.lsp.enable({
35 "cssls", -- npm i -g vscode-langservers-extracted
36 "gopls",
37@@ -110,6 +109,65 @@ local function setup_fzf()
38 fzf.setup({ "max-perf" })
39 end
40
41+local function setup_treesitter()
42+ local ts_parsers = {
43+ "bash",
44+ "c",
45+ "dockerfile",
46+ "fish",
47+ "git_config",
48+ "git_rebase",
49+ "gitattributes",
50+ "gitcommit",
51+ "gitignore",
52+ "go",
53+ "gomod",
54+ "gosum",
55+ "html",
56+ "javascript",
57+ "json",
58+ "lua",
59+ "make",
60+ "markdown",
61+ "python",
62+ "rust",
63+ "sql",
64+ "toml",
65+ "tsx",
66+ "typescript",
67+ "typst",
68+ "vim",
69+ "yaml",
70+ "zig",
71+ }
72+ local nts = require("nvim-treesitter")
73+ nts.install(ts_parsers)
74+ autocmd("PackChanged", { -- update treesitter parsers/queries with plugin updates
75+ group = augroup,
76+ callback = function(args)
77+ local spec = args.data.spec
78+ if spec and spec.name == "nvim-treesitter" and args.data.kind == "update" then
79+ vim.schedule(function()
80+ nts.update()
81+ end)
82+ end
83+ end,
84+ })
85+ autocmd("FileType", { -- enable treesitter highlighting and indents
86+ group = augroup,
87+ callback = function(args)
88+ local filetype = args.match
89+ local lang = vim.treesitter.language.get_lang(filetype)
90+ if vim.treesitter.language.add(lang) then
91+ if vim.treesitter.query.get(filetype, "indents") then
92+ vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
93+ end
94+ vim.treesitter.start()
95+ end
96+ end,
97+ })
98+end
99+
100 vim.pack.add({
101 "https://github.com/Mofiqul/dracula.nvim",
102 { src = "https://github.com/nvim-treesitter/nvim-treesitter", version = "main" },
103@@ -120,71 +178,14 @@ vim.pack.add({
104 "https://github.com/linrongbin16/gitlinker.nvim",
105 "https://github.com/tpope/vim-fugitive",
106 })
107+
108 require("dracula").setup()
109 vim.cmd([[colorscheme dracula]])
110-
111-local ts_parsers = {
112- "bash",
113- "c",
114- "dockerfile",
115- "fish",
116- "git_config",
117- "git_rebase",
118- "gitattributes",
119- "gitcommit",
120- "gitignore",
121- "go",
122- "gomod",
123- "gosum",
124- "html",
125- "javascript",
126- "json",
127- "lua",
128- "make",
129- "markdown",
130- "python",
131- "rust",
132- "sql",
133- "toml",
134- "tsx",
135- "typescript",
136- "typst",
137- "vim",
138- "yaml",
139- "zig",
140-}
141-local nts = require("nvim-treesitter")
142-nts.install(ts_parsers)
143-autocmd("PackChanged", { -- update treesitter parsers/queries with plugin updates
144- group = augroup,
145- callback = function(args)
146- local spec = args.data.spec
147- if spec and spec.name == "nvim-treesitter" and args.data.kind == "update" then
148- vim.schedule(function()
149- nts.update()
150- end)
151- end
152- end,
153-})
154-autocmd("FileType", { -- enable treesitter highlighting and indents
155- group = augroup,
156- callback = function(args)
157- local filetype = args.match
158- local lang = vim.treesitter.language.get_lang(filetype)
159- if vim.treesitter.language.add(lang) then
160- if vim.treesitter.query.get(filetype, "indents") then
161- vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
162- end
163- vim.treesitter.start()
164- end
165- end,
166-})
167-
168+setup_treesitter()
169 setup_lsp()
170 setup_fzf()
171 require("neoscroll").setup({ duration_multiplier = 0.4 })
172 require("gitlinker").setup()
173-
174 require("treesitter-context").setup({
175 max_lines = 3,
176 multiline_threshold = 1,