diff --git a/lua/codecraft/core/colorscheme.lua b/lua/codecraft/core/colorscheme.lua index 7a4776ab5b2e0ab0db0e2f47dfa0e9f6ab5518c3..84d4afcef2551bcbf9e933b4e8ee0575a7d7ad9b 100644 --- a/lua/codecraft/core/colorscheme.lua +++ b/lua/codecraft/core/colorscheme.lua @@ -8,9 +8,11 @@ -- tokyonight-moon -- lunar -- nord +-- ghdark (github dark) +-- dracula -- Configurable (in colorschemeconfig, activate here): -- onedark -- catppuccin -vim.cmd[[colorscheme lunar]] +vim.cmd[[colorscheme onedark]] diff --git a/lua/codecraft/core/colorschemeconfig.lua b/lua/codecraft/core/colorschemeconfig.lua index ce3e265aba08e42798a2c41ed4a809400c3e2427..795514ff6f4beab57ea87490ecace652f75d4d04 100644 --- a/lua/codecraft/core/colorschemeconfig.lua +++ b/lua/codecraft/core/colorschemeconfig.lua @@ -82,3 +82,47 @@ require("catppuccin").setup({ -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations) }, }) + +-- DRACULA +require('dracula').setup({ + -- customize dracula color palette + 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 + show_end_of_buffer = false, -- default false + -- use transparent background + transparent_bg = true, -- default false + -- set custom lualine background color + lualine_bg_color = nil, -- 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/lua/codecraft/plugin-setup.lua b/lua/codecraft/plugin-setup.lua index 4442a7fd76fe1b56ab214bd460f5f75036c51272..f38750e43fb799746cf246af4498c5ac12d8c2d8 100644 --- a/lua/codecraft/plugin-setup.lua +++ b/lua/codecraft/plugin-setup.lua @@ -104,6 +104,8 @@ require('packer').startup(function(use) use 'lewis6991/gitsigns.nvim' use 'navarasu/onedark.nvim' -- Theme inspired by Atom + use 'Mofiqul/dracula.nvim' -- dracula + use 'wojciechkepka/vim-github-dark' use 'shaunsingh/nord.nvim' use { "catppuccin/nvim", as = "catppuccin" } use 'morhetz/gruvbox' diff --git a/lua/codecraft/plugin/nvimtree.lua b/lua/codecraft/plugin/nvimtree.lua index 696a0be4f071c9bd157afa017d9a672db6bc7392..1aad9884294f6b6088c9d42ad15d92ad85958cb2 100644 --- a/lua/codecraft/plugin/nvimtree.lua +++ b/lua/codecraft/plugin/nvimtree.lua @@ -1,6 +1,80 @@ +local function on_attach(bufnr) + local api = require('nvim-tree.api') + + local function opts(desc) + return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } + end + + + -- Default mappings. Feel free to modify or remove as you wish. + -- + -- BEGIN_DEFAULT_ON_ATTACH + vim.keymap.set('n', '<C-]>', api.tree.change_root_to_node, opts('CD')) + vim.keymap.set('n', '<C-e>', api.node.open.replace_tree_buffer, opts('Open: In Place')) + vim.keymap.set('n', '<C-k>', api.node.show_info_popup, opts('Info')) + vim.keymap.set('n', '<C-r>', api.fs.rename_sub, opts('Rename: Omit Filename')) + vim.keymap.set('n', '<C-t>', api.node.open.tab, opts('Open: New Tab')) + vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split')) + vim.keymap.set('n', '<C-x>', api.node.open.horizontal, opts('Open: Horizontal Split')) + vim.keymap.set('n', '<BS>', api.node.navigate.parent_close, opts('Close Directory')) + vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '<Tab>', api.node.open.preview, opts('Open Preview')) + vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) + vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) + vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) + vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'a', api.fs.create, opts('Create')) + vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) + vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle No Buffer')) + vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) + vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Git Clean')) + vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) + vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) + vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) + vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) + vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) + vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) + vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic')) + vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic')) + vim.keymap.set('n', 'F', api.live_filter.clear, opts('Clean Filter')) + vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter')) + vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) + vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) + vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles')) + vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore')) + vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) + vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) + vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) + vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker')) + vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) + vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) + vim.keymap.set('n', 'q', api.tree.close, opts('Close')) + vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) + vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) + vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) + vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) + vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Hidden')) + vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) + vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) + vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) + vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) + vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD')) + -- END_DEFAULT_ON_ATTACH + + + -- Mappings migrated from view.mappings.list + -- + -- You will need to insert "your code goes here" for any mappings with a custom action_cb + vim.keymap.set('n', 'u', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split')) + +end require("nvim-tree").setup({ disable_netrw = true, hijack_netrw = true, + on_attach = on_attach, diagnostics = { enable = true, },