diff --git a/common/nvim/after/plugin/colors.lua b/common/nvim/after/plugin/colors.lua index f469749..5058549 100644 --- a/common/nvim/after/plugin/colors.lua +++ b/common/nvim/after/plugin/colors.lua @@ -6,14 +6,14 @@ vim.cmd("highlight IndentBlanklineIndent3 ctermfg=13 cterm=nocombine") vim.cmd("highlight IndentBlanklineIndent4 ctermfg=12 cterm=nocombine") vim.cmd("hi Normal ctermbg=NONE") -vim.cmd("hi LineNr ctermfg=7") +vim.cmd("hi LineNr ctermfg=7 ctermbg=NONE") vim.cmd("hi CursorLineNr ctermfg=1 ctermbg=0") vim.cmd("hi CursorLine cterm=NONE ctermfg=NONE ctermbg=0") -vim.cmd("hi StatusLine ctermfg=5 ctermbg=8 cterm=NONE") -vim.cmd("hi StatusLineNC ctermfg=7 ctermbg=0 cterm=NONE") +vim.cmd("hi StatusLine ctermfg=5 ctermbg=NONE cterm=NONE") +vim.cmd("hi StatusLineNC ctermfg=7 ctermbg=NONE cterm=NONE") vim.cmd("hi VertSplit ctermbg=0 ctermfg=0") vim.cmd("hi ExtraWhitespace ctermbg=1") -vim.cmd("hi SignColumn ctermbg=8") +vim.cmd("hi ColorColumn ctermbg=8 ctermfg=3") vim.cmd("hi BufferCurrent ctermfg=5 ctermbg=NONE") vim.cmd("hi BufferCurrentIndex ctermfg=5 ctermbg=NONE") @@ -36,7 +36,7 @@ vim.cmd("hi BufferOffset ctermfg=0 ctermbg=0") vim.cmd("hi! link SignColumn LineNr") -vim.cmd("hi LspDiagnosticsDefaultHint ctermfg=6") -vim.cmd("hi LspDiagnosticsDefaultError ctermfg=1") -vim.cmd("hi LspDiagnosticsDefaultWarning ctermfg=3") -vim.cmd("hi LspDiagnosticsDefaultInformation ctermfg=7") +vim.cmd("hi DiagnosticHint ctermfg=6") +vim.cmd("hi DiagnosticError ctermfg=1") +vim.cmd("hi DiagnosticWarn ctermfg=3") +vim.cmd("hi DiagnosticInfo ctermfg=7") diff --git a/common/nvim/after/plugin/lualine.lua b/common/nvim/after/plugin/lualine.lua new file mode 100644 index 0000000..edc7dbb --- /dev/null +++ b/common/nvim/after/plugin/lualine.lua @@ -0,0 +1,109 @@ +local theme = require("lualine.themes.16color") +theme.normal.a.bg = 7 +theme.visual.a.bg = 4 +theme.command = { + a = {bg = 6}, +} +theme.terminal = { + a = {bg = 5}, +} +theme.normal.c.bg = "none" + +require("lualine").setup({ + options = { + icons_enabled = false, + theme = theme, + section_separators = "", + component_separators = "", + disabled_filetypes = { + statusline = {"NvimTree", "undotree", "diff"}, + }, + }, + sections = { + lualine_a = { + { + "mode", + color = { + fg = 0, + }, + fmt = function(str) + return str:sub(1,3) + end + }, + }, + lualine_b = { + { + "branch", + color = { + bg = 5, + fg = 0, + }, + }, + { + "diff", + diff_color = { + added = {bg = 8, fg = 2}, + modified = {bg = 8, fg = 3}, + removed = {bg = 8, fg = 1}, + }, + }, + { + "diagnostics", + sections = {"error", "warn", "info", "hint"}, + diagnostics_color = { + error = {bg = 0, fg = 1}, + warn = {bg = 0, fg = 3}, + info = {bg = 0, fg = 7}, + hint = {bg = 0, fg = 6}, + }, + }, + }, + lualine_c = { + { + "filename", + color = { + bg = "none", + fg = 5, + }, + }, + }, + lualine_x = { + { + "location", + color = { + bg = 4, + fg = 0, + }, + }, + }, + lualine_y = { + { + "encoding", + color = { + bg = 3, + fg = 0, + }, + }, + { + "fileformat", + color = { + bg = 3, + fg = 0, + }, + padding = { + left = 0, + right = 1, + }, + }, + }, + lualine_z = { + { + "filetype", + color = { + bg = 7, + fg = 0, + }, + }, + }, + }, +}) diff --git a/common/nvim/after/plugin/presence.lua b/common/nvim/after/plugin/presence.lua new file mode 100644 index 0000000..2e28cbd --- /dev/null +++ b/common/nvim/after/plugin/presence.lua @@ -0,0 +1 @@ +vim.g.presence_buttons = false diff --git a/common/nvim/after/plugin/prettier.lua b/common/nvim/after/plugin/prettier.lua new file mode 100644 index 0000000..d7d0925 --- /dev/null +++ b/common/nvim/after/plugin/prettier.lua @@ -0,0 +1,51 @@ +local null_ls = require("null-ls") + +local group = vim.api.nvim_create_augroup("lsp_format_on_save", { clear = false }) +local event = "BufWritePre" -- or "BufWritePost" +local async = event == "BufWritePost" + +null_ls.setup({ + on_attach = function(client, bufnr) + if client.supports_method("textDocument/formatting") then + vim.keymap.set("n", "f", function() + vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() }) + end, { buffer = bufnr, desc = "[lsp] format" }) + + -- format on save + vim.api.nvim_clear_autocmds({ buffer = bufnr, group = group }) + vim.api.nvim_create_autocmd(event, { + buffer = bufnr, + group = group, + callback = function() + vim.lsp.buf.format({ bufnr = bufnr, async = async }) + end, + desc = "[lsp] format on save", + }) + end + + if client.supports_method("textDocument/rangeFormatting") then + vim.keymap.set("x", "f", function() + vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() }) + end, { buffer = bufnr, desc = "[lsp] format" }) + end + end, +}) + +local prettier = require("prettier") +prettier.setup({ + bin = "prettier", + filetypes = { + "css", + "graphql", + "html", + "javascript", + "javascriptreact", + "json", + "less", + "markdown", + "scss", + "typescript", + "typescriptreact", + "yaml", + }, +}) diff --git a/common/nvim/after/plugin/telescope.lua b/common/nvim/after/plugin/telescope.lua index df536e4..f029a05 100644 --- a/common/nvim/after/plugin/telescope.lua +++ b/common/nvim/after/plugin/telescope.lua @@ -1,6 +1,11 @@ +local telescope = require("telescope") +telescope.setup({ + defaults = { + vimgrep_arguments = {"ag", "--vimgrep"}, + } +}) + local builtin = require('telescope.builtin') vim.keymap.set('n', 'pf', builtin.find_files, {}) vim.keymap.set('n', '', builtin.git_files, {}) -vim.keymap.set('n', 'ps', function() - builtin.grep_string({search = vim.fn.input("Grep > ")}) -end) +vim.keymap.set('n', 'ps', builtin.live_grep) diff --git a/common/nvim/after/plugin/treesitter.lua b/common/nvim/after/plugin/treesitter.lua index 1255591..e6f3ad9 100644 --- a/common/nvim/after/plugin/treesitter.lua +++ b/common/nvim/after/plugin/treesitter.lua @@ -1,4 +1,4 @@ -require'nvim-treesitter.configs'.setup({ +require("nvim-treesitter.configs").setup({ -- A list of parser names, or "all" (the five listed parsers should always be installed) ensure_installed = { "javascript", "typescript", "rust", "c", "lua", "vim", "vimdoc", "query" }, @@ -19,3 +19,4 @@ require'nvim-treesitter.configs'.setup({ additional_vim_regex_highlighting = false, }, }) +require("treesitter-context").setup() diff --git a/common/nvim/lua/cc/packer.lua b/common/nvim/lua/cc/packer.lua index b81d145..9a5f95e 100644 --- a/common/nvim/lua/cc/packer.lua +++ b/common/nvim/lua/cc/packer.lua @@ -16,7 +16,7 @@ return packer.startup(function(use) "nvim-treesitter/nvim-treesitter", {run = ":TSUpdate"} ) - use("theprimeagen/harpoon") + use("nvim-treesitter/nvim-treesitter-context") use("mbbill/undotree") use("tpope/vim-fugitive") @@ -45,4 +45,19 @@ return packer.startup(function(use) use("romgrk/barbar.nvim") use("ntpeters/vim-better-whitespace") use("nvim-tree/nvim-tree.lua") + use("andweeb/presence.nvim") + + use("jose-elias-alvarez/null-ls.nvim") + use("MunifTanjim/prettier.nvim") + + use("nvim-lualine/lualine.nvim") + + -- this is only here to shut up the message on startup + require("barbar").setup({ + icons = { + filetype = { + enabled = false, + }, + }, + }) end) diff --git a/common/nvim/lua/cc/remap.lua b/common/nvim/lua/cc/remap.lua index 13e895e..5c4845d 100644 --- a/common/nvim/lua/cc/remap.lua +++ b/common/nvim/lua/cc/remap.lua @@ -4,7 +4,7 @@ vim.keymap.set("t", "", "") vim.keymap.set("!", "", "") vim.keymap.set("!", "", "") -vim.keymap.set("i", "", "") +vim.keymap.set({"i", "v"}, "", "") vim.keymap.set("c", "", "") vim.keymap.set("v", "J", ":m '>+1gv=gv") @@ -25,10 +25,6 @@ vim.keymap.set({"n", "v"}, "d", "\"_d") vim.keymap.set("n", "Q", "") -vim.keymap.set("n", "f", function() - vim.lsp.buf.format() -end) - vim.keymap.set("n", "s", [[:%s/\<\>//gI]]) vim.keymap.set("n", "", function()