1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2024-11-24 05:42:45 +01:00
IntelliJ-IdeaVim/CONTRIBUTING.md
2020-05-20 23:53:06 +03:00

3.0 KiB
Raw Permalink Blame History

TeamCity Build

Where to Start

In order to contribute to IdeaVim, you should have some understanding of Kotlin or Java.

See also these docs on the IntelliJ API:

You can start by:

  • Picking relatively simple tasks that are tagged with #patch_welcome in the issue tracker.
  • Read about the @VimBehaviorDiffers annotation and fix the corresponding functionality.

Also join the brand new Join the chat at https://gitter.im/JetBrains/ideavim for IdeaVim developers!

Development Environment

  1. Fork IdeaVim on GitHub and clone the repository on your local machine.

  2. Import the project from the existing sources in IntelliJ IDEA 2018.1 or newer (Community or Ultimate), by selecting "File | New | Project from Existing Sources..." or selecting "Import Project" from the Welcome screen.

  • In the project wizard, select "Import project from external model | Gradle".

  • Select your Java 8+ JDK as the Gradle JVM; leave other parameters unchanged.

  1. Run your IdeaVim plugin within IntelliJ via a Gradle task:

    • Select the "View | Tool Windows | Gradle" tool window.

    • Launch "ideavim | intellij | runIde" from the tool window.

  2. Run IdeaVim tests via a Gradle task:

    • Select the "View | Tool Windows | Gradle" tool window.

    • Launch "ideavim | verification | test" from the tool window.

  3. Build the plugin distribution by running ./gradlew clean buildPlugin in the terminal in your project root.

    • The resulting distribution file will be located at build/distributions/IdeaVim-VERSION.zip

    • You can install this file by selecting "Settings | Plugins | Install plugin from disk...".

Testing

  1. Read about the @VimBehaviorDiffers annotation.

  2. Please avoid senseless text like "dhjkwaldjwa", "asdasdasd", "123 123 123 123", etc. Try to choose an example text that is easy to read and understand what is wrong if the test fails. For example, take a few lines from your favorite poem, or use "Vladimir Nabokov A Discovery" if you don't have one.

  3. Test your functionality properly. Especially check whether your command works with: line start, line end, file start, file end, empty line, multiple carets, dollar motion, etc.