commit 97a90cc1e53ef72a566f3b44a55d8dc5d68e6ed2 Author: mk Date: Tue Jul 28 03:23:29 2026 +0300 Initial commit: nvim-minimal A small, fast, portable Neovim config built on bare lazy.nvim (no LazyVim, no LSPs, no Mason). Vendored `based` colorscheme (GPLv3, self-authored, derived from vim-vividchalk) so the config loads on any machine with just nvim + git — the listed treesitter parsers ship prebuilt, so no compiler is needed for the configured languages. Plugins: snacks.nvim (picker/explorer/buffers), nvim-treesitter (pinned to master for the declarative ensure_installed/highlight/indent API), blink.cmp (buffer+path completion, prebuilt binary), lualine, gitsigns, mini.align/ comment/surround. Personal keymaps ported: jj/jk/kj/чя escape, ж -> :, Russian langmap, arrow disables, bracket-return expansions, gc/sa-sd-sr/gz-gZ. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e6b2cc9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.log +tt.* +.tests +doc/tags +debug +.repro +foo.* +data \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d70a646 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +nvim-minimal — a small, portable Neovim configuration. +Copyright (C) 2025 mk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +--- + +colors/based.vim is vendored from the `based.vim` project (also by the author, +GPLv3). It is derived from `vim-vividchalk` by Tim Pope, which is +permissively-licensed; the GPLv3 terms above apply to the combined work. +The original GPLv3 header in colors/based.vim is preserved verbatim. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..47ece21 --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +# nvim-minimal + +A small, fast, portable Neovim config. No LSPs, no heavy plugins — just the +editing essentials and a familiar UI. Clone it on any machine with Neovim + git +and you're editing in seconds. + +## Requirements + +- **Neovim** ≥ 0.10 +- **git** (lazy.nvim bootstraps itself and clones plugins on first launch) +- a **Nerd Font** installed in your *terminal* for icons in snacks/lualine + (optional; config works without it, icons just render as `?`) +- a **C compiler + make** (`base-devel` on Arch) — *optional*. The nvim-treesitter + languages listed below ship **prebuilt** parsers in the plugin repo, so the + configured languages work without any compilation. You only need a compiler if + you later add parsers that aren't prebuilt (or force `:TSInstall` to recompile). + +> On first launch nvim pauses to clone plugins (network, one-time); no compilation +> is needed for the bundled languages. + +## Install + +```sh +git clone ~/.config/nvim +nvim # lazy.nvim bootstraps and installs plugins; parsers are prebuilt +``` + +`lazy-lock.json` is committed, so every clone installs identical plugin +versions. To bump, run `:Lazy sync` and commit the updated lockfile. + +## What's in it + +- **lazy.nvim** — plugin manager (bootstrap, no LazyVim) +- **snacks.nvim** — file picker, explorer, buffer picker +- **nvim-treesitter** — highlighting, indentation, treesitter folds +- **blink.cmp** — completion (buffer words + file paths; Super-Tab keymap) +- **lualine** — statusline +- **gitsigns** — git gutter signs +- **mini.align / mini.comment / mini.surround** — `gz`·`gZ`, `gc`, `sa/sd/sr` +- **`based` colorscheme** — vendored at `colors/based.vim` (self-authored, + GPLv3, derived from vim-vividchalk). Transparent against a see-through + terminal by default. + +## Key bindings + +| Key | Action | +|---|---| +| `gb` | buffer picker | +| `F` | find files (hidden, ignoring `node_modules`/`.git`) | +| `t` | file explorer | +| `jj` / `jk` / `kj` / `чя` | escape from insert mode | +| `ж` | enter command-line (`:`) — Russian-layout fix | +| `gc` | toggle comment (mini.comment) | +| `sa` / `sd` / `sr` | add / delete / replace surround (mini.surround) | +| `gz` / `gZ` | align / align-with-preview (mini.align) | +| `gf` | go to file under cursor (built-in; `path` + `suffixesadd`) | +| `` / `` | next / prev completion item (blink) | +| `` | accept completion | +| `` | show completion + docs | +| `` / `` | scroll docs up / down | + +Arrow keys, ``, ``, and middle-click are deliberately disabled to +force home-row habits. + +## Notes / limitations + +- **No LSP.** `gd`/`gr`/hover/etc. rely on built-ins; there is no language + server. That's the point. +- **blink.cmp prebuilt binary** ships for linux/mac x86_64 & arm64 release tags. + On other architectures you'd need a Rust toolchain to build `libblink` + (out of scope here). +- Filename completion is provided by blink's `path` source; native + `` is not configured (blink's `` scrolls docs). + +## License + +GPLv3. `colors/based.vim` keeps its original GPLv3 header; it is derived from +`vim-vividchalk` by Tim Pope (permissively licensed), so GPLv3 is compatible. \ No newline at end of file diff --git a/colors/based.vim b/colors/based.vim new file mode 100644 index 0000000..b006f03 --- /dev/null +++ b/colors/based.vim @@ -0,0 +1,103 @@ +" Vim color scheme +" Name: based.vim +" Author: mk +" Version: 1.0 + +" Based? Based on what? Based on vim-medicchalk by @ParamagicDev, which is based on vim-vividchalk by @tpope, which is based on the Vibrank Ink theme for TextMate. +" Licensed under GPLv3. +" "GUI"-only theme. Make sure that your vim environment supports 24-bit color. + +set termguicolors +set cursorline +if has("gui_running") && &background !=# 'dark' + set background=dark +endif +highlight clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="based" + + +highlight StatusLine guifg=White guibg=#080808 gui=bold +highlight StatusLineNC guifg=#eeeeee guibg=#1c1c1c gui=none + +" Status line columns. +highlight SLC0 guifg=#00AF06 guibg=#000000 gui=NONE +highlight SLC1 guifg=#00AF06 guibg=#0A0A0A gui=NONE +highlight SLCodestats guifg=#FFFFFF guibg=#0202FF gui=NONE +highlight SLCoc guifg=#ccaa00 guibg=#000000 gui=NONE +highlight SLTitle guifg=#CCCCFF guibg=#000000 +highlight SLTicker guifg=#00ff06 guibg=#000000 gui=reverse,bold +" + +highlight ColorColumn guibg=#0A0A0A +highlight SignColumn guibg=#000000 +highlight Comment guifg=#aa00dd +highlight ActiveBuffer guifg=#ff0000 + +highlight link javascriptRegexpString Regexp + +highlight link diffAdded String +highlight link diffRemoved Statement +highlight link diffLine PreProc +highlight link diffSubname Comment + + +highlight Ignore guifg=#000000 +highlight WildMenu guifg=#000000 guibg=#ffff00 gui=bold +highlight Cursor guifg=#000000 guibg=#ffffff +highlight CursorColumn guibg=#000000 +highlight CursorLine guibg=#050505 + +highlight NonText guifg=#404040 +highlight SpecialKey guifg=#404040 +highlight Directory none +highlight link Directory Identifier +highlight ErrorMsg guibg=#dd0000 +highlight Search guifg=NONE guibg=#232323 gui=none +highlight IncSearch guifg=#FFFFFF guibg=#000000 +highlight MoreMsg guifg=#00AA00 +highlight LineNr guifg=#DDEEFF guibg=#060606 +highlight Question none +highlight link Question MoreMsg +highlight Title guifg=Magenta +highlight VisualNOS gui=none guibg=#444444 +highlight Visual guibg=#555577 +highlight MatchParen guibg=#1100AA +highlight WarningMsg guifg=#cc0000 +highlight Error guibg=#AA0000 +highlight Todo guifg=#32c5ff +highlight IconNameDevicon guifg=White + + +highlight Folded guibg=#110077 guifg=#aaddee +highlight FoldColumn none +highlight link FoldColumn Folded +highlight DiffAdd guibg=DarkBlue +highlight DiffChange guibg=DarkMagenta +highlight DiffDelete gui=bold guifg=Blue guibg=DarkCyan +highlight DiffText cterm=bold gui=bold guibg=Red + +highlight Pmenu guifg=White guibg=#000099 gui=bold +highlight PmenuSel guifg=White guibg=#000000 guifg=#00FF00 gui=bold + +highlight PmenuSbar guibg=Grey ctermbg=Grey +highlight PmenuThumb guibg=White ctermbg=White +highlight TabLine gui=underline guifg=#bbbbbb guibg=#333333 +highlight TabLineSel guifg=White guibg=Black ctermfg=White ctermbg=Black +highlight TabLineFill gui=underline guifg=#bbbbbb guibg=#808080 +highlight Type gui=none +highlight Statement gui=none +highlight Identifier cterm=none + +highlight Statement guifg=#ffff66 +highlight Type guifg=#FFFFCC + +highlight Constant guifg=#339999 +highlight String guifg=#66FF00 +highlight Identifier guifg=#FFCC00 +highlight PreProc guifg=#88FFFF +highlight Special guifg=#11CF01 +highlight Regexp guifg=#44B4CC diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..d37208c --- /dev/null +++ b/init.lua @@ -0,0 +1,22 @@ +-- nvim-minimal: lightweight portable Neovim config. + +-- Options first: several (termguicolors, etc.) must be set before lazy.nvim +-- starts so the plugin-install colorscheme renders correctly. +require("config.options") + +-- Bootstrap + setup lazy.nvim (loads everything under lua/plugins/). +require("config.lazy") + +-- Personal keymaps and autocmds. Plugin-bound keys (gb, F, t) +-- live in their plugin specs under lua/plugins/; these are the plugin-agnostic +-- ones (escape bigrams, Russian-layout fixes, arrow-key disables, etc.). +require("config.keymaps") +require("config.autocmds") + +-- Colorscheme + transparency. +-- `based` is vendored at colors/based.vim (self-authored, GPLv3). +-- It never sets Normal's bg, so the terminal shows through; we still +-- force Normal/NormalFloat to none so plugin float windows stay transparent. +vim.cmd.colorscheme("based") +vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) +vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) \ No newline at end of file diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 0000000..5aff17b --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,12 @@ +{ + "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, + "gitsigns.nvim": { "branch": "main", "commit": "31d6fb2d618bca1482b9f274751ead5f03461408" }, + "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, + "lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" }, + "mini.align": { "branch": "main", "commit": "77d7446b9f2452193f13ced9fb73a8b3aa4a4f4d" }, + "mini.comment": { "branch": "main", "commit": "27a29d6b949b9497f80a0a03421e89fed71d8c37" }, + "mini.surround": { "branch": "main", "commit": "8d5d0c5aa92449368ac251e85451d79d8f69d296" }, + "nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" }, + "nvim-web-devicons": { "branch": "master", "commit": "2ae6958df7ced50baac5035cec0c15799eedfbf7" }, + "snacks.nvim": { "branch": "main", "commit": "882c996cf28183f4d63640de0b4c02ec886d01f2" } +} diff --git a/lua/config/autocmds.lua b/lua/config/autocmds.lua new file mode 100644 index 0000000..e4d5af5 --- /dev/null +++ b/lua/config/autocmds.lua @@ -0,0 +1 @@ +-- Autocmds. Currently empty; add vim.api.nvim_create_autocmd groups here as needed. \ No newline at end of file diff --git a/lua/config/keymaps.lua b/lua/config/keymaps.lua new file mode 100644 index 0000000..87ba20e --- /dev/null +++ b/lua/config/keymaps.lua @@ -0,0 +1,52 @@ +-- Personal keymaps (plugin-agnostic). Plugin-bound keys live in their specs. + +local function map(mode, lhs, rhs, opts) + local options = { noremap = true, silent = true } + if opts then + options = vim.tbl_extend('force', options, opts) + end + vim.keymap.set(mode, lhs, rhs, options) +end + +local function no(lhs, rhs) map('n', lhs, rhs, { silent = false }) end +local function no_s(lhs, rhs) map('n', lhs, rhs) end +local function no_r(lhs, rhs) map('n', lhs, rhs, { noremap = false, silent = false }) end +local function i(lhs, rhs) map('i', lhs, rhs, { silent = false }) end +local function i_s(lhs, rhs) map('i', lhs, rhs) end +local function v_s(lhs, rhs) map('v', lhs, rhs) end + +-- disable arrow keys and middle-click (muscle memory from the old config) +no_s('', '') +no_s('', '') +no_s('', '') +no_s('', '') +no_s('', '') +no_s('', '') +v_s('', '') +v_s('', '') +v_s('', '') +v_s('', '') +v_s('', '') +v_s('', '') + +-- escape from insert mode on home-row bigrams +i_s('jj', '') +i_s('jk', '') +i_s('kj', '') +i_s('чя', '') + +i_s('', '') +i_s('', '') + +-- bracket-return expansions: open a line between the delimiters, indented +i('[', '[]O') +i('{', '{}O') +i('(', '()O') + +vim.keymap.set({ 'n', 'i', 'v' }, '', '') + +-- Russian-layout fixes: `ж` types `:`, `W`/`E`/`w'` expand in cmdline +no_r('ж', ':') +vim.cmd.cnoreabbrev({ " W", "((getcmdtype() is# ':' && getcmdline() is# 'W')?('w'):('W'))" }) +vim.cmd.cnoreabbrev({ " E", "((getcmdtype() is# ':' && getcmdline() is# 'E')?('e'):('E'))" }) +vim.cmd.cnoreabbrev({ " w'", "(getcmdtype() == \":\" && getcmdline() == \"w'\" ? \"w\" : \"w'\")" }) \ No newline at end of file diff --git a/lua/config/lazy.lua b/lua/config/lazy.lua new file mode 100644 index 0000000..bf0b051 --- /dev/null +++ b/lua/config/lazy.lua @@ -0,0 +1,37 @@ +-- Bootstrap lazy.nvim on a fresh machine (needs only git + internet). +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + spec = { { import = "plugins" } }, + defaults = { + lazy = false, + version = false, -- use latest git commit; lazy-lock.json pins the exact SHAs + }, + install = { colorscheme = { "based" } }, + checker = { enabled = true, notify = false }, + performance = { + rtp = { + disabled_plugins = { + "gzip", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + }, + }, + }, +}) \ No newline at end of file diff --git a/lua/config/options.lua b/lua/config/options.lua new file mode 100644 index 0000000..d771ef9 --- /dev/null +++ b/lua/config/options.lua @@ -0,0 +1,56 @@ +-- Options are set before lazy.nvim startup. + +vim.opt.termguicolors = true +vim.opt.encoding = "utf8" +vim.opt.hidden = true +vim.opt.incsearch = true +vim.opt.langmap = + "ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz" +vim.opt.maxmempattern = 5000 + +-- completion +vim.opt.wildignorecase = true +vim.opt.smartcase = true +vim.opt.wildmenu = true +vim.opt.path:append("**") +-- `gf` will try these extensions on a bare word under the cursor. +vim.opt.suffixesadd = { ".lua", ".vim", ".md", ".json", ".ts", ".tsx", ".js", ".py", ".rs" } +vim.opt.wildignore:append("**/node_modules/**") +vim.opt.completeopt = { "menu", "menuone", "preview", "noinsert" } + +-- backups and recovery +vim.opt.backup = true +vim.opt.backupdir = os.getenv("HOME") .. "/.local/state/nvim/backup" +vim.opt.swapfile = true +vim.opt.undofile = true +vim.opt.updatetime = 800 + +-- misc +vim.opt.wrap = false +vim.opt.whichwrap:append("<,>,[,]") +vim.opt.timeoutlen = 500 +vim.opt.ttimeoutlen = 50 + +-- indentation/tabulation +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.expandtab = true +vim.opt.shiftwidth = 4 +vim.opt.smartindent = true +vim.opt.autoindent = true + +-- layout +vim.opt.signcolumn = "yes" +vim.opt.colorcolumn = { 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 80, 99 } +vim.opt.cmdheight = 1 +vim.opt.number = true +vim.opt.relativenumber = true +vim.opt.scrolloff = 10 + +-- folds (treesitter-based; no nvim-ufo needed) +vim.opt.foldcolumn = "1" +vim.opt.foldlevel = 99 +vim.opt.foldlevelstart = 99 +vim.opt.foldenable = true +vim.opt.foldmethod = "expr" +vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()" \ No newline at end of file diff --git a/lua/plugins/blink.lua b/lua/plugins/blink.lua new file mode 100644 index 0000000..9d2857f --- /dev/null +++ b/lua/plugins/blink.lua @@ -0,0 +1,47 @@ +-- saghen/blink.cmp: fast completion (Rust-backed, prebuilt binary). +-- Sources are buffer words + file paths only (no LSP). Filename completion +-- comes from the `path` source, triggered by typing `/` or `./`. +-- `version = "*"` pulls a release tag, which ships a prebuilt `libblink` +-- binary (x86_64/arm64, linux/mac) — no Rust toolchain needed on those arches. +return { + { + "saghen/blink.cmp", + event = "InsertEnter", + version = "*", + opts = { + sources = { + default = { "buffer", "path" }, + }, + completion = { + ghost_text = { enabled = false }, + list = { selection = { preselect = false, auto_insert = false } }, + }, + keymap = { + preset = "super-tab", + [""] = { "show", "show_documentation", "hide_documentation" }, + [""] = { "hide", "fallback" }, + [""] = { + "select_next", + function(cmp) + if cmp.snippet_active() then + return cmp.accept() + else + return cmp.select_and_accept() + end + end, + "snippet_forward", + "fallback", + }, + [""] = { "select_prev", "snippet_backward", "fallback" }, + [""] = { "select_and_accept", "fallback_to_mappings" }, + [""] = { "select_prev", "fallback" }, + [""] = { "select_next", "fallback" }, + [""] = { "select_prev", "fallback_to_mappings" }, + [""] = { "select_next", "fallback_to_mappings" }, + [""] = { "scroll_documentation_up", "fallback" }, + [""] = { "scroll_documentation_down", "fallback" }, + [""] = { "show_signature", "hide_signature", "fallback" }, + }, + }, + }, +} \ No newline at end of file diff --git a/lua/plugins/mini.lua b/lua/plugins/mini.lua new file mode 100644 index 0000000..beb6649 --- /dev/null +++ b/lua/plugins/mini.lua @@ -0,0 +1,26 @@ +-- echasnovski/mini.*: small, dependency-free editing utilities. +return { + { + "echasnovski/mini.align", + keys = { + { "gz", mode = { "n", "x" } }, + { "gZ", mode = { "n", "x" } }, + }, + opts = { + mappings = { + start = "gz", + start_with_preview = "gZ", + }, + }, + }, + { + "echasnovski/mini.comment", + event = "VeryLazy", + opts = {}, + }, + { + "echasnovski/mini.surround", + event = "VeryLazy", + opts = {}, + }, +} \ No newline at end of file diff --git a/lua/plugins/snacks.lua b/lua/plugins/snacks.lua new file mode 100644 index 0000000..fb89132 --- /dev/null +++ b/lua/plugins/snacks.lua @@ -0,0 +1,34 @@ +-- folke/snacks.nvim: picker, explorer, buffers. +-- The familiar `gb` / `F` / `t` entry points live here as +-- lazy `keys`, so the global `Snacks` is guaranteed to exist before any call. +return { + { + "folke/snacks.nvim", + priority = 1000, + lazy = false, + keys = { + { + "gb", + function() + Snacks.picker.buffers({ hidden = false, nofile = false, sort_lastused = true, current = false }) + end, + desc = "Buffers", + }, + { + "F", + function() + Snacks.picker.files({ exclude = { "node_modules/", ".git/" }, hidden = true, auto_close = true }) + end, + desc = "Find Files", + }, + { + "t", + function() + Snacks.picker.explorer({ exclude = { "node_modules/", ".git/" }, hidden = true, auto_close = true }) + end, + desc = "Explorer", + }, + }, + opts = {}, + }, +} \ No newline at end of file diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua new file mode 100644 index 0000000..5d18bae --- /dev/null +++ b/lua/plugins/treesitter.lua @@ -0,0 +1,42 @@ +-- nvim-treesitter: highlighting, indentation, and treesitter-based folds. +-- All listed parsers ship PREBUILT in the plugin repo, so no compiler is needed +-- for the configured languages. A C toolchain (base-devel) is only required if +-- you add parsers that aren't prebuilt or force `:TSInstall` to recompile. +-- Pinned to the legacy `master` branch, which keeps the declarative +-- ensure_installed/highlight/indent API the old config used. The new `main` +-- branch dropped this API in favor of do-it-yourself autocommands. +return { + { + "nvim-treesitter/nvim-treesitter", + branch = "master", + event = "VeryLazy", + build = ":TSUpdate", + opts = { + ensure_installed = { + "bash", + "css", + "html", + "javascript", + "json", + "lua", + "markdown", + "markdown_inline", + "python", + "query", + "regex", + "rust", + "scss", + "svelte", + "tsx", + "typescript", + "vim", + "yaml", + }, + highlight = { enable = true }, + indent = { enable = true }, + }, + config = function(_, opts) + require("nvim-treesitter.configs").setup(opts) + end, + }, +} \ No newline at end of file diff --git a/lua/plugins/ui.lua b/lua/plugins/ui.lua new file mode 100644 index 0000000..4cd6aff --- /dev/null +++ b/lua/plugins/ui.lua @@ -0,0 +1,32 @@ +-- UI: statusline, git gutter signs, file icons. +-- The `based` colorscheme is vendored at ../../colors/based.vim and set in +-- init.lua, so it needs no lazy spec here. +return { + { + "nvim-lualine/lualine.nvim", + event = "VeryLazy", + dependencies = { "nvim-tree/nvim-web-devicons" }, + opts = { + options = { + theme = "auto", + component_separators = { left = "│", right = "│" }, + section_separators = {}, + globalstatus = true, + }, + sections = { + lualine_a = { "mode" }, + lualine_b = { "branch", "diff" }, + lualine_c = { { "filename", path = 1 } }, + lualine_x = { "encoding", "fileformat", "filetype" }, + lualine_y = { "progress" }, + lualine_z = { "location" }, + }, + }, + }, + { + "lewis6991/gitsigns.nvim", + event = { "BufReadPre", "BufNewFile" }, + opts = {}, + }, + { "nvim-tree/nvim-web-devicons", lazy = true }, +} \ No newline at end of file diff --git a/stylua.toml b/stylua.toml new file mode 100644 index 0000000..5d6c50d --- /dev/null +++ b/stylua.toml @@ -0,0 +1,3 @@ +indent_type = "Spaces" +indent_width = 2 +column_width = 120 \ No newline at end of file