diff --git a/init.lua b/init.lua index f2a0da6..91d0e76 100644 --- a/init.lua +++ b/init.lua @@ -9,10 +9,9 @@ if vim.env.PROF then }) end -vim.g.wbr = "test" +vim.g.base46_cache = vim.fn.stdpath("data") .. "/base46_cache/" local home = os.getenv("HOME") - package.path = package.path .. ";" .. home .. "/.luarocks/share/lua/5.4/?.lua" .. ";" .. home .. "/.luarocks/share/lua/5.4/?/init.lua" @@ -40,4 +39,6 @@ vim.filetype.add({ } }) -vim.cmd("colorscheme github_dark") +-- for _, v in ipairs( vim.fn.readdir( vim.g.base46_cache )) do +-- dofile( vim.g.base46_cache .. v ) +-- end diff --git a/lua/assets/icons.lua b/lua/assets/icons.lua new file mode 100644 index 0000000..15ffb90 --- /dev/null +++ b/lua/assets/icons.lua @@ -0,0 +1,74 @@ +local M = {} + +M.icons = { + misc = { + dots = "󰇘", + }, + ft = { + octo = " ", + gh = " ", + ["markdown.gh"] = " ", + }, + dap = { + Stopped = { "󰁕 ", "DiagnosticWarn", "DapStoppedLine" }, + Breakpoint = " ", + BreakpointCondition = " ", + BreakpointRejected = { " ", "DiagnosticError" }, + LogPoint = ".>", + }, + diagnostics = { + Error = " ", + Warn = " ", + Hint = " ", + Info = " ", + }, + git = { + added = " ", + modified = " ", + removed = " ", + }, + kinds = { + Array = " ", + Boolean = "󰨙 ", + Class = " ", + Codeium = "󰘦 ", + Color = " ", + Control = " ", + Collapsed = " ", + Constant = "󰏿 ", + Constructor = " ", + Copilot = " ", + Enum = " ", + EnumMember = " ", + Event = " ", + Field = " ", + File = " ", + Folder = " ", + Function = "󰊕 ", + Interface = " ", + Key = " ", + Keyword = " ", + Method = "󰊕 ", + Module = " ", + Namespace = "󰦮 ", + Null = " ", + Number = "󰎠 ", + Object = " ", + Operator = " ", + Package = " ", + Property = " ", + Reference = " ", + Snippet = "󱄽 ", + String = " ", + Struct = "󰆼 ", + Supermaven = " ", + TabNine = "󰏚 ", + Text = " ", + TypeParameter = " ", + Unit = " ", + Value = " ", + Variable = "󰀫 ", + }, +} + +return M diff --git a/lua/config/barbar.lua b/lua/config/barbar.lua index 31fda3e..52c9be6 100644 --- a/lua/config/barbar.lua +++ b/lua/config/barbar.lua @@ -3,16 +3,24 @@ require("bufferline").setup ({ diagnostics = "nvim_lsp", 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 == "warning" and " " or " ") - s = s .. n .. sym + if diagnostics_dict then + for e, n in pairs(diagnostics_dict) do + local sym = e == "error" and " " + or (e == "warning" and " " or " ") + s = sym .. n + end + return s end - return s + return "" end, show_close_icon = false, show_buffer_close_icons = false, always_show_bufferline = true, + tab_size = 1, + indicator = { + style = "icon", + icon = "▎", + }, offsets = { { filetype = "NvimTree", diff --git a/lua/config/blink.lua b/lua/config/blink.lua new file mode 100644 index 0000000..e125e2e --- /dev/null +++ b/lua/config/blink.lua @@ -0,0 +1,83 @@ +local M = {} + +local icons = require("assets.icons").icons.kinds + +local devicons = { + default_icon = { icon = "󰈚", name = "Default" }, + js = { icon = "󰌞", name = "js" }, + ts = { icon = "󰛦", name = "ts" }, + lock = { icon = "󰌾", name = "lock" }, + ["robots.txt"] = { icon = "󰚩", name = "robots" }, +} + +M.components = { + kind_icon = { + text = function(ctx) + local icon = (icons[ctx.kind] or "󰈚") + + return icon .. " " + end, + }, + + kind = { + highlight = function(ctx) + return ctx.kind + end, + } +} + +local opts = { + 'saghen/blink.cmp', + dependencies = { 'rafamadriz/friendly-snippets' }, + + + version = '1.*', + + opts = { + keymap = { + preset = 'enter', + [""] = { "select_next", "fallback" }, + [""] = { "select_prev", "fallback" }, + }, + + appearance = { + nerd_font_variant = 'mono' + }, + + completion = { + documentation = { auto_show = true, auto_show_delay_ms = 50 }, + keyword = { range = "full" }, + accept = { auto_brackets = { enabled = false }}, + ghost_text = { enabled = true }, + list = { + selection = { + preselect = true, + auto_insert = false, + } + }, + + menu = { + scrollbar = false, + border = "single", + draw = { + padding = 1, + columns = {{ "kind_icon" }, { "label" }, { "kind" }}, + components = M.components, + } + } + }, + + sources = { + default = { 'lsp', 'path', 'snippets', 'buffer' }, + }, + + snippets = { + preset = 'default', + }, + + fuzzy = { implementation = "prefer_rust_with_warning" } + }, + opts_extend = { "sources.default" } +} + +return opts diff --git a/lua/config/catppuccin.lua b/lua/config/catppuccin.lua new file mode 100644 index 0000000..087a557 --- /dev/null +++ b/lua/config/catppuccin.lua @@ -0,0 +1,71 @@ +---@diagnostic disable: redundant-parameter +require("catppuccin").setup({ + flavour = "auto", + background = { + light = "latte", + dark = "mocha", + }, + transparent_background = false, + float = { + transparent = false, + solid = false, + }, + show_end_of_buffer = false, + term_colors = false, + dim_inactive = { + enabled = false, + shade = "dark", + percentage = 0.15, + }, + no_italic = false, + no_bold = false, + no_underline = false, + styles = { + comments = { "italic" }, + conditionals = { "italic" }, + loops = {}, + functions = {}, + keywords = {}, + strings = {}, + variables = {}, + numbers = {}, + booleans = {}, + properties = {}, + types = {}, + operators = {}, + -- miscs = {}, + }, + lsp_styles = { + virtual_text = { + errors = { "italic" }, + hints = { "italic" }, + warnings = { "italic" }, + information = { "italic" }, + ok = { "italic" }, + }, + underlines = { + errors = { "underline" }, + hints = { "underline" }, + warnings = { "underline" }, + information = { "underline" }, + ok = { "underline" }, + }, + inlay_hints = { + background = true, + }, + }, + color_overrides = {}, + custom_highlights = {}, + default_integrations = true, + auto_integrations = false, + integrations = { + cmp = true, + gitsigns = true, + nvimtree = true, + notify = false, + mini = { + enabled = true, + indentscope_color = "", + }, + }, +}) diff --git a/lua/config/gitsigns.lua b/lua/config/gitsigns.lua new file mode 100644 index 0000000..30b923b --- /dev/null +++ b/lua/config/gitsigns.lua @@ -0,0 +1,51 @@ +local icons = require("assets.icons").icons + +require('gitsigns').setup { + signs = { + add = { text = icons.git.added }, + change = { text = icons.git.modified }, + delete = { text = icons.git.removed }, + topdelete = { text = icons.git.removed }, + changedelete = { text = icons.git.modified }, + untracked = { text = '┆' }, + }, + signs_staged = { + add = { text = icons.git.added }, + change = { text = icons.git.modified }, + delete = { text = icons.git.removed }, + topdelete = { text = icons.git.removed }, + changedelete = { text = icons.git.modified }, + untracked = { text = '┆' }, + }, + signs_staged_enable = true, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = false, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + follow_files = true + }, + auto_attach = true, + attach_to_untracked = false, + 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, + virt_text_priority = 100, + use_focus = true, + }, + current_line_blame_formatter = ', - ', + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, -- Disable if file is longer than this (in lines) + preview_config = { + -- Options passed to nvim_open_win + style = 'minimal', + relative = 'cursor', + row = 0, + col = 1 + }, +} diff --git a/lua/config/kanagawa.lua b/lua/config/kanagawa.lua new file mode 100644 index 0000000..b14ddeb --- /dev/null +++ b/lua/config/kanagawa.lua @@ -0,0 +1,24 @@ +require("kanagawa").setup({ + compile = true, + undercurl = true, + commentStyle = { italic = true }, + functionStyle = {}, + keywordStyle = { italic = true}, + statementStyle = { bold = true }, + typeStyle = {}, + transparent = false, + dimInactive = false, + terminalColors = true, + colors = { + palette = {}, + theme = { wave = {}, lotus = {}, dragon = {}, all = {} }, + }, + overrides = function(colors) + return {} + end, + theme = "dragon", + background = { + dark = "dragon", + light = "lotus" + }, +}) diff --git a/lua/config/lspconfig.lua b/lua/config/lspconfig.lua index 9935751..10e94ab 100644 --- a/lua/config/lspconfig.lua +++ b/lua/config/lspconfig.lua @@ -12,13 +12,13 @@ local function flatten_to_array(t) _flatten(t) return res end -local cmp = require("cmp") -local cmp_lsp = require("cmp_nvim_lsp") +-- local cmp = require("cmp") +-- local cmp_lsp = require("cmp_nvim_lsp") local capabilities = vim.tbl_deep_extend( "force", {}, - vim.lsp.protocol.make_client_capabilities(), - cmp_lsp.default_capabilities() + vim.lsp.protocol.make_client_capabilities() + -- cmp_lsp.default_capabilities() ) local cmp_kinds = { @@ -113,64 +113,64 @@ require("mason-lspconfig").setup({ } }) -cmp.setup { - preselect = 'None', - formatting = { - fields = { 'kind', 'abbr' }, - format = function(entry, vim_item) - vim_item.kind = cmp_kinds[vim_item.kind] or '' - if entry.completion_item.detail then - vim_item.menu = entry.completion_item.detail - end - return vim_item - end, - }, - completion = { completeopt = "menu,menuone" }, - snippet = { - expand = function(args) - require("luasnip").lsp_expand(args.body) - end, - }, - - 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.Insert, - select = true, - }, - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif require("luasnip").expand_or_jumpable() then - require("luasnip").expand_or_jump() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif require("luasnip").jumpable(-1) then - require("luasnip").jump(-1) - else - fallback() - end - end, { "i", "s" }), - }, - - sources = cmp.config.sources({ - { name = "path" }, - { name = "nvim_lsp" }, - { name = "luasnip" }, - { name = "buffer" }, - { name = "nvim_lua" }, - }), -} +-- cmp.setup { +-- preselect = 'None', +-- formatting = { +-- fields = { 'kind', 'abbr' }, +-- format = function(entry, vim_item) +-- vim_item.kind = cmp_kinds[vim_item.kind] or '' +-- if entry.completion_item.detail then +-- vim_item.menu = entry.completion_item.detail +-- end +-- return vim_item +-- end, +-- }, +-- completion = { completeopt = "menu,menuone" }, +-- snippet = { +-- expand = function(args) +-- require("luasnip").lsp_expand(args.body) +-- end, +-- }, +-- +-- 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.Insert, +-- select = true, +-- }, +-- [""] = cmp.mapping(function(fallback) +-- if cmp.visible() then +-- cmp.select_next_item() +-- elseif require("luasnip").expand_or_jumpable() then +-- require("luasnip").expand_or_jump() +-- else +-- fallback() +-- end +-- end, { "i", "s" }), +-- [""] = cmp.mapping(function(fallback) +-- if cmp.visible() then +-- cmp.select_prev_item() +-- elseif require("luasnip").jumpable(-1) then +-- require("luasnip").jump(-1) +-- else +-- fallback() +-- end +-- end, { "i", "s" }), +-- }, +-- +-- sources = cmp.config.sources({ +-- { name = "path" }, +-- { name = "nvim_lsp" }, +-- { name = "luasnip" }, +-- { name = "buffer" }, +-- { name = "nvim_lua" }, +-- }), +-- } vim.diagnostic.config({ -- update_in_insert = true, diff --git a/lua/config/lualine.lua b/lua/config/lualine.lua index 3352f8b..ba4ed6d 100644 --- a/lua/config/lualine.lua +++ b/lua/config/lualine.lua @@ -1,5 +1,7 @@ local fn = vim.fn +local icons = require("assets.icons").icons + local get_active_lsp = function() local msg = "" local buf_ft = vim.api.nvim_get_option_value("filetype", {}) @@ -40,18 +42,14 @@ local function ime_state() end local diff = function() - local git_status = vim.b.gitsigns_status_dict - if git_status == nil then - return + local gitsigns = vim.b.gitsigns_status_dict + if gitsigns then + return { + added = gitsigns.added, + modified = gitsigns.changed, + removed = gitsigns.removed, + } end - - local modify_num = git_status.changed - local remove_num = git_status.removed - local add_num = git_status.added - - local info = { added = add_num, modified = modify_num, removed = remove_num } - -- vim.print(info) - return info end local virtual_env = function() @@ -119,11 +117,16 @@ require("lualine").setup { { "filename", symbols = { - readonly = "[󰌾]", + readonly = "[ 󰌾 ]", }, }, { "diff", + symbols = { + added = icons.git.added, + modified = icons.git.modified, + removed = icons.git.removed, + }, source = diff, }, { @@ -151,7 +154,12 @@ require("lualine").setup { { "diagnostics", sources = { "nvim_diagnostic" }, - symbols = { error = " ", warn = " ", info = " ", hint = " " }, + symbols = { + error = icons.diagnostics.Error, + warn = icons.diagnostics.Warn, + info = icons.diagnostics.Info, + hint = icons.diagnostics.Hint + }, }, }, lualine_y = { @@ -167,7 +175,9 @@ require("lualine").setup { "filetype", }, lualine_z = { - "progress", + { + "location", + }, }, }, inactive_sections = { diff --git a/lua/config/monokaipro.lua b/lua/config/monokaipro.lua new file mode 100644 index 0000000..514c38d --- /dev/null +++ b/lua/config/monokaipro.lua @@ -0,0 +1,35 @@ +require("monokai-pro").setup({ + transparent_background = false, + terminal_colors = true, + devicons = true, + styles = { + comment = { italic = true }, + keyword = { italic = true }, + type = { italic = true }, + storageclass = { italic = true }, + structure = { italic = true }, + parameter = { italic = true }, + annotation = { italic = true }, + tag_attribute = { italic = true }, + }, + filter = "pro", + + day_night = { + enable = false, + day_filter = "pro", + night_filter = "spectrum", + }, + inc_search = "background", + background_clear = { + }, + plugins = { + bufferline = { + underline_selected = false, + underline_visible = false, + }, + indent_blankline = { + context_highlight = "default", + context_start_underline = false, + }, + }, +}) diff --git a/lua/config/snacks.lua b/lua/config/snacks.lua index cf86bb8..93f619c 100644 --- a/lua/config/snacks.lua +++ b/lua/config/snacks.lua @@ -60,7 +60,7 @@ return { notifier = { enabled = true }, quickfile = { enabled = true }, scope = { enabled = true }, - scroll = { enabled = true }, + scroll = { enabled = false }, statuscolumn = { enabled = true }, words = { enabled = true }, terminal = { diff --git a/lua/mappings.lua b/lua/mappings.lua index 36c22d4..3604e35 100644 --- a/lua/mappings.lua +++ b/lua/mappings.lua @@ -15,16 +15,6 @@ map("n", "", "KittyNavigateDown", { desc = "Move to bottom spli map("n", "", "KittyNavigateUp", { desc = "Move to top split" }) map("n", "", "KittyNavigateRight", { desc = "Move to right split" }) --- map("n", "", "lua require('tmux').move_left()", { desc = "Move to left split" }) --- map("n", "", "lua require('tmux').move_bottom()", { desc = "Move to bottom split" }) --- map("n", "", "lua require('tmux').move_top()", { desc = "Move to top split" }) --- map("n", "", "lua require('tmux').move_right()", { desc = "Move to right split" }) --- --- map("n", "", "lua require('tmux').resize_left()", { desc = "Move to left split" }) --- map("n", "", "lua require('tmux').resize_bottom()", { desc = "Move to bottom split" }) --- map("n", "", "lua require('tmux').resize_top()", { desc = "Move to top split" }) --- map("n", "", "lua require('tmux').resize_right()", { desc = "Move to right split" }) - -- Copilot Chat buffer map("n", "", vim.cmd.CopilotChatToggle) map("i", "", vim.cmd.CopilotChatToggle) diff --git a/lua/plugins/colorschemes.lua b/lua/plugins/colorschemes.lua new file mode 100644 index 0000000..a653893 --- /dev/null +++ b/lua/plugins/colorschemes.lua @@ -0,0 +1,46 @@ +return { + { + "olimorris/onedarkpro.nvim", + priority = 1000, + config = function() + require("config.themelight") + end, + }, + { + "notken12/base46-colors", + }, + { + "loctvl842/monokai-pro.nvim", + config = function() + require("config.monokaipro") + end, + }, + { + "catppuccin/nvim", + name = "catppuccin", + -- config = function() + -- require("config.catppuccin") + -- end, + }, + { + "rebelot/kanagawa.nvim", + -- config = function() + -- require("config.kanagawa") + -- end, + }, + { + "sainnhe/edge", + lazy = false, + priority = 1000, + config = function() + vim.g.edge_enable_italic = 1 + vim.g.edge_style = "default" + vim.g.edge_menu_selection_background = "purple" + end, + }, + { + "projekt0n/github-nvim-theme", + lazy = false, + priority = 1000, + } +} diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index f1e5264..1a27426 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -1,14 +1,7 @@ return { - -- { - -- "nvimdev/lspsaga.nvim", - -- config = function() - -- require("config.lspsaga") - -- end, - -- dependencies = { - -- "nvim-tree/nvim-web-devicons", - -- "nvim-treesitter/nvim-treesitter", - -- }, - -- }, + { + require("plugins.colorschemes") + }, { "nvim-mini/mini.nvim", version = false, @@ -23,29 +16,12 @@ return { require("config.treesitter") end, }, - { - "sainnhe/edge", - lazy = false, - priority = 1000, - config = function() - vim.g.edge_enable_italic = 1 - vim.g.edge_style = "default" - vim.g.edge_menu_selection_background = "purple" - end, - }, { "rmagatti/auto-session", config = function() require("config.autosession") end, }, - { - "olimorris/onedarkpro.nvim", - priority = 1000, - config = function() - require("config.themelight") - end, - }, { "nvim-telescope/telescope.nvim", dependencies = { @@ -84,9 +60,6 @@ return { require("config.modicator") end }, - { - "shinchu/lightline-gruvbox.vim", - }, { "jiaoshijie/undotree", config = function() @@ -142,17 +115,6 @@ return { { require("config.snacks") }, - { - "notken12/base46-colors", - }, - -- { - -- "mason-org/mason-lspconfig.nvim", - -- opts = {}, - -- dependencies = { - -- { "mason-org/mason.nvim", opts = {} }, - -- "neovim/nvim-lspconfig", - -- }, - -- }, { "folke/lazydev.nvim", ft = "lua", @@ -166,28 +128,23 @@ return { dependencies = { "williamboman/mason.nvim", "williamboman/mason-lspconfig.nvim", - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-buffer", - "hrsh7th/cmp-path", - "hrsh7th/cmp-cmdline", - "hrsh7th/nvim-cmp", "L3MON4D3/LuaSnip", - "saadparwaiz1/cmp_luasnip", + -- "saadparwaiz1/cmp_luasnip", "j-hui/fidget.nvim", }, config = function() require("config.lspconfig") end, }, - { - "smolck/command-completion.nvim", - opts = { - border = nil, - highlight_selection = true, - use_matchfuzzy = true, - tab_completion = true, - }, - }, + -- { + -- "smolck/command-completion.nvim", + -- opts = { + -- border = nil, + -- highlight_selection = true, + -- use_matchfuzzy = true, + -- tab_completion = true, + -- }, + -- }, { "andweeb/presence.nvim", }, @@ -204,12 +161,12 @@ return { require("config.harpoon") end, }, - { - "catgoose/nvim-colorizer.lua", - config = function() - require("config.colorizer") - end, - }, + -- { + -- "catgoose/nvim-colorizer.lua", + -- config = function() + -- require("config.colorizer") + -- end, + -- }, { "ziglang/zig.vim", }, @@ -274,12 +231,6 @@ return { }), } }, - -- { - -- "aserowy/tmux.nvim", - -- config = function() - -- require("config.tmux") - -- end, - -- }, { "aznhe21/actions-preview.nvim", config = function() @@ -319,4 +270,13 @@ return { { require("config.dropbar") }, + { + require("config.blink") + }, + { + "lewis6991/gitsigns.nvim", + config = function() + require("config.gitsigns") + end, + }, }