repos / dotfiles

my dotfiles

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
M dot_config/nvim/init.lua
+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,