neovim configuration using rocks.nvim plugin manager
1require("rocks-setup")
2vim.g.rocks_nvim.experimental_features = {
3 "ext_module_dependency_stubs",
4}
5if vim.fn.has('mac') == 1 then
6 vim.g.rocks_nvim.luarocks_config = {
7 arch = "macosx-aarch64",
8 variables = {
9 LUA_DIR = "/nix/store/8438aynxm813i6ksassvgq8bb40f8fln-lua-5.1.5-env",
10 LUA_INCDIR = "/nix/store/8438aynxm813i6ksassvgq8bb40f8fln-lua-5.1.5-env/include",
11 },
12 }
13end
14require("core.keymaps")
15require("core.abbrevs")
16require("core.options")
17require("core.autocmds")
18require("core.commands")
19require("core.highlights")
20require("core.ui.statusline")
21require("core.lsp")
22
23require("utils.format").setup()
24
25require("utils").load_local_parser("norg", "norg")
26
27local query = require("vim.treesitter.query")
28local html_script_type_languages = {
29 ["importmap"] = "json",
30 ["module"] = "javascript",
31 ["application/ecmascript"] = "javascript",
32 ["text/ecmascript"] = "javascript",
33}
34
35---@param match (TSNode|nil)[]
36---@param _ string
37---@param bufnr integer
38---@param pred string[]
39---@return boolean|nil
40query.add_directive("set-lang-from-mimetype!", function(match, _, bufnr, pred, metadata)
41 local capture_id = pred[2]
42 local node = match[capture_id]
43 if not node then
44 return
45 end
46 local type_attr_value = vim.treesitter.get_node_text(node, bufnr)
47 local configured = html_script_type_languages[type_attr_value]
48 if configured then
49 metadata["injection.language"] = configured
50 else
51 local parts = vim.split(type_attr_value, "/", {})
52 metadata["injection.language"] = parts[#parts]
53 end
54end, { force = true, all = false })