From 643d1bd7d8f9fafebea05dbc0f85498d08088fe3 Mon Sep 17 00:00:00 2001 From: Akianonymus Date: Thu, 15 Jul 2021 21:17:47 +0530 Subject: [PATCH] [3/4] Refactor: init: Use async | Move theme stuff to theme.lua third commit of refactor perf improvements due to async run packer sync if base16 not found this is not perfect error handling for initial run, but something handle require errors --- init.lua | 36 +++++++++++++++++++++++++----------- lua/mappings.lua | 12 +++++++++++- lua/theme.lua | 21 +++++++++++++++++++++ lua/utils.lua | 12 ------------ 4 files changed, 57 insertions(+), 24 deletions(-) create mode 100644 lua/theme.lua diff --git a/init.lua b/init.lua index 58a90da..c9df36f 100644 --- a/init.lua +++ b/init.lua @@ -1,14 +1,28 @@ --- load all plugins -require "pluginList" +-- load all options require "options" --- colorscheme related stuff -vim.g.nvchad_theme = "onedark" -local base16 = require "base16" -base16(base16.themes["onedark"], true) +-- only try to load stuff if atleast base16 is initialized +-- TODO: Find a better way to trigger PackerSync +if require "theme" then + local async + async = + vim.loop.new_async( + vim.schedule_wrap( + function() + require "pluginList" + require "plugins.bufferline" + require "highlights" + require "mappings" + require("utils").hideStuff() -require "highlights" -require "mappings" -require "plugins.bufferline" - -require("utils").hideStuff() + async:close() + end + ) + ) + async:send() +else + -- otherwise run packer sync + require "pluginList" + print("Now PackerSync will be executed, after completion, restart neovim.\n") + vim.cmd("PackerSync") +end diff --git a/lua/mappings.lua b/lua/mappings.lua index cd1cd1a..c9ae584 100644 --- a/lua/mappings.lua +++ b/lua/mappings.lua @@ -76,7 +76,17 @@ _G.s_tab_complete = function() end function _G.completions() - local npairs = require("nvim-autopairs") + local npairs + if + not pcall( + function() + npairs = require "nvim-autopairs" + end + ) + then + return + end + if vim.fn.pumvisible() == 1 then if vim.fn.complete_info()["selected"] ~= -1 then return vim.fn["compe#confirm"]("") diff --git a/lua/theme.lua b/lua/theme.lua new file mode 100644 index 0000000..8727eaf --- /dev/null +++ b/lua/theme.lua @@ -0,0 +1,21 @@ +-- colorscheme related stuff +vim.g.nvchad_theme = "onedark" + +local base16 +if + not pcall( + function() + base16 = require "base16" + end + ) + then + return false +else + base16(base16.themes["onedark"], true) + local cmd = vim.cmd + + -- load bg color before async for smooth transition + local background = require("themes/" .. vim.g.nvchad_theme).black + vim.cmd("hi Normal guibg=" .. background) + return true +end diff --git a/lua/utils.lua b/lua/utils.lua index db5dea2..a06fa07 100644 --- a/lua/utils.lua +++ b/lua/utils.lua @@ -1,17 +1,5 @@ local M = {} --- blankline config -M.blankline = function() - vim.g.indentLine_enabled = 1 - vim.g.indent_blankline_char = "▏" - - vim.g.indent_blankline_filetype_exclude = {"help", "terminal", "dashboard"} - vim.g.indent_blankline_buftype_exclude = {"terminal"} - - vim.g.indent_blankline_show_trailing_blankline_indent = false - vim.g.indent_blankline_show_first_indent_level = false -end - -- hide line numbers , statusline in specific buffers! M.hideStuff = function() vim.api.nvim_exec(