# Harpoon for JetBrains ##### Getting you where you want with the fewest keystrokes.
## Table of Contents * [Features](#features) * [Installation](#installation) * [Getting Started](#getting-started) * [Settings](#settings) * [Contribution](#contribution) * [License](#license) * [Contact](#contact) ## Description This plugin is inspired by the original [Harpoon](https://github.com/ThePrimeagen/harpoon) NeoVim plugin by ThePrimeagen but aims to provide the same functionality for JetBrains IDEs. ## Features * Navigate to your most used files with a single keystroke. * Easily append files to your Harpoon list. * Quick Menu * Select a file from your Harpoon list and open it. * Delete a file from your Harpoon list. * Reorder / Move files in your Harpoon list. * Add / Insert files to your Harpoon list. * Project-relative file paths using `...` syntax. * Per-project Harpoon lists. * Configurable Vim & IDE keymaps for all actions. ## Installation * Version 2023.1 or later of any IntelliJ-based IDE is required. * Install the plugin from the [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/23771-harpoonforjb). ## Getting Started ### Example .ideavimrc Configuration ```vimrc " Append the current file to the Harpoon list map a :action HarpoonAppend " Open the Harpoon quick menu map :action HarpoonToggleQuickMenu " Select the given file (from the Quick Menu) and open it map o :action HarpoonQuickMenuSelect " Hotkeys to open the first 4 items in the Harpoon list map :action HarpoonSelect1 map :action HarpoonSelect2 map :action HarpoonSelect3 map :action HarpoonSelect4 " Toggle previous & next buffers stored within Harpoon list map :action HarpoonSelectPrev map :action HarpoonSelectNext ``` ### My .ideavimrc Configuration ```vimrc map a :action HarpoonAppend map :action HarpoonToggleQuickMenu " I am Using "Enter" from settings so no need to map it here map :action HarpoonSelect1 map :action HarpoonSelect2 map :action HarpoonSelect3 map :action HarpoonSelect4 ``` ### Settings **Descriptions** * Harpoon Width - Describes how wide the Harpoon Quick Menu should be. * Harpoon Height - Describes how tall the Harpoon Quick Menu * Harpoon Font Size - Describes the font size of the Harpoon Quick Menu * Enter - When checked the Harpoon Quick Menu will open the file when you press enter, otherwise it will look for your .ideavimrc file for the keybinding. **Defaults** * Harpoon Width - 800 * Harpoon Height - 400 * Harpoon Font Size - 20 * Enter - true ## Contribution This plugin is open-source and contributions are welcome. Note to beginners or first-time contributors: I recommend starting by going to the issues tab and looking for issues to work on. ### Steps to contribute 1. Fork the repository. 2. Make your changes. 3. Push your changes to your fork. 4. Create a pull request. 5. Wait for the pull request to be reviewed. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. The logo was design by me and is copyrighted. You may not use it without my permission. ## Contact * [GitHub](https://github.com/Kyren223) * Kyren223 on Discord