From 1ff3a82855bf9cf02dc8c3ee6dbcfe7dc017df21 Mon Sep 17 00:00:00 2001 From: long Date: Tue, 17 Jun 2025 14:23:20 -0500 Subject: [PATCH] added custom htmldjango treesitter parser to repo --- lua/plugins/config.lua | 39 ++++++++++++++++++++++++++++++++++++--- parsers/htmldjango.so | Bin 0 -> 40464 bytes 2 files changed, 36 insertions(+), 3 deletions(-) create mode 100755 parsers/htmldjango.so diff --git a/lua/plugins/config.lua b/lua/plugins/config.lua index 6a4c713..d0f6abc 100644 --- a/lua/plugins/config.lua +++ b/lua/plugins/config.lua @@ -286,8 +286,41 @@ function M.nvim_treesitter() return vim.api.nvim_buf_line_count(bufnr) > 5000 end - require("nvim-treesitter.configs").setup({ - ensure_installed = { + local ts_config = require("nvim-treesitter.configs") + + local function install_htmldjango() + local parser_dir = ts_config.get_parser_install_dir() + + if parser_dir == nil then + print("parser_dir is nil") + return + end + + if vim.fn.isdirectory(parser_dir) == 0 then + print("parser_dir is not a directory") + return + end + + local src = vim.fs.joinpath(vim.fn.stdpath("config"), "parsers", "htmldjango.so") + local dst = vim.fs.joinpath(parser_dir, "htmldjango.so") + + if vim.fn.filereadable(src) == 0 then + print("htmldjango.so source does not exist") + return + end + + if vim.fn.filereadable(dst) == 1 then + print("htmldjango.so is already installed") + return + end + + vim.fn.filecopy(src, dst) + end + + install_htmldjango() + + ts_config.setup({ + auto_install = { "python", "html", @@ -309,6 +342,7 @@ function M.nvim_treesitter() "templ", "go", "rust", + "markdown", }, highlight = { enable = true, @@ -548,7 +582,6 @@ function M.lsp_zero() lsp.setup() - vim.lsp.log.error("SETTING UP LSP") vim.lsp.enable("angular-language-server") end diff --git a/parsers/htmldjango.so b/parsers/htmldjango.so new file mode 100755 index 0000000000000000000000000000000000000000..221cc7d460dd7dff087a3817bc231367901ec6b8 GIT binary patch literal 40464 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 axoy|Ym47Lv>GG4Way|H2V1vn%H2(+vfTOnn literal 0 HcmV?d00001