neovim-config/lua/default_config.lua
Akianonymus 9ffddb6b52 Restructure config | Move some to a packer plugin | Lot of cleanup
* move teleacope files, updater and related utils to
  https://github.com/NvChad/core

* restructure config file and directory structure

* expose mappings for better escape

* allow multiple mappings for some

* improve merge table function for the same

* move autocommands to a seperate file

* rearrange everything alphabetically where sanely possible

* rearrange packer plugin list on the basis of trigerred state

config structure now

 .
├──  init.lua
├──  LICENSE
├──  lua
│  ├──  chadrc.lua
│  ├──  colors
│  │  ├──  highlights.lua
│  │  ├──  init.lua
│  │  └──  themes
│  │     ├──  chadracula.lua
│  │     ├──  everforest.lua
│  │     ├──  gruvchad.lua
│  │     ├──  javacafe.lua
│  │     ├──  mountain.lua
│  │     ├──  norchad.lua
│  │     ├──  one-light.lua
│  │     ├──  onedark.lua
│  │     ├──  tokyonight.lua
│  │     └──  tomorrow-night.lua
│  ├──  core
│  │  ├──  autocmds.lua
│  │  ├──  init.lua
│  │  ├──  mappings.lua
│  │  ├──  options.lua
│  │  └──  utils.lua
│  ├──  default_config.lua
│  └──  plugins
│     ├──  configs
│     │  ├──  autopairs.lua
│     │  ├──  autosave.lua
│     │  ├──  bufferline.lua
│     │  ├──  chadsheet.lua
│     │  ├──  compe.lua
│     │  ├──  dashboard.lua
│     │  ├──  gitsigns.lua
│     │  ├──  icons.lua
│     │  ├──  lspconfig.lua
│     │  ├──  luasnip.lua
│     │  ├──  nvimtree.lua
│     │  ├──  others.lua
│     │  ├──  statusline.lua
│     │  ├──  telescope.lua
│     │  ├──  treesitter.lua
│     │  └──  zenmode.lua
│     ├──  init.lua
│     └──  packerInit.lua
└──  README.md
2021-08-22 17:54:10 +05:30

193 lines
6.2 KiB
Lua

-- IMPORTANT NOTE : This is default config, so dont change anything here. (check chadrc.lua instead)
local M = {}
M.ui = {
italic_comments = false,
-- theme to be used, to see all available themes, open the theme switcher by <leader> + th
theme = "onedark",
-- theme toggler, toggle between two themes, see theme_toggleer mappings
theme_toggler = {
enabled = false,
fav_themes = {
"onedark",
"gruvchad",
},
},
-- Enable this only if your terminal has the colorscheme set which nvchad uses
-- For Ex : if you have onedark set in nvchad , set onedark's bg color on your terminal
transparency = false,
-- plugin related ui options
plugin = {
-- statusline related options
statusline = {
-- these are filetypes, not pattern matched
-- if a filetype is present in shown, it will always show the statusline, irrespective of filetypes in hidden
hidden = {
"NvimTree",
"terminal",
},
shown = {},
-- default, round , slant , block , arrow
style = "default",
},
},
}
M.options = {
clipboard = "unnamedplus",
cmdheight = 1,
expandtab = true,
hidden = true,
ignorecase = true,
insert_nav = true, -- navigation in insertmode
mapleader = " ",
mouse = "a",
number = true,
-- relative numbers in normal mode tool at the bottom of options.lua
numberwidth = 2,
permanent_undo = true,
shiftwidth = 2,
smartindent = true,
timeoutlen = 400,
relativenumber = false,
ruler = false,
updatetime = 250,
-- used for updater
update_url = "https://github.com/NvChad/NvChad",
update_branch = "main",
-- these are plugin related options
plugin = {
autosave = false, -- autosave on changed text or insert mode leave
-- timeout to be used for using escape with a key combination, see mappings.plugin.better_escape
esc_insertmode_timeout = 300,
},
}
-- enable and disable plugins (false for disable)
M.plugin_status = {
autosave = true, -- to autosave files
blankline = true, -- beautified blank lines
bufferline = true, -- buffer shown as tabs
cheatsheet = true, -- fuzzy search your commands/keymappings
colorizer = true,
comment = true, -- universal commentor
dashboard = true, -- a nice looking dashboard
esc_insertmode = true, -- escape from insert mode using custom keys
galaxyline = true, -- statusline
gitsigns = true, -- gitsigns in statusline
lspkind = true, -- lsp enhancements
lspsignature = true, -- lsp enhancements
neoformat = true, -- universal formatter
neoscroll = true, -- smooth scroll
telescope_media = true, -- see media files in telescope picker
truezen = true, -- no distraction mode for nvim
vim_fugitive = true, -- git in nvim
vim_matchup = true, -- % magic, match it but improved
}
-- make sure you dont use same keys twice
M.mappings = {
-- close current focused buffer
close_buffer = "<leader>x",
copy_whole_file = "<C-a>", -- copy all contents of the current buffer
-- navigation in insert mode, only if enabled in options
insert_nav = {
backward = "<C-h>",
end_of_line = "<C-e>",
forward = "<C-l>",
next_line = "<C-k>",
prev_line = "<C-j>",
top_of_line = "<C-a>",
},
line_number_toggle = "<leader>n", -- show or hide line number
new_buffer = "<S-t>", -- open a new buffer
new_tab = "<C-t>b", -- open a new vim tab
save_file = "<C-s>", -- save file using :w
theme_toggler = "<leader>tt", -- for theme toggler, see in ui.theme_toggler
-- terminal related mappings
terminal = {
-- multiple mappings can be given for esc_termmode and esc_hide_termmode
-- get out of terminal mode
esc_termmode = { "jk" }, -- multiple mappings allowed
-- get out of terminal mode and hide it
-- it does not close it, see pick_term mapping to see hidden terminals
esc_hide_termmode = { "JK" }, -- multiple mappings allowed
-- show hidden terminal buffers in a telescope picker
pick_term = "<leader>W",
-- below three are for spawning terminals
new_horizontal = "<leader>h",
new_vertical = "<leader>v",
new_window = "<leader>w",
},
-- update nvchad from nvchad, chadness 101
update_nvchad = "<leader>uu",
-- all plugins related mappings
-- to get short info about a plugin, see the respective string in plugin_status, if not present, then info here
plugin = {
bufferline = {
next_buffer = "<TAB>", -- next buffer
prev_buffer = "<S-Tab>", -- previous buffer
},
chadsheet = {
default_keys = "<leader>dk",
user_keys = "<leader>uk",
},
comment = {
toggle = "<leader>/", -- trigger comment on a single/selected lines/number prefix
},
dashboard = {
bookmarks = "<leader>bm",
new_file = "<leader>fn", -- basically create a new buffer
open = "<leader>db", -- open dashboard
session_load = "<leader>l", -- load a saved session
session_save = "<leader>s", -- save a session
},
-- note: this is an edditional mapping to escape, escape key will still work
better_escape = {
esc_insertmode = { "jk" }, -- multiple mappings allowed
},
nvimtree = {
toggle = "<C-n>", -- file manager
},
neoformat = {
format = "<leader>fm",
},
telescope = {
buffers = "<leader>fb",
find_files = "<leader>ff",
git_commits = "<leader>cm",
git_status = "<leader>gt",
help_tags = "<leader>fh",
live_grep = "<leader>fw",
oldfiles = "<leader>fo",
themes = "<leader>th",
},
telescope_media = {
media_files = "<leader>fp",
},
truezen = { -- distraction free modes mapping, hide statusline, tabline, line numbers
ataraxis_mode = "<leader>zz", -- center
focus_mode = "<leader>zf",
minimalistic_mode = "<leader>zm", -- as it is
},
vim_fugitive = {
diff_get_2 = "<leader>gh",
diff_get_3 = "<leader>gl",
git = "<leader>gs",
git_blame = "<leader>gb",
},
},
}
return M