From 39cd83f5579e83dfd4d3c5136d7c828c963cd980 Mon Sep 17 00:00:00 2001 From: long Date: Wed, 18 May 2022 06:15:59 -0500 Subject: [PATCH] changes, idk --- after/plugin/folding.lua | 3 - after/plugin/folding.lua.disable | 3 + ftplugin/htmldjango.lua | 2 + ftplugin/javascript.lua | 2 +- ftplugin/javascriptreact.lua | 3 + ftplugin/json.lua | 3 + ftplugin/svelte.lua | 3 + ftplugin/text.lua | 12 +- ftplugin/typescript.lua | 3 + ftplugin/typescriptreact.lua | 3 + ftplugin/vue.lua | 3 + ftplugin/{yaml.lua => yaml.lua.nothanks} | 0 init.lua | 14 +- lua/ale.lua | 37 +- lua/config.lua | 226 +++++----- lua/functions.lua | 287 ++++++------ lua/keybinds.lua | 25 +- lua/lsp.lua | 532 +++++++++++------------ lua/packer_check.lua | 6 +- lua/plugins.lua | 171 ++++---- lua/save_buffer_position.lua | 4 +- 21 files changed, 680 insertions(+), 662 deletions(-) delete mode 100644 after/plugin/folding.lua create mode 100644 after/plugin/folding.lua.disable create mode 100644 ftplugin/htmldjango.lua create mode 100644 ftplugin/javascriptreact.lua create mode 100644 ftplugin/json.lua create mode 100644 ftplugin/svelte.lua create mode 100644 ftplugin/typescript.lua create mode 100644 ftplugin/typescriptreact.lua create mode 100644 ftplugin/vue.lua rename ftplugin/{yaml.lua => yaml.lua.nothanks} (100%) diff --git a/after/plugin/folding.lua b/after/plugin/folding.lua deleted file mode 100644 index 20ab8b5..0000000 --- a/after/plugin/folding.lua +++ /dev/null @@ -1,3 +0,0 @@ ---vim.o.foldlevelstart = 4 ---vim.o.foldmethod = "expr" ---vim.o.foldexpr = "nvim_treesitter#foldexpr()" diff --git a/after/plugin/folding.lua.disable b/after/plugin/folding.lua.disable new file mode 100644 index 0000000..528110c --- /dev/null +++ b/after/plugin/folding.lua.disable @@ -0,0 +1,3 @@ +vim.o.foldlevelstart = 10 +vim.o.foldmethod = "expr" +vim.o.foldexpr = "nvim_treesitter#foldexpr()" diff --git a/ftplugin/htmldjango.lua b/ftplugin/htmldjango.lua new file mode 100644 index 0000000..d0bac89 --- /dev/null +++ b/ftplugin/htmldjango.lua @@ -0,0 +1,2 @@ +vim.bo.shiftwidth = 2 +vim.bo.tabstop = 2 diff --git a/ftplugin/javascript.lua b/ftplugin/javascript.lua index 3b4858e..b3bc028 100644 --- a/ftplugin/javascript.lua +++ b/ftplugin/javascript.lua @@ -1,3 +1,3 @@ -local len = 4 +local len = 2 vim.bo.shiftwidth = len vim.bo.tabstop = len diff --git a/ftplugin/javascriptreact.lua b/ftplugin/javascriptreact.lua new file mode 100644 index 0000000..b3bc028 --- /dev/null +++ b/ftplugin/javascriptreact.lua @@ -0,0 +1,3 @@ +local len = 2 +vim.bo.shiftwidth = len +vim.bo.tabstop = len diff --git a/ftplugin/json.lua b/ftplugin/json.lua new file mode 100644 index 0000000..b3bc028 --- /dev/null +++ b/ftplugin/json.lua @@ -0,0 +1,3 @@ +local len = 2 +vim.bo.shiftwidth = len +vim.bo.tabstop = len diff --git a/ftplugin/svelte.lua b/ftplugin/svelte.lua new file mode 100644 index 0000000..b3bc028 --- /dev/null +++ b/ftplugin/svelte.lua @@ -0,0 +1,3 @@ +local len = 2 +vim.bo.shiftwidth = len +vim.bo.tabstop = len diff --git a/ftplugin/text.lua b/ftplugin/text.lua index bc4afdd..1ca5e12 100644 --- a/ftplugin/text.lua +++ b/ftplugin/text.lua @@ -1,13 +1,13 @@ local function local_map(mode, lhs, rhs, opts) - local options = {noremap = true} - if opts then - options = vim.tbl_extend("force", options, opts) - end - vim.api.nvim_buf_set_keymap(0, mode, lhs, rhs, options) + local options = { noremap = true } + if opts then + options = vim.tbl_extend("force", options, opts) + end + vim.api.nvim_buf_set_keymap(0, mode, lhs, rhs, options) end local function silent_map(mode, lhs, rhs) - local_map(mode, lhs, rhs, {silent = true}) + local_map(mode, lhs, rhs, { silent = true }) end silent_map("n", "", "gk") diff --git a/ftplugin/typescript.lua b/ftplugin/typescript.lua new file mode 100644 index 0000000..b3bc028 --- /dev/null +++ b/ftplugin/typescript.lua @@ -0,0 +1,3 @@ +local len = 2 +vim.bo.shiftwidth = len +vim.bo.tabstop = len diff --git a/ftplugin/typescriptreact.lua b/ftplugin/typescriptreact.lua new file mode 100644 index 0000000..b3bc028 --- /dev/null +++ b/ftplugin/typescriptreact.lua @@ -0,0 +1,3 @@ +local len = 2 +vim.bo.shiftwidth = len +vim.bo.tabstop = len diff --git a/ftplugin/vue.lua b/ftplugin/vue.lua new file mode 100644 index 0000000..b3bc028 --- /dev/null +++ b/ftplugin/vue.lua @@ -0,0 +1,3 @@ +local len = 2 +vim.bo.shiftwidth = len +vim.bo.tabstop = len diff --git a/ftplugin/yaml.lua b/ftplugin/yaml.lua.nothanks similarity index 100% rename from ftplugin/yaml.lua rename to ftplugin/yaml.lua.nothanks diff --git a/init.lua b/init.lua index a2e41b4..0882620 100644 --- a/init.lua +++ b/init.lua @@ -1,10 +1,10 @@ -require "ale" -require "packer_check" -require "plugins" -require "config" -require "keybinds" -require "save_buffer_position" -require "lsp" +--require("ale") +require("packer_check") +require("plugins") +require("config") +require("keybinds") +require("save_buffer_position") +require("lsp") --local theme = vim.env.LIGHTMODE == "1" and "onehalflight" or "onedark" --vim.cmd("colorscheme " .. theme) diff --git a/lua/ale.lua b/lua/ale.lua index b30ee90..8d250ff 100644 --- a/lua/ale.lua +++ b/lua/ale.lua @@ -6,27 +6,28 @@ g.ale_linters_explicit = true g.ale_fix_on_save = false g.ale_fixers = { - --c = {"clang-format"}, - cpp = {"clang-format"}, - sh = {"shfmt"}, - python = {"isort", "black"}, - lua = {"luafmt"}, - json = {"prettier"}, - css = {"prettier"}, - scss = {"prettier"}, - html = {"prettier"}, - javascript = {"prettier"}, - typescript = {"prettier"}, - javascriptreact = {"prettier"}, - typescriptreact = {"prettier"} + --c = {"clang-format"}, + cpp = { "clang-format" }, + sh = { "shfmt" }, + python = { "isort", "black" }, + lua = { "luafmt" }, + json = { "prettier" }, + css = { "prettier" }, + scss = { "prettier" }, + html = { "prettier" }, + javascript = { "prettier" }, + typescript = { "prettier" }, + javascriptreact = { "prettier" }, + typescriptreact = { "prettier" }, + htmldjango = { "prettier" }, } g.ale_linters = { - sh = {"bashate"} - --python = {"flake8"}, - --cpp = {"g++"}, - --html = {"tidy"}, - --css = {"stylelint"} + sh = { "bashate" }, + --python = {"flake8"}, + --cpp = {"g++"}, + --html = {"tidy"}, + --css = {"stylelint"} } g.ale_lint_on_text_changed = "normal" diff --git a/lua/config.lua b/lua/config.lua index 8dba233..fb1fe7d 100644 --- a/lua/config.lua +++ b/lua/config.lua @@ -1,7 +1,10 @@ -- env file highlighting -vim.cmd [[au BufRead,BufNewFile .env.* set filetype=sh]] +vim.cmd([[au BufRead,BufNewFile .env.* set filetype=sh]]) -- Dockerfile file highlighting -vim.cmd [[au BufRead,BufNewFile Dockerfile.* set filetype=dockerfile]] +vim.cmd([[au BufRead,BufNewFile Dockerfile.* set filetype=dockerfile]]) +vim.cmd([[au BufWrite * normal zx]]) +-- jinja highlighting +vim.cmd([[au BufRead,BufNewFile *.jinja set filetype=html]]) local opt = vim.opt -- to set options local fn = vim.fn @@ -56,7 +59,7 @@ opt.foldmethod = "indent" ----------------------------------------------------- -- DISABLE HIGHLIGHT OUTSIDE OF SEARCH AND REPLACE -- ----------------------------------------------------- -vim.cmd [[ +vim.cmd([[ " Enable highlighting all the matches in incsearch mode " But don't enable hlsearch always augroup vimrc-incsearch-highlight @@ -64,12 +67,17 @@ augroup vimrc-incsearch-highlight autocmd CmdlineEnter [/\?:] :set hlsearch autocmd CmdlineLeave [/\?:] :set nohlsearch augroup END -]] +]]) --------------- -- PROVIDERS -- --------------- -g.python3_host_prog = "/usr/bin/python3" +local pyenv_root = vim.env.PYENV_ROOT +if pyenv_root ~= nil then + g.python3_host_prog = pyenv_root .. '/shims/python3' +else + g.python3_host_prog = "/usr/bin/python3" +end ------------------ -- ONEDARK.NVIM -- @@ -80,10 +88,10 @@ g.python3_host_prog = "/usr/bin/python3" --g.onedark_darker_diagnostics = false -- Lua -require("onedark").setup { - style = "darker", - toggle_style_key = "" -} +require("onedark").setup({ + style = "darker", + toggle_style_key = "", +}) require("onedark").load() ---------------- @@ -100,13 +108,13 @@ g.bracey_refresh_on_save = true ----------------------- -- TREESITTER CONFIG -- ----------------------- -require("nvim-treesitter.configs").setup { - ensure_installed = "maintained", - highlight = { - enable = true, - disable = {"typescript", "tsx", "html", "javascript"} - } -} +require("nvim-treesitter.configs").setup({ + ensure_installed = "all", + highlight = { + enable = true, + disable = { "typescript", "tsx", "html", "javascript" }, + }, +}) ----------------------- -- GITHUB NVIM THEME -- @@ -123,79 +131,81 @@ g.github_hide_inactive_statusline = false -- LUALINE -- ------------- -require("lualine").setup { - options = {theme = "onedark", icons_enabled = true}, - sections = { - lualine_a = {"mode"}, - lualine_b = { - "FugitiveHead" - }, - lualine_c = {"filename"}, - lualine_x = { - "encoding", - "fileformat", - "filetype", - [[string.format("%d Lines", vim.fn.line('$'))]], - { - "diagnostics", - sources = {"nvim_diagnostic", "ale"} - } - }, - lualine_y = { - "progress" - }, - lualine_z = {"location"} - }, - inactive_sections = { - lualine_a = {}, - lualine_b = {}, - lualine_c = {"filename"}, - lualine_x = {"location"}, - lualine_y = {}, - lualine_z = {} - }, - tabline = { - lualine_a = { - { - "buffers", - show_filename_only = false, -- shows shortened relative path when false - show_modified_status = true, -- shows indicator then bufder is modified - max_length = vim.o.columns * 5 / 7, -- maximum width of buffers component - filetype_names = { - TelescopePrompt = "Telescope", - dashboard = "Dashboard", - packer = "Packer", - fzf = "FZF", - alpha = "Alpha", - ["lsp-installer"] = "LSP Installer" - }, -- shows specific buffer name for that filetype ( { `filetype` = `buffer_name`, ... } ) - buffers_color = { - active = nil, -- color for active buffer - inactive = nil -- color for inactive buffer - } - } - }, - lualine_b = {}, - lualine_c = {}, - lualine_x = {}, - lualine_y = {}, - lualine_z = { - { - [[string.format("Tab %d/%d", vim.fn.tabpagenr(), vim.fn.tabpagenr('$'))]], - cond = function() - return fn.tabpagenr("$") > 1 - end - }, - { - [[harpoon_status()]], - cond = function() - return require("harpoon.mark").get_length() > 0 - end - } - } - }, - extensions = {} -} +require("lualine").setup({ + options = { theme = "onedark", icons_enabled = true }, + sections = { + lualine_a = { "mode" }, + lualine_b = { + "FugitiveHead", + }, + lualine_c = { "filename" }, + lualine_x = { + "encoding", + "fileformat", + "filetype", + [[string.format("%d Lines", vim.fn.line('$'))]], + { + "diagnostics", + sources = { "nvim_diagnostic", "ale" }, + }, + }, + lualine_y = { + "progress", + }, + lualine_z = { "location" }, + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { "filename" }, + lualine_x = { "location" }, + lualine_y = {}, + lualine_z = {}, + }, + tabline = { + lualine_a = { + { + "buffers", + show_filename_only = false, -- shows shortened relative path when false + show_modified_status = true, -- shows indicator then bufder is modified + max_length = function () + return vim.o.columns * 5 / 6 + end, -- maximum width of buffers component + filetype_names = { + TelescopePrompt = "Telescope", + dashboard = "Dashboard", + packer = "Packer", + fzf = "FZF", + alpha = "Alpha", + ["lsp-installer"] = "LSP Installer", + }, -- shows specific buffer name for that filetype ( { `filetype` = `buffer_name`, ... } ) + buffers_color = { + active = nil, -- color for active buffer + inactive = nil, -- color for inactive buffer + }, + }, + }, + lualine_b = {}, + lualine_c = {}, + lualine_x = {}, + lualine_y = {}, + lualine_z = { + { + [[string.format("Tab %d/%d", vim.fn.tabpagenr(), vim.fn.tabpagenr('$'))]], + cond = function() + return fn.tabpagenr("$") > 1 + end, + }, + { + [[harpoon_status()]], + cond = function() + return require("harpoon.mark").get_length() > 0 + end, + }, + }, + }, + extensions = {}, +}) ------------- -- HARPOON -- @@ -203,23 +213,21 @@ require("lualine").setup { --Here is the set of global settings and their default values. -require("harpoon").setup( - { - global_settings = { - save_on_toggle = false, - save_on_change = true, - enter_on_sendcmd = false, - tmux_autoclose_windows = false, - excluded_filetypes = {"harpoon"} - } - } -) +require("harpoon").setup({ + global_settings = { + save_on_toggle = false, + save_on_change = true, + enter_on_sendcmd = false, + tmux_autoclose_windows = false, + excluded_filetypes = { "harpoon" }, + }, +}) -------------- -- NVIM FZF -- -------------- require("fzf").default_options = { - fzf_cli_args = " --height 100% --preview='bat --color=always --style=header,grid --line-range :300 {}' " + fzf_cli_args = " --height 100% --preview='bat --color=always --style=header,grid --line-range :300 {}' ", } ---------------------- @@ -250,10 +258,14 @@ require("fzf").default_options = { --} --vim.opt.listchars:append("eol:↴") --vim.opt.listchars:append("space:⋅") -vim.opt.list = true +opt.list = true -require("indent_blankline").setup { - space_char_blankline = " ", - show_current_context = true, - show_current_context_start = true -} +require("indent_blankline").setup({ + space_char_blankline = " ", + show_current_context = true, + show_current_context_start = true, +}) + +-- PETOBENS/POET-V -- +g.poetv_executables = { "poetry" } +g.poetv_auto_activate = 1 diff --git a/lua/functions.lua b/lua/functions.lua index f4bc58e..837ef1e 100644 --- a/lua/functions.lua +++ b/lua/functions.lua @@ -1,5 +1,4 @@ -local bug = - [[ +local bug = [[ Weird bug: @@ -25,233 +24,233 @@ vim.g.my_harpoon_tab_switch = false -- `true` - harpoon -- `false` - buffers local function harpoon_tab_switch() - --return require("harpoon.mark").get_length() > 0 - return vim.g.my_harpoon_tab_switch + --return require("harpoon.mark").get_length() > 0 + return vim.g.my_harpoon_tab_switch end -- Checks if a table contains a value. local function has_value(tab, val) - for _, value in ipairs(tab) do - if value == val then - return true - end - end + for _, value in ipairs(tab) do + if value == val then + return true + end + end - return false + return false end local strip_dot_slash = function(str) - local first_two = string.sub(str, 1, 2) - if first_two == "./" then - str = string.sub(str, 3) - end - return str + local first_two = string.sub(str, 1, 2) + if first_two == "./" then + str = string.sub(str, 3) + end + return str end local fzf_run_with_opts = function(args) - local opts = require("fzf").default_options + local opts = require("fzf").default_options - opts.width = math.floor(vim.o.columns * 0.9) - opts.height = math.floor(vim.o.lines * 0.6) + opts.width = math.floor(vim.o.columns * 0.9) + opts.height = math.floor(vim.o.lines * 0.6) - local old_cli_args = opts.fzf_cli_args - if args.multi then - opts.fzf_cli_args = opts.fzf_cli_args .. " --multi " - end + local old_cli_args = opts.fzf_cli_args + if args.multi then + opts.fzf_cli_args = opts.fzf_cli_args .. " --multi " + end - local results = args.fn() + local results = args.fn() - opts.fzf_cli_args = old_cli_args + opts.fzf_cli_args = old_cli_args - return results + return results end -- Does a fzf function call with the default options set. -- idk if there's a better way to do this local fzf_call = function(args) - local fn = function() - local fzf = require("fzf").fzf - if args.flags then - return fzf(args.items, args.flags) - elseif args.items then - return fzf(args.items) - else - return fzf() - end - end + local fn = function() + local fzf = require("fzf").fzf + if args.flags then + return fzf(args.items, args.flags) + elseif args.items then + return fzf(args.items) + else + return fzf() + end + end - local results = fzf_run_with_opts({fn = fn, multi = args.multi}) - local stripped_results = {} - for _, filepath in ipairs(results) do - stripped_results[#stripped_results + 1] = strip_dot_slash(filepath) - end - return stripped_results + local results = fzf_run_with_opts({ fn = fn, multi = args.multi }) + local stripped_results = {} + for _, filepath in ipairs(results) do + stripped_results[#stripped_results + 1] = strip_dot_slash(filepath) + end + return stripped_results end --coroutine.wrap(fzf_call)() -- Returns list of buffer file paths. -- Does not include buffers without a file path. local get_buffer_paths = function() - local buffers = {} - for b = 1, vim.fn.bufnr "$" do - if vim.fn.buflisted(b) ~= 0 and vim.api.nvim_buf_get_option(b, "buftype") == "" then - local buf_path = vim.fn.expand("#" .. b) - if buf_path ~= "" then - buffers[#buffers + 1] = strip_dot_slash(buf_path) - --print(buf_path) - end - end - end + local buffers = {} + for b = 1, vim.fn.bufnr("$") do + if vim.fn.buflisted(b) ~= 0 and vim.api.nvim_buf_get_option(b, "buftype") == "" then + local buf_path = vim.fn.expand("#" .. b) + if buf_path ~= "" then + buffers[#buffers + 1] = strip_dot_slash(buf_path) + --print(buf_path) + end + end + end - return buffers + return buffers end -- toggles tab mode function _G.harpoon_btoggle(on) - if on == nil then - vim.g.my_harpoon_tab_switch = require("harpoon.mark").get_length() > 0 and not vim.g.my_harpoon_tab_switch - else - vim.g.my_harpoon_tab_switch = on and require("harpoon.mark").get_length() > 0 - end - print(vim.g.my_harpoon_tab_switch and "Tab: Harpoon" or "Tab: Buffer") + if on == nil then + vim.g.my_harpoon_tab_switch = require("harpoon.mark").get_length() > 0 and not vim.g.my_harpoon_tab_switch + else + vim.g.my_harpoon_tab_switch = on and require("harpoon.mark").get_length() > 0 + end + print(vim.g.my_harpoon_tab_switch and "Tab: Harpoon" or "Tab: Buffer") end -- Dynamically switches between bnext and harpoon.ui.nav_next function _G.harpoon_bnext() - if harpoon_tab_switch() then - require("harpoon.ui").nav_next() - print("Harpoon nav_next") - else - vim.api.nvim_command("bnext") - print("bnext") - end + if harpoon_tab_switch() then + require("harpoon.ui").nav_next() + print("Harpoon nav_next") + else + vim.api.nvim_command("bnext") + print("bnext") + end end -- Dynamically switches between bprevious and harpoon.ui.nav_prev function _G.harpoon_bprevious() - if harpoon_tab_switch() then - require("harpoon.ui").nav_prev() - print("Harpoon nav_prev") - else - vim.api.nvim_command("bprevious") - print("bprevious") - end + if harpoon_tab_switch() then + require("harpoon.ui").nav_prev() + print("Harpoon nav_prev") + else + vim.api.nvim_command("bprevious") + print("bprevious") + end end -- Runs harpoon.mark.toggle_file and refreshes lualine elements function _G.harpoon_toggle_file() - require("harpoon.mark").add_file() - vim.api.nvim_command("redrawtabline") - vim.api.nvim_command("redrawstatus") + require("harpoon.mark").add_file() + vim.api.nvim_command("redrawtabline") + vim.api.nvim_command("redrawstatus") end function _G.harpoon_clear_all() - require("harpoon.mark").clear_all() - _G.harpoon_btoggle() - vim.api.nvim_command("redrawtabline") - vim.api.nvim_command("redrawstatus") + require("harpoon.mark").clear_all() + _G.harpoon_btoggle() + vim.api.nvim_command("redrawtabline") + vim.api.nvim_command("redrawstatus") end -- I want my bclose bindings to also remove harpoon marks function _G.harpoon_rm_file() - require("harpoon.mark").rm_file() - vim.api.nvim_command("Bclose") + require("harpoon.mark").rm_file() + vim.api.nvim_command("Bclose") end -- Lualine status element for harpoon function _G.harpoon_status() - local marked_files = require("harpoon.mark").get_length() - local status_str = "Harpoon: %d file" - if marked_files > 1 then - status_str = status_str .. "s" - end - status_str = (harpoon_tab_switch() and "● " or "") .. status_str - return string.format(status_str, marked_files) + local marked_files = require("harpoon.mark").get_length() + local status_str = "Harpoon: %d file" + if marked_files > 1 then + status_str = status_str .. "s" + end + status_str = (harpoon_tab_switch() and "● " or "") .. status_str + return string.format(status_str, marked_files) end -- Marks buffers for harpoon local buffer_to_harpoon = function() - local buf_paths = get_buffer_paths() - local results = fzf_call({items = buf_paths, multi = true}) + local buf_paths = get_buffer_paths() + local results = fzf_call({ items = buf_paths, multi = true }) - if results then - local sorted_results = {} - -- original buf_paths table is correctly ordered, easier to take from there - -- and just check if each item is in results. - for _, filepath in ipairs(buf_paths) do - if has_value(results, filepath) then - sorted_results[#sorted_results + 1] = filepath - end - end - local Marked = require("harpoon.mark") - Marked.set_mark_list(sorted_results) - _G.harpoon_btoggle(true) - end + if results then + local sorted_results = {} + -- original buf_paths table is correctly ordered, easier to take from there + -- and just check if each item is in results. + for _, filepath in ipairs(buf_paths) do + if has_value(results, filepath) then + sorted_results[#sorted_results + 1] = filepath + end + end + local Marked = require("harpoon.mark") + Marked.set_mark_list(sorted_results) + _G.harpoon_btoggle(true) + end end function _G.fzf_buffer_add_to_harpoon() - coroutine.wrap(buffer_to_harpoon)() + coroutine.wrap(buffer_to_harpoon)() end -- Opens files from fzf, then marks them with harpoon. local files_to_harpoon = function() - local results = fzf_call({multi = true}) + local results = fzf_call({ multi = true }) - if results then - -- opens all results into buffer - local cmd = ":n " - for _, filepath in ipairs(results) do - cmd = cmd .. filepath .. " " - end - vim.cmd(cmd) + if results then + -- opens all results into buffer + local cmd = ":n " + for _, filepath in ipairs(results) do + cmd = cmd .. filepath .. " " + end + vim.cmd(cmd) - local buf_paths = get_buffer_paths() - local sorted_results = {} - for _, filepath in ipairs(buf_paths) do - print(filepath) - if has_value(results, filepath) then - sorted_results[#sorted_results + 1] = filepath - end - end - local Marked = require("harpoon.mark") - Marked.set_mark_list(sorted_results) - _G.harpoon_btoggle(true) - end + local buf_paths = get_buffer_paths() + local sorted_results = {} + for _, filepath in ipairs(buf_paths) do + print(filepath) + if has_value(results, filepath) then + sorted_results[#sorted_results + 1] = filepath + end + end + local Marked = require("harpoon.mark") + Marked.set_mark_list(sorted_results) + _G.harpoon_btoggle(true) + end end function _G.fzf_files_to_harpoon() - coroutine.wrap(files_to_harpoon)() + coroutine.wrap(files_to_harpoon)() end local get_marked_file_names = function() - local Marked = require("harpoon.mark") - local filepaths = {} - for i = 1, Marked.get_length() do - filepaths[#filepaths + 1] = Marked.get_marked_file_name(i) - end - return filepaths + local Marked = require("harpoon.mark") + local filepaths = {} + for i = 1, Marked.get_length() do + filepaths[#filepaths + 1] = Marked.get_marked_file_name(i) + end + return filepaths end local select_harpoon_mark = function() - local results = fzf_call({items = get_marked_file_names()}) + local results = fzf_call({ items = get_marked_file_names() }) - if results then - vim.api.nvim_win_set_buf(0, vim.fn.bufnr(results[1])) - end + if results then + vim.api.nvim_win_set_buf(0, vim.fn.bufnr(results[1])) + end end function _G.fzf_select_harpoon_mark() - coroutine.wrap(select_harpoon_mark)() + coroutine.wrap(select_harpoon_mark)() end _G.harpoon_open_marks = function() - local filepaths = get_marked_file_names() - if #filepaths ~= 0 then - local cmd = ":n " + local filepaths = get_marked_file_names() + if #filepaths ~= 0 then + local cmd = ":n " - for _, filepath in ipairs(filepaths) do - cmd = cmd .. filepath .. " " - end - vim.cmd(cmd) - end + for _, filepath in ipairs(filepaths) do + cmd = cmd .. filepath .. " " + end + vim.cmd(cmd) + end end diff --git a/lua/keybinds.lua b/lua/keybinds.lua index 7fa7464..10d2043 100644 --- a/lua/keybinds.lua +++ b/lua/keybinds.lua @@ -3,11 +3,11 @@ require("functions") --local fn = vim.fn -- to call Vim functions e.g. fn.bufnr() local function map(mode, lhs, rhs, opts) - local options = {noremap = true} - if opts then - options = vim.tbl_extend("force", options, opts) - end - vim.api.nvim_set_keymap(mode, lhs, rhs, options) + local options = { noremap = true } + if opts then + options = vim.tbl_extend("force", options, opts) + end + vim.api.nvim_set_keymap(mode, lhs, rhs, options) end vim.g.mapleader = "," @@ -17,7 +17,7 @@ map("v", "", '"+y') --map("n", "", ":bprevious") map("n", "", ":lua harpoon_bnext()") map("n", "", ":lua harpoon_bprevious()") -map("n", "", ":noh", {silent = true}) --After searching, pressing escape stops the highlight +--map("n", "", ":noh", { silent = true }) --After searching, pressing escape stops the highlight --map("n", "w", [[:%s/\s\+$//e]]) --map("n", "x", ":Bclose ") @@ -84,10 +84,10 @@ local hopline = [[lua require'hop'.hint_lines_skip_whitespace(]] .. hop_opt --map("n", "", hopword, {silent = true}) --map("v", "", hopword, {silent = true}) -map("n", "W", hopline, {silent = true}) -map("v", "W", hopline, {silent = true}) -map("n", "w", hopword, {silent = true}) -map("v", "w", hopword, {silent = true}) +map("n", "W", hopline, { silent = true }) +map("v", "W", hopline, { silent = true }) +map("n", "w", hopword, { silent = true }) +map("v", "w", hopword, { silent = true }) -- args: direction: bool, inclusive: bool -- inclusive is broken in hop as of this comment @@ -152,7 +152,8 @@ map("n", "p", ":Buffers") map("n", "h", ":Helptags") map("n", ";", ":History:") map("n", "c", ":Commands") -map("n", "r", ":Rg") +map("n", "r", ":Rg ") +map("n", "R", ":Rg") map("n", "s", ":Lines") --map("n", "[", ":Windows ") @@ -170,7 +171,7 @@ map("n", "gb", ":GBranches") --------- --map("n", "", ":ALEPreviousWrap ", {silent = true}) --map("n", "", ":ALENextWrap ", {silent = true}) -map("n", "f", ":ALEFix", {silent = true}) +--map("n", "f", ":ALEFix", {silent = true}) ------------- -- HARPOON -- diff --git a/lua/lsp.lua b/lua/lsp.lua index 0a0eeaf..faeba48 100644 --- a/lua/lsp.lua +++ b/lua/lsp.lua @@ -1,305 +1,291 @@ -local opt = vim.opt -- to set options --- --------------------- --- NVIM-AUTOPAIRS -- --------------------- -require("nvim-autopairs").setup {check_ts = true} +-- ooooo ooooo .o8 +-- `888' `888' "888 +-- 888 888 .ooooo. .oooo. .oooo888 .ooooo. oooo d8b +-- 888ooooo888 d88' `88b `P )88b d88' `888 d88' `88b `888""8P +-- 888 888 888ooo888 .oP"888 888 888 888ooo888 888 +-- 888 888 888 .o d8( 888 888 888 888 .o 888 +-- o888o o888o `Y8bod8P' `Y888""8o `Y8bod88P" `Y8bod8P' d888b --------------- --- NVIM-CMP -- --------------- +-- https://patorjk.com/software/taag/#p=display&f=Roman&t=WORD_TO_MAKE_HEADER + +-- .oooooo. oooo .o8 oooo +-- d8P' `Y8b `888 "888 `888 +-- 888 888 .ooooo. 888oooo. .oooo. 888 +-- 888 888 d88' `88b d88' `88b `P )88b 888 +-- 888 ooooo 888 888 888 888 888 .oP"888 888 +-- `88. .88' 888 888 888 888 888 d8( 888 888 +-- `Y8bood8P' o888o `Y8bod8P' `Y8bod8P' `Y888""8o o888o + +local opt = vim.opt -- to set options + +vim.diagnostic.config({ + virtual_text = true, + signs = true, + update_in_insert = false, +}) + +local config = { + + root_dir = require("lspconfig.util").root_pattern( + "manage.py", + "pyproject.toml", + "package.json", + ".null-ls-root", + "Makefile", + ".git" + ), + + on_attach = function(client, bufnr) + local function buf_set_keymap(...) + vim.api.nvim_buf_set_keymap(bufnr, ...) + end + local function buf_set_option(...) + vim.api.nvim_buf_set_option(bufnr, ...) + end + + ---- Disables document formatting by lsp + --client.resolved_capabilities.document_formatting = false + --client.resolved_capabilities.document_range_formatting = false + + -- Enable completion triggered by + buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") + + -- Mappings. + local opts = { noremap = true, silent = true } + + -- See `:help vim.lsp.*` for documentation on any of the below functions + buf_set_keymap("n", "", "lua vim.lsp.buf.signature_help()", opts) + buf_set_keymap("n", "D", "lua vim.lsp.buf.type_definition()", opts) + buf_set_keymap("n", "ca", "lua vim.lsp.buf.code_action()", opts) + buf_set_keymap("n", "e", "lua vim.diagnostic.open_float()", opts) + buf_set_keymap("n", "f", "lua vim.lsp.buf.formatting()", opts) + buf_set_keymap("n", "q", "lua vim.diagnostic.setloclist()", opts) + buf_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", opts) + buf_set_keymap("n", "wa", "lua vim.lsp.buf.add_workspace_folder()", opts) + buf_set_keymap("n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", opts) + buf_set_keymap("n", "wr", "lua vim.lsp.buf.remove_workspace_folder()", opts) + buf_set_keymap("n", "K", "lua vim.lsp.buf.hover()", opts) + buf_set_keymap("n", "[d", "lua vim.diagnostic.goto_prev({wrap = true})", opts) + buf_set_keymap("n", "]d", "lua vim.diagnostic.goto_next({wrap = true})", opts) + buf_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) + buf_set_keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) + buf_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", opts) + buf_set_keymap("n", "gr", "lua vim.lsp.buf.references()", opts) + end, +} + +-- .oooooo. ooo ooooo ooooooooo. +-- d8P' `Y8b `88. .888' `888 `Y88. +-- 888 888b d'888 888 .d88' +-- 888 8 Y88. .P 888 888ooo88P' +-- 888 8 `888' 888 888 +-- `88b ooo 8 Y 888 888 +-- `Y8bood8P' o8o o888o o888o + +require("nvim-autopairs").setup({ check_ts = true }) -- Set completeopt to have a better completion experience opt.completeopt = "menuone,noselect" -local has_words_before = function() - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil -end - local cmp_autopairs = require("nvim-autopairs.completion.cmp") local cmp = require("cmp") --- LUASNIP CMP THINGS ---local luasnip = require("luasnip") --- ---local luasnip_expand = function(args) --- luasnip.lsp_expand(args.body) ---end --- ---local luasnip_tab = cmp.mapping( --- function(fallback) --- if cmp.visible() then --- cmp.select_next_item() --- elseif luasnip.expand_or_jumpable() then --- luasnip.expand_or_jump() --- elseif has_words_before() then --- cmp.complete() --- else --- fallback() --- end --- end, --- {"i", "s"} ---) --- ---local luasnip_shift_tab = 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"} ---) - -- CMP NVIM ULTISNIP local cmp_ultisnips_mappings = require("cmp_nvim_ultisnips.mappings") local ultisnip = { - expand = function(args) - vim.fn["UltiSnips#Anon"](args.body) - end, - tab = cmp.mapping( - function(fallback) - --cmp_ultisnips_mappings.jump_forwards(fallback) - --cmp_ultisnips_mappings.compose({"jump_forwards", "select_next_item"})(fallback) - cmp_ultisnips_mappings.compose({"select_next_item"})(fallback) - end, - {"i", "s"} - ), - shift_tab = cmp.mapping( - function(fallback) - --cmp_ultisnips_mappings.jump_backwards(fallback) - cmp_ultisnips_mappings.compose({"select_prev_item"})(fallback) - end, - {"i", "s"} - ) + expand = function(args) + vim.fn["UltiSnips#Anon"](args.body) + end, + tab = cmp.mapping(function(fallback) + cmp_ultisnips_mappings.compose({ "select_next_item" })(fallback) + end, { "i", "s" }), + shift_tab = cmp.mapping(function(fallback) + cmp_ultisnips_mappings.compose({ "select_prev_item" })(fallback) + end, { "i", "s" }), } -cmp.setup { - snippet = { - expand = ultisnip.expand - }, - mapping = { - [""] = cmp.mapping.select_prev_item(), - [""] = cmp.mapping.select_next_item(), - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.close(), - [""] = cmp.mapping.confirm { - --behavior = cmp.ConfirmBehavior.Replace, - select = true - }, - [""] = ultisnip.tab, - [""] = ultisnip.shift_tab - }, - sources = { - {name = "nvim_lsp"}, - --{name = "luasnip"}, - {name = "ultisnips"} - } +cmp.setup({ + snippet = { + expand = ultisnip.expand, + }, + mapping = { + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.close(), + [""] = cmp.mapping.confirm({ + select = true, + }), + [""] = ultisnip.tab, + [""] = ultisnip.shift_tab, + }, + sources = { + { name = "nvim_lsp" }, + { name = "ultisnips" }, + }, +}) + +cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } })) + +-- ooooo ooo oooo oooo ooooo .oooooo..o +-- `888b. `8' `888 `888 `888' d8P' `Y8 +-- 8 `88b. 8 oooo oooo 888 888 888 Y88bo. +-- 8 `88b. 8 `888 `888 888 888 888 `"Y8888o. +-- 8 `88b.8 888 888 888 888 888 `"Y88b +-- 8 `888 888 888 888 888 888 o oo .d8P +-- o8o `8 `V88V"V8P' o888o o888o o888ooooood8 8""88888P' + +local null_ls = require("null-ls") + +-- ORDER IN TABLE DETERMINES EXECUTION ORDER +local sources = { + -- python + null_ls.builtins.diagnostics.flake8, + null_ls.builtins.diagnostics.mypy, + null_ls.builtins.formatting.black, + null_ls.builtins.formatting.isort, + -- js + null_ls.builtins.diagnostics.eslint, + null_ls.builtins.code_actions.eslint, + null_ls.builtins.formatting.prettier.with({ + extra_filetypes = { "svelte" }, + }), + -- lua + null_ls.builtins.formatting.stylua, + -- bash + null_ls.builtins.formatting.shfmt, + null_ls.builtins.diagnostics.shellcheck, + null_ls.builtins.code_actions.shellcheck, + -- cpp + null_ls.builtins.formatting.clang_format, + -- latex + null_ls.builtins.formatting.latexindent, + null_ls.builtins.diagnostics.chktex, + -- golang + null_ls.builtins.diagnostics.golangci_lint, + -- sql + --null_ls.builtins.diagnostics.sqlfluff.with({ + -- --filetypes = { "sql", "html" }, + -- args = { "lint", "--dialect", "ansi", "-f", "github-annotation", "-n", "--disable_progress_bar", "-" }, + --}), + --null_ls.builtins.formatting.sqlfluff.with({ + -- --filetypes = { "sql", "html" }, + -- args = { "fix", "--dialect", "ansi", "--disable_progress_bar", "-f", "-n", "-" }, + --}), } +null_ls.setup({ + sources = sources, + on_attach = config.on_attach, + root_dir = config.root_dir, +}) -cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({map_char = {tex = ""}})) +-- ooooo .oooooo..o ooooooooo. ooooo . oooo oooo +-- `888' d8P' `Y8 `888 `Y88. `888' .o8 `888 `888 +-- 888 Y88bo. 888 .d88' 888 ooo. .oo. .oooo.o .o888oo .oooo. 888 888 .ooooo. oooo d8b +-- 888 `"Y8888o. 888ooo88P' 888 `888P"Y88b d88( "8 888 `P )88b 888 888 d88' `88b `888""8P +-- 888 `"Y88b 888 888 888 888 `"Y88b. 888 .oP"888 888 888 888ooo888 888 +-- 888 o oo .d8P 888 888 888 888 o. )88b 888 . d8( 888 888 888 888 .o 888 +-- o888ooooood8 8""88888P' o888o o888o o888o o888o 8""888P' "888" `Y888""8o o888o o888o `Y8bod8P' d888b --------------------- --- NVIM-AUTOPAIRS -- --------------------- +local on_attach_tsserver = function(client, bufnr) + local ts_utils = require("nvim-lsp-ts-utils") + ts_utils.setup({ + eslint_bin = "eslint_d", + eslint_enable_diagnostics = true, + eslint_enable_code_actions = true, + enable_import_on_completion = true, + filter_out_diagnostics_by_severity = { + "information", + "hint", + --"warning", + --"error", + }, + }) + ts_utils.setup_client(client) ---require("nvim-autopairs").setup {} --- ----- you need setup cmp first put this after cmp.setup() ---require("nvim-autopairs.completion.cmp").setup( --- { --- map_cr = true, -- map on insert mode --- map_complete = true, -- it will auto insert `(` (map_char) after select function or method item --- auto_select = true, -- automatically select the first item --- insert = false, -- use insert confirm behavior instead of replace --- map_char = { --- -- modifies the function or method delimiter by filetypes --- all = "(", --- tex = "{" --- } --- } ---) - ------------------------- --- NVIM-LSP-INSTALLER -- ------------------------- - --- Use an on_attach function to only map the following keys --- after the language server attaches to the current buffer -local common_on_attach = function(client, bufnr) - local function buf_set_keymap(...) - vim.api.nvim_buf_set_keymap(bufnr, ...) - end - local function buf_set_option(...) - vim.api.nvim_buf_set_option(bufnr, ...) - end - - --client.resolved_capabilities.document_formatting = false - --client.resolved_capabilities.document_range_formatting = false - -- Enable completion triggered by - buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") - - -- Mappings. - local opts = {noremap = true, silent = true} - - -- See `:help vim.lsp.*` for documentation on any of the below functions - --buf_set_keymap("n", "", "lua vim.lsp.buf.signature_help()", opts) - buf_set_keymap("n", "D", "lua vim.lsp.buf.type_definition()", opts) - buf_set_keymap("n", "ca", "lua vim.lsp.buf.code_action()", opts) - buf_set_keymap("n", "e", "lua vim.diagnostic.show_line_diagnostics()", opts) - buf_set_keymap("n", "F", "lua vim.lsp.buf.formatting()", opts) - buf_set_keymap("n", "q", "lua vim.diagnostic.set_loclist()", opts) - buf_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", opts) - buf_set_keymap("n", "wa", "lua vim.lsp.buf.add_workspace_folder()", opts) - buf_set_keymap("n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", opts) - buf_set_keymap("n", "wr", "lua vim.lsp.buf.remove_workspace_folder()", opts) - buf_set_keymap("n", "K", "lua vim.lsp.buf.hover()", opts) - buf_set_keymap("n", "", "lua vim.diagnostic.goto_prev({wrap = true})", opts) - buf_set_keymap("n", "", "lua vim.diagnostic.goto_next({wrap = true})", opts) - buf_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) - buf_set_keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) - buf_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", opts) - buf_set_keymap("n", "gr", "lua vim.lsp.buf.references()", opts) + -- no default maps, so you may want to define some here + local o = { silent = true } + vim.api.nvim_buf_set_keymap(bufnr, "n", "gs", ":TSLspOrganize", o) + vim.api.nvim_buf_set_keymap(bufnr, "n", "rN", ":TSLspRenameFile", o) + vim.api.nvim_buf_set_keymap(bufnr, "n", "gI", ":TSLspImportAll", o) end --- enable null-ls integration (optional) --- lspconfig integration is deprecated; pass options to setup instead ---require("null-ls").config {} -require("null-ls").setup { - on_attach = common_on_attach, - --} - --require("lspconfig")["null-ls"].setup { - handlers = { - ["textDocument/publishDiagnostics"] = vim.lsp.with( - vim.lsp.diagnostic.on_publish_diagnostics, - { - virtual_text = false - } - ) - } -} +require("nvim-lsp-installer").on_server_ready(function(server) + --Enable (broadcasting) snippet capability for completion + local capabilities = vim.lsp.protocol.make_client_capabilities() + capabilities.textDocument.completion.completionItem.snippetSupport = true -local tsserver_on_attach = function(client, bufnr) - local ts_utils = require("nvim-lsp-ts-utils") - ts_utils.setup { - eslint_bin = "eslint_d", - eslint_enable_diagnostics = true, - eslint_enable_code_actions = true, - enable_import_on_completion = true, - filter_out_diagnostics_by_severity = { - "information", - "hint" - --"warning", - --"error", - } - } - ts_utils.setup_client(client) + local disable_diag = { + ["textDocument/publishDiagnostics"] = function() end, + } - -- no default maps, so you may want to define some here - local o = {silent = true} - vim.api.nvim_buf_set_keymap(bufnr, "n", "gs", ":TSLspOrganize", o) - vim.api.nvim_buf_set_keymap(bufnr, "n", "rN", ":TSLspRenameFile", o) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gI", ":TSLspImportAll", o) + local on_attach_generic = function(client, bufnr) + -- Disables document formatting by lsp + client.resolved_capabilities.document_formatting = false + client.resolved_capabilities.document_range_formatting = false - common_on_attach(client, bufnr) -end + config.on_attach(client, bufnr) + end -require("nvim-lsp-installer").on_server_ready( - function(server) - --Enable (broadcasting) snippet capability for completion - local capabilities = vim.lsp.protocol.make_client_capabilities() - capabilities.textDocument.completion.completionItem.snippetSupport = true + local opts = { + on_attach = on_attach_generic, + capabilities = capabilities, + flags = { + debounce_text_changes = 150, + }, + settings = { + format = { enable = true }, + }, + root_dir = config.root_dir, + } - local opts = { - on_attach = common_on_attach, - capabilities = capabilities, - flags = { - debounce_text_changes = 150 - }, - settings = { - format = {enable = true} - }, - handlers = { - ["textDocument/publishDiagnostics"] = vim.lsp.with( - vim.lsp.diagnostic.on_publish_diagnostics, - { - virtual_text = false - } - ) - } - } + if server.name == "tsserver" then + opts.on_attach = function(...) + on_attach_tsserver(...) + on_attach_generic(...) + end + elseif server.name == "sumneko_lua" then + opts.settings.Lua = { + diagnostics = { + globals = { + "vim", + "awesome", + "client", + }, + }, + } + end - --local vscode_servers = {html = "html", jsonls = "json", cssls = "css"} - --local lang = vscode_servers[server.name] - - --if lang ~= nil then - -- opts.cmd = {("vscode-" .. lang .. "-language-server"), "--stdio"} - --end - - if server.name == "tsserver" then - opts.on_attach = tsserver_on_attach - elseif server.name == "sumneko_lua" then - opts.settings.Lua = { - diagnostics = { - globals = { - -- neovim - "vim", - -- awesome - "awesome", - "client" - } - } - } - elseif server.name == "diagnosticls" then - opts = { - filetypes = {"python"}, - init_options = { - formatters = { - black = { - command = "black", - args = {"--quiet", "-"}, - rootPatterns = {"pyproject.toml", "setup.cfg"} - }, - formatFiletypes = { - python = {"black"} - } - } - } - } - end - - server:setup(opts) - vim.cmd [[do User LspAttachBuffers]] - end -) + server:setup(opts) + vim.cmd([[do User LspAttachBuffers]]) +end) local lsp_installer_servers = require("nvim-lsp-installer.servers") local auto_servers = { - "pylsp", - --"pyright", - "sumneko_lua", - "tsserver", - "bashls", - "vimls", - "rust_analyzer", - "html", - "cssls", - "jsonls", - "omnisharp", - "eslint" - --"diagnosticls" - --"eslintls" + --"pylsp", + --"pyright", + "sumneko_lua", + "tsserver", + "bashls", + "vimls", + "rust_analyzer", + "html", + "cssls", + "jsonls", + --"omnisharp", + "ltex", + "jedi_language_server", + "vuels", + "svelte", + "gopls", + "golangci_lint_ls", } for _, s in ipairs(auto_servers) do - local ok, server = lsp_installer_servers.get_server(s) - if ok and not server:is_installed() then - server:install() - end + local ok, server = lsp_installer_servers.get_server(s) + if ok and not server:is_installed() then + server:install() + end end diff --git a/lua/packer_check.lua b/lua/packer_check.lua index b04ec5d..10327de 100644 --- a/lua/packer_check.lua +++ b/lua/packer_check.lua @@ -2,7 +2,7 @@ local fn = vim.fn local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" if fn.empty(fn.glob(install_path)) > 0 then - fn.system({"git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path}) - vim.cmd "packadd packer.nvim" - vim.cmd ":PackerSync" + fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path }) + vim.cmd("packadd packer.nvim") + vim.cmd(":PackerSync") end diff --git a/lua/plugins.lua b/lua/plugins.lua index 3782eb2..8a2074f 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -1,104 +1,103 @@ local use = require("packer").use -require("packer").startup( - function() - use "wbthomason/packer.nvim" +require("packer").startup(function() + use("wbthomason/packer.nvim") - -- OPENAI CODEX - --use "tom-doerr/vim_codex" + -- OPENAI CODEX + --use "tom-doerr/vim_codex" - -- NAVIGATION - use { - "phaazon/hop.nvim", - --branch = "v1.2", -- optional but strongly recommended - config = function() - -- you can configure Hop the way you like here; see :h hop-config - require "hop".setup {keys = "etovxqpdygfblzhckisuran"} - end - } - --use { - -- "phaazon/hop.nvim", - -- as = "hop", - -- config = function() - -- -- you can configure Hop the way you like here; see :h hop-config - -- require "hop".setup {} - -- --require "hop".setup {keys = "etovxqpdygfblzhckisuran"} - -- end - --} + -- NAVIGATION + use({ + "phaazon/hop.nvim", + --branch = "v1.2", -- optional but strongly recommended + config = function() + -- you can configure Hop the way you like here; see :h hop-config + require("hop").setup({ keys = "etovxqpdygfblzhckisuran" }) + end, + }) + --use { + -- "phaazon/hop.nvim", + -- as = "hop", + -- config = function() + -- -- you can configure Hop the way you like here; see :h hop-config + -- require "hop".setup {} + -- --require "hop".setup {keys = "etovxqpdygfblzhckisuran"} + -- end + --} - -- TABLE - --use "dhruvasagar/vim-table-mode" + -- TABLE + --use "dhruvasagar/vim-table-mode" - -- VIM THEMING - --use "rafi/awesome-vim-colorschemes" -- vim themes - use "navarasu/onedark.nvim" - use "projekt0n/github-nvim-theme" - use "wojciechkepka/vim-github-dark" - use "folke/tokyonight.nvim" + -- VIM THEMING + --use "rafi/awesome-vim-colorschemes" -- vim themes + use("navarasu/onedark.nvim") + use("projekt0n/github-nvim-theme") + use("wojciechkepka/vim-github-dark") + use("folke/tokyonight.nvim") - -- FILE MANAGEMENT - use "junegunn/fzf" - use "junegunn/fzf.vim" - use "rbgrouleff/bclose.vim" - use "francoiscabrol/ranger.vim" - use "vijaymarupudi/nvim-fzf" - use "vijaymarupudi/nvim-fzf-commands" - use {"tpope/vim-obsession"} + -- FILE MANAGEMENT + use("junegunn/fzf") + use("junegunn/fzf.vim") + use("rbgrouleff/bclose.vim") + use("francoiscabrol/ranger.vim") + use("vijaymarupudi/nvim-fzf") + use("vijaymarupudi/nvim-fzf-commands") + use({ "tpope/vim-obsession" }) - -- GIT - use "tpope/vim-fugitive" - use "stsewd/fzf-checkout.vim" + -- GIT + use("tpope/vim-fugitive") + use("stsewd/fzf-checkout.vim") - -- AIRLINE - use { - "nvim-lualine/lualine.nvim", - requires = {"kyazdani42/nvim-web-devicons", opt = true} - } + -- AIRLINE + use({ + "nvim-lualine/lualine.nvim", + requires = { "kyazdani42/nvim-web-devicons", opt = true }, + }) - -- EDITOR - use "windwp/nvim-autopairs" - --use "jiangmiao/auto-pairs" - use "dense-analysis/ale" - --use "nathanmsmith/nvim-ale-diagnostic" - use "turbio/bracey.vim" - use "lukas-reineke/indent-blankline.nvim" - --use "sheerun/vim-polyglot" + -- EDITOR + use("windwp/nvim-autopairs") + --use "jiangmiao/auto-pairs" + --use "dense-analysis/ale" + --use "nathanmsmith/nvim-ale-diagnostic" + use("turbio/bracey.vim") + use("lukas-reineke/indent-blankline.nvim") + --use "sheerun/vim-polyglot" - -- SNIPPETS - use "SirVer/ultisnips" - use "honza/vim-snippets" + -- SNIPPETS + use("SirVer/ultisnips") + use("honza/vim-snippets") - -- LSP - use "hrsh7th/nvim-cmp" -- Autocompletion plugin - --use "saadparwaiz1/cmp_luasnip" -- Snippets source for nvim-cmp - use {"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"} - use "neovim/nvim-lspconfig" -- Collection of configurations for built-in LSP client - use "williamboman/nvim-lsp-installer" - use { - "hrsh7th/cmp-nvim-lsp", - requires = "quangnguyen30192/cmp-nvim-ultisnips" - } -- LSP source for nvim-cmp + -- LSP + use("hrsh7th/nvim-cmp") -- Autocompletion plugin + --use "saadparwaiz1/cmp_luasnip" -- Snippets source for nvim-cmp + use({ "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" }) + use("neovim/nvim-lspconfig") -- Collection of configurations for built-in LSP client + use("williamboman/nvim-lsp-installer") + use({ + "hrsh7th/cmp-nvim-lsp", + requires = "quangnguyen30192/cmp-nvim-ultisnips", + }) -- LSP source for nvim-cmp - use "nvim-lua/plenary.nvim" - use "jose-elias-alvarez/nvim-lsp-ts-utils" - use "jose-elias-alvarez/null-ls.nvim" + use("nvim-lua/plenary.nvim") + use("jose-elias-alvarez/nvim-lsp-ts-utils") + use("jose-elias-alvarez/null-ls.nvim") - use "ThePrimeagen/harpoon" + use("ThePrimeagen/harpoon") - use "L3MON4D3/LuaSnip" -- Snippets plugin + use("L3MON4D3/LuaSnip") -- Snippets plugin - -- JS - use "HerringtonDarkholme/yats.vim" - use "chemzqm/vim-jsx-improve" - use "yuezk/vim-js" -- js - use "maxmellon/vim-jsx-pretty" -- react/tsx syntax highlight & indent - --use "leafOfTree/vim-vue-plugin" -- vue syntax highlight & indent + -- JS + use("HerringtonDarkholme/yats.vim") + use("chemzqm/vim-jsx-improve") + use("yuezk/vim-js") -- js + use("maxmellon/vim-jsx-pretty") -- react/tsx syntax highlight & indent + --use "leafOfTree/vim-vue-plugin" -- vue syntax highlight & indent - -- PYTHON - --use {"numirias/semshi", run = ":UpdateRemotePlugins"} -- python - use "Vimjas/vim-python-pep8-indent" + -- PYTHON + --use {"numirias/semshi", run = ":UpdateRemotePlugins"} -- python + use("Vimjas/vim-python-pep8-indent") + --use("petobens/poet-v") - -- HTML/CSS - use "mattn/emmet-vim" - end -) + -- HTML/CSS + use("mattn/emmet-vim") +end) diff --git a/lua/save_buffer_position.lua b/lua/save_buffer_position.lua index 500bf8a..bd97ae1 100644 --- a/lua/save_buffer_position.lua +++ b/lua/save_buffer_position.lua @@ -1,4 +1,4 @@ -vim.cmd [[ +vim.cmd([[ " https://vim.fandom.com/wiki/Avoid_scrolling_when_switch_buffers " Save current view settings on a per-window, per-buffer basis. @@ -27,4 +27,4 @@ vim.cmd [[ autocmd BufLeave * call AutoSaveWinView() autocmd BufEnter * call AutoRestoreWinView() -]] +]])