fix editorConfig indent opts not applying on certain fts #2633

This commit is contained in:
siduck 2024-01-28 21:33:38 +05:30
parent 0333185bfc
commit b2e2b15b45
4 changed files with 31 additions and 67 deletions

View file

@ -11,7 +11,7 @@ opt.showmode = false
opt.clipboard = "unnamedplus" opt.clipboard = "unnamedplus"
opt.cursorline = true opt.cursorline = true
opt.cursorlineopt = 'number' opt.cursorlineopt = "number"
-- Indenting -- Indenting
opt.expandtab = true opt.expandtab = true
@ -104,6 +104,29 @@ autocmd("BufWritePost", {
end, end,
}) })
-- user event that loads after UIEnter + only if file buf is there
vim.api.nvim_create_autocmd({ "UIEnter", "BufReadPost", "BufNewFile" }, {
group = vim.api.nvim_create_augroup("NvFilePost", { clear = true }),
callback = function(args)
local file = vim.api.nvim_buf_get_name(args.buf)
local buftype = vim.api.nvim_buf_get_option(args.buf, "buftype")
if not vim.g.ui_entered and args.event == "UIEnter" then
vim.g.ui_entered = true
end
if file ~= "" and buftype ~= "nofile" and vim.g.ui_entered then
vim.api.nvim_exec_autocmds("User", { pattern = "FilePost", modeline = false })
vim.api.nvim_del_augroup_by_name "NvFilePost"
vim.schedule(function()
vim.api.nvim_exec_autocmds("FileType", {})
require("editorconfig").config(args.buf)
end, 0)
end
end,
})
-------------------------------------- commands ------------------------------------------ -------------------------------------- commands ------------------------------------------
local new_cmd = vim.api.nvim_create_user_command local new_cmd = vim.api.nvim_create_user_command

View file

@ -7,7 +7,7 @@ M.load_config = function()
if chadrc_path then if chadrc_path then
local chadrc = dofile(chadrc_path) local chadrc = dofile(chadrc_path)
config.mappings = M.remove_disabled_keys(chadrc.mappings, config.mappings) config.mappings = M.remove_disabled_keys(chadrc.mappings, config.mappings)
config = merge_tb("force", config, chadrc) config = merge_tb("force", config, chadrc)
config.mappings.disabled = nil config.mappings.disabled = nil
@ -87,32 +87,4 @@ M.load_mappings = function(section, mapping_opt)
end) end)
end end
M.lazy_load = function(plugin)
vim.api.nvim_create_autocmd({ "BufRead", "BufWinEnter", "BufNewFile" }, {
group = vim.api.nvim_create_augroup("BeLazyOnFileOpen" .. plugin, {}),
callback = function()
local file = vim.fn.expand "%"
local condition = file ~= "NvimTree_1" and file ~= "[lazy]" and file ~= ""
if condition then
vim.api.nvim_del_augroup_by_name("BeLazyOnFileOpen" .. plugin)
-- dont defer for treesitter as it will show slow highlighting
-- This deferring only happens only when we do "nvim filename"
if plugin ~= "nvim-treesitter" then
vim.schedule(function()
require("lazy").load { plugins = plugin }
if plugin == "nvim-lspconfig" then
vim.cmd "silent! do FileType"
end
end, 0)
else
require("lazy").load { plugins = plugin }
end
end
end,
})
end
return M return M

View file

@ -4,7 +4,7 @@ local M = {}
M.on_attach = function(client, bufnr) M.on_attach = function(client, bufnr)
local utils = require "core.utils" local utils = require "core.utils"
local conf = require("nvconfig").ui.lsp local conf = require("nvconfig").ui.lsp
-- semanticTokens -- semanticTokens
if not conf.semantic_tokens and client.supports_method "textDocument/semanticTokens" then if not conf.semantic_tokens and client.supports_method "textDocument/semanticTokens" then
client.server_capabilities.semanticTokensProvider = nil client.server_capabilities.semanticTokensProvider = nil
@ -14,9 +14,6 @@ M.on_attach = function(client, bufnr)
require("nvchad.signature").setup(client, bufnr) require("nvchad.signature").setup(client, bufnr)
end end
client.server_capabilities.documentFormattingProvider = false
client.server_capabilities.documentRangeFormattingProvider = false
utils.load_mappings("lspconfig", { buffer = bufnr }) utils.load_mappings("lspconfig", { buffer = bufnr })
end end

View file

@ -23,9 +23,7 @@ local default_plugins = {
{ {
"NvChad/nvim-colorizer.lua", "NvChad/nvim-colorizer.lua",
init = function() event = "User FilePost",
require("core.utils").lazy_load "nvim-colorizer.lua"
end,
config = function(_, opts) config = function(_, opts)
require("colorizer").setup(opts) require("colorizer").setup(opts)
@ -49,9 +47,7 @@ local default_plugins = {
{ {
"lukas-reineke/indent-blankline.nvim", "lukas-reineke/indent-blankline.nvim",
init = function() event = "User FilePost",
require("core.utils").lazy_load "indent-blankline.nvim"
end,
opts = function() opts = function()
return require("plugins.configs.others").blankline return require("plugins.configs.others").blankline
end, end,
@ -67,9 +63,7 @@ local default_plugins = {
{ {
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
init = function() event = { "BufReadPost", "BufNewFile" },
require("core.utils").lazy_load "nvim-treesitter"
end,
cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSModuleInfo" }, cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSModuleInfo" },
build = ":TSUpdate", build = ":TSUpdate",
opts = function() opts = function()
@ -85,27 +79,7 @@ local default_plugins = {
-- git stuff -- git stuff
{ {
"lewis6991/gitsigns.nvim", "lewis6991/gitsigns.nvim",
ft = { "gitcommit", "diff" }, event = "User FilePost",
init = function()
-- load gitsigns only when a git file is opened
vim.api.nvim_create_autocmd({ "BufRead" }, {
group = vim.api.nvim_create_augroup("GitSignsLazyLoad", { clear = true }),
callback = function()
vim.fn.jobstart({"git", "-C", vim.loop.cwd(), "rev-parse"},
{
on_exit = function(_, return_code)
if return_code == 0 then
vim.api.nvim_del_augroup_by_name "GitSignsLazyLoad"
vim.schedule(function()
require("lazy").load { plugins = { "gitsigns.nvim" } }
end)
end
end
}
)
end,
})
end,
opts = function() opts = function()
return require("plugins.configs.others").gitsigns return require("plugins.configs.others").gitsigns
end, end,
@ -139,9 +113,7 @@ local default_plugins = {
{ {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
init = function() event = "User FilePost",
require("core.utils").lazy_load "nvim-lspconfig"
end,
config = function() config = function()
require("plugins.configs.lspconfig").defaults() require("plugins.configs.lspconfig").defaults()
end, end,