feat(extra): add extra util.dot
that configures multiple ft and treesitter langs when needed
This commit is contained in:
62
lua/lazyvim/plugins/extras/util/dot.lua
Normal file
62
lua/lazyvim/plugins/extras/util/dot.lua
Normal file
@ -0,0 +1,62 @@
|
||||
---@type string
|
||||
local xdg_config = vim.env.XDG_CONFIG_HOME or vim.env.HOME .. "/.config"
|
||||
|
||||
---@param path string
|
||||
local function have(path)
|
||||
return vim.loop.fs_stat(xdg_config .. "/" .. path) ~= nil
|
||||
end
|
||||
|
||||
return {
|
||||
|
||||
-- Add Hyprland Parser
|
||||
{
|
||||
"luckasRanarison/tree-sitter-hypr",
|
||||
enabled = have("hypr"),
|
||||
event = "BufRead */hypr/*.conf",
|
||||
config = function()
|
||||
-- Fix ft detection for hyprland
|
||||
vim.filetype.add({
|
||||
pattern = { [".*/hypr/.*%.conf"] = "hypr" },
|
||||
})
|
||||
require("nvim-treesitter.parsers").get_parser_configs().hypr = {
|
||||
install_info = {
|
||||
url = "https://github.com/luckasRanarison/tree-sitter-hypr",
|
||||
files = { "src/parser.c" },
|
||||
branch = "master",
|
||||
},
|
||||
filetype = "hypr",
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
-- add some stuff to treesitter
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = function(_, opts)
|
||||
local function add(lang)
|
||||
if type(opts.ensure_installed) ~= "table" then
|
||||
table.insert(opts.ensure_installed, lang)
|
||||
end
|
||||
end
|
||||
|
||||
vim.filetype.add({
|
||||
extension = { rasi = "rasi" },
|
||||
pattern = {
|
||||
[".*/waybar/config"] = "jsonc",
|
||||
[".*/mako/config"] = "dosini",
|
||||
[".*/kitty/*.conf"] = "bash",
|
||||
},
|
||||
})
|
||||
|
||||
add("git_config")
|
||||
|
||||
if have("fish") then
|
||||
add("fish")
|
||||
end
|
||||
|
||||
if have("rofi") or have("wofi") then
|
||||
add("rasi")
|
||||
end
|
||||
end,
|
||||
},
|
||||
}
|
Reference in New Issue
Block a user