diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua deleted file mode 100644 index c839ae32..00000000 --- a/.config/nvim/init.lua +++ /dev/null @@ -1,23 +0,0 @@ -require("user.options") -require("user.dracula") -require("user.keymaps") -require("user.plugins") -require("user.colorscheme") -require("user.cmp") -require("user.lsp") -require("user.telescope") -require("user.treesitter") -require("user.autopairs") -require("user.comment") -require("user.gitsigns") -require("user.nvim-tree") -require("user.bufferline") -require("user.lualine") -require("user.toggleterm") -require("user.project") -require("user.impatient") -require("user.indentline") -require("user.alpha") -require("user.whichkey") -require("user.autocommands") -require("user.colorizer") diff --git a/.config/nvim/lua/user/alpha.lua b/.config/nvim/lua/user/alpha.lua deleted file mode 100644 index d72e74df..00000000 --- a/.config/nvim/lua/user/alpha.lua +++ /dev/null @@ -1,42 +0,0 @@ -local status_ok, alpha = pcall(require, "alpha") -if not status_ok then - return -end - -local dashboard = require("alpha.themes.dashboard") -dashboard.section.header.val = { - [[ __ ]], - [[ ___ ___ ___ __ __ /\_\ ___ ___ ]], - [[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]], - [[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]], - [[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]], - [[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]], -} -dashboard.section.buttons.val = { - dashboard.button("f", " Find file", "Telescope find_files"), - dashboard.button("e", " New file", "ene startinsert"), - dashboard.button("p", " Find project", "Telescope projects"), - dashboard.button("r", " Recently used files", "Telescope oldfiles"), - dashboard.button("t", " Find text", "Telescope live_grep"), - dashboard.button("c", " Configuration", "e ~/.config/nvim/init.lua"), - dashboard.button("q", " Quit Neovim", "qa"), -} - -local function footer() - -- NOTE: requires the fortune-mod package to work - -- local handle = io.popen('fortune') - -- local fortune = handle:read('*a') - -- handle:close() - -- return fortune - return "" -end - -dashboard.section.footer.val = footer() - -dashboard.section.footer.opts.hl = "Type" -dashboard.section.header.opts.hl = "Include" -dashboard.section.buttons.opts.hl = "Keyword" - -dashboard.opts.opts.noautocmd = true --- vim.cmd([[autocmd User AlphaReady echo 'ready']]) -alpha.setup(dashboard.opts) diff --git a/.config/nvim/lua/user/autocommands.lua b/.config/nvim/lua/user/autocommands.lua deleted file mode 100644 index 0a1775fb..00000000 --- a/.config/nvim/lua/user/autocommands.lua +++ /dev/null @@ -1,51 +0,0 @@ -vim.cmd([[ - augroup _general_settings - autocmd! - autocmd FileType qf,help,man,lspinfo nnoremap q :close - autocmd TextYankPost * silent!lua require("vim.highlight").on_yank({higroup = "Visual", timeout = 200}) - autocmd BufWinEnter * :set formatoptions-=cro - autocmd FileType qf set nobuflisted - " Remove following whitespaces - autocmd BufWritePre * %s/\s\+$//e - " Center cursor on insert mode - autocmd InsertEnter * norm zz - highlight CursorLine ctermbg=White cterm=bold guibg=#222222 - highlight CursorColumn ctermbg=White cterm=bold guibg=#222222 - let g:vimwiki_list = [{'path': '~/vimwiki/', 'syntax': 'markdown', 'ext': '.md'}] - augroup end - - augroup _git - autocmd! - autocmd FileType gitcommit setlocal wrap - autocmd FileType gitcommit setlocal spell - augroup end - - augroup _markdown - autocmd! - autocmd FileType markdown,vimwiki setlocal wrap - autocmd FileType markdown,vimwiki setlocal spell - augroup end - - augroup _auto_resize - autocmd! - autocmd VimResized * tabdo wincmd = - augroup end - - augroup _alpha - autocmd! - autocmd User AlphaReady set showtabline=0 | autocmd BufUnload set showtabline=2 - augroup end - - augroup _lsp - autocmd! - autocmd BufWritePre,InsertLeave * lua vim.lsp.buf.formatting() - augroup end - - augroup _run - autocmd! - autocmd FileType python imap wexec "!python3" shellescape(@%, 1) - autocmd FileType python map wexec "!python3" shellescape(@%, 1) - autocmd FileType rust imap wexec "!cargo run" - autocmd FileType rust map wexec "!cargo run" - augroup end -]]) diff --git a/.config/nvim/lua/user/autopairs.lua b/.config/nvim/lua/user/autopairs.lua deleted file mode 100644 index 1b96b349..00000000 --- a/.config/nvim/lua/user/autopairs.lua +++ /dev/null @@ -1,33 +0,0 @@ --- Setup nvim-cmp. -local status_ok, npairs = pcall(require, "nvim-autopairs") -if not status_ok then - return -end - -npairs.setup({ - check_ts = true, - ts_config = { - lua = { "string", "source" }, - javascript = { "string", "template_string" }, - java = false, - }, - disable_filetype = { "TelescopePrompt", "spectre_panel" }, - fast_wrap = { - map = "", - chars = { "{", "[", "(", "'", '"' }, - pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""), - offset = 0, -- Offset from pattern match - end_key = "$", - keys = "qwertyuiopzxcvbnmasdfghjkl", - check_comma = true, - highlight = "PmenuSel", - highlight_grey = "LineNr", - }, -}) - -local cmp_autopairs = require("nvim-autopairs.completion.cmp") -local cmp_status_ok, cmp = pcall(require, "cmp") -if not cmp_status_ok then - return -end -cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } })) diff --git a/.config/nvim/lua/user/bufferline.lua b/.config/nvim/lua/user/bufferline.lua deleted file mode 100644 index 0d4f1020..00000000 --- a/.config/nvim/lua/user/bufferline.lua +++ /dev/null @@ -1,168 +0,0 @@ -local status_ok, bufferline = pcall(require, "bufferline") -if not status_ok then - return -end - -bufferline.setup({ - options = { - numbers = "none", -- | 'ordinal' | 'buffer_id' | 'both' | function({ ordinal, id, lower, raise }): string, - close_command = "Bdelete! %d", -- can be a string | function, see 'Mouse actions' - right_mouse_command = "Bdelete! %d", -- can be a string | function, see 'Mouse actions' - left_mouse_command = "buffer %d", -- can be a string | function, see 'Mouse actions' - middle_mouse_command = nil, -- can be a string | function, see 'Mouse actions' - -- NOTE: this plugin is designed with this icon in mind, - -- and so changing this is NOT recommended, this is intended - -- as an escape hatch for people who cannot bear it for whatever reason - -- indicator_icon = "▎", - indicator = "▎", - -- buffer_close_icon = "", - buffer_close_icon = '', - modified_icon = "●", - close_icon = "", - -- close_icon = '', - left_trunc_marker = "", - right_trunc_marker = "", - --- name_formatter can be used to change the buffer's label in the bufferline. - --- Please note some names can/will break the - --- bufferline so use this at your discretion knowing that it has - --- some limitations that will *NOT* be fixed. - -- name_formatter = function(buf) -- buf contains a 'name', 'path' and 'bufnr' - -- -- remove extension from markdown files for example - -- if buf.name:match('%.md') then - -- return vim.fn.fnamemodify(buf.name, ':t:r') - -- end - -- end, - max_name_length = 30, - max_prefix_length = 30, -- prefix used when a buffer is de-duplicated - tab_size = 21, - diagnostics = false, -- | 'nvim_lsp' | 'coc', - diagnostics_update_in_insert = false, - -- diagnostics_indicator = function(count, level, diagnostics_dict, context) - -- return '('..count..')' - -- end, - -- NOTE: this will be called a lot so don't do any heavy processing here - -- custom_filter = function(buf_number) - -- -- filter out filetypes you don't want to see - -- if vim.bo[buf_number].filetype ~= '' then - -- return true - -- end - -- -- filter out by buffer name - -- if vim.fn.bufname(buf_number) ~= '' then - -- return true - -- end - -- -- filter out based on arbitrary rules - -- -- e.g. filter out vim wiki buffer from tabline in your work repo - -- if vim.fn.getcwd() == '' and vim.bo[buf_number].filetype ~= 'wiki' then - -- return true - -- end - -- end, - offsets = { { filetype = "NvimTree", text = "", padding = 1 } }, - show_buffer_icons = true, - show_buffer_close_icons = true, - show_close_icon = true, - show_tab_indicators = true, - persist_buffer_sort = true, -- whether or not custom sorted buffers should persist - -- can also be a table containing 2 custom separators - -- [focused and unfocused]. eg: { '|', '|' } - separator_style = "thin", -- | 'thick' | 'thin' | { 'any', 'any' }, - enforce_regular_tabs = true, - always_show_bufferline = true, - -- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b) - -- -- add custom logic - -- return buffer_a.modified > buffer_b.modified - -- end - }, - highlights = { - fill = { - fg = { attribute = "fg", highlight = "#ff0000" }, - bg = { attribute = "bg", highlight = "TabLine" }, - }, - background = { - fg = { attribute = "fg", highlight = "TabLine" }, - bg = { attribute = "bg", highlight = "TabLine" }, - }, - - -- buffer_selected = { - -- fg = {attribute='fg',highlight='#ff0000'}, - -- bg = {attribute='bg',highlight='#0000ff'}, - -- gui = 'none' - -- }, - buffer_visible = { - fg = { attribute = "fg", highlight = "TabLine" }, - bg = { attribute = "bg", highlight = "TabLine" }, - }, - - close_button = { - fg = { attribute = "fg", highlight = "TabLine" }, - bg = { attribute = "bg", highlight = "TabLine" }, - }, - close_button_visible = { - fg = { attribute = "fg", highlight = "TabLine" }, - bg = { attribute = "bg", highlight = "TabLine" }, - }, - -- close_button_selected = { - -- fg = {attribute='fg',highlight='TabLineSel'}, - -- bg ={attribute='bg',highlight='TabLineSel'} - -- }, - - tab_selected = { - fg = { attribute = "fg", highlight = "Normal" }, - bg = { attribute = "bg", highlight = "Normal" }, - }, - tab = { - fg = { attribute = "fg", highlight = "TabLine" }, - bg = { attribute = "bg", highlight = "TabLine" }, - }, - tab_close = { - -- fg = {attribute='fg',highlight='LspDiagnosticsDefaultError'}, - fg = { attribute = "fg", highlight = "TabLineSel" }, - bg = { attribute = "bg", highlight = "Normal" }, - }, - - duplicate_selected = { - fg = { attribute = "fg", highlight = "TabLineSel" }, - bg = { attribute = "bg", highlight = "TabLineSel" }, - italic = true, - }, - duplicate_visible = { - fg = { attribute = "fg", highlight = "TabLine" }, - bg = { attribute = "bg", highlight = "TabLine" }, - italic = true, - }, - duplicate = { - fg = { attribute = "fg", highlight = "TabLine" }, - bg = { attribute = "bg", highlight = "TabLine" }, - italic = true, - }, - - modified = { - fg = { attribute = "fg", highlight = "TabLine" }, - bg = { attribute = "bg", highlight = "TabLine" }, - }, - modified_selected = { - fg = { attribute = "fg", highlight = "Normal" }, - bg = { attribute = "bg", highlight = "Normal" }, - }, - modified_visible = { - fg = { attribute = "fg", highlight = "TabLine" }, - bg = { attribute = "bg", highlight = "TabLine" }, - }, - - separator = { - fg = { attribute = "bg", highlight = "TabLine" }, - bg = { attribute = "bg", highlight = "TabLine" }, - }, - separator_selected = { - fg = { attribute = "bg", highlight = "Normal" }, - bg = { attribute = "bg", highlight = "Normal" }, - }, - -- separator_visible = { - -- fg = {attribute='bg',highlight='TabLine'}, - -- bg = {attribute='bg',highlight='TabLine'} - -- }, - indicator_selected = { - fg = { attribute = "fg", highlight = "LspDiagnosticsDefaultHint" }, - bg = { attribute = "bg", highlight = "Normal" }, - }, - }, -}) diff --git a/.config/nvim/lua/user/cmp.lua b/.config/nvim/lua/user/cmp.lua deleted file mode 100644 index df46cddd..00000000 --- a/.config/nvim/lua/user/cmp.lua +++ /dev/null @@ -1,133 +0,0 @@ -local cmp_status_ok, cmp = pcall(require, "cmp") -if not cmp_status_ok then - return -end - -local snip_status_ok, luasnip = pcall(require, "luasnip") -if not snip_status_ok then - return -end - -require("luasnip/loaders/from_vscode").lazy_load() - -local check_backspace = function() - local col = vim.fn.col(".") - 1 - return col == 0 or vim.fn.getline("."):sub(col, col):match("%s") -end - ---   פּ ﯟ   some other good icons -local kind_icons = { - Text = "", - Method = "m", - Function = "", - Constructor = "", - Field = "", - Variable = "", - Class = "", - Interface = "", - Module = "", - Property = "", - Unit = "", - Value = "", - Enum = "", - Keyword = "", - Snippet = "", - Color = "", - File = "", - Reference = "", - Folder = "", - EnumMember = "", - Constant = "", - Struct = "", - Event = "", - Operator = "", - TypeParameter = "", -} --- find more here: https://www.nerdfonts.com/cheat-sheet - -cmp.setup({ - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) -- For `luasnip` users. - end, - }, - mapping = { - [""] = cmp.mapping.select_prev_item(), - [""] = cmp.mapping.select_next_item(), - [""] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }), - [""] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }), - [""] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), - [""] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. - [""] = cmp.mapping({ - i = cmp.mapping.abort(), - c = cmp.mapping.close(), - }), - -- Accept currently selected item. If none selected, `select` first item. - -- Set `select` to `false` to only confirm explicitly selected items. - [""] = cmp.mapping.confirm({ select = true }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expandable() then - luasnip.expand() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - elseif check_backspace() then - fallback() - else - fallback() - end - end, { - "i", - "s", - }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { - "i", - "s", - }), - }, - formatting = { - fields = { "kind", "abbr", "menu" }, - format = function(entry, vim_item) - -- Kind icons - vim_item.kind = string.format("%s", kind_icons[vim_item.kind]) - -- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind - vim_item.menu = ({ - nvim_lsp = "[LSP]", - nvim_lua = "[NVIM_LUA]", - luasnip = "[Snippet]", - buffer = "[Buffer]", - path = "[Path]", - })[entry.source.name] - return vim_item - end, - }, - sources = { - { name = "nvim_lsp" }, - { name = "nvim_lua" }, - { name = "luasnip" }, - { name = "buffer" }, - { name = "path" }, - }, - confirm_opts = { - behavior = cmp.ConfirmBehavior.Replace, - select = false, - }, - window = { - documentation = { - border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" }, - }, - }, - experimental = { - ghost_text = false, - native_menu = false, - }, -}) diff --git a/.config/nvim/lua/user/colorizer.lua b/.config/nvim/lua/user/colorizer.lua deleted file mode 100644 index ba8fcc52..00000000 --- a/.config/nvim/lua/user/colorizer.lua +++ /dev/null @@ -1,6 +0,0 @@ -local status_ok, colorizer = pcall(require, "colorizer") -if not status_ok then - return -end - -colorizer.setup() diff --git a/.config/nvim/lua/user/colorscheme.lua b/.config/nvim/lua/user/colorscheme.lua deleted file mode 100644 index 56aacd98..00000000 --- a/.config/nvim/lua/user/colorscheme.lua +++ /dev/null @@ -1,8 +0,0 @@ -vim.cmd([[ -try - colorscheme dracula -catch /^Vim\%((\a\+)\)\=:E185/ - colorscheme default - set background=dark -endtry -]]) diff --git a/.config/nvim/lua/user/comment.lua b/.config/nvim/lua/user/comment.lua deleted file mode 100644 index 47f4124b..00000000 --- a/.config/nvim/lua/user/comment.lua +++ /dev/null @@ -1,23 +0,0 @@ -local status_ok, comment = pcall(require, "nvim_comment") -if not status_ok then - return -end - -comment.setup({ - -- Linters prefer comment and line to have a space in between markers - marker_padding = true, - -- should comment out empty or whitespace only lines - comment_empty = true, - -- trim empty comment whitespace - comment_empty_trim_whitespace = true, - -- Should key mappings be created - create_mappings = true, - -- Normal mode mapping left hand side - line_mapping = "gcc", - -- Visual/Operator mapping left hand side - operator_mapping = "gc", - -- text object mapping, comment chunk,, - comment_chunk_text_object = "ic", - -- Hook function to call before commenting takes place - hook = nil, -}) diff --git a/.config/nvim/lua/user/dracula.lua b/.config/nvim/lua/user/dracula.lua deleted file mode 100644 index 2b412960..00000000 --- a/.config/nvim/lua/user/dracula.lua +++ /dev/null @@ -1,22 +0,0 @@ -local status_ok, dracula = pcall(require, "dracula") -if not status_ok then - return -end - -dracula.setup({ - -- show the '~' characters after the end of buffers - show_end_of_buffer = true, -- default false - -- use transparent background - transparent_bg = true, -- default false - -- set custom lualine background color - -- lualine_bg_color = "#44475a", -- default nil - -- set italic comment - italic_comment = true, -- default false - -- overrides the default highlights see `:h synIDattr` - overrides = { - -- Examples - -- NonText = { fg = dracula.colors().white }, -- set NonText fg to white - -- NvimTreeIndentMarker = { link = "NonText" }, -- link to NonText highlight - -- Nothing = {} -- clear highlight of Nothing - }, -}) diff --git a/.config/nvim/lua/user/gitsigns.lua b/.config/nvim/lua/user/gitsigns.lua deleted file mode 100644 index 34da2e0a..00000000 --- a/.config/nvim/lua/user/gitsigns.lua +++ /dev/null @@ -1,48 +0,0 @@ -local status_ok, gitsigns = pcall(require, "gitsigns") -if not status_ok then - return -end - -gitsigns.setup({ - signs = { - add = { hl = "GitSignsAdd", text = "▎", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" }, - change = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" }, - delete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" }, - topdelete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" }, - changedelete = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" }, - }, - signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` - numhl = true, -- Toggle with `:Gitsigns toggle_numhl` - linehl = false, -- Toggle with `:Gitsigns toggle_linehl` - word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` - watch_gitdir = { - interval = 1000, - follow_files = true, - }, - attach_to_untracked = true, - current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` - current_line_blame_opts = { - virt_text = true, - virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align' - delay = 1000, - ignore_whitespace = false, - }, - current_line_blame_formatter_opts = { - relative_time = false, - }, - sign_priority = 6, - update_debounce = 100, - status_formatter = nil, -- Use default - max_file_length = 40000, - preview_config = { - -- Options passed to nvim_open_win - border = "single", - style = "minimal", - relative = "cursor", - row = 0, - col = 1, - }, - yadm = { - enable = false, - }, -}) diff --git a/.config/nvim/lua/user/impatient.lua b/.config/nvim/lua/user/impatient.lua deleted file mode 100644 index fa64f003..00000000 --- a/.config/nvim/lua/user/impatient.lua +++ /dev/null @@ -1,6 +0,0 @@ -local status_ok, impatient = pcall(require, "impatient") -if not status_ok then - return -end - -impatient.enable_profile() diff --git a/.config/nvim/lua/user/indentline.lua b/.config/nvim/lua/user/indentline.lua deleted file mode 100644 index 74b1f6d6..00000000 --- a/.config/nvim/lua/user/indentline.lua +++ /dev/null @@ -1,76 +0,0 @@ -local g = vim.g -local opt = vim.opt -local cmd = vim.cmd -local status_ok, indent_blankline = pcall(require, "indent_blankline") -if not status_ok then - return -end - -g.indent_blankline_buftype_exclude = { "terminal", "nofile" } -g.indent_blankline_filetype_exclude = { - "help", - "startify", - "dashboard", - "packer", - "neogitstatus", - "NvimTree", - "Trouble", -} -g.indentLine_enabled = 1 --- g.indent_blankline_char = '│' --- g.indent_blankline_char = "▏" -g.indent_blankline_char = "▎" -g.indent_blankline_show_trailing_blankline_indent = false -g.indent_blankline_show_first_indent_level = true -g.indent_blankline_use_treesitter = true -g.indent_blankline_show_current_context = true -g.indent_blankline_context_patterns = { - "class", - "return", - "function", - "method", - "^if", - "^while", - "jsx_element", - "^for", - "^object", - "^table", - "block", - "arguments", - "if_statement", - "else_clause", - "jsx_element", - "jsx_self_closing_element", - "try_statement", - "catch_clause", - "import_statement", - "operation_type", -} --- HACK: work-around for https://github.com/lukas-reineke/indent-blankline.nvim/issues/59 -vim.wo.colorcolumn = "99999" - -cmd([[highlight IndentBlanklineIndent1 guifg=#C678DD gui=nocombine]]) -cmd([[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]]) -cmd([[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]]) -cmd([[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]]) -cmd([[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]]) -cmd([[highlight IndentBlanklineIndent6 guifg=#E06C75 gui=nocombine]]) -opt.list = true -opt.listchars:append("space:⋅") --- opt.listchars:append 'space:' -opt.listchars:append("eol:↴") - -indent_blankline.setup({ - show_end_of_line = true, - space_char_blankline = " ", - show_current_context = true, - show_current_context_start = true, - char_highlight_list = { - "IndentBlanklineIndent1", - "IndentBlanklineIndent2", - "IndentBlanklineIndent3", - "IndentBlanklineIndent4", - "IndentBlanklineIndent5", - "IndentBlanklineIndent6", - }, -}) diff --git a/.config/nvim/lua/user/keymaps.lua b/.config/nvim/lua/user/keymaps.lua deleted file mode 100644 index 0a8f4d23..00000000 --- a/.config/nvim/lua/user/keymaps.lua +++ /dev/null @@ -1,72 +0,0 @@ -local keymap = vim.api.nvim_set_keymap -local opts = { noremap = true, silent = true } -local term_opts = { silent = true } - ---Remap space as leader key -keymap("", "", "", opts) -vim.g.mapleader = " " -vim.g.maplocalleader = " " - --- Remmove default keymaps -keymap("n", "", "", opts) - --- Modes --- normal_mode = 'n', --- insert_mode = 'i', --- visual_mode = 'v', --- visual_block_mode = 'x', --- term_mode = 't', --- command_mode = 'c', - --- Normal -- --- Shortcutting split navigation -keymap("n", "", "l", opts) -keymap("n", "", "h", opts) -keymap("n", "", "j", opts) -keymap("n", "", "k", opts) - --- Resize with arrows -keymap("n", "", "resize -2", opts) -keymap("n", "", "resize +2", opts) -keymap("n", "", "vertical resize -2", opts) -keymap("n", "", "vertical resize +2", opts) - --- Navigate buffers -keymap("n", "", "bnext", opts) -keymap("n", "", "bprevious", opts) - --- Move text up and down. -keymap("n", "", "m .-2==", opts) -keymap("n", "", "m .+1==", opts) - --- Insert -- --- Press jk fast to exit insert mode -keymap("i", "jk", "", opts) - --- Visual -- --- Stay in indent mode -keymap("v", "<", "", ">gv", opts) - --- Move text up and down. Visual mode --- keymap("v", "", "m '>+1gv=gv", opts) --- keymap("v", "", "m '<-2gv=gv", opts) -keymap("v", "p", "'_dP'", opts) - --- Visual Block -- --- Move text up and down. --- keymap("x", "K", "m '>+1gv=gv", opts) --- keymap("x", "J", "m '<-2gv=gv", opts) --- keymap("x", "", "m '<-2gv=gv", opts) --- keymap("x", "", "m '>+1gv=gv", opts) - --- Terminal -- --- Better terminal navigation -keymap("t", "", "h", term_opts) -keymap("t", "", "j", term_opts) -keymap("t", "", "k", term_opts) -keymap("t", "", "l", term_opts) - --- Shortcutting -- --- Substitute -keymap("n", "S", ":%s//", {}) diff --git a/.config/nvim/lua/user/lsp/configs.lua b/.config/nvim/lua/user/lsp/configs.lua deleted file mode 100644 index 7f4d91e3..00000000 --- a/.config/nvim/lua/user/lsp/configs.lua +++ /dev/null @@ -1,39 +0,0 @@ -local status_ok, lsp_installer = pcall(require, "nvim-lsp-installer") -if not status_ok then - return -end - -local lspconfig = require("lspconfig") - -local servers = { - "bashls", - "clangd", - "cssls", - "diagnosticls", - "emmet_ls", - "html", - "jsonls", - "marksman", - "pyright", - "rust_analyzer", - "sumneko_lua", - "taplo", - "vimls", - "yamlls", -} - -lsp_installer.setup({ - ensure_installed = servers, -}) - -for _, server in pairs(servers) do - local opts = { - on_attach = require("user.lsp.handlers").on_attach, - capabilities = require("user.lsp.handlers").capabilities, - } - local has_custom_opts, server_custom_opts = pcall(require, "user.lsp.settings." .. server) - if has_custom_opts then - opts = vim.tbl_deep_extend("force", opts, server_custom_opts) - end - lspconfig[server].setup(opts) -end diff --git a/.config/nvim/lua/user/lsp/handlers.lua b/.config/nvim/lua/user/lsp/handlers.lua deleted file mode 100644 index bdee7789..00000000 --- a/.config/nvim/lua/user/lsp/handlers.lua +++ /dev/null @@ -1,110 +0,0 @@ -local M = {} -local api = vim.api -local lsp = vim.lsp - --- TODO: backfill this to template -M.setup = function() - local signs = { - { name = "DiagnosticSignError", text = "" }, - { name = "DiagnosticSignWarn", text = "" }, - { name = "DiagnosticSignHint", text = "" }, - { name = "DiagnosticSignInfo", text = "" }, - } - - for _, sign in ipairs(signs) do - vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" }) - end - - local config = { - -- disable virtual text - virtual_text = false, - -- show signs - signs = { - active = signs, - }, - update_in_insert = true, - underline = true, - severity_sort = true, - float = { - focusable = false, - style = "minimal", - border = "rounded", - source = "always", - header = "", - prefix = "", - }, - } - - vim.diagnostic.config(config) - - lsp.handlers["textDocument/hover"] = lsp.with(lsp.handlers.hover, { - border = "rounded", - width = 60, - }) - - lsp.handlers["textDocument/signatureHelp"] = lsp.with(lsp.handlers.signature_help, { - border = "rounded", - width = 60, - }) -end - -local function lsp_highlight_document(client) - -- Set autocommands conditional on server_capabilities - local status_ok, illuminate = pcall(require, "illuminate") - if not status_ok then - return - end - illuminate.on_attach(client) - -- end -end - -local function lsp_keymaps(bufnr) - local opts = { noremap = true, silent = true } - api.nvim_buf_set_keymap(bufnr, "n", "gD", "lua vim.lsp.buf.declaration()", opts) - api.nvim_buf_set_keymap(bufnr, "n", "gd", "lua vim.lsp.buf.definition()", opts) - api.nvim_buf_set_keymap(bufnr, "n", "K", "lua vim.lsp.buf.hover()", opts) - api.nvim_buf_set_keymap(bufnr, "n", "gi", "lua vim.lsp.buf.implementation()", opts) - api.nvim_buf_set_keymap(bufnr, "n", "", "lua vim.lsp.buf.signature_help()", opts) - -- api.nvim_buf_set_keymap(bufnr, "n", "rn", "lua vim.lsp.buf.rename()", opts) - api.nvim_buf_set_keymap(bufnr, "n", "gr", "lua vim.lsp.buf.references()", opts) - -- api.nvim_buf_set_keymap(bufnr, "n", "ca", "lua vim.lsp.buf.code_action()", opts) - -- api.nvim_buf_set_keymap(bufnr, "n", "f", "lua vim.diagnostic.open_float()", opts) - api.nvim_buf_set_keymap(bufnr, "n", "]d", "lua vim.lsp.diagnostic.goto_next({ border = 'rounded' })", opts) - api.nvim_buf_set_keymap(bufnr, "n", "[d", "lua vim.lsp.diagnostic.goto_prev({ border = 'rounded' })", opts) - api.nvim_buf_set_keymap(bufnr, "n", "gl", "lua vim.diagnostic.open_float({ border = 'rounded' })", opts) - api.nvim_buf_set_keymap(bufnr, "n", "q", "lua vim.lsp.diagnostic.set_loclist()", opts) - vim.cmd([[ command! Format execute "lua vim.lsp.buf.formatting()" ]]) -end - -M.on_attach = function(client, bufnr) - -- vim.notify(client.name .. ' starting...') - -- TODO: refactor this into a method that checks if string in list - if client.name == "tsserver" then - client.resolved_capabilities.document_formatting = false - end - if client.name == "sumneko_lua" then - client.resolved_capabilities.document_formatting = false - end - if client.name == "diagnosticls" then - client.resolved_capabilities.document_formatting = false - end - if client.name == "html" then - client.resolved_capabilities.document_formatting = false - end - if client.name == "jsonls" then - client.resolved_capabilities.document_formatting = false - end - lsp_keymaps(bufnr) - lsp_highlight_document(client) -end - -local capabilities = lsp.protocol.make_client_capabilities() - -local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") -if not status_ok then - return -end - -M.capabilities = cmp_nvim_lsp.update_capabilities(capabilities) - -return M diff --git a/.config/nvim/lua/user/lsp/init.lua b/.config/nvim/lua/user/lsp/init.lua deleted file mode 100644 index 98f9f111..00000000 --- a/.config/nvim/lua/user/lsp/init.lua +++ /dev/null @@ -1,8 +0,0 @@ -local status_ok, _ = pcall(require, "lspconfig") -if not status_ok then - return -end - -require("user.lsp.configs") -require("user.lsp.handlers").setup() -require("user.lsp.null-ls") diff --git a/.config/nvim/lua/user/lsp/null-ls.lua b/.config/nvim/lua/user/lsp/null-ls.lua deleted file mode 100644 index 9a791d77..00000000 --- a/.config/nvim/lua/user/lsp/null-ls.lua +++ /dev/null @@ -1,26 +0,0 @@ -local null_ls_status_ok, null_ls = pcall(require, "null-ls") -if not null_ls_status_ok then - return -end - --- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting -local formatting = null_ls.builtins.formatting --- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics -local diagnostics = null_ls.builtins.diagnostics - -null_ls.setup({ - debug = true, - sources = { - formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }), - formatting.autopep8, - formatting.stylua, - formatting.rustfmt, - formatting.beautysh, - formatting.djhtml, - formatting.tidy, - formatting.stylelint, - -- diagnostics.luacheck, - diagnostics.pylint, - diagnostics.zsh, - }, -}) diff --git a/.config/nvim/lua/user/lsp/settings/jsonls.lua b/.config/nvim/lua/user/lsp/settings/jsonls.lua deleted file mode 100644 index ca5e8352..00000000 --- a/.config/nvim/lua/user/lsp/settings/jsonls.lua +++ /dev/null @@ -1,197 +0,0 @@ -local default_schemas = nil -local status_ok, jsonls_settings = pcall(require, "nlspsettings.jsonls") -if status_ok then - default_schemas = jsonls_settings.get_default_schemas() -end - -local schemas = { - { - description = "TypeScript compiler configuration file", - fileMatch = { - "tsconfig.json", - "tsconfig.*.json", - }, - url = "https://json.schemastore.org/tsconfig.json", - }, - { - description = "Lerna config", - fileMatch = { "lerna.json" }, - url = "https://json.schemastore.org/lerna.json", - }, - { - description = "Babel configuration", - fileMatch = { - ".babelrc.json", - ".babelrc", - "babel.config.json", - }, - url = "https://json.schemastore.org/babelrc.json", - }, - { - description = "ESLint config", - fileMatch = { - ".eslintrc.json", - ".eslintrc", - }, - url = "https://json.schemastore.org/eslintrc.json", - }, - { - description = "Bucklescript config", - fileMatch = { "bsconfig.json" }, - url = "https://raw.githubusercontent.com/rescript-lang/rescript-compiler/8.2.0/docs/docson/build-schema.json", - }, - { - description = "Prettier config", - fileMatch = { - ".prettierrc", - ".prettierrc.json", - "prettier.config.json", - }, - url = "https://json.schemastore.org/prettierrc", - }, - { - description = "Vercel Now config", - fileMatch = { "now.json" }, - url = "https://json.schemastore.org/now", - }, - { - description = "Stylelint config", - fileMatch = { - ".stylelintrc", - ".stylelintrc.json", - "stylelint.config.json", - }, - url = "https://json.schemastore.org/stylelintrc", - }, - { - description = "A JSON schema for the ASP.NET LaunchSettings.json files", - fileMatch = { "launchsettings.json" }, - url = "https://json.schemastore.org/launchsettings.json", - }, - { - description = "Schema for CMake Presets", - fileMatch = { - "CMakePresets.json", - "CMakeUserPresets.json", - }, - url = "https://raw.githubusercontent.com/Kitware/CMake/master/Help/manual/presets/schema.json", - }, - { - description = "Configuration file as an alternative for configuring your repository in the settings page.", - fileMatch = { - ".codeclimate.json", - }, - url = "https://json.schemastore.org/codeclimate.json", - }, - { - description = "LLVM compilation database", - fileMatch = { - "compile_commands.json", - }, - url = "https://json.schemastore.org/compile-commands.json", - }, - { - description = "Config file for Command Task Runner", - fileMatch = { - "commands.json", - }, - url = "https://json.schemastore.org/commands.json", - }, - { - description = "AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment.", - fileMatch = { - "*.cf.json", - "cloudformation.json", - }, - url = "https://raw.githubusercontent.com/awslabs/goformation/v5.2.9/schema/cloudformation.schema.json", - }, - { - description = "The AWS Serverless Application Model (AWS SAM, previously known as Project Flourish) extends AWS CloudFormation to provide a simplified way of defining the Amazon API Gateway APIs, AWS Lambda functions, and Amazon DynamoDB tables needed by your serverless application.", - fileMatch = { - "serverless.template", - "*.sam.json", - "sam.json", - }, - url = "https://raw.githubusercontent.com/awslabs/goformation/v5.2.9/schema/sam.schema.json", - }, - { - description = "Json schema for properties json file for a GitHub Workflow template", - fileMatch = { - ".github/workflow-templates/**.properties.json", - }, - url = "https://json.schemastore.org/github-workflow-template-properties.json", - }, - { - description = "golangci-lint configuration file", - fileMatch = { - ".golangci.toml", - ".golangci.json", - }, - url = "https://json.schemastore.org/golangci-lint.json", - }, - { - description = "JSON schema for the JSON Feed format", - fileMatch = { - "feed.json", - }, - url = "https://json.schemastore.org/feed.json", - versions = { - ["1"] = "https://json.schemastore.org/feed-1.json", - ["1.1"] = "https://json.schemastore.org/feed.json", - }, - }, - { - description = "Packer template JSON configuration", - fileMatch = { - "packer.json", - }, - url = "https://json.schemastore.org/packer.json", - }, - { - description = "NPM configuration file", - fileMatch = { - "package.json", - }, - url = "https://json.schemastore.org/package.json", - }, - { - description = "JSON schema for Visual Studio component configuration files", - fileMatch = { - "*.vsconfig", - }, - url = "https://json.schemastore.org/vsconfig.json", - }, - { - description = "Resume json", - fileMatch = { "resume.json" }, - url = "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json", - }, -} - -local function extend(tab1, tab2) - for _, value in ipairs(tab2 or {}) do - table.insert(tab1, value) - end - return tab1 -end - -local extended_schemas = extend(schemas, default_schemas) - -local opts = { - settings = { - json = { - schemas = extended_schemas, - }, - }, - setup = { - commands = { - Format = { - function() - vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line("$"), 0 }) - end, - }, - }, - }, -} - -return opts diff --git a/.config/nvim/lua/user/lsp/settings/pyright.lua b/.config/nvim/lua/user/lsp/settings/pyright.lua deleted file mode 100644 index 570ef9dc..00000000 --- a/.config/nvim/lua/user/lsp/settings/pyright.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - settings = { - python = { - analysis = { - typeCheckingMode = "off", - }, - }, - }, -} diff --git a/.config/nvim/lua/user/lsp/settings/sumneko_lua.lua b/.config/nvim/lua/user/lsp/settings/sumneko_lua.lua deleted file mode 100644 index 2c8bf396..00000000 --- a/.config/nvim/lua/user/lsp/settings/sumneko_lua.lua +++ /dev/null @@ -1,15 +0,0 @@ -return { - settings = { - Lua = { - diagnostics = { - globals = { "vim", "require" }, - }, - workspace = { - library = { - [vim.fn.expand("$VIMRUNTIME/lua")] = true, - [vim.fn.stdpath("config") .. "/lua"] = true, - }, - }, - }, - }, -} diff --git a/.config/nvim/lua/user/lualine.lua b/.config/nvim/lua/user/lualine.lua deleted file mode 100644 index 47bd0d10..00000000 --- a/.config/nvim/lua/user/lualine.lua +++ /dev/null @@ -1,93 +0,0 @@ -local status_ok, lualine = pcall(require, "lualine") -if not status_ok then - return -end - -local hide_in_width = function() - return vim.fn.winwidth(0) > 80 -end - -local diagnostics = { - "diagnostics", - sources = { "nvim_diagnostic" }, - sections = { "error", "warn" }, - symbols = { error = " ", warn = " " }, - colored = false, - update_in_insert = false, - always_visible = true, -} - -local diff = { - "diff", - colored = false, - symbols = { added = " ", modified = " ", removed = " " }, -- changes diff symbols - cond = hide_in_width, -} - -local mode = { - "mode", - fmt = function(str) - return "-- " .. str .. " --" - end, -} - -local filetype = { - "filetype", - icons_enabled = false, - icon = nil, -} - -local branch = { - "branch", - icons_enabled = true, - icon = "", -} - -local location = { - "location", - padding = 0, -} - --- cool function for progress -local progress = function() - local current_line = vim.fn.line(".") - local total_lines = vim.fn.line("$") - local chars = { "__", "▁▁", "▂▂", "▃▃", "▄▄", "▅▅", "▆▆", "▇▇", "██" } - local line_ratio = current_line / total_lines - local index = math.ceil(line_ratio * #chars) - return chars[index] -end - -local spaces = function() - return "spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth") -end - -lualine.setup({ - options = { - icons_enabled = true, - theme = "auto", - component_separators = { left = "", right = "" }, - section_separators = { left = "", right = "" }, - disabled_filetypes = {}, - always_divide_middle = true, - globalstatus = false, - }, - sections = { - lualine_a = { "mode" }, - lualine_b = { "branch", "diff", "diagnostics" }, - lualine_c = { "filename" }, - lualine_x = { "encoding", "fileformat", "filetype" }, - lualine_y = { "progress" }, - lualine_z = { "location" }, - }, - inactive_sections = { - lualine_a = {}, - lualine_b = {}, - lualine_c = { "filename" }, - lualine_x = { "location" }, - lualine_y = {}, - lualine_z = {}, - }, - tabline = {}, - extensions = {}, -}) diff --git a/.config/nvim/lua/user/nvim-tree.lua b/.config/nvim/lua/user/nvim-tree.lua deleted file mode 100644 index ace3d7a8..00000000 --- a/.config/nvim/lua/user/nvim-tree.lua +++ /dev/null @@ -1,80 +0,0 @@ -local status_ok, nvim_tree = pcall(require, "nvim-tree") -if not status_ok then - return -end - -local config_status_ok, nvim_tree_config = pcall(require, "nvim-tree.config") -if not config_status_ok then - return -end - -local tree_cb = nvim_tree_config.nvim_tree_callback - -nvim_tree.setup({ - sort_by = "case_sensitive", - update_focused_file = { - enable = true, - update_cwd = true, - }, - renderer = { - group_empty = true, - root_folder_modifier = ":t", - icons = { - webdev_colors = true, - show = { - file = true, - folder = true, - folder_arrow = true, - git = true, - }, - glyphs = { - default = "", - symlink = "", - folder = { - arrow_open = "", - arrow_closed = "", - default = "", - open = "", - empty = "", - empty_open = "", - symlink = "", - symlink_open = "", - }, - git = { - unstaged = "", - staged = "S", - unmerged = "", - renamed = "➜", - untracked = "U", - deleted = "", - ignored = "◌", - }, - }, - }, - }, - diagnostics = { - enable = true, - show_on_dirs = true, - icons = { - hint = "", - info = "", - warning = "", - error = "", - }, - }, - view = { - width = 30, - height = 30, - side = "left", - mappings = { - list = { - { key = { "l", "", "o" }, cb = tree_cb("edit") }, - { key = "h", cb = tree_cb("close_node") }, - { key = "v", cb = tree_cb("vsplit") }, - }, - }, - }, - filters = { - dotfiles = false, - }, -}) diff --git a/.config/nvim/lua/user/options.lua b/.config/nvim/lua/user/options.lua deleted file mode 100644 index af7860b0..00000000 --- a/.config/nvim/lua/user/options.lua +++ /dev/null @@ -1,55 +0,0 @@ -local g = vim.g -local o = vim.o - -g.mapleader = " " -g.maplocalleader = " " - -local options = { - backup = false, -- creates a backup file - clipboard = "unnamedplus", -- allows neovim to access the system clipboard - cmdheight = 1, -- more space in the neovim command line for displaying messages - completeopt = { "menu", "menuone", "noselect" }, -- mostly just for cmp - conceallevel = 0, -- so that `` is visible in markdown files - fileencoding = "utf-8", -- the encoding written to a file - hlsearch = true, -- highlight all matches on previous search pattern - ignorecase = true, -- ignore case in search patterns - mouse = "a", -- allow the mouse to be used in neovim - pumheight = 10, -- pop up menu height - showmode = false, -- we don't need to see things like -- INSERT -- anymore - showtabline = 2, -- always show tabs - smartcase = true, -- smart case - smartindent = true, -- make indenting smarter again - splitbelow = true, -- force all horizontal splits to go below current window - splitright = true, -- force all vertical splits to go to the right of current window - swapfile = false, -- creates a swapfile - termguicolors = true, -- set term gui colors (most terminals support this) - timeoutlen = 100, -- time to wait for a mapped sequence to complete (in milliseconds) - undofile = true, -- enable persistent undo - updatetime = 300, -- faster completion (4000ms default) - writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited - expandtab = true, -- convert tabs to spaces - shiftwidth = 4, -- the number of spaces inserted for each indentation - tabstop = 4, -- insert 4 spaces for a tab - cursorline = true, -- highlight the current line - cursorcolumn = true, -- highlight the current column - number = true, -- set numbered lines - relativenumber = true, -- set relative numbered lines - numberwidth = 2, -- set number column width to 2 {default 4} - signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time - wrap = true, -- display lines as one long line - scrolloff = 8, -- is one of my fav - sidescrolloff = 8, - --wildmode = 'longest,list,full', - guifont = "JetBrainsMono NF:h11", -- the font used in graphical neovim applications -} - -for k, v in pairs(options) do - vim.opt[k] = v -end - -vim.opt_local.suffixesadd:prepend(".lua") -vim.opt_local.suffixesadd:prepend("init.lua") -vim.opt_local.path:prepend(vim.fn.stdpath("config") .. "/lua") - -g.user_emmet_mode = "n" -g.user_emmet_leader_key = "," diff --git a/.config/nvim/lua/user/plugins.lua b/.config/nvim/lua/user/plugins.lua deleted file mode 100644 index 13178c26..00000000 --- a/.config/nvim/lua/user/plugins.lua +++ /dev/null @@ -1,112 +0,0 @@ -local fn = vim.fn - --- Automatically install packer -local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" -if fn.empty(fn.glob(install_path)) > 0 then - PACKER_BOOTSTRAP = fn.system({ - "git", - "clone", - "--depth", - "1", - "https://github.com/wbthomason/packer.nvim", - install_path, - }) - print("Installing packer close and reopen Neovim...") - vim.cmd([[packadd packer.nvim]]) -end - --- Autocommand that reloads neovim whenever you save the plugins.lua file -vim.cmd([[ - augroup packer_user_config - autocmd! - autocmd BufWritePost plugins.lua source | PackerSync - augroup end -]]) - --- Use a protected call so we don't error out on first use -local status_ok, packer = pcall(require, "packer") -if not status_ok then - return -end - --- Have packer use a popup window -packer.init({ - display = { - open_fn = function() - return require("packer.util").float({ border = "rounded" }) - end, - }, -}) - --- Install your plugins here -return packer.startup(function(use) - -- Plugins here - - use("wbthomason/packer.nvim") -- Have packer manage itself - use("nvim-lua/popup.nvim") -- Useful lua functions used by lots of plugins - use("nvim-lua/plenary.nvim") -- Useful lua functions used by lots of plugins - use("windwp/nvim-autopairs") -- Autopairs, integrates with both cmp and treesitte - use("terrortylor/nvim-comment") - use("JoosepAlviste/nvim-ts-context-commentstring") - use("kyazdani42/nvim-web-devicons") - use("kyazdani42/nvim-tree.lua") - use("akinsho/bufferline.nvim") - use("moll/vim-bbye") - use("nvim-lualine/lualine.nvim") - use("akinsho/toggleterm.nvim") - use("ahmedkhalf/project.nvim") - use("lewis6991/impatient.nvim") - use("lukas-reineke/indent-blankline.nvim") - use("goolord/alpha-nvim") - use("folke/which-key.nvim") - use("andweeb/presence.nvim") - use("mattn/emmet-vim") - use("saecki/crates.nvim") - use("norcalli/nvim-colorizer.lua") - use("alvan/vim-closetag") - use("tpope/vim-surround") - - -- Vimwiki - use("vimwiki/vimwiki") - - -- Colorschemes - use("Mofiqul/dracula.nvim") - use("folke/tokyonight.nvim") - use("lunarvim/darkplus.nvim") - - -- cmp plugins - use("hrsh7th/nvim-cmp") -- The completion plugin - use("hrsh7th/cmp-buffer") -- buffer completions - use("hrsh7th/cmp-path") -- path completions - use("hrsh7th/cmp-cmdline") -- cmdline completions - use("saadparwaiz1/cmp_luasnip") -- snippet completions - use("hrsh7th/cmp-nvim-lsp") - use("hrsh7th/cmp-nvim-lua") - - -- snippets - use("L3MON4D3/LuaSnip") --snippet engine - use("rafamadriz/friendly-snippets") -- a bunch of snippets to use - - -- LSP - use("neovim/nvim-lspconfig") -- enable LSP - use("williamboman/nvim-lsp-installer") -- simple to use language server installer - use("jose-elias-alvarez/null-ls.nvim") -- for formatters and linters - - -- Telescope - use({ "nvim-telescope/telescope.nvim", run = ":TSUpdate" }) - use({ "nvim-telescope/telescope-fzf-native.nvim", run = "make" }) - use("nvim-telescope/telescope-media-files.nvim") - - -- Treesitter - use("nvim-treesitter/nvim-treesitter") - use("p00f/nvim-ts-rainbow") - - -- Git - use("lewis6991/gitsigns.nvim") - - -- Automatically set up your configuration after cloning packer.nvim - -- Put this at the end after all plugins - if PACKER_BOOTSTRAP then - require("packer").sync() - end -end) diff --git a/.config/nvim/lua/user/project.lua b/.config/nvim/lua/user/project.lua deleted file mode 100644 index 5b579d24..00000000 --- a/.config/nvim/lua/user/project.lua +++ /dev/null @@ -1,48 +0,0 @@ -local status_ok, project = pcall(require, "project_nvim") -if not status_ok then - return -end -project.setup({ - ---@usage set to false to disable project.nvim. - --- This is on by default since it's currently the expected behavior. - active = true, - - on_config_done = nil, - - ---@usage set to true to disable setting the current-woriking directory - --- Manual mode doesn't automatically change your root directory, so you have - --- the option to manually do so using `:ProjectRoot` command. - manual_mode = false, - - ---@usage Methods of detecting the root directory - --- Allowed values: **"lsp"** uses the native neovim lsp - --- **"pattern"** uses vim-rooter like glob pattern matching. Here - --- order matters: if one is not detected, the other is used as fallback. You - --- can also delete or rearangne the detection methods. - -- detection_methods = { "lsp", "pattern" }, -- NOTE: lsp detection will get annoying with multiple langs in one project - detection_methods = { "pattern" }, - - ---@usage patterns used to detect root dir, when **"pattern"** is in detection_methods - patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json" }, - - ---@ Show hidden files in telescope when searching for files in a project - show_hidden = false, - - ---@usage When set to false, you will get a message when project.nvim changes your directory. - -- When set to false, you will get a message when project.nvim changes your directory. - silent_chdir = true, - - ---@usage list of lsp client names to ignore when using **lsp** detection. eg: { "efm", ... } - ignore_lsp = {}, - - ---@type string - ---@usage path to store the project history for use in telescope - datapath = vim.fn.stdpath("data"), -}) - -local tele_status_ok, telescope = pcall(require, "telescope") -if not tele_status_ok then - return -end - -telescope.load_extension("projects") diff --git a/.config/nvim/lua/user/telescope.lua b/.config/nvim/lua/user/telescope.lua deleted file mode 100644 index d1d5060c..00000000 --- a/.config/nvim/lua/user/telescope.lua +++ /dev/null @@ -1,106 +0,0 @@ -local status_ok, telescope = pcall(require, "telescope") -if not status_ok then - return -end - -local actions = require("telescope.actions") -telescope.load_extension("fzf") -telescope.load_extension("media_files") - -telescope.setup({ - defaults = { - - prompt_prefix = " ", - selection_caret = " ", - path_display = { "smart" }, - - mappings = { - i = { - [""] = actions.cycle_history_next, - [""] = actions.cycle_history_prev, - - [""] = actions.move_selection_next, - [""] = actions.move_selection_previous, - - [""] = actions.close, - - [""] = actions.move_selection_next, - [""] = actions.move_selection_previous, - - [""] = actions.select_default, - [""] = actions.select_horizontal, - [""] = actions.select_vertical, - [""] = actions.select_tab, - - [""] = actions.preview_scrolling_up, - [""] = actions.preview_scrolling_down, - - [""] = actions.results_scrolling_up, - [""] = actions.results_scrolling_down, - - [""] = actions.toggle_selection + actions.move_selection_worse, - [""] = actions.toggle_selection + actions.move_selection_better, - [""] = actions.send_to_qflist + actions.open_qflist, - [""] = actions.send_selected_to_qflist + actions.open_qflist, - [""] = actions.complete_tag, - [""] = actions.which_key, -- keys from pressing - }, - - n = { - [""] = actions.close, - [""] = actions.select_default, - [""] = actions.select_horizontal, - [""] = actions.select_vertical, - [""] = actions.select_tab, - - [""] = actions.toggle_selection + actions.move_selection_worse, - [""] = actions.toggle_selection + actions.move_selection_better, - [""] = actions.send_to_qflist + actions.open_qflist, - [""] = actions.send_selected_to_qflist + actions.open_qflist, - - ["j"] = actions.move_selection_next, - ["k"] = actions.move_selection_previous, - ["H"] = actions.move_to_top, - ["M"] = actions.move_to_middle, - ["L"] = actions.move_to_bottom, - - [""] = actions.move_selection_next, - [""] = actions.move_selection_previous, - ["gg"] = actions.move_to_top, - ["G"] = actions.move_to_bottom, - - [""] = actions.preview_scrolling_up, - [""] = actions.preview_scrolling_down, - - [""] = actions.results_scrolling_up, - [""] = actions.results_scrolling_down, - - ["?"] = actions.which_key, - }, - }, - }, - pickers = { - -- Default configuration for builtin pickers goes here: - -- picker_name = { - -- picker_config_key = value, - -- ... - -- } - -- Now the picker_config_key will be applied every time you call this - -- builtin picker - }, - extensions = { - fzf = { - fuzzy = true, -- false will only do exact matching - override_generic_sorter = true, -- override the generic sorter - override_file_sorter = true, -- override the file sorter - case_mode = "smart_case", -- or "ignore_case" or "respect_case" - -- the default case_mode is "smart_case" - }, - media_files = { - -- filetypes whitelist - -- defaults to {"png", "jpg", "mp4", "webm", "pdf"} - filetypes = { "png", "webp", "jpg", "jpeg", "mp4", "pdf" }, - find_cmd = "rg", -- find command (defaults to `fd`) - }, - }, -}) diff --git a/.config/nvim/lua/user/toggleterm.lua b/.config/nvim/lua/user/toggleterm.lua deleted file mode 100644 index c53b4785..00000000 --- a/.config/nvim/lua/user/toggleterm.lua +++ /dev/null @@ -1,71 +0,0 @@ -local api = vim.api -local status_ok, toggleterm = pcall(require, "toggleterm") -if not status_ok then - return -end - -toggleterm.setup({ - size = 20, - open_mapping = [[]], - hide_numbers = true, - shade_filetypes = {}, - shade_terminals = true, - shading_factor = 2, - start_in_insert = true, - insert_mappings = true, - persist_size = true, - direction = "float", - close_on_exit = true, - shell = vim.o.shell, - float_opts = { - border = "curved", - winblend = 0, - highlights = { - border = "Normal", - background = "Normal", - }, - }, -}) - -function _G.set_terminal_keymaps() - local opts = { noremap = true } - api.nvim_buf_set_keymap(0, "t", "", [[]], opts) - api.nvim_buf_set_keymap(0, "t", "jk", [[]], opts) - api.nvim_buf_set_keymap(0, "t", "", [[h]], opts) - api.nvim_buf_set_keymap(0, "t", "", [[j]], opts) - api.nvim_buf_set_keymap(0, "t", "", [[k]], opts) - api.nvim_buf_set_keymap(0, "t", "", [[l]], opts) -end - -vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()") - -local Terminal = require("toggleterm.terminal").Terminal -local lazygit = Terminal:new({ cmd = "lazygit", hidden = true }) - -function _LAZYGIT_TOGGLE() - lazygit:toggle() -end - -local node = Terminal:new({ cmd = "node", hidden = true }) - -function _NODE_TOGGLE() - node:toggle() -end - -local ncdu = Terminal:new({ cmd = "ncdu", hidden = true }) - -function _NCDU_TOGGLE() - ncdu:toggle() -end - -local btop = Terminal:new({ cmd = "btop", hidden = true }) - -function _BTOP_TOGGLE() - btop:toggle() -end - -local python = Terminal:new({ cmd = "python", hidden = true }) - -function _PYTHON_TOGGLE() - python:toggle() -end diff --git a/.config/nvim/lua/user/treesitter.lua b/.config/nvim/lua/user/treesitter.lua deleted file mode 100644 index 9f696807..00000000 --- a/.config/nvim/lua/user/treesitter.lua +++ /dev/null @@ -1,29 +0,0 @@ -local status_ok, configs = pcall(require, "nvim-treesitter.configs") -if not status_ok then - return -end - -configs.setup({ - ensure_installed = "all", -- one of 'all' or a list of languages - ignore_install = { "" }, -- List of parsers to ignore installing - highlight = { - enable = true, -- false will disable the whole extension - disable = {}, -- list of language that will be disabled - }, - autopairs = { - enable = true, - }, - autotag = { - enable = true, - filetypes = { "html", "htmldjango", "xml" }, - }, - indent = { enable = true, disable = { "yaml" } }, - rainbow = { - enable = true, - -- disable = { "jsx", "cpp" }, list of languages you want to disable the plugin for - extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean - max_file_lines = nil, -- Do not enable for files with more than n lines, int - -- colors = {}, -- table of hex strings - -- termcolors = {} -- table of colour name strings - }, -}) diff --git a/.config/nvim/lua/user/whichkey.lua b/.config/nvim/lua/user/whichkey.lua deleted file mode 100644 index 6c93d9ac..00000000 --- a/.config/nvim/lua/user/whichkey.lua +++ /dev/null @@ -1,211 +0,0 @@ -local status_ok, which_key = pcall(require, "which-key") -if not status_ok then - return -end - -local setup = { - plugins = { - marks = true, -- shows a list of your marks on " and ` - registers = true, -- shows your registers on " in NORMAL or in INSERT mode - spelling = { - enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions - suggestions = 20, -- how many suggestions should be shown in the list? - }, - -- the presets plugin, adds help for a bunch of default keybindings in Neovim - -- No actual key bindings are created - presets = { - operators = false, -- adds help for operators like d, y, ... and registers them for motion / text object completion - motions = true, -- adds help for motions - text_objects = true, -- help for text objects triggered after entering an operator - windows = true, -- default bindings on - nav = true, -- misc bindings to work with windows - z = true, -- bindings for folds, spelling and others prefixed with z - g = true, -- bindings for prefixed with g - }, - }, - -- add operators that will trigger motion and text object completion - -- to enable all native operators, set the preset / operators plugin above - -- operators = { gc = "Comments" }, - key_labels = { - -- override the label used to display some keys. It doesn"t effect WK in any other way. - -- For example: - -- [""] = "SPC", - -- [""] = "RET", - -- [""] = "TAB", - }, - icons = { - breadcrumb = "»", -- symbol used in the command line area that shows your active key combo - separator = "➜", -- symbol used between a key and it"s label - group = "+", -- symbol prepended to a group - }, - popup_mappings = { - scroll_down = "", -- binding to scroll down inside the popup - scroll_up = "", -- binding to scroll up inside the popup - }, - window = { - border = "rounded", -- none, single, double, shadow - position = "bottom", -- bottom, top - margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left] - padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left] - winblend = 0, - }, - layout = { - height = { min = 4, max = 25 }, -- min and max height of the columns - width = { min = 20, max = 50 }, -- min and max width of the columns - spacing = 3, -- spacing between columns - align = "left", -- align columns left, center or right - }, - ignore_missing = true, -- enable this to hide mappings for which you didn"t specify a label - hidden = { "", "", "", "", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate - show_help = true, -- show help message on the command line when the popup is visible - triggers = "auto", -- automatically setup triggers - -- triggers = {""} -- or specify a list manually - triggers_blacklist = { - -- list of mode / prefixes that should never be hooked by WhichKey - -- this is mostly relevant for key maps that start with a native binding - -- most people should not need to change this - i = { "j", "k" }, - v = { "j", "k" }, - }, -} - -local opts = { - mode = "n", -- NORMAL mode - prefix = "", - buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings - silent = true, -- use `silent` when creating keymaps - noremap = true, -- use `noremap` when creating keymaps - nowait = true, -- use `nowait` when creating keymaps -} - -local mappings = { - ["a"] = { "Alpha", "Alpha" }, - ["b"] = { - "lua require('telescope.builtin).buffers(require'telescope.themes').get_dropdown{previewer = false})", - "Buffers", - }, - ["e"] = { "NvimTreeToggle", "Explorer" }, - ["c"] = { "Bdelete!", "Close Buffer" }, - ["h"] = { "nohlsearch", "No Highlight" }, - ["f"] = { - "lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false})", - "Find files", - }, - ["F"] = { "Telescope live_grep theme=ivy", "Find Text" }, - ["P"] = { "lua require('telescope').extensions.projects.projects()", "Projects" }, - - p = { - name = "Packer", - c = { "PackerCompile", "Compile" }, - i = { "PackerInstall", "Install" }, - s = { "PackerSync", "Sync" }, - S = { "PackerStatus", "Status" }, - u = { "PackerUpdate", "Update" }, - }, - - g = { - name = "Git", - g = { "lua _LAZYGIT_TOGGLE()", "Lazygit" }, - j = { "lua require 'gitsigns'.next_hunk()", "Next Hunk" }, - k = { "lua require 'gitsigns'.prev_hunk()", "Prev Hunk" }, - l = { "lua require 'gitsigns'.blame_line()", "Blame" }, - p = { "lua require 'gitsigns'.preview_hunk()", "Preview Hunk" }, - r = { "lua require 'gitsigns'.reset_hunk()", "Reset Hunk" }, - R = { "lua require 'gitsigns'.reset_buffer()", "Reset Buffer" }, - s = { "lua require 'gitsigns'.stage_hunk()", "Stage Hunk" }, - u = { - "lua require 'gitsigns'.undo_stage_hunk()", - "Undo Stage Hunk", - }, - o = { "Telescope git_status", "Open changed file" }, - b = { "Telescope git_branches", "Checkout branch" }, - c = { "Telescope git_commits", "Checkout commit" }, - d = { - "Gitsigns diffthis HEAD", - "Diff", - }, - }, - - l = { - name = "LSP", - a = { "lua vim.lsp.buf.code_action()", "Code Action" }, - -- d = { - -- "Telescope lsp_document_diagnostics", - -- "Document Diagnostics", - -- }, - - w = { - "Telescope diagnostics", - "Workspace Diagnostics", - }, - f = { "lua vim.lsp.buf.formatting()", "Format" }, - i = { "LspInfo", "Info" }, - I = { "LspInstallInfo", "Installer Info" }, - j = { - "lua vim.lsp.diagnostic.goto_next()", - "Next Diagnostic", - }, - k = { - "lua vim.lsp.diagnostic.goto_prev()", - "Prev Diagnostic", - }, - l = { "lua vim.lsp.codelens.run()", "CodeLens Action" }, - q = { "lua vim.lsp.diagnostic.set_loclist()", "Quickfix" }, - r = { "lua vim.lsp.buf.rename()", "Rename" }, - s = { "Telescope lsp_document_symbols", "Document Symbols" }, - S = { - "Telescope lsp_dynamic_workspace_symbols", - "Workspace Symbols", - }, - }, - - s = { - name = "Search", - b = { "Telescope git_branches", "Checkout branch" }, - c = { "Telescope colorscheme", "Colorscheme" }, - h = { "Telescope help_tags", "Find Help" }, - M = { "Telescope man_pages", "Man Pages" }, - r = { "Telescope oldfiles", "Open Recent File" }, - R = { "Telescope registers", "Registers" }, - k = { "Telescope keymaps", "Keymaps" }, - C = { "Telescope commands", "Commands" }, - }, - - t = { - name = "Terminal", - n = { "lua _NODE_TOGGLE()", "Node" }, - u = { "lua _NCDU_TOGGLE()", "NCDU" }, - b = { "lua _BTOP_TOGGLE()", "Btop" }, - p = { "lua _PYTHON_TOGGLE()", "Python" }, - f = { "ToggleTerm direction=float", "Float" }, - h = { "ToggleTerm size=10 direction=horizontal", "Horizontal" }, - v = { "ToggleTerm size=80 direction=vertical", "Vertical" }, - }, - - S = { - name = "Settings", - c = { "setlocal formatoptions-=cro", "Disable autocomment" }, - C = { "setlocal formatoptions=cro", "Enable autocomment" }, - s = { "setlocal spell!", "Toggle spellchecker" }, - e = { "setlocal spell spelllang=en_us", "Enable English spellchecker" }, - l = { "setlocal spell spelllang=lv_LV", "Enable Lavian spellchecker" }, - I = { "setlocal autoindent", "Enable autoindent" }, - i = { "setlocal noautoindent", "Disable autoindent" }, - }, - - w = { - name = "Vimwiki", - w = { "VimwikiIndex", "Open index file" }, - t = { "VimwikiTabIndex", "Open index file in new tab" }, - s = { "VimwikiUISelect", "Diplay list of wikis" }, - i = { "VimwikiDiaryIndex", "Open diary index" }, - h = { "Vimwiki2HTML", "Convert file to HTML" }, - H = { "Vimwiki2HTMLBrowse", "Convert file to HTML and open in browser" }, - n = { "VimwikiGoto", "Goto link provided by an argument" }, - d = { "VimwikiDeleteFile", "Rename file" }, - r = { "VimwikiRenameFile", "Delete file" }, - }, -} - -which_key.setup(setup) -which_key.register(mappings, opts)