diff --git a/nvim/coc-settings.json b/nvim/coc-settings.json new file mode 100644 index 0000000..7a3a0b3 --- /dev/null +++ b/nvim/coc-settings.json @@ -0,0 +1,38 @@ +{ + "diagnostic.displayByAle": false, + "diagnostic.enable": true, + "diagnostic.level": "hint", + "diagnostic-languageserver.enable": true, + "diagnostic-languageserver.filetypes": { + "sh": "shellcheck", + "python": "pylint" + }, + "diagnostic-languageserver.mergeConfig": true, + "diagnostic-languageserver.formatFiletypes": { + "sh": "shfmt", + "python": ["black", "isort"] + }, + "diagnostic-languageserver.formatters": { + "shfmt": { + "command": "shfmt", + "args": ["-i", "4", "-ci", "-sr"] + }, + "black": { + "command": "black" + } + }, + "pyright.organizeimports.provider": "isort", + "pyright.completion.importSupport": true, + "pyright.enable": true, + "python.linting.pylintEnabled": true, + "python.linting.pylintPath": "/usr/bin/pylint", + "python.formatting.blackPath": "/usr/bin/black", + "python.analysis.autoSearchPaths": true, + "python.venvPath": "env", + "languageserver": { + "python": { + "command": "pyright", + "filetypes": ["python", "py"] + } + } +} diff --git a/nvim/init.vim b/nvim/init.vim new file mode 120000 index 0000000..859ac20 --- /dev/null +++ b/nvim/init.vim @@ -0,0 +1 @@ +/home/sudacode/.vimrc \ No newline at end of file diff --git a/nvim/plugins/bufferline.lua b/nvim/plugins/bufferline.lua new file mode 100644 index 0000000..8d87a98 --- /dev/null +++ b/nvim/plugins/bufferline.lua @@ -0,0 +1,85 @@ +require('bufferline').setup { + options = { + -- numbers = function(opts) + -- return string.format("%s", opts.id) + -- end, + numbers = function(opts) + return "" + end, + -- number_style = "superscript" | "subscript" | "" | { "none", "subscript" }, -- buffer_id at index 1, ordinal at index 2 + -- number_style = "none", + 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 = '▎', + buffer_close_icon = '', + modified_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 = 18, + max_prefix_length = 15, -- prefix used when a buffer is de-duplicated + tab_size = 18, + -- diagnostics = false | "nvim_lsp" | "coc", + diagnostics = "coc", + diagnostics_update_in_insert = false, + diagnostics_indicator = function(count, level, diagnostics_dict, context) + local s = " " + for e, n in pairs(diagnostics_dict) do + local sym = e == "error" and " " + or e == "hint" and " " + or (e == "warning" and " " or "" ) + s = s .. n .. sym + end + return s + end, + custom_filter = function(buf_number, buf_numbers) + -- 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 + -- filter out by it's index number in list (don't show first buffer) + if buf_numbers[1] ~= buf_number then + return true + end + end, + -- offsets = {{filetype = "NvimTree", text = "File Explorer" | function , text_align = "left" | "center" | "right"}}, + -- offsets = text_align = "left" | "center" | "right"}}, + show_buffer_icons = true, + show_buffer_close_icons = true, + show_close_icon = false, + show_tab_indicators = true, + persist_buffer_sort = false, -- whether or not custom sorted buffers should persist + -- can also be a table containing 2 custom separators + -- [focused and unfocused]. eg: { '|', '|' } + -- separator_style = "slant" | "thick" | "thin" | { 'any', 'any' }, + separator_style = "thick", + enforce_regular_tabs = false, + always_show_bufferline = true, + -- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b) + sort_by = 'id', + } +} diff --git a/nvim/plugins/doomone.lua b/nvim/plugins/doomone.lua new file mode 100644 index 0000000..a9c3dcd --- /dev/null +++ b/nvim/plugins/doomone.lua @@ -0,0 +1,27 @@ +require('doom-one').setup({ + cursor_coloring = false, + terminal_colors = false, + italic_comments = false, + enable_treesitter = true, + transparent_background = false, + pumblend = { + enable = true, + transparency_amount = 20, + }, + plugins_integrations = { + neorg = true, + barbar = true, + bufferline = false, + gitgutter = false, + gitsigns = true, + telescope = false, + neogit = true, + nvim_tree = true, + dashboard = true, + startify = true, + whichkey = true, + indent_blankline = true, + vim_illuminate = true, + lspsaga = false, + }, + }) diff --git a/nvim/plugins/dracula.lua b/nvim/plugins/dracula.lua new file mode 100644 index 0000000..e871520 --- /dev/null +++ b/nvim/plugins/dracula.lua @@ -0,0 +1,33 @@ +-- customize dracula color palette +vim.g.dracula_colors = { + bg = "#282A36", + fg = "#F8F8F2", + selection = "#44475A", + comment = "#6272A4", + red = "#FF5555", + orange = "#FFB86C", + yellow = "#F1FA8C", + green = "#50fa7b", + purple = "#BD93F9", + cyan = "#8BE9FD", + pink = "#FF79C6", + bright_red = "#FF6E6E", + bright_green = "#69FF94", + bright_yellow = "#FFFFA5", + bright_blue = "#D6ACFF", + bright_magenta = "#FF92DF", + bright_cyan = "#A4FFFF", + bright_white = "#FFFFFF", + menu = "#21222C", + visual = "#3E4452", + gutter_fg = "#4B5263", + nontext = "#3B4048", +} +-- show the '~' characters after the end of buffers +vim.g.dracula_show_end_of_buffer = true +-- use transparent background +vim.g.dracula_transparent_bg = true +-- set custom lualine background color +vim.g.dracula_lualine_bg_color = "#44475a" +-- set italic comment +vim.g.dracula_italic_comment = true diff --git a/nvim/plugins/github-theme.lua b/nvim/plugins/github-theme.lua new file mode 100644 index 0000000..6e96828 --- /dev/null +++ b/nvim/plugins/github-theme.lua @@ -0,0 +1,19 @@ +-- Example config in Lua +require("github-theme").setup({ + theme_style = "dark", + function_style = "italic", + sidebars = {"qf", "vista_kind", "terminal", "packer"}, + + -- Change the "hint" color to the "orange" color, and make the "error" color bright red + colors = {hint = "orange", error = "#ff0000"}, + + -- Overwrite the highlight groups + overrides = function(c) + return { + htmlTag = {fg = c.red, bg = "#282c34", sp = c.hint, style = "underline"}, + DiagnosticHint = {link = "LspDiagnosticsDefaultHint"}, + -- this will remove the highlight groups + TSField = {}, + } + end +}) diff --git a/vim/coc-settings.json b/vim/coc-settings.json new file mode 100644 index 0000000..723ef85 --- /dev/null +++ b/vim/coc-settings.json @@ -0,0 +1,38 @@ +{ + "diagnostic.displayByAle": false, + "diagnostic.enable": true, + "diagnostic.level": "hint", + "diagnostic-languageserver.enable": true, + "diagnostic-languageserver.filetypes": { + "sh": "shellcheck", + "python": "pylint" + }, + "diagnostic-languageserver.mergeConfig": true, + "diagnostic-languageserver.formatFiletypes": { + "sh": "shfmt", + "python": ["black", "isort"] + }, + "diagnostic-languageserver.formatters": { + "shfmt": { + "command": "shfmt", + "args": ["-i", "4", "-ci", "-sr"] + }, + "black": { + "command": "black" + } + }, + "pyright.organizeimports.provider": "isort", + "pyright.completion.importSupport": true, + "pyright.enable": true, + "python.linting.pylintEnabled": true, + "python.linting.pylintPath": "/usr/bin/pylint", + "python.formatting.blackPath": "/usr/bin/black", + "python.analysis.autoSearchPaths": true, + "python.venvPath": "env", + "languageserver": { + "python": { + "command": "pyright", + "filetypes": ["python", "py"] + } + } +}