From 82351a4e9fd086e54190f3ab3a08b737dddf2146 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sun, 18 Feb 2024 14:34:15 +0200 Subject: Changed version to 1.0 Added an Icon Added README.md Added TODO.md Added LICENSE --- .gitignore | 4 +- .idea/codeStyles/Project.xml | 15 ++++ .idea/codeStyles/codeStyleConfig.xml | 5 ++ LICENSE | 21 ++++++ README.md | 108 +++++++++++++++++++++++++++++ TOOD.md | 10 +++ build.gradle.kts | 10 +-- src/main/resources/META-INF/pluginIcon.svg | 36 +++++++--- 8 files changed, 192 insertions(+), 17 deletions(-) create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 LICENSE create mode 100644 README.md create mode 100644 TOOD.md diff --git a/.gitignore b/.gitignore index b63da45..6cb5e1f 100644 --- a/.gitignore +++ b/.gitignore @@ -39,4 +39,6 @@ bin/ .vscode/ ### Mac OS ### -.DS_Store \ No newline at end of file +.DS_Store + +/certificate/ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..72eb968 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..05a3ca8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Kyren223 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f2ba7f --- /dev/null +++ b/README.md @@ -0,0 +1,108 @@ +
+ +# 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 + diff --git a/TOOD.md b/TOOD.md new file mode 100644 index 0000000..0e848a8 --- /dev/null +++ b/TOOD.md @@ -0,0 +1,10 @@ + +* Add $ syntax for quick menu, dollar syntax means there can only be one file with that name in the project and it will always know how to find it that way it can show only `$Main.java` rather than entire path +* Add # syntax for quick menu, which will use some per-project configured path similar to `...` for project path, `#` will be replaced with the configured project-specific path +* Look into having an option to have no extention to files +* Fix "out of window" issue with quick menu enter press +* Add a setting to allow you to keep in memory the line you were on when you opened the quick menu between quick menu opens +* Add a Global Quick Menu (and maybe actions too?) for global files like .ideavimrc +* Consider adding a local (and global) "shortcut" list where you can assign a name (prefixed with $) to a path, ex: $Kotlin -> src/main/kotlin +* Add an option (or an action) to create a shortcut automatically when adding a file, so "path/to/file.java" -> "$file" +* Add a shortcut menu like the quick menu but for the list of shortcuts diff --git a/build.gradle.kts b/build.gradle.kts index 7824a69..09291f4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "me.kyren223" -version = "0.1" +version = "1.0" repositories { mavenCentral() @@ -36,12 +36,12 @@ tasks { } signPlugin { - certificateChain.set(System.getenv("CERTIFICATE_CHAIN")) - privateKey.set(System.getenv("PRIVATE_KEY")) - password.set(System.getenv("PRIVATE_KEY_PASSWORD")) + certificateChainFile.set(file("certificate/chain.crt")) + privateKeyFile.set(file("certificate/private.pem")) + password.set(providers.environmentVariable("PRIVATE_KEY_PASSWORD")) } publishPlugin { - token.set(System.getenv("PUBLISH_TOKEN")) + token.set(providers.environmentVariable("PUBLISH_TOKEN")) } } diff --git a/src/main/resources/META-INF/pluginIcon.svg b/src/main/resources/META-INF/pluginIcon.svg index dcf6b99..e79cf98 100644 --- a/src/main/resources/META-INF/pluginIcon.svg +++ b/src/main/resources/META-INF/pluginIcon.svg @@ -1,12 +1,26 @@ - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.3.1