-
Notifications
You must be signed in to change notification settings - Fork 42.8k
merge base #1789
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
merge base #1789
Conversation
Add Harpoon2 plugin to Neovim configuration and integrate it with Telescope and Which-Key. * Add `ThePrimeagen/harpoon` plugin to `lua/custom/plugins/init.lua` with branch `harpoon2` and configure it. * Add keybindings for Harpoon commands in `init.lua`. * Integrate Harpoon with Telescope by creating a custom picker for Harpoon marks and adding keybindings to open the custom picker. * Integrate Harpoon with Which-Key by adding commands to the Which-Key menu and creating keybindings for adding, navigating, and removing Harpoon marks. --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/sebbii17/kickstart.nvim?shareId=XXXX-XXXX-XXXX-XXXX).
Add harpoon2 to neovim config
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR customizes a Neovim configuration (appears to be based on kickstart.nvim) by adding several development plugins, enabling additional LSP servers, and customizing various editor settings.
Key changes:
- Added 5 new plugins: vim-fugitive, undotree, oil.nvim, harpoon, and copilot.vim
- Enabled LSP support for C/C++ (clangd), Go (gopls), C# (omnisharp), and Rust (rust_analyzer)
- Switched color scheme from tokyonight to rose-pine and enabled Nerd Font support
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
lua/custom/plugins/init.lua |
Adds custom plugins including git integration (vim-fugitive), undo history visualization (undotree), file explorer (oil.nvim), file navigation (harpoon), and AI assistance (copilot.vim) |
lazy-lock.json |
Plugin lock file now tracked in version control, containing specific commit hashes for all installed plugins |
init.lua |
Enables relative line numbers, configures multiple LSP servers (especially comprehensive OmniSharp settings), adds Harpoon keybindings, switches to rose-pine theme, and disables system clipboard integration |
.gitignore |
Removes lazy-lock.json from ignored files to track plugin versions |
Comments suppressed due to low confidence (4)
init.lua:1046
- The keybindings
<C-h>,<C-t>,<C-n>, and<C-s>override commonly used Vim/Neovim navigation and command keys. Specifically,<C-h>is typically used for navigating to the left window,<C-n>for next completion item or next search result, and<C-s>is often used for split commands. Consider using less conflicting keybindings like<leader>m1,<leader>m2, etc., to avoid interfering with standard workflows.
-- In normal mode type `<space>sh` then write `lazy.nvim-plugin`
-- you can continue same window with `<space>sr` which resumes last telescope search
}, {
ui = {
-- If you are using a Nerd Font: set icons to an empty table which will use the
-- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table
icons = vim.g.have_nerd_font and {} or {
cmd = '⌘',
config = '🛠',
event = '📅',
ft = '📂',
init = '⚙',
init.lua:1025
- The description '[M]ark [M]enu' for the
<C-e>keybinding is inconsistent with other descriptions. The other keymaps use full words for the second part (e.g., '[M]ark [A]dd file', '[M]ark [N]ext'). Consider changing to '[M]ark Menu' or 'Open [M]ark [M]enu' for consistency.
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
init.lua:623
- The
root_dirfunction for omnisharp always returns the current working directory, which may not be appropriate for all projects. This could cause issues in monorepos or when opening files outside the project root. Consider using the default root_dir detection or a more sophisticated approach that looks for .sln or .csproj files to properly identify the C# project root.
-- This may be unwanted, since they displace some of your code
if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
map('<leader>th', function()
init.lua:1017
- The comments "-- REQUIRED" on lines 1015 and 1017 are not very descriptive. Consider adding more context about why the setup is required or removing these comments if they're not adding value. More descriptive comments would help future maintainers understand the necessity of this initialization.
-- NOTE: Next step on your Neovim journey: Add/Configure additional plugins for Kickstart
--
-- Here are some example plugins that I've included in the Kickstart repository.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| { | ||
| 'mbbill/undotree', | ||
| config = function() | ||
| vim.keymap.set('n', '<leader><F5>', vim.cmd.UndotreeToggle, { desc = 'Toggle Undotree' }) |
Copilot
AI
Dec 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The keymap uses an unusual key combination <leader><F5> which mixes leader key with function key. This is unconventional and may be hard to remember. Consider using a more intuitive mapping like <leader>u or <leader>ut for UndotreeToggle, which would be more consistent with other keymaps in the configuration.
| vim.keymap.set('n', '<leader><F5>', vim.cmd.UndotreeToggle, { desc = 'Toggle Undotree' }) | |
| vim.keymap.set('n', '<leader>u', vim.cmd.UndotreeToggle, { desc = 'Toggle Undotree' }) |
| { | ||
| 'stevearc/oil.nvim', | ||
| opts = {}, | ||
| dependencies = { 'nvim-tree/nvim-web-devicons' }, -- use if prefer nvim-web-devicons |
Copilot
AI
Dec 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Grammar issue in comment: "use if prefer" should be "use if you prefer".
| dependencies = { 'nvim-tree/nvim-web-devicons' }, -- use if prefer nvim-web-devicons | |
| dependencies = { 'nvim-tree/nvim-web-devicons' }, -- use if you prefer nvim-web-devicons |
| -- vim.schedule(function() | ||
| -- vim.opt.clipboard = 'unnamedplus' | ||
| -- end) |
Copilot
AI
Dec 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Commenting out the scheduled clipboard setup could cause issues. The vim.schedule wrapper was intentionally used to prevent startup-time increases. If clipboard functionality is not working as expected, consider keeping the schedule wrapper and only adjusting the clipboard option value rather than disabling this entirely.
| -- vim.schedule(function() | |
| -- vim.opt.clipboard = 'unnamedplus' | |
| -- end) | |
| vim.schedule(function() | |
| vim.opt.clipboard = 'unnamedplus' | |
| end) |
NOTE
Please verify that the
base repositoryabove has the intended destination!Github by default opens Pull Requests against the parent of a forked repository.
If this is your personal fork and you didn't intend to open a PR for contribution
to the original project then adjust the
base repositoryaccordingly.