diff options
-rw-r--r-- | init.lua | 1 | ||||
-rw-r--r-- | lazy-lock.json | 11 | ||||
-rw-r--r-- | lua/plugins/init.lua | 40 | ||||
-rw-r--r-- | lua/plugins/maps.lua | 36 | ||||
-rw-r--r-- | lua/plugins/opts/lualine.lua | 16 | ||||
-rw-r--r-- | lua/plugins/opts/misc.lua | 19 | ||||
-rw-r--r-- | lua/plugins/opts/treesitter.lua | 24 |
7 files changed, 147 insertions, 0 deletions
@@ -1,2 +1,3 @@ require "core" require "pacman" +require "plugins" diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 0000000..f2f937b --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,11 @@ +{ + "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, + "gitsigns.nvim": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" }, + "lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" }, + "lualine.nvim": { "branch": "master", "commit": "7d131a8d3ba5016229e8a1d08bf8782acea98852" }, + "nvim-treesitter": { "branch": "master", "commit": "62b0bb4f24ad09f535efe44cc9d088f90dcd2498" }, + "nvim-web-devicons": { "branch": "master", "commit": "0bb67ef952ea3eb7b1bac9c011281471d99a27bc" }, + "tokyodark.nvim": { "branch": "master", "commit": "fe5847e379b3d1c52896fa69ff8faf20cde483cc" }, + "vim-fugitive": { "branch": "master", "commit": "2e88f14a585c014691904ba8fe39e6ea851c9422" }, + "vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" } +}
\ No newline at end of file diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua new file mode 100644 index 0000000..59da877 --- /dev/null +++ b/lua/plugins/init.lua @@ -0,0 +1,40 @@ +require("lazy").setup({ + "tpope/vim-fugitive", + "tpope/vim-sleuth", + { "numToStr/Comment.nvim", opts = {} }, + + { + "lewis6991/gitsigns.nvim", + opts = require("plugins.opts.misc").gitsigns, + }, + + { + "nvim-lualine/lualine.nvim", + dependencies = { 'nvim-tree/nvim-web-devicons' }, + + opts = require "plugins.opts.lualine", + }, + + { + "tiagovla/tokyodark.nvim", + lazy = false, + + opts = { transparent_background = true }, + config = function(_, opts) + require("tokyodark").setup(opts) + vim.cmd.colorscheme "tokyodark" + end, + }, + + { + "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", + event = { "BufReadPost", "BufNewFile" }, + cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSModuleInfo" }, + + opts = require "plugins.opts.treesitter", + config = function(_, opts) + require("nvim-treesitter.configs").setup(opts) + end, + }, + +}) diff --git a/lua/plugins/maps.lua b/lua/plugins/maps.lua new file mode 100644 index 0000000..ab10383 --- /dev/null +++ b/lua/plugins/maps.lua @@ -0,0 +1,36 @@ +local M = {} +local maps = {} + +maps.gitsigns = { + n = { + ["<leader>gb"] = { + -- TODO: remov fun + function() + package.loaded.gitsigns.blame_line() + end, + "Blame line", + }, + + ["<leader>td"] = { + function() + require("gitsigns").toggle_deleted() + end, + "Toggle deleted", + }, + }, +} + +M.load = function(name, opts) + local submaps = maps[name] + opts = opts or {} + + vim.schedule(function() + for mode, keytab in pairs(submaps) do + for key, fun in pairs(keytab) do + vim.keymap.set(mode, key, fun[1], { desc = fun[2] }, opts) + end + end + end) +end + +return M diff --git a/lua/plugins/opts/lualine.lua b/lua/plugins/opts/lualine.lua new file mode 100644 index 0000000..e72c632 --- /dev/null +++ b/lua/plugins/opts/lualine.lua @@ -0,0 +1,16 @@ +return { + sections = { + lualine_a = { "mode" }, + lualine_b = { "branch", "diff" }, + lualine_c = {{ "buffers", mode = 2 }}, + + lualine_x = {}, + lualine_y = { "diagnostics", "progress" }, + lualine_z = {}, + }, + + options = { + component_separators = "", + section_separators = "", + }, +} diff --git a/lua/plugins/opts/misc.lua b/lua/plugins/opts/misc.lua new file mode 100644 index 0000000..952dc4f --- /dev/null +++ b/lua/plugins/opts/misc.lua @@ -0,0 +1,19 @@ +local M = {} +local maps = require "plugins.maps" + +M.gitsigns = { + signs = { + add = { text = "+" }, + change = { text = "~" }, + delete = { text = "-" }, + topdelete = { text = "‾" }, + changedelete = { text = "~" }, + untracked = { text = "│" }, + }, + + on_attach = function(bufnr) + maps.load("gitsigns", { buffer = bufnr }) + end, +} + +return M diff --git a/lua/plugins/opts/treesitter.lua b/lua/plugins/opts/treesitter.lua new file mode 100644 index 0000000..c9f9a59 --- /dev/null +++ b/lua/plugins/opts/treesitter.lua @@ -0,0 +1,24 @@ +return { + ensure_installed = { "lua", "c", "bash"}, + sync_install = false, + indent = { enable = true }, + + highlight = { + enable = true, + use_languagetree = true, + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + -- Using this option may slow down your editor, and you may see some duplicate highlights. + -- Instead of true it can also be a list of languages + additional_vim_regex_highlighting = false, + + -- disable for > 100 KB files + disable = function(_, buf) + local max_filesize = 100 * 1024 -- 100 KB + local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) + if ok and stats and stats.size > max_filesize then + return true + end + end, + }, +} |