diff --git a/config/linux-dev/nvim/lua/config/options.lua b/config/linux-dev/nvim/lua/config/options.lua index 8cc412d..01b1828 100644 --- a/config/linux-dev/nvim/lua/config/options.lua +++ b/config/linux-dev/nvim/lua/config/options.lua @@ -5,10 +5,29 @@ vim.g.maplocalleader = " " -- Use Nerd Font vim.g.have_nerd_font = false --- Add vertical line --- vim.opt.colorcolumn = "100" +if vim.env.CONTAINER == "true" then + vim.g.clipboard = { + name = "osc52", + copy = { + ["+"] = require("vim.ui.clipboard.osc52").copy("+"), + ["*"] = require("vim.ui.clipboard.osc52").copy("*"), + }, + paste = { + ["+"] = require("vim.ui.clipboard.osc52").paste("+"), + ["*"] = require("vim.ui.clipboard.osc52").paste("*"), + }, + } +end -vim.opt.laststatus = 3 +-- Sync clipboard between OS and Neovim +vim.schedule(function() + vim.opt.clipboard = "unnamedplus" +end) + +-- Add vertical line +vim.opt.colorcolumn = "100" + +-- vim.opt.laststatus = 3 vim.opt.signcolumn = "no" -- Enable TrueColor @@ -19,9 +38,9 @@ vim.opt.mousescroll = "hor:1,ver:1" -- Set indentation preferences vim.opt.expandtab = true -- Convert tabs to spaces -vim.opt.shiftwidth = 2 -- Number of spaces for auto-indent -vim.opt.tabstop = 2 -- Number of spaces a tab counts for -vim.opt.softtabstop = 2 -- Number of spaces a tab counts for when editing +vim.opt.shiftwidth = 4 -- Number of spaces for auto-indent +vim.opt.tabstop = 4 -- Number of spaces a tab counts for +vim.opt.softtabstop = 4 -- Number of spaces a tab counts for when editing vim.opt.autoindent = true -- Copy indent from current line when starting new line vim.opt.smartindent = true -- Do smart autoindenting when starting a new line @@ -39,13 +58,9 @@ vim.opt.relativenumber = true vim.opt.mouse = "a" -- Full path on status line -vim.opt.statusline = "%= %F%m%r%h%w ─ (%l,%c %P) %=" -vim.opt.fillchars:append({ stl = "─", stlnc = "─" }) - --- Sync clipboard between OS and Neovim -vim.schedule(function() - vim.opt.clipboard = "unnamedplus" -end) +vim.opt.statusline = "%F%m%r%h%w%=%l,%c %P " +-- vim.opt.statusline = "%= %F%m%r%h%w ─ (%l,%c %P) %=" +-- vim.opt.fillchars:append({ stl = "─", stlnc = "─" }) -- Save undo history vim.opt.undofile = true diff --git a/config/linux-dev/nvim/lua/plugins/autoformat.lua b/config/linux-dev/nvim/lua/plugins/autoformat.lua index 1dd9cc7..f1c69da 100644 --- a/config/linux-dev/nvim/lua/plugins/autoformat.lua +++ b/config/linux-dev/nvim/lua/plugins/autoformat.lua @@ -29,6 +29,7 @@ return { -- Autoformat end, formatters_by_ft = { lua = { "stylua" }, + sh = { "shfmt" }, swift = { "swift_format" }, python = { "isort", "black", stop_after_first = true }, javascript = { "prettierd", "prettier", stop_after_first = true }, @@ -36,5 +37,10 @@ return { -- Autoformat typescript = { "prettierd", "prettier", stop_after_first = true }, typescriptreact = { "prettierd", "prettier", stop_after_first = true }, }, + formatters = { + shfmt = { + prepend_args = { "-i", "4", "-ci" }, -- 4 spaces, indent cases + }, + }, }, } diff --git a/config/linux-dev/nvim/lua/plugins/nvim-tree.lua b/config/linux-dev/nvim/lua/plugins/nvim-tree.lua index 9bca678..9436731 100644 --- a/config/linux-dev/nvim/lua/plugins/nvim-tree.lua +++ b/config/linux-dev/nvim/lua/plugins/nvim-tree.lua @@ -4,9 +4,33 @@ return { lazy = false, keys = { { "et", ":NvimTreeToggle", desc = "Explorer Toggle", silent = true }, + { + "ei", + function() + require("nvim-tree.api").node.show_info_popup() + end, + desc = "NvimTree: Info", + mode = "n", + }, }, config = function() + local function my_on_attach(bufnr) + local api = require("nvim-tree.api") + + local function opts(desc) + return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } + end + + api.config.mappings.default_on_attach(bufnr) + vim.keymap.set("n", "et", api.tree.toggle, opts("Open or close the tree")) + vim.keymap.set("n", "ei", api.node.show_info_popup, opts("Show info popup")) + vim.keymap.set("n", "?", api.tree.toggle_help, opts("Help")) + + vim.keymap.del("n", "", { buffer = bufnr }) + end + require("nvim-tree").setup({ + on_attach = my_on_attach, hijack_cursor = true, disable_netrw = true, hijack_netrw = true, diff --git a/config/linux-dev/nvim/lua/plugins/telescope.lua b/config/linux-dev/nvim/lua/plugins/telescope.lua index 937cd95..33b797d 100644 --- a/config/linux-dev/nvim/lua/plugins/telescope.lua +++ b/config/linux-dev/nvim/lua/plugins/telescope.lua @@ -41,11 +41,12 @@ return { remap.nmap("sk", builtin.keymaps, { desc = "[S]earch [K]eymaps" }) remap.nmap("sf", builtin.find_files, { desc = "[S]earch [F]iles" }) remap.nmap("sw", builtin.grep_string, { desc = "[S]earch current [W]ord" }) + remap.nmap("ss", builtin.current_buffer_fuzzy_find, { desc = "[S]earch [C]urrent file" }) remap.nmap("sg", builtin.live_grep, { desc = "[S]earch by [G]rep" }) remap.nmap("sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" }) remap.nmap("sr", builtin.lsp_references, { desc = "[S]earch [R]references" }) remap.nmap("s.", builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) - remap.nmap("ss", builtin.git_status, { desc = "[S]earch Git [S]tatus" }) + -- remap.nmap("ss", builtin.git_status, { desc = "[S]earch Git [S]tatus" }) remap.nmap("", builtin.buffers, { desc = "Find existing [B]uffers" }) end, } diff --git a/config/linux-dev/nvim/lua/themes/invero/groups/editor.lua b/config/linux-dev/nvim/lua/themes/invero/groups/editor.lua index 3adae6b..7494923 100644 --- a/config/linux-dev/nvim/lua/themes/invero/groups/editor.lua +++ b/config/linux-dev/nvim/lua/themes/invero/groups/editor.lua @@ -9,6 +9,7 @@ function M.get(C) CursorLineNr = { fg = C.accent, bold = true }, CursorLine = { bg = C.surface }, Visual = { bg = C.accent_light }, + ColorColumn = { bg = C.surface }, Search = { fg = C.yellow }, CurSearch = { fg = C.yellow, bg = C.none, bold = true }, @@ -18,7 +19,9 @@ function M.get(C) EndOfBuffer = { fg = C.base }, -- End-of-buffer marker (~ lines) WinSeparator = { fg = C.outline }, - StatusLine = { fg = C.outline, bg = C.none }, -- Active statusline (where filename) + -- StatusLine = { fg = C.outline, bg = C.none }, -- Active statusline (where filename) + StatusLine = { fg = C.base, bg = C.outline, bold = false }, -- Active statusline (where filename) + StatusLineNC = { fg = C.base, bg = C.outline, bold = false }, -- Active statusline (where filename) MsgArea = { fg = C.text, bg = C.none }, -- Command-line / message area MsgSeparator = { fg = C.text, bg = C.surface }, -- Separator for messages ModeMsg = { fg = C.text },