summaryrefslogtreecommitdiff
path: root/.config/nvim/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/init.lua')
m---------.config/nvim0
-rw-r--r--.config/nvim/init.lua116
2 files changed, 116 insertions, 0 deletions
diff --git a/.config/nvim b/.config/nvim
deleted file mode 160000
-Subproject 2636bee2880cda1a41f3f35751161357ebdb5d3
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
new file mode 100644
index 0000000..5171b7b
--- /dev/null
+++ b/.config/nvim/init.lua
@@ -0,0 +1,116 @@
+-- [[ baic opts ]]
+vim.g.mapleader = " "
+vim.o.ignorecase = true
+vim.o.smartcase = true
+vim.wo.number = true
+vim.wo.relativenumber = true
+vim.o.clipboard = "unnamedplus"
+vim.o.breakindent = true
+vim.o.undofile = true
+vim.o.mouse = false
+vim.o.guicursor = false
+vim.o.termguicolors = true
+vim.wo.signcolumn = "yes"
+
+-- [[ lib ]]
+mapnl = function(lhs, rhs, opts)
+ vim.keymap.set("n", "<leader>" .. lhs, rhs, opts)
+end
+
+-- [[ keybindings ]]
+mapnl("cc", function()
+ if vim.api.nvim_get_option_value("colorcolumn", {}) == "" then
+ vim.api.nvim_set_option_value("colorcolumn", "79", {})
+ else
+ vim.api.nvim_set_option_value("colorcolumn", "", {})
+ end
+end)
+
+-- [[ package manager ]]
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+local lazylock = vim.fn.stdpath("data") .. "/lazy/lazy-lock.json"
+if not vim.loop.fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ vim.print("downloading " .. lazyrepo)
+ vim.fn.system({
+ "git",
+ "clone",
+ "--filter=blob:none",
+ lazyrepo,
+ "--branch=stable", -- latest stable release
+ lazypath,
+ })
+ vim.api.nvim_echo({}, false, {})
+end
+vim.opt.rtp:prepend(lazypath)
+
+-- [[ plugin setup ]]
+require("lazy").setup({
+ "tpope/vim-fugitive",
+ "tpope/vim-sleuth",
+ { "numToStr/Comment.nvim", opts = {} },
+ { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" },
+
+ {
+ "nvim-lualine/lualine.nvim",
+ dependencies = { "nvim-tree/nvim-web-devicons" },
+ opts = {
+ options = {
+ component_separators = "|",
+ section_separators = "",
+ },
+ },
+ },
+
+ {
+ "navarasu/onedark.nvim",
+ priority = 1000,
+ opts = { transparent = true },
+ config = function(_, opts)
+ require("onedark").setup(opts)
+ vim.cmd.colorscheme "onedark"
+ end,
+ },
+
+ {
+ "lewis6991/gitsigns.nvim",
+ opts = {
+ signs = {
+ add = { text = "+" },
+ change = { text = "~" },
+ delete = { text = "_" },
+ topdelete = { text = "‾" },
+ changedelete = { text = "~" },
+ },
+ on_attach = function(bufnr)
+ mapnl("gp", require("gitsigns").prev_hunk, { buffer = bufnr })
+ mapnl("gn", require("gitsigns").next_hunk, { buffer = bufnr })
+ mapnl("ph", require("gitsigns").preview_hunk, { buffer = bufnr })
+ end,
+ },
+ },
+}, { lockfile = lazylock })
+
+-- [[ treesitter setup ]]
+require("nvim-treesitter.configs").setup {
+ ensure_installed = {
+ "c",
+ "bash",
+ "nix",
+ "lua",
+ "markdown",
+ "regex",
+ },
+ sync_install = false,
+ auto_install = false,
+ highlight = { enable = true },
+ indent = { enable = true },
+ incremental_selection = {
+ enable = true,
+ keymaps = {
+ init_selection = "<leader>i",
+ node_incremental = "<leader>i",
+ node_decremental = "<leader>d",
+ },
+ }
+}