-
-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Transfer and polish existing "Nord JetBrains" documentation and assets
Inititially this includes the install & activation guide as well as a guide on how to develop, test and build the project locally. GH-140
- Loading branch information
1 parent
7088d15
commit 7df22f4
Showing
14 changed files
with
258 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,175 @@ | ||
import Button from "atoms/core/Button"; | ||
import Link from "atoms/core/Link"; | ||
import { Image, ShrinkedWidth, SpaceBox } from "atoms/core/mdx-elements"; | ||
import { Kbd } from "atoms/core/html-elements"; | ||
import { ReactComponent as WindowCode } from "assets/images/illustrations/window-code.svg"; | ||
import { ROUTE_DOCS_PORTS_JETBRAINS_INSTALLATION } from "config/routes/mappings"; | ||
|
||
import WIPNotice from "../../../../shared/docs/wip-notice"; | ||
|
||
export const frontmatter = { | ||
title: "Plugin Development", | ||
subline: "Learn how to customize the theme to fit your needs, preview changes and export the plugin." | ||
}; | ||
|
||
<ShrinkedWidth value={25}> | ||
|
||
<SpaceBox mTop={4} mBottom={4}> | ||
<WindowCode /> | ||
</SpaceBox> | ||
|
||
</ShrinkedWidth> | ||
|
||
<ShrinkedWidth value={80}> | ||
|
||
<WIPNotice /> | ||
|
||
This page documents how to develop the theme plugin — from requirements to the deployment and local installation steps. | ||
|
||
# Requirements | ||
|
||
Download and install [IntelliJ][jb-intellij] with a minimal version of [2019.1 or higher][jb-whatsnew-2019.1]. | ||
|
||
<Image dropShadow fillSize={75} fluid={props.images["intellij-splash-screen.png"]} rounded /> | ||
|
||
To develop IntelliJ platform plugins the [DevKit][jb-docs-sdk-devkit] plugin (bundled by default) must be enabled. | ||
|
||
<Image dropShadow fluid={props.images["devkit-plugin.png"]} rounded /> | ||
|
||
# Setup | ||
|
||
## Download | ||
|
||
Clone the [_Nord JetBrains_ repository from GitHub][gh-repo] to any path: | ||
|
||
```sh | ||
git clone https://github.com/arcticicestudio/nord-jetbrains.git | ||
``` | ||
|
||
To get the project without [Git][] download the project as `.zip` archive file from the GitHub repository or click on the download button below. Afterwards extract the archive to any path. | ||
|
||
<Button href="https://github.com/arcticicestudio/nord-jetbrains/archive/develop.zip">Download</Button> | ||
|
||
<Image | ||
alt="Screenshot showing the GitHub repository web UI to download the project repository" | ||
fillSize={60} | ||
fluid={props.images["github-clone.png"]} | ||
> | ||
Download the project repository from GitHub | ||
</Image> | ||
|
||
Both methods will use the `develop` branch to work with the latest development state. | ||
|
||
Import the project use IntelliJ's <Kbd>Open...</Kbd> wizard from the welcome screen and browse to the path of the cloned/extracted repository. | ||
|
||
# Development | ||
|
||
## Workflow | ||
|
||
_Nord JetBrains_ follows the [official workflow documentation][jb-docs-sdk-ui-theme-workflow] to | ||
|
||
1. [Customize the UI icons and Controls][jb-docs-sdk-ui-theme-customize] | ||
2. [Bundle the already existing editor color theme][jb-docs-sdk-editor-theme] | ||
3. [Build, debug and test the theme plugin][jb-docs-sdk-test-build] | ||
4. [Deploy and publish the theme plugin][jb-docs-sdk-deployment] | ||
|
||
For details about the general UI design pattern please refer to the [JetBrains UI guidelines][jb-ui_guidelines]. | ||
|
||
## Theme Preview | ||
|
||
IntelliJ comes with a builtin function to preview the currently opened platform plugin project. | ||
Open the [`nord.theme.json`][gh-repo-tree-dev-ui-theme] file and click on the _play_ icon to apply the current state of the UI theme. | ||
|
||
<Image | ||
dropShadow | ||
alt="Screenshot showing the UI theme preview icon bar when the theme definition file is opened" | ||
fluid={props.images["ui-theme-preview.png"]} | ||
rounded | ||
> | ||
UI theme preview icon bar when the theme definition file is opened | ||
</Image> | ||
|
||
<Image | ||
dropShadow | ||
alt="Screenshot showing the enabled UI theme preview icon bar when the theme definition file is opened" | ||
fluid={props.images["ui-theme-preview-enabled.png"]} | ||
rounded | ||
> | ||
UI theme preview icon bar when enabled | ||
</Image> | ||
|
||
## Visual Testing | ||
|
||
The IntelliJ SDK provides a lot of tools to develop plugins by [enabling the internal mode][jb-docs-sdk-internal_mode] that will allow to show e.g. the [LaF Defaults][jb-docs-sdk-internal_mode_laf]. | ||
|
||
To enable the _internal mode_ open the [advanced IDE properties][jb-docs-ide_props] and add the following key-value pair: | ||
|
||
```properties | ||
idea.is.internal=true | ||
``` | ||
|
||
Restart IntelliJ to enable the new property. | ||
|
||
<Image | ||
dropShadow | ||
fillSize={50} | ||
alt="Screenshot showing the menu entry to edit the IDE properties" | ||
fluid={props.images["ide-props.png"]} | ||
rounded | ||
> | ||
Menu entry to edit the IDE properties | ||
</Image> | ||
|
||
# Deployment | ||
|
||
IntelliJ comes with builtin tools to build and deploy plugins. | ||
|
||
1. Go to **Build** and **Build Project** to copy the project files to the `/out` folder and generate required metadata. | ||
2. Again go to **Build** and choose **Select All Plugin Modules For Deployment** to generate the JAR file. | ||
|
||
<Image | ||
dropShadow | ||
fillSize={50} | ||
alt="Screenshot showing the menu entries for builtin tools to build and deploy platform plugins" | ||
fluid={props.images["build-deploy.png"]} | ||
rounded | ||
> | ||
Menu entries for builtin tools to build and deploy platform plugins | ||
</Image> | ||
|
||
# Local Installation | ||
|
||
A generated JAR file can be locally installed to use the theme without uploading it to the JetBrains plugin repository. | ||
Go to [Settings / Preferences][jb-docs-sett_prefs] ➜ **Plugins**, click on the gear icon and select „Install Plugin From Disk...“. | ||
|
||
<Image | ||
dropShadow | ||
alt="Screenshot showing the menu to install plugins locally" | ||
fluid={props.images["install-local.png"]} | ||
rounded | ||
> | ||
Local plugin installation | ||
</Image> | ||
|
||
Select the plugin JAR file and restart IntelliJ. | ||
|
||
Follow the <Link to={ROUTE_DOCS_PORTS_JETBRAINS_INSTALLATION}>Installation & Activation Guide</Link> for more details how to enable the UI theme and editor color scheme. | ||
|
||
</ShrinkedWidth> | ||
|
||
[gh-repo-tree-dev-ui-theme]: https://github.com/arcticicestudio/nord-jetbrains/blob/develop/src/nord.theme.json | ||
[gh-repo]: https://github.com/arcticicestudio/nord-jetbrains | ||
[git]: https://git-scm.com | ||
[jb-docs-ide_props]: https://www.jetbrains.com/help/idea/tuning-the-ide.html | ||
[jb-docs-sdk-deployment]: https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/deploying_plugin.html | ||
[jb-docs-sdk-devkit]: https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/using_dev_kit.html | ||
[jb-docs-sdk-editor-theme]: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/ui_themes/themes_extras.html | ||
[jb-docs-sdk-internal_mode_laf]: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/internal_actions/internal_ui_lafd.html | ||
[jb-docs-sdk-internal_mode]: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/internal_actions/enabling_internal.html | ||
[jb-docs-sdk-test-build]: http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/running_and_debugging_a_plugin.html | ||
[jb-docs-sdk-ui-theme-customize]: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/ui_themes/themes_customize.html | ||
[jb-docs-sdk-ui-theme-workflow]: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/ui_themes/themes.html#custom-ui-theme-workflow | ||
[jb-docs-sett_prefs]: https://www.jetbrains.com/help/idea/settings-preferences-dialog.html | ||
[jb-intellij]: https://www.jetbrains.com/idea | ||
[jb-ui_guidelines]: https://jetbrains.github.io/ui | ||
[jb-whatsnew-2019.1]: https://www.jetbrains.com/idea/whatsnew/#v2019-1 |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+44.7 KB
content/docs/ports/jetbrains/development/ui-theme-preview-enabled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
import Link from "atoms/core/Link"; | ||
import { Banner, Image, ShrinkedWidth, SpaceBox } from "atoms/core/mdx-elements"; | ||
import { Code, Kbd } from "atoms/core/html-elements"; | ||
import { ReactComponent as Plugin } from "assets/images/illustrations/plugin.svg"; | ||
|
||
import WIPNotice from "../../../../shared/docs/wip-notice"; | ||
|
||
export const frontmatter = { | ||
title: "Installation & Activation", | ||
subline: "Get up and running in one click with the official JetBrains Plugin Repository." | ||
}; | ||
|
||
<ShrinkedWidth value={25}> | ||
|
||
<SpaceBox mTop={4} mBottom={4}> | ||
<Plugin /> | ||
</SpaceBox> | ||
|
||
</ShrinkedWidth> | ||
|
||
<ShrinkedWidth value={80}> | ||
|
||
<WIPNotice /> | ||
|
||
<Banner | ||
title={ | ||
<> | ||
Users with currently installed versions less or equal to <Code>0.4.0</Code> must reinstall the plugin! | ||
</> | ||
} | ||
variant="warn" | ||
> | ||
As of version <Code>0.5.0</Code> the{" "} | ||
<Link | ||
href="https://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_configuration_file.html" | ||
variant="minimal" | ||
> | ||
plugin XML ID | ||
</Link>{" "} | ||
changed to better fit the package hierarchy naming scheme. | ||
This means plugin versions less or equal to <Code>0.4.0</Code> (old ID) won't receive updates automatically. | ||
|
||
To update to the latest version and re-enable auto updates again it is **required to uninstall and install the plugin once**! | ||
|
||
</Banner> | ||
|
||
Thanks to the [official JetBrains Plugin Repository][jb-plug-repo-nord], _Nord JetBrains_ can be installed for all supported products with one click. | ||
|
||
Go to [Settings / Preferences][jb-docs-sett_prefs] ➜ **Plugins**, switch to the **Marketplace** tab and search for `Nord`. | ||
|
||
<Image dropShadow fluid={props.images["ui-plugins-marketplace.png"]} rounded /> | ||
|
||
Click on the <Kbd>Install</Kbd> button and restart the IDE to finish the installation. | ||
|
||
<Image dropShadow fluid={props.images["ui-plugins-installed.png"]} rounded /> | ||
|
||
## Activation | ||
|
||
_Nord JetBrains_ provides a UI theme and editor color scheme and allows both to be used individually. | ||
|
||
### UI Theme | ||
|
||
Beginning with the 2019.1 JetBrain product releases, [custom UI Themes][jb-docs-sdk-ui_theme] are available for all supported IDEs. | ||
|
||
To activate Nord's UI theme go to [Settings / Preferences][jb-docs-sett_prefs] ➜ **Appearance & Behavior** ➜ **Appearance**, select `Nord` from the _Theme_ drop-down menu and <Kbd>Apply</Kbd> the change. | ||
|
||
<Image dropShadow fluid={props.images["ui-settings-appearance.png"]} rounded /> | ||
|
||
### Editor Color Scheme | ||
|
||
Using a custom [color scheme][jb-docs-color_fonts] is a feature that has been supported almost since the first JetBrains product versions. | ||
|
||
To activate Nord's editor color scheme go to [Settings / Preferences][jb-docs-sett_prefs] ➜ **Editor** ➜ **Color Theme**, select `Nord` from the _Scheme_ drop-down menu and <Kbd>Apply</Kbd> the change. | ||
|
||
<Image dropShadow fluid={props.images["ui-settings-color-scheme.png"]} rounded /> | ||
|
||
</ShrinkedWidth> | ||
|
||
[jb-docs-color_fonts]: https://www.jetbrains.com/help/idea/configuring-colors-and-fonts.html | ||
[jb-docs-sdk-ui_theme]: https://www.jetbrains.org/intellij/sdk/docs/reference_guide/ui_themes/themes_intro.html | ||
[jb-docs-sett_prefs]: https://www.jetbrains.com/help/idea/settings-preferences-dialog.html | ||
[jb-plug-repo-nord]: https://plugins.jetbrains.com/plugin/10321-nord | ||
[jb-plug-repo]: https://plugins.jetbrains.com |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+99.6 KB
content/docs/ports/jetbrains/installation/ui-settings-color-scheme.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.