From af06f0ff9e565d793a21bc012ec2388a74615910 Mon Sep 17 00:00:00 2001 From: Skux4life Date: Tue, 1 Aug 2023 11:18:09 +1000 Subject: [PATCH] add some plugins and keymaps --- init.lua | 115 ++++++++++++++++++++++--------- lua/custom/plugins/init.lua | 6 +- lua/custom/plugins/nvim-tree.lua | 15 ++++ 3 files changed, 102 insertions(+), 34 deletions(-) create mode 100644 lua/custom/plugins/nvim-tree.lua diff --git a/init.lua b/init.lua index 10aeaf96..ff76a2a4 100644 --- a/init.lua +++ b/init.lua @@ -108,7 +108,7 @@ require('lazy').setup({ }, -- Useful plugin to show you pending keybinds. - { 'folke/which-key.nvim', opts = {} }, + { 'folke/which-key.nvim', opts = {} }, { -- Adds git releated signs to the gutter, as well as utilities for managing changes 'lewis6991/gitsigns.nvim', @@ -130,14 +130,8 @@ require('lazy').setup({ }, }, - { - -- Theme inspired by Atom - 'navarasu/onedark.nvim', - priority = 1000, - config = function() - vim.cmd.colorscheme 'onedark' - end, - }, + -- color scheme + { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, { -- Set lualine as statusline @@ -145,8 +139,8 @@ require('lazy').setup({ -- See `:help lualine.txt` opts = { options = { - icons_enabled = false, - theme = 'onedark', + icons_enabled = true, + theme = 'auto', component_separators = '|', section_separators = '', }, @@ -212,10 +206,12 @@ require('lazy').setup({ -- NOTE: You can change these options as you wish! -- Set highlight on search -vim.o.hlsearch = false +vim.o.hlsearch = true -- Make line numbers default vim.wo.number = true +-- Enable relative line numbers +vim.wo.relativenumber = true -- Enable mouse mode vim.o.mouse = 'a' @@ -245,18 +241,70 @@ vim.o.timeoutlen = 300 -- Set completeopt to have a better completion experience vim.o.completeopt = 'menuone,noselect' +-- appearance -- NOTE: You should make sure your terminal supports this vim.o.termguicolors = true +vim.o.background = "dark" +vim.o.signcolumn = "yes" + +-- tabs and indentation +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.expandtab = true +vim.opt.autoindent = true + +-- split windows +vim.o.splitright = true +vim.o.splitbelow = true + +vim.opt.iskeyword:append("-") + +-- set color scheme +vim.cmd.colorscheme "catppuccin" -- [[ Basic Keymaps ]] -- Keymaps for better default experience -- See `:help vim.keymap.set()` -vim.keymap.set({ 'n', 'v' }, '', '', { silent = true }) +local keymap = vim.keymap +keymap.set({ 'n', 'v' }, '', '', { silent = true }) -- Remap for dealing with word wrap -vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) -vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) +keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) +keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) + +-- Remap ESC key in different modes +keymap.set("i", "jk", "") +keymap.set("v", "jk", "") +keymap.set("c", "jk", "") + +-- clear highlights +keymap.set("n", "nh", ":nohl") + +-- delete character but don't copy into register +keymap.set("n", "x", '"_x') + +-- increment/decrement numbers +keymap.set("n", "+", "") +keymap.set("n", "-", "C-x") + +-- split window +keymap.set("n", "sv", "v") +keymap.set("n", "sh", "s") +keymap.set("n", "se", "=") +keymap.set("n", "sx", ":close") + +-- tabs +keymap.set("n", "to", ":tabnew") +keymap.set("n", "tx", ":tabclose") +keymap.set("n", "tn", ":tabn") +keymap.set("n", "tp", ":tabp") + +--maximize window toggle +keymap.set("n", "max", ":MaximizerToggle") + +-- nvim-tree +keymap.set("n", "tt", ":NvimTreeToggle") -- [[ Highlight on yank ]] -- See `:help vim.highlight.on_yank()` @@ -286,9 +334,9 @@ require('telescope').setup { pcall(require('telescope').load_extension, 'fzf') -- See `:help telescope.builtin` -vim.keymap.set('n', '?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' }) -vim.keymap.set('n', '', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' }) -vim.keymap.set('n', '/', function() +keymap.set('n', '?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' }) +keymap.set('n', '', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' }) +keymap.set('n', '/', function() -- You can pass additional configuration to telescope to change theme, layout, etc. require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { winblend = 10, @@ -296,12 +344,12 @@ vim.keymap.set('n', '/', function() }) end, { desc = '[/] Fuzzily search in current buffer' }) -vim.keymap.set('n', 'gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) -vim.keymap.set('n', 'sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' }) -vim.keymap.set('n', 'sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) -vim.keymap.set('n', 'sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' }) -vim.keymap.set('n', 'sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' }) -vim.keymap.set('n', 'sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) +keymap.set('n', 'gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) +keymap.set('n', 'sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' }) +keymap.set('n', 'th', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) +keymap.set('n', 'sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' }) +keymap.set('n', 'sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' }) +keymap.set('n', 'sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) -- [[ Configure Treesitter ]] -- See `:help nvim-treesitter` @@ -370,10 +418,10 @@ require('nvim-treesitter.configs').setup { } -- Diagnostic keymaps -vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' }) -vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' }) -vim.keymap.set('n', 'e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' }) -vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' }) +keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' }) +keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' }) +keymap.set('n', 'e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' }) +keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' }) -- [[ Configure LSP ]] -- This function gets run when an LSP connects to a particular buffer. @@ -389,14 +437,14 @@ local on_attach = function(_, bufnr) desc = 'LSP: ' .. desc end - vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc }) + keymap.set('n', keys, func, { buffer = bufnr, desc = desc }) end nmap('rn', vim.lsp.buf.rename, '[R]e[n]ame') nmap('ca', vim.lsp.buf.code_action, '[C]ode [A]ction') nmap('gd', vim.lsp.buf.definition, '[G]oto [D]efinition') - nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') + nmap('ref', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') nmap('gI', vim.lsp.buf.implementation, '[G]oto [I]mplementation') nmap('D', vim.lsp.buf.type_definition, 'Type [D]efinition') nmap('ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') @@ -430,10 +478,10 @@ end -- define the property 'filetypes' to the map in question. local servers = { -- clangd = {}, - -- gopls = {}, + gopls = {}, -- pyright = {}, -- rust_analyzer = {}, - -- tsserver = {}, + tsserver = {}, -- html = { filetypes = { 'html', 'twig', 'hbs'} }, lua_ls = { @@ -464,7 +512,8 @@ mason_lspconfig.setup_handlers { capabilities = capabilities, on_attach = on_attach, settings = servers[server_name], - filetypes = servers[server_name].filetypes, + -- commented below as currently not overriding file types + -- filetypes = servers[server_name].filetypes, } end } diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index be0eb9d8..923fd858 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -2,4 +2,8 @@ -- I promise not to create any merge conflicts in this directory :) -- -- See the kickstart.nvim README for more information -return {} +return { + 'tpope/vim-surround', + 'szw/vim-maximizer', + 'vim-scripts/ReplaceWithRegister', +} diff --git a/lua/custom/plugins/nvim-tree.lua b/lua/custom/plugins/nvim-tree.lua new file mode 100644 index 00000000..a845f4d1 --- /dev/null +++ b/lua/custom/plugins/nvim-tree.lua @@ -0,0 +1,15 @@ +-- recommended for nvim-tree +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 + +return { + "nvim-tree/nvim-tree.lua", + version = "*", + lazy = false, + dependencies = { + "nvim-tree/nvim-web-devicons", + }, + config = function() + require("nvim-tree").setup {} + end, +}