aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorsinanmohd <sinan@sinanmohd.com>2024-03-01 07:36:14 +0530
committersinanmohd <sinan@sinanmohd.com>2024-03-01 10:11:03 +0530
commit573066d74e9ac58377863e215abd061ba10ed6ab (patch)
tree187e3de7e2a906092abd2674f14aa98a9eeceb03 /lua
parentae3fbcc55c32c05225a5f911fb6a991a8c214ca8 (diff)
plugins: init
Diffstat (limited to 'lua')
-rw-r--r--lua/plugins/init.lua40
-rw-r--r--lua/plugins/maps.lua36
-rw-r--r--lua/plugins/opts/lualine.lua16
-rw-r--r--lua/plugins/opts/misc.lua19
-rw-r--r--lua/plugins/opts/treesitter.lua24
5 files changed, 135 insertions, 0 deletions
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,
+ },
+}