diff --git a/init.lua b/init.lua index 65f0922..ab0d899 100644 --- a/init.lua +++ b/init.lua @@ -24,12 +24,13 @@ require 'opt.options' require 'plugin.telescope' require 'plugin.yanky' require 'plugin.fzf_lsp' -require 'plugin.autoclose' require 'plugin.lsp_config' require 'plugin.treesitter' require 'plugin.dracula' require 'plugin.cmp' require 'plugin.auto_session' require 'plugin.gitsigns' +require 'plugin.octo' +require 'plugin.lualine' -vim.cmd('colorscheme dracula-soft') +vim.cmd('colorscheme dracula') diff --git a/lazy-lock.json b/lazy-lock.json index 28621d3..6271f5d 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -3,6 +3,7 @@ "LuaSnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" }, "LuaSnip-snippets.nvim": { "branch": "main", "commit": "d7e40e4cce622eab2316607dbcd8d6039bcb9fe0" }, "auto-session": { "branch": "main", "commit": "af2219b9fa99c1d7ac409bd9eac094c459d3f52d" }, + "base16-vim": { "branch": "main", "commit": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d" }, "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "dracula.nvim": { "branch": "main", "commit": "8d8bddb8814c3e7e62d80dda65a9876f97eb699c" }, @@ -15,12 +16,15 @@ "lazygit.nvim": { "branch": "main", "commit": "0ada6c6e7e138df92f5009b6952f4ac41248305a" }, "leap.nvim": { "branch": "main", "commit": "25753d8a16b69fbbce5d392702c21dbc79d86bd1" }, "lsp-zero.nvim": { "branch": "v3.x", "commit": "2b5e9a39b3bf60bfb0cc7c35d5f2e879d4cd72ea" }, + "lualine.nvim": { "branch": "master", "commit": "b5e8bb642138f787a2c1c5aedc2a78cb2cebbd67" }, "neodev.nvim": { "branch": "main", "commit": "6a533ed9d3435dcaa456380d833ea04da37ea2ed" }, "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, "nvim-cmp": { "branch": "main", "commit": "97dc716fc914c46577a4f254035ebef1aa72558a" }, "nvim-dap": { "branch": "master", "commit": "c1695e500c7d552a0a19953a9aefcc89178fb1af" }, "nvim-lspconfig": { "branch": "master", "commit": "6e5c78ebc9936ca74add66bda22c566f951b6ee5" }, "nvim-treesitter": { "branch": "master", "commit": "1c3fb9eac2a04230e4af23715fa2c190cbeacd70" }, + "nvim-web-devicons": { "branch": "master", "commit": "6662f059bf78e6092ba90cd1929599625f448f55" }, + "octo.nvim": { "branch": "master", "commit": "5646539320cd62af6ff28f48ec92aeb724c68e18" }, "plenary.nvim": { "branch": "master", "commit": "f7adfc4b3f4f91aab6caebf42b3682945fbc35be" }, "ripgrep": { "branch": "master", "commit": "3ad0e83471588d8802d5747d0cc9accec76f7ccf" }, "rnvimr": { "branch": "main", "commit": "3c41af742a61caf74a9f83fb82b9ed03ef13b880" }, diff --git a/lua/keybindings/keymap.lua b/lua/keybindings/keymap.lua index 48963f6..142db0d 100644 --- a/lua/keybindings/keymap.lua +++ b/lua/keybindings/keymap.lua @@ -54,7 +54,8 @@ local builtin = require('telescope.builtin') vim.keymap.set('n', 'f', builtin.find_files, {}) vim.keymap.set('n', 'o', builtin.live_grep, {}) vim.keymap.set('n', 'b', builtin.buffers, {}) -vim.keymap.set('n', 'p', builtin.commands, {}) +-- vim.keymap.set('n', 'p', builtin.commands, {}) + vim.keymap.set('n', 'y', ':Telescope yank_history', {}) vim.keymap.set('n', 'gc', builtin.git_commits, {}) vim.keymap.set('n', 'gs', builtin.git_status, {}) diff --git a/lua/plugin/lualine.lua b/lua/plugin/lualine.lua new file mode 100644 index 0000000..191d025 --- /dev/null +++ b/lua/plugin/lualine.lua @@ -0,0 +1,49 @@ +require('lualine').setup { + options = { + icons_enabled = true, + -- theme = 'base16', + theme = 'dracula', + -- component_separators = { left = '', right = ''}, + -- section_separators = { left = '', right = ''}, + component_separators = { left = '', right = ''}, + section_separators = { left = '', right = ''}, + disabled_filetypes = { + statusline = {}, + winbar = {}, + }, + ignore_focus = {}, + always_divide_middle = true, + globalstatus = false, + refresh = { + statusline = 1000, + tabline = 1000, + winbar = 1000, + } + }, + sections = { + lualine_a = {'buffers'}, + -- lualine_b = {'branch', 'diff', 'diagnostics'}, + -- lualine_c = {'buffers'}, + -- lualine_x = {'filetype'}, + -- lualine_y = {'progress'}, + -- lualine_z = {'windows'}, + -- lualine_a = {}, + lualine_b = {}, + lualine_c = {}, + lualine_x = {}, + lualine_y = {}, + lualine_z = {} + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = {'filename'}, + lualine_x = {'location'}, + lualine_y = {}, + lualine_z = {} + }, + tabline = {}, + winbar = {}, + inactive_winbar = {}, + extensions = {} +} diff --git a/lua/plugin/octo.lua b/lua/plugin/octo.lua new file mode 100644 index 0000000..b3120d4 --- /dev/null +++ b/lua/plugin/octo.lua @@ -0,0 +1,193 @@ +require"octo".setup({ + use_local_fs = false, -- use local files on right side of reviews + enable_builtin = false, -- shows a list of builtin actions when no action is provided + default_remote = {"upstream", "origin"}; -- order to try remotes + default_merge_method = "commit", -- default merge method which should be used when calling `Octo pr merge`, could be `commit`, `rebase` or `squash` + ssh_aliases = {}, -- SSH aliases. e.g. `ssh_aliases = {["github.com-work"] = "github.com"}` + picker = "telescope", -- or "fzf-lua" + picker_config = { + use_emojis = false, -- only used by "fzf-lua" picker for now + mappings = { -- mappings for the pickers + open_in_browser = { lhs = "", desc = "open issue in browser" }, + copy_url = { lhs = "", desc = "copy url to system clipboard" }, + checkout_pr = { lhs = "", desc = "checkout pull request" }, + merge_pr = { lhs = "", desc = "merge pull request" }, + }, + }, + comment_icon = "▎", -- comment marker + outdated_icon = "󰅒 ", -- outdated indicator + resolved_icon = " ", -- resolved indicator + reaction_viewer_hint_icon = " "; -- marker for user reactions + user_icon = " "; -- user icon + timeline_marker = " "; -- timeline marker + timeline_indent = "2"; -- timeline indentation + right_bubble_delimiter = ""; -- bubble delimiter + left_bubble_delimiter = ""; -- bubble delimiter + github_hostname = ""; -- GitHub Enterprise host + snippet_context_lines = 4; -- number or lines around commented lines + gh_cmd = "gh", -- Command to use when calling Github CLI + gh_env = {}, -- extra environment variables to pass on to GitHub CLI, can be a table or function returning a table + timeout = 5000, -- timeout for requests between the remote server + default_to_projects_v2 = false, -- use projects v2 for the `Octo card ...` command by default. Both legacy and v2 commands are available under `Octo cardlegacy ...` and `Octo cardv2 ...` respectively. + ui = { + use_signcolumn = true, -- show "modified" marks on the sign column + }, + issues = { + order_by = { -- criteria to sort results of `Octo issue list` + field = "CREATED_AT", -- either COMMENTS, CREATED_AT or UPDATED_AT (https://docs.github.com/en/graphql/reference/enums#issueorderfield) + direction = "DESC" -- either DESC or ASC (https://docs.github.com/en/graphql/reference/enums#orderdirection) + } + }, + pull_requests = { + order_by = { -- criteria to sort the results of `Octo pr list` + field = "CREATED_AT", -- either COMMENTS, CREATED_AT or UPDATED_AT (https://docs.github.com/en/graphql/reference/enums#issueorderfield) + direction = "DESC" -- either DESC or ASC (https://docs.github.com/en/graphql/reference/enums#orderdirection) + }, + always_select_remote_on_create = false -- always give prompt to select base remote repo when creating PRs + }, + file_panel = { + size = 10, -- changed files panel rows + use_icons = true -- use web-devicons in file panel (if false, nvim-web-devicons does not need to be installed) + }, + colors = { -- used for highlight groups (see Colors section below) + white = "#ffffff", + grey = "#2A354C", + black = "#000000", + red = "#fdb8c0", + dark_red = "#da3633", + green = "#acf2bd", + dark_green = "#238636", + yellow = "#d3c846", + dark_yellow = "#735c0f", + blue = "#58A6FF", + dark_blue = "#0366d6", + purple = "#6f42c1", + }, + mappings_disable_default = false, -- disable default mappings if true, but will still adapt user mappings + mappings = { + issue = { + close_issue = { lhs = "ic", desc = "close issue" }, + reopen_issue = { lhs = "io", desc = "reopen issue" }, + list_issues = { lhs = "il", desc = "list open issues on same repo" }, + reload = { lhs = "", desc = "reload issue" }, + open_in_browser = { lhs = "", desc = "open issue in browser" }, + copy_url = { lhs = "", desc = "copy url to system clipboard" }, + add_assignee = { lhs = "aa", desc = "add assignee" }, + remove_assignee = { lhs = "ad", desc = "remove assignee" }, + create_label = { lhs = "lc", desc = "create label" }, + add_label = { lhs = "la", desc = "add label" }, + remove_label = { lhs = "ld", desc = "remove label" }, + goto_issue = { lhs = "gi", desc = "navigate to a local repo issue" }, + add_comment = { lhs = "ca", desc = "add comment" }, + delete_comment = { lhs = "cd", desc = "delete comment" }, + next_comment = { lhs = "]c", desc = "go to next comment" }, + prev_comment = { lhs = "[c", desc = "go to previous comment" }, + react_hooray = { lhs = "rp", desc = "add/remove 🎉 reaction" }, + react_heart = { lhs = "rh", desc = "add/remove ❤️ reaction" }, + react_eyes = { lhs = "re", desc = "add/remove 👀 reaction" }, + react_thumbs_up = { lhs = "r+", desc = "add/remove 👍 reaction" }, + react_thumbs_down = { lhs = "r-", desc = "add/remove 👎 reaction" }, + react_rocket = { lhs = "rr", desc = "add/remove 🚀 reaction" }, + react_laugh = { lhs = "rl", desc = "add/remove 😄 reaction" }, + react_confused = { lhs = "rc", desc = "add/remove 😕 reaction" }, + }, + pull_request = { + checkout_pr = { lhs = "po", desc = "checkout PR" }, + merge_pr = { lhs = "pm", desc = "merge commit PR" }, + squash_and_merge_pr = { lhs = "psm", desc = "squash and merge PR" }, + rebase_and_merge_pr = { lhs = "prm", desc = "rebase and merge PR" }, + list_commits = { lhs = "pc", desc = "list PR commits" }, + list_changed_files = { lhs = "pf", desc = "list PR changed files" }, + show_pr_diff = { lhs = "pd", desc = "show PR diff" }, + add_reviewer = { lhs = "va", desc = "add reviewer" }, + remove_reviewer = { lhs = "vd", desc = "remove reviewer request" }, + close_issue = { lhs = "ic", desc = "close PR" }, + reopen_issue = { lhs = "io", desc = "reopen PR" }, + list_issues = { lhs = "il", desc = "list open issues on same repo" }, + reload = { lhs = "", desc = "reload PR" }, + open_in_browser = { lhs = "", desc = "open PR in browser" }, + copy_url = { lhs = "", desc = "copy url to system clipboard" }, + goto_file = { lhs = "gf", desc = "go to file" }, + add_assignee = { lhs = "aa", desc = "add assignee" }, + remove_assignee = { lhs = "ad", desc = "remove assignee" }, + create_label = { lhs = "lc", desc = "create label" }, + add_label = { lhs = "la", desc = "add label" }, + remove_label = { lhs = "ld", desc = "remove label" }, + goto_issue = { lhs = "gi", desc = "navigate to a local repo issue" }, + add_comment = { lhs = "ca", desc = "add comment" }, + delete_comment = { lhs = "cd", desc = "delete comment" }, + next_comment = { lhs = "]c", desc = "go to next comment" }, + prev_comment = { lhs = "[c", desc = "go to previous comment" }, + react_hooray = { lhs = "rp", desc = "add/remove 🎉 reaction" }, + react_heart = { lhs = "rh", desc = "add/remove ❤️ reaction" }, + react_eyes = { lhs = "re", desc = "add/remove 👀 reaction" }, + react_thumbs_up = { lhs = "r+", desc = "add/remove 👍 reaction" }, + react_thumbs_down = { lhs = "r-", desc = "add/remove 👎 reaction" }, + react_rocket = { lhs = "rr", desc = "add/remove 🚀 reaction" }, + react_laugh = { lhs = "rl", desc = "add/remove 😄 reaction" }, + react_confused = { lhs = "rc", desc = "add/remove 😕 reaction" }, + review_start = { lhs = "vs", desc = "start a review for the current PR" }, + review_resume = { lhs = "vr", desc = "resume a pending review for the current PR" }, + }, + review_thread = { + goto_issue = { lhs = "gi", desc = "navigate to a local repo issue" }, + add_comment = { lhs = "ca", desc = "add comment" }, + add_suggestion = { lhs = "sa", desc = "add suggestion" }, + delete_comment = { lhs = "cd", desc = "delete comment" }, + next_comment = { lhs = "]c", desc = "go to next comment" }, + prev_comment = { lhs = "[c", desc = "go to previous comment" }, + select_next_entry = { lhs = "]q", desc = "move to previous changed file" }, + select_prev_entry = { lhs = "[q", desc = "move to next changed file" }, + select_first_entry = { lhs = "[Q", desc = "move to first changed file" }, + select_last_entry = { lhs = "]Q", desc = "move to last changed file" }, + close_review_tab = { lhs = "", desc = "close review tab" }, + react_hooray = { lhs = "rp", desc = "add/remove 🎉 reaction" }, + react_heart = { lhs = "rh", desc = "add/remove ❤️ reaction" }, + react_eyes = { lhs = "re", desc = "add/remove 👀 reaction" }, + react_thumbs_up = { lhs = "r+", desc = "add/remove 👍 reaction" }, + react_thumbs_down = { lhs = "r-", desc = "add/remove 👎 reaction" }, + react_rocket = { lhs = "rr", desc = "add/remove 🚀 reaction" }, + react_laugh = { lhs = "rl", desc = "add/remove 😄 reaction" }, + react_confused = { lhs = "rc", desc = "add/remove 😕 reaction" }, + }, + submit_win = { + approve_review = { lhs = "", desc = "approve review" }, + comment_review = { lhs = "", desc = "comment review" }, + request_changes = { lhs = "", desc = "request changes review" }, + close_review_tab = { lhs = "", desc = "close review tab" }, + }, + review_diff = { + submit_review = { lhs = "vs", desc = "submit review" }, + discard_review = { lhs = "vd", desc = "discard review" }, + add_review_comment = { lhs = "ca", desc = "add a new review comment" }, + add_review_suggestion = { lhs = "sa", desc = "add a new review suggestion" }, + focus_files = { lhs = "e", desc = "move focus to changed file panel" }, + toggle_files = { lhs = "b", desc = "hide/show changed files panel" }, + next_thread = { lhs = "]t", desc = "move to next thread" }, + prev_thread = { lhs = "[t", desc = "move to previous thread" }, + select_next_entry = { lhs = "]q", desc = "move to previous changed file" }, + select_prev_entry = { lhs = "[q", desc = "move to next changed file" }, + select_first_entry = { lhs = "[Q", desc = "move to first changed file" }, + select_last_entry = { lhs = "]Q", desc = "move to last changed file" }, + close_review_tab = { lhs = "", desc = "close review tab" }, + toggle_viewed = { lhs = "", desc = "toggle viewer viewed state" }, + goto_file = { lhs = "gf", desc = "go to file" }, + }, + file_panel = { + submit_review = { lhs = "vs", desc = "submit review" }, + discard_review = { lhs = "vd", desc = "discard review" }, + next_entry = { lhs = "j", desc = "move to next changed file" }, + prev_entry = { lhs = "k", desc = "move to previous changed file" }, + select_entry = { lhs = "", desc = "show selected changed file diffs" }, + refresh_files = { lhs = "R", desc = "refresh changed files panel" }, + focus_files = { lhs = "e", desc = "move focus to changed file panel" }, + toggle_files = { lhs = "b", desc = "hide/show changed files panel" }, + select_next_entry = { lhs = "]q", desc = "move to previous changed file" }, + select_prev_entry = { lhs = "[q", desc = "move to next changed file" }, + select_first_entry = { lhs = "[Q", desc = "move to first changed file" }, + select_last_entry = { lhs = "]Q", desc = "move to last changed file" }, + close_review_tab = { lhs = "", desc = "close review tab" }, + toggle_viewed = { lhs = "", desc = "toggle viewer viewed state" }, + }, + }, +}) diff --git a/lua/plugins.lua b/lua/plugins.lua index fe4812a..4525014 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -1,7 +1,22 @@ return { + -- { + -- "RRethy/base16-nvim", + -- }, { "gbprod/yanky.nvim", }, + { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' } + }, + { + "pwntester/octo.nvim", + dependencies = { + 'nvim-lua/plenary.nvim', + 'nvim-telescope/telescope.nvim', + 'nvim-tree/nvim-web-devicons', + }, + }, { 'lewis6991/gitsigns.nvim' },