Compare commits

...

4 Commits

96 changed files with 400 additions and 1291 deletions

View File

@ -1,69 +0,0 @@
## Contribute
NOTE: To view the PSI tree and explore the internal PSI structure of source code, you need to set up your IDE by following [this](https://www.jetbrains.com/help/idea/psi-viewer.html).
For the Rider IDE, please follow: [this](https://rider-support.jetbrains.com/hc/en-us/articles/207327910-How-to-run-JetBrains-Rider-in-Internal-Mode)
For small changes, [Gitpod](https://gitpod.io/#https://github.com/izhangzhihao/intellij-rainbow-brackets) is recommended. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/izhangzhihao/intellij-rainbow-brackets)
* `gradle test`
* `gradle runIde`
* `gradle buildPlugin`
## Support Us
You can support us by the following actions:
* Star this project
* Share this plugin with your friends
* Rate this plugin on [JetBrains plugin repository](https://plugins.jetbrains.com/plugin/10080-rainbow-brackets)
* Make pull requests
* Report bugs
* Tell us your ideas
* Become a sponsor by donating on [Open Collective](https://opencollective.com/intellij-rainbow-brackets)
* Become a sponsor by donating with AliPay or WeChatPay
* Don't want to use AliPay's mobile App? If you could read Chinese, please use [the official website](https://shenghuo.alipay.com/send/payment/fill.htm) to transfer your donation to my Alipay account(izhangzhihao@hotmail.com). Otherwise, you can try [the English version of Alipay](https://global.alipay.com/) to transfer your donation.
<table>
<tr>
<th width="33%">Open Collective</th>
<th width="33%">AliPay</th>
<th width="33%">WeChatPay</th>
</tr>
<tr></tr>
<tr align="center">
<td>
<a href="https://opencollective.com/intellij-rainbow-brackets" target="_blank">
<img src="https://cdn.jsdelivr.net/gh/YiiGuxing/TranslationPlugin@master/images/open-collective.svg" width="171px" alt="OpenCollective">
</a>
</td>
<td><img src="https://user-images.githubusercontent.com/12044174/85197261-77dd5a80-b312-11ea-9630-51caf7d634f2.jpg"></td>
<td><img src="https://user-images.githubusercontent.com/12044174/85197263-7b70e180-b312-11ea-917a-35eab2ea08ae.jpg"></td>
</tr>
</table>
## Backers
Thank you to all our backers! ❤️ [[Become a backer](https://opencollective.com/intellij-rainbow-brackets#backer)]
<a href="https://opencollective.com/intellij-rainbow-brackets#backers" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/backers.svg?width=890"></a>
## Sponsors
Support this project by becoming a sponsor! 🌈 Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/intellij-rainbow-brackets#sponsor)]
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/0/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/1/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/2/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/3/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/4/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/5/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/6/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/7/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/8/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/9/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/9/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/10/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/10/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/11/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/11/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/12/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/12/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/13/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/13/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/14/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/14/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/15/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/15/avatar.svg"></a>

2
.github/FUNDING.yml vendored
View File

@ -1,2 +0,0 @@
open_collective: intellij-rainbow-brackets
custom: https://github.com/izhangzhihao/intellij-rainbow-brackets#support-us

View File

@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run CLion" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value=":clion:runIde" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
</component>

View File

@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run IDEA" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value=":idea:runIde" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
</component>

View File

@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run Rider" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value=":rider:runIde" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
</component>

300
README.md
View File

@ -1,297 +1,9 @@
# Rainbow Brackets
<div align="center">
<a href="https://plugins.jetbrains.com/plugin/10080-rainbow-brackets">
<img src="./src/main/resources/META-INF/pluginIcon.svg" width="320" height="320" alt="logo"/>
</a>
</div>
<h1 align="center">Intellij rainbow brackets</h1>
<p align="center">🌈Rainbow Brackets for IntelliJ based IDEs/Android Studio/HUAWEI DevEco Studio.</p>
This is a fork of the [🌈Rainbow Brackets](https://github.com/izhangzhihao/intellij-rainbow-brackets) plugin by <a href="https://github.com/izhangzhihao">izhangzhihao</a>.
<p align="center">
<!-- <a href="https://actions-badge.atrox.dev/izhangzhihao/intellij-rainbow-brackets/goto?ref=2020.3"><img alt="Build Status" src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fizhangzhihao%2Fintellij-rainbow-brackets%2Fbadge%3Fref%3D2020.3&style=flat-square" /></a> -->
<!-- <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/releases"><img src="https://img.shields.io/github/release/izhangzhihao/intellij-rainbow-brackets.svg?style=flat-square"></a> -->
<a href="https://plugins.jetbrains.com/plugin/10080-rainbow-brackets"><img src="https://img.shields.io/jetbrains/plugin/r/stars/10080?style=flat-square"></a>
<a href="https://plugins.jetbrains.com/embeddable/install/10080"><img src="https://img.shields.io/jetbrains/plugin/d/10080-rainbow-brackets.svg?style=flat-square"></a>
<a href="https://plugins.jetbrains.com/plugin/10080-rainbow-brackets"><img src="https://img.shields.io/jetbrains/plugin/v/10080-rainbow-brackets.svg?style=flat-square"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets#backer"><img src="https://img.shields.io/opencollective/backers/intellij-rainbow-brackets?style=flat-square"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets#sponsor"><img src="https://img.shields.io/opencollective/sponsors/intellij-rainbow-brackets?style=flat-square"></a>
</p>
## Changes
<br>
- [Change log](https://github.com/izhangzhihao/intellij-rainbow-brackets/blob/2020.3/CHANGELOG.md)
- [Compatibility](#compatibility)
- [Supported languages](#supported-languages)
- [Author's choice](#authors-choice)
- [Sponsored By CodeStream](#sponsored-by-codestream)
- [Install](#install)
- [Screenshots](#screenshots)
- [Customize colors](#customize-colors)
- [Use color generator](#use-color-generator)
- [Config file path](#config-file-path)
- [HTML code in js](#html-code-in-js)
- [Kotlin function literal braces and arrow](#kotlin-function-literal-braces-and-arrow)
- [Disable rainbow brackets for specific languages](#disable-rainbow-brackets-for-specific-languages)
- [Contribute](#contribute)
- [Support Us](#support-us)
- [Backers](#backers)
- [Sponsors](#sponsors)
- [Acknowledgements](#acknowledgements)
## Compatibility
IntelliJ IDEA, PhpStorm, WebStorm, PyCharm, RubyMine, AppCode, CLion, Gogland, DataGrip, Rider, MPS, Android Studio, HUAWEI DevEco Studio, DataSpell, Code With Me
## Supported languages
Java, Scala, Clojure, Kotlin, Python, Haskell, Agda, Rust, JavaScript, TypeScript, Erlang, Go, Groovy, Ruby, Elixir, ObjectiveC, PHP, HTML, XML, SQL, Apex language, C#, Dart, Pug/Jade, Bash, Vue.js, C# Razor Pages, GLSL(the OpenGL Shading Language), Go Template, C++, C...
## Author's choice
Rainbow Brackets + One Dark Theme + Nyan Progress Bar + [Fira Code](https://github.com/tonsky/FiraCode) (Font)
## Sponsored By [CodeStream](https://sponsorlink.codestream.com/?utm_source=jbmarket&utm_campaign=jbrainbowbrackets&utm_medium=banner)
[![https://codestream.com](https://alt-images.codestream.com/codestream_logo_jbrainbowbrackets.png)](https://sponsorlink.codestream.com/?utm_source=jbmarket&utm_campaign=jbrainbowbrackets&utm_medium=banner)
Eliminate context switching and costly distractions. Create and merge PRs and perform code reviews from inside your IDE while using jump-to-definition, your keybindings, and other IDE favorites. [Learn more](https://sponsorlink.codestream.com/?utm_source=jbmarket&utm_campaign=jbrainbowbrackets&utm_medium=banner)!
Development powered by [JetBrains](https://www.jetbrains.com/?from=IntelliJRainbowBrackets).
[![https://www.jetbrains.com/?from=IntelliJRainbowBrackets](./screenshots/jetbrains.svg)](https://www.jetbrains.com/?from=IntelliJRainbowBrackets)
Whichever technologies you use, there's a JetBrains tool to match.
## Install
<a href="https://plugins.jetbrains.com/embeddable/install/10080">
<img src="https://user-images.githubusercontent.com/12044174/123105697-94066100-d46a-11eb-9832-338cdf4e0612.png" width="300"/>
</a>
Or you could install it inside your IDE:
For Windows & Linux - <kbd>File</kbd> > <kbd>Settings</kbd> > <kbd>Plugins</kbd> > <kbd>Marketplace</kbd> > <kbd>Search for "Rainbow Brackets"</kbd> > <kbd>Install Plugin</kbd> > <kbd>Restart IntelliJ IDEA</kbd>
For Mac - <kbd>IntelliJ IDEA</kbd> > <kbd>Preferences</kbd> > <kbd>Plugins</kbd> > <kbd>Marketplace</kbd> > <kbd>Search for "Rainbow Brackets"</kbd> > <kbd>Install Plugin</kbd> > <kbd>Restart IntelliJ IDEA</kbd>
### Install snapshot build
You can download the latest snapshot build from [here](https://github.com/izhangzhihao/intellij-rainbow-brackets/actions/workflows/build.yml?query=workflow%3ABuild), just click the latest build and click the 'Artifacts' tab.(You need logged in via github) After the snapshot build downloaded, unzip it(via `unzip UnZipMe.zip`), and install the zip file(intellij-rainbow-brackets.zip[]()) by `Install Plugin from Disk...`.
## Screenshots
* Java
![](./screenshots/with-java.png)
![](./screenshots/with-material-theme-ui.png)
* Scala
![](./screenshots/with-scala.png)
* Clojure
![](./screenshots/with-Clojure.png)
* Kotlin
![](./screenshots/with-kotlin.png)
* HTML/XML
![](./screenshots/with-HTML.png)
* Scope highlighting
**The highlight effects will not remove after release the shortcuts, but press `ESC` key can do this. You could also config `Press any key to remove the highlighting effect` in setting page.**
<kbd>Ctrl + Button3</kbd>(Windows & Linux) or <kbd>Meta+ Button3</kbd>(Mac):
NOTE: <kbd>Button3</kbd> means "Secondary Click (click or tap with two fingers)" on Mac os, "Right click" for Windows or Linux.
![](https://user-images.githubusercontent.com/10737066/40234968-46593fe2-5adb-11e8-8ea8-0026fad86ca9.gif)
<kbd>Alt + Button3</kbd>:
NOTE: <kbd>Button3</kbd> means "Secondary Click (click or tap with two fingers)" on Mac os, "Right click" for Windows or Linux.
![](https://user-images.githubusercontent.com/10737066/40235004-642dfe54-5adb-11e8-9fd7-648b92fab8f5.gif)
* Rainbow indent guide lines
![](https://user-images.githubusercontent.com/10737066/65765792-c41cb500-e15b-11e9-8877-2239c6afa7bf.gif)
* looking forward to your screenshots(PR welcome!)
## Customize colors
<kbd>Settings/Preferences</kbd> > <kbd>Editor</kbd> > <kbd>Color Scheme</kbd> > <kbd>Rainbow Brackets</kbd>:
![Customize colors](./screenshots/customize-colors.png)
## Use color generator
If you didn't like the build-in colors, or want some new color but don't want to try out and pick colors. Please use color generator.
<kbd>Settings/Preferences</kbd> > <kbd>Other Settings</kbd> > <kbd>Rainbow Brackets</kbd> > <kbd>Use color generator</kbd>
If you turn on this option, we will auto generate some colors for you.
### Advanced options of color generator
If you need more control, you can decide the options of color generator by edit [the config file](#config-file-path),
The value of the option `customColorGeneratorOption` is a json object, available options are:
```hue``` Controls the hue of the generated color. You can pass a string representing a color name: ```red```, ```orange```, ```yellow```, ```green```, ```blue```, ```purple```, ```pink``` and ```monochrome``` are currently supported. If you pass a hexidecimal color string such as ```#00FFFF```, color generator will extract its hue value and use that to generate colors.
```luminosity``` Controls the luminosity of the generated color. You can specify a string containing ```bright```, ```light``` or ```dark```.
Please make sure the value of the option `customColorGeneratorOption` is escaped in xml format,
you can use [this tool](https://www.freeformatter.com/xml-escape.html#ad-output) to do this. Please don't forget to restart your IDE after change the config file.
```xml
<application>
<component name="RainbowSettings">
<option name="useColorGenerator" value="true" />
<option name="customColorGeneratorOption" value="{&quot;luminosity&quot;: &quot;light&quot;,&quot;hue&quot;: &quot;blue&quot;}"/>
</component>
</application>
```
### Want to config the number of colors?
<kbd>Settings/Preferences</kbd> > <kbd>Other Settings</kbd> > <kbd>Rainbow Brackets</kbd> > `Number of colors`: 5 or more
And you can use the color generator and config you number of colors at the same time.
NOTE: For default and darcula color scheme(`Editor -> Color Scheme -> Rainbow Brackets -> Scheme`) the color number is 10, for the other scheme the number is 5, if your number is bigger than the number, you can config them in the config file.
If the color is not exist, we will use color generator to generator it for you.
Please follow [the official guide](https://www.jetbrains.com/help/idea/configuring-colors-and-fonts.html#share-color-scheme):
* `Export a color scheme as XML`
* Edit the xml file, put `ROUND_BRACKETS_RAINBOW_COLOR5` to `ROUND_BRACKETS_RAINBOW_COLOR100` to match your number just like [the default color scheme](./src/main/resources/colorSchemes/rainbow-color-default-darcula.xml).
* `Import a color scheme`
## Config file path
If you want to customize the advanced configuration, you could edit the config file then restart your IDE.
Config file path in `APP_CONFIG/rainbow_brackets.xml`.
In MAC OS env maybe like `~/Library/Preferences/IntelliJIdea2020.2/options/rainbow_brackets.xml`.
If you are using the ToolBox, then it will be like `~/Library/ApplicationSupport/JetBrains/IntelliJIdea2020.2/options/rainbow_brackets.xml`
In Linux env maybe like `~/.IntelliJIdea/config/options/rainbow_brackets.xml`.
In Windows env maybe like `C:\Users\izhangzhihao\.IntelliJIdea2020.2\config\options\rainbow_brackets.xml`.
## HTML code in js
To enable rainbow brackets for HTML inside js code like this:
```javascript
var html = '<div><div><div>Hello</div></div></div>';
```
This plugin will automatically override color scheme property "HTML_CODE" [cause our rainbow color been covered by intellij built-in functionality](https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000117450-My-HighlightVisitor-been-covered-by-intellij-built-in-functionality).
You still could set `<option name="rainbowifyHTMLInsideJS" value="false" />` in config file to disable.
## Kotlin function literal braces and arrow
To enable rainbow brackets for multiple level lambda Kotlin code like this:
```kotlin
event.throwable?.let { throwable ->
IdeErrorsDialog.findPluginId(throwable)?.let { pluginId ->
PluginManager.getPlugin(pluginId)?.let { ideaPluginDescriptor ->
if (!ideaPluginDescriptor.isBundled) {
bean.pluginName = ideaPluginDescriptor.name
bean.pluginVersion = ideaPluginDescriptor.version
}
}
}
}
```
This plugin will automatically override color scheme property "KOTLIN_FUNCTION_LITERAL_BRACES_AND_ARROW" cause our rainbow color is being covered by kotlin plugin built-in functionality.
You still could set `<option name="rainbowifyKotlinFunctionLiteralBracesAndArrow" value="false" />` in config file to disable.
## Disable rainbow brackets for specific languages
<kbd>Settings/Preferences</kbd> > <kbd>Other Settings</kbd> > <kbd>Rainbow Brackets</kbd> > `Do NOT rainbowify these languages (name or extension, comma separated)`:
NOTE: You can use **name** of language or **extension** of file name(The names should be **lowercase**).
## Contribute
NOTE: To view the PSI tree and explore the internal PSI structure of source code, you need to set up your IDE by following [this](https://www.jetbrains.com/help/idea/psi-viewer.html).
For the Rider IDE, please follow: [this](https://rider-support.jetbrains.com/hc/en-us/articles/207327910-How-to-run-JetBrains-Rider-in-Internal-Mode)
* `gradle test`
* `gradle runIde`
* `gradle buildPlugin`
## Support Us
You can support us by the following actions:
* Star this project
* Share this plugin with your friends
* Rate this plugin on [JetBrains plugin repository](https://plugins.jetbrains.com/plugin/10080-rainbow-brackets)
* Make pull requests
* Report bugs
* Tell us your ideas
* Become a sponsor by donating on [Open Collective](https://opencollective.com/intellij-rainbow-brackets)
* Become a sponsor by donating with AliPay or WeChatPay
* Don't want to use AliPay's mobile App? If you could read Chinese, please use [the official website](https://shenghuo.alipay.com/send/payment/fill.htm) to transfer your donation to my Alipay account(izhangzhihao@hotmail.com). Otherwise, you can try [the English version of Alipay](https://global.alipay.com/) to transfer your donation.
<table>
<tr>
<th width="33%">Open Collective</th>
<th width="33%">AliPay</th>
<th width="33%">WeChatPay</th>
</tr>
<tr></tr>
<tr align="center">
<td>
<a href="https://opencollective.com/intellij-rainbow-brackets" target="_blank">
<img src="https://opencollective.com/static/images/opencollectivelogo-footer-n.svg" width="171px" alt="OpenCollective">
</a>
</td>
<td><img src="https://user-images.githubusercontent.com/12044174/85197261-77dd5a80-b312-11ea-9630-51caf7d634f2.jpg"></td>
<td><img src="https://user-images.githubusercontent.com/12044174/85197263-7b70e180-b312-11ea-917a-35eab2ea08ae.jpg"></td>
</tr>
</table>
## Backers
Thank you to all our backers! ❤️ [[Become a backer](https://opencollective.com/intellij-rainbow-brackets#backer)]
<a href="https://opencollective.com/intellij-rainbow-brackets#backers" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/backers.svg?width=890"></a>
## Sponsors
Support this project by becoming a sponsor! 🌈 Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/intellij-rainbow-brackets#sponsor)]
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/0/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/1/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/2/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/3/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/4/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/5/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/6/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/7/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/8/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/9/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/9/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/10/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/10/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/11/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/11/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/12/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/12/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/13/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/13/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/14/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/14/avatar.svg"></a>
<a href="https://opencollective.com/intellij-rainbow-brackets/sponsor/15/website" target="_blank"><img src="https://opencollective.com/intellij-rainbow-brackets/sponsor/15/avatar.svg"></a>
## Acknowledgements
Intellij-rainbow-brackets is heavily inspired by [Rainbow Brackets for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=2gua.rainbow-brackets)
- Added support for Rider
- Restructured the project for easier support of Rider and CLion
- Removed post-update notification

View File

@ -1,110 +1,109 @@
@file:Suppress("SpellCheckingInspection")
import org.jetbrains.intellij.IntelliJPluginExtension
import org.jetbrains.intellij.tasks.BuildPluginTask
import org.jetbrains.intellij.tasks.BuildSearchableOptionsTask
import org.jetbrains.intellij.tasks.PatchPluginXmlTask
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.8.0"
id("org.jetbrains.intellij") version "1.15.0"
idea
kotlin("jvm")
id("org.jetbrains.intellij") apply false
}
group = "com.chylex.intellij.rainbowbrackets"
version = "6.26-chylex-2"
version = "6.26-chylex-3"
val ideVersion = "2023.2.2"
val ideBuild = "232"
idea {
module {
excludeDirs.add(file("gradle"))
excludeDirs.add(file("libs"))
}
}
repositories {
mavenCentral()
maven(url = "https://www.jetbrains.com/intellij-repository/releases")
maven(url = "https://www.jetbrains.com/intellij-repository/snapshots")
}
val clion: Configuration by configurations.creating
val rider: Configuration by configurations.creating
dependencies {
clion("com.jetbrains.intellij.clion:clion:$ideVersion")
rider("com.jetbrains.intellij.rider:riderRD:$ideVersion")
compileOnly(fileTree("libs"))
testImplementation("org.junit.jupiter:junit-jupiter:5.9.2")
testImplementation("io.kotest:kotest-assertions-core:5.5.5")
implementation(project(":clion"))
implementation(project(":idea"))
implementation(project(":rider"))
}
kotlin {
jvmToolchain(17)
}
intellij {
type.set("IU")
version.set(ideVersion)
updateSinceUntilBuild.set(false)
subprojects {
apply(plugin = "org.jetbrains.kotlin.jvm")
apply(plugin = "org.jetbrains.intellij")
plugins.set(
listOf(
// Built-in
"Groovy",
"JavaScript",
"com.intellij.css",
"com.intellij.database",
"com.intellij.java",
"org.intellij.plugins.markdown",
"org.jetbrains.kotlin",
"org.jetbrains.plugins.yaml",
// Downloaded
"Dart:232.8660.129", // https://plugins.jetbrains.com/plugin/6351-dart/versions/stable
"Pythonid:232.9921.47", // https://plugins.jetbrains.com/plugin/631-python/versions
"com.jetbrains.php:232.9921.55", // https://plugins.jetbrains.com/plugin/6610-php/versions
"com.jetbrains.sh:232.8660.88", // https://plugins.jetbrains.com/plugin/13122-shell-script/versions
"org.intellij.scala:2023.2.23", // https://plugins.jetbrains.com/plugin/1347-scala/versions
"org.jetbrains.plugins.go-template:232.9921.89", // https://plugins.jetbrains.com/plugin/10581-go-template/versions
"org.jetbrains.plugins.ruby:232.9921.47", // https://plugins.jetbrains.com/plugin/1293-ruby/versions
group = rootProject.group
version = rootProject.version
repositories {
mavenCentral()
maven(url = "https://www.jetbrains.com/intellij-repository/releases")
maven(url = "https://www.jetbrains.com/intellij-repository/snapshots")
}
dependencies {
testImplementation("junit:junit:4.13.2")
testImplementation("io.kotest:kotest-assertions-core:5.5.5")
}
kotlin {
jvmToolchain(17)
}
configure<IntelliJPluginExtension> {
version.set(ideVersion)
updateSinceUntilBuild.set(false)
}
tasks.withType<KotlinCompile> {
kotlinOptions.freeCompilerArgs = listOf(
"-Xjvm-default=all"
)
)
}
tasks.patchPluginXml {
sinceBuild.set("232")
}
tasks.test {
useJUnitPlatform()
}
tasks.withType<KotlinCompile> {
kotlinOptions.freeCompilerArgs = listOf(
"-Xjvm-default=all"
)
}
fun createDownloadIdeTask(name: String, dependency: Configuration, configuration: CopySpec.() -> Unit): Sync {
return tasks.create<Sync>(name) {
group = "ides"
outputs.upToDateWhen { false }
}
tasks.test {
useJUnit()
}
tasks.getByName<BuildSearchableOptionsTask>("buildSearchableOptions") {
enabled = false
}
tasks.getByName<PatchPluginXmlTask>("patchPluginXml") {
sinceBuild.set(ideBuild)
}
tasks.getByName<BuildPluginTask>("buildPlugin") {
eachFile {
name = name.replaceFirst("instrumented-", "instrumented-RainbowBrackets-")
relativePath.segments[0] = "RainbowBrackets"
}
from(dependency.map(::zipTree), configuration)
into(file("libs/${dependency.name}"))
includeEmptyDirs = false
}
}
val downloadIdeClion = createDownloadIdeTask("downloadIdeClion", clion) {
include("plugins/cidr-base-plugin/**")
}
val downloadIdeRider = createDownloadIdeTask("downloadIdeRider", rider) {
include("lib/app.jar")
}
tasks.create<Sync>("downloadExtraIdes") {
group = "ides"
tasks.register<Zip>("buildPlugin") {
group = "intellij"
dependsOn(downloadIdeClion)
dependsOn(downloadIdeRider)
for (project in listOf("clion", "idea", "rider")) {
val buildPlugin = project(":$project").tasks.getByName("buildPlugin")
val outputs = buildPlugin.outputs.files.map(::zipTree)
dependsOn(buildPlugin)
from(outputs) {
include("RainbowBrackets/lib/instrumented-RainbowBrackets-$project-$version.jar")
}
if (project == "idea") {
from(outputs) {
include("RainbowBrackets/lib/searchableOptions-$version.jar")
}
}
}
destinationDirectory = layout.buildDirectory.dir("distributions")
}

1
clion/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/build/

16
clion/build.gradle.kts Normal file
View File

@ -0,0 +1,16 @@
plugins {
id("org.jetbrains.intellij")
}
intellij {
type.set("CL")
plugins.set(listOf(
// Built-in
"cidr-base-plugin"
))
}
dependencies {
implementation(project(":idea"))
}

1
idea/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/build/

33
idea/build.gradle.kts Normal file
View File

@ -0,0 +1,33 @@
plugins {
id("org.jetbrains.intellij")
}
intellij {
type.set("IU")
plugins.set(
listOf(
// Built-in
"Groovy",
"JavaScript",
"com.intellij.css",
"com.intellij.database",
"com.intellij.java",
"org.intellij.plugins.markdown",
"org.jetbrains.kotlin",
"org.jetbrains.plugins.yaml",
// Downloaded
"Dart:232.8660.129", // https://plugins.jetbrains.com/plugin/6351-dart/versions/stable
"Pythonid:232.9921.47", // https://plugins.jetbrains.com/plugin/631-python/versions
"com.jetbrains.php:232.9921.55", // https://plugins.jetbrains.com/plugin/6610-php/versions
"com.jetbrains.sh:232.8660.88", // https://plugins.jetbrains.com/plugin/13122-shell-script/versions
"org.intellij.scala:2023.2.23", // https://plugins.jetbrains.com/plugin/1347-scala/versions
"org.jetbrains.plugins.go-template:232.9921.89", // https://plugins.jetbrains.com/plugin/10581-go-template/versions
"org.jetbrains.plugins.ruby:232.9921.47", // https://plugins.jetbrains.com/plugin/1293-ruby/versions
)
)
}
tasks.buildSearchableOptions {
enabled = true
}

View File

@ -19,7 +19,6 @@ import org.intellij.lang.annotations.Language
import org.jetbrains.annotations.TestOnly
import java.awt.Color
import java.awt.Font
import java.util.UUID
object RainbowHighlighter {

View File

@ -3,7 +3,6 @@ package com.github.izhangzhihao.rainbow.brackets.action
import com.github.izhangzhihao.rainbow.brackets.RainbowInfo
import com.github.izhangzhihao.rainbow.brackets.settings.RainbowSettings
import com.github.izhangzhihao.rainbow.brackets.util.alphaBlend
import com.github.izhangzhihao.rainbow.brackets.util.create
import com.intellij.codeInsight.highlighting.HighlightManager
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.editor.colors.EditorColorsManager
@ -11,7 +10,7 @@ import com.intellij.openapi.editor.markup.EffectType
import com.intellij.openapi.editor.markup.RangeHighlighter
import com.intellij.openapi.editor.markup.TextAttributes
import java.awt.Font
import java.util.*
import java.util.LinkedList
class ScopeHighlightingAction : AbstractScopeHighlightingAction() {
@ -33,4 +32,4 @@ class ScopeHighlightingAction : AbstractScopeHighlightingAction() {
return highlighters
}
}
}

View File

@ -3,7 +3,6 @@ package com.github.izhangzhihao.rainbow.brackets.action
import com.github.izhangzhihao.rainbow.brackets.RainbowInfo
import com.github.izhangzhihao.rainbow.brackets.settings.RainbowSettings
import com.github.izhangzhihao.rainbow.brackets.util.alphaBlend
import com.github.izhangzhihao.rainbow.brackets.util.create
import com.intellij.codeInsight.highlighting.HighlightManager
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.editor.colors.EditorColorsManager
@ -12,7 +11,7 @@ import com.intellij.openapi.editor.markup.RangeHighlighter
import com.intellij.openapi.editor.markup.TextAttributes
import java.awt.Color
import java.awt.Font
import java.util.*
import java.util.LinkedList
class ScopeOutsideHighlightingRestrainAction : AbstractScopeHighlightingAction() {
@ -50,4 +49,4 @@ class ScopeOutsideHighlightingRestrainAction : AbstractScopeHighlightingAction()
return highlighters
}
}
}

View File

@ -12,7 +12,15 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.impl.source.tree.LeafPsiElement
import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.KtBlockExpression
import org.jetbrains.kotlin.psi.KtCallExpression
import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtClassBody
import org.jetbrains.kotlin.psi.KtFunction
import org.jetbrains.kotlin.psi.KtFunctionLiteral
import org.jetbrains.kotlin.psi.KtLabelReferenceExpression
import org.jetbrains.kotlin.psi.KtLabeledExpression
import org.jetbrains.kotlin.psi.KtLambdaExpression
import java.awt.Font
@ -75,4 +83,4 @@ class KotlinLabelAnnotator : Annotator {
}
}
}
}

View File

@ -1,7 +1,12 @@
package com.github.izhangzhihao.rainbow.brackets.indents
import com.github.izhangzhihao.rainbow.brackets.RainbowInfo
import com.github.izhangzhihao.rainbow.brackets.util.*
import com.github.izhangzhihao.rainbow.brackets.util.alphaBlend
import com.github.izhangzhihao.rainbow.brackets.util.endOffset
import com.github.izhangzhihao.rainbow.brackets.util.findNextSibling
import com.github.izhangzhihao.rainbow.brackets.util.findPrevSibling
import com.github.izhangzhihao.rainbow.brackets.util.lineNumber
import com.github.izhangzhihao.rainbow.brackets.util.startOffset
import com.intellij.openapi.editor.Document
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.editor.SoftWrap
@ -255,4 +260,4 @@ class RainbowIndentGuideRenderer: CustomHighlighterRenderer {
lastChild?.findPrevSibling(XML_END_TAG_START_CONDITION)?.let { document.lineNumber(it.startOffset) }
}
}
}

View File

@ -28,7 +28,7 @@ import com.intellij.util.containers.IntStack
import com.intellij.util.text.CharArrayUtil
import java.lang.StrictMath.abs
import java.lang.StrictMath.min
import java.util.*
import java.util.Collections
/** From [com.intellij.codeInsight.daemon.impl.IndentsPass]
* Commit history: https://sourcegraph.com/github.com/JetBrains/intellij-community/-/blob/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/IndentsPass.java#tab=history

View File

@ -1,6 +1,10 @@
package com.github.izhangzhihao.rainbow.brackets.indents
import com.intellij.codeHighlighting.*
import com.intellij.codeHighlighting.Pass
import com.intellij.codeHighlighting.TextEditorHighlightingPass
import com.intellij.codeHighlighting.TextEditorHighlightingPassFactory
import com.intellij.codeHighlighting.TextEditorHighlightingPassFactoryRegistrar
import com.intellij.codeHighlighting.TextEditorHighlightingPassRegistrar
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiFile
@ -21,4 +25,4 @@ class RainbowIndentsPassFactory :
false
)
}
}
}

View File

@ -1,6 +1,9 @@
package com.github.izhangzhihao.rainbow.brackets.provider
import com.goide.template.GoTemplateTypes.*
import com.goide.template.GoTemplateTypes.LDOUBLE_BRACE
import com.goide.template.GoTemplateTypes.LPAREN
import com.goide.template.GoTemplateTypes.RDOUBLE_BRACE
import com.goide.template.GoTemplateTypes.RPAREN
import com.intellij.lang.BracePair
class GoTemplateProvider : BracePairProvider {
@ -8,4 +11,4 @@ class GoTemplateProvider : BracePairProvider {
BracePair(LDOUBLE_BRACE, RDOUBLE_BRACE, true),
BracePair(LPAREN, RPAREN, true)
)
}
}

View File

@ -2,7 +2,12 @@ package com.github.izhangzhihao.rainbow.brackets.settings
import com.github.izhangzhihao.rainbow.brackets.RainbowHighlighter
import com.github.izhangzhihao.rainbow.brackets.settings.form.RainbowOptionsPanel
import com.intellij.application.options.colors.*
import com.intellij.application.options.colors.ColorAndFontOptions
import com.intellij.application.options.colors.ColorAndFontPanelFactory
import com.intellij.application.options.colors.ColorAndFontSettingsListener
import com.intellij.application.options.colors.NewColorAndFontPanel
import com.intellij.application.options.colors.PreviewPanel
import com.intellij.application.options.colors.SchemesPanel
import com.intellij.openapi.options.colors.AttributesDescriptor
import com.intellij.openapi.options.colors.ColorAndFontDescriptorsProvider
import com.intellij.openapi.options.colors.ColorDescriptor
@ -52,4 +57,4 @@ class RainbowColorsPageFactory : ColorAndFontPanelFactory, ColorAndFontDescripto
}
}
}
}

View File

@ -2,7 +2,11 @@ package com.github.izhangzhihao.rainbow.brackets.settings.form
import com.github.izhangzhihao.rainbow.brackets.RainbowHighlighter
import com.github.izhangzhihao.rainbow.brackets.settings.RainbowSettings
import com.intellij.application.options.colors.*
import com.intellij.application.options.colors.ColorAndFontOptions
import com.intellij.application.options.colors.ColorAndFontSettingsListener
import com.intellij.application.options.colors.OptionsPanel
import com.intellij.application.options.colors.SchemesPanel
import com.intellij.application.options.colors.TextAttributesDescription
import com.intellij.ide.util.PropertiesComponent
import com.intellij.ui.ColorPanel
import com.intellij.ui.components.JBCheckBox
@ -259,4 +263,4 @@ class RainbowOptionsPanel(
}
}
private fun <E> List<E>.indexOfOrNull(idx: Int): E? = if (idx < this.size) this[idx] else null
private fun <E> List<E>.indexOfOrNull(idx: Int): E? = if (idx < this.size) this[idx] else null

View File

@ -5,7 +5,22 @@ import com.intellij.codeInsight.daemon.impl.HighlightVisitor
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import com.intellij.psi.impl.source.tree.LeafPsiElement
import com.jetbrains.python.PyTokenTypes.*
import com.jetbrains.python.PyTokenTypes.BREAK_KEYWORD
import com.jetbrains.python.PyTokenTypes.CLASS_KEYWORD
import com.jetbrains.python.PyTokenTypes.CONTINUE_KEYWORD
import com.jetbrains.python.PyTokenTypes.DEF_KEYWORD
import com.jetbrains.python.PyTokenTypes.ELIF_KEYWORD
import com.jetbrains.python.PyTokenTypes.ELSE_KEYWORD
import com.jetbrains.python.PyTokenTypes.EXCEPT_KEYWORD
import com.jetbrains.python.PyTokenTypes.FINALLY_KEYWORD
import com.jetbrains.python.PyTokenTypes.FOR_KEYWORD
import com.jetbrains.python.PyTokenTypes.IF_KEYWORD
import com.jetbrains.python.PyTokenTypes.RAISE_KEYWORD
import com.jetbrains.python.PyTokenTypes.RETURN_KEYWORD
import com.jetbrains.python.PyTokenTypes.TRY_KEYWORD
import com.jetbrains.python.PyTokenTypes.WHILE_KEYWORD
import com.jetbrains.python.PyTokenTypes.WITH_KEYWORD
import com.jetbrains.python.PyTokenTypes.YIELD_KEYWORD
import com.jetbrains.python.psi.PyStatement
@ -84,4 +99,4 @@ class PythonRainbowVisitor : RainbowHighlightVisitor() {
)
}
}
}
}

View File

@ -0,0 +1,106 @@
<idea-plugin require-restart="true">
<id>com.chylex.intellij.rainbowbrackets</id>
<name>Rainbow Brackets</name>
<vendor url="https://chylex.com">chylex</vendor>
<description><![CDATA[
Fork of the <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets">🌈Rainbow Brackets</a> plugin by <a href="https://github.com/izhangzhihao">izhangzhihao</a>.
]]></description>
<change-notes><![CDATA[
<p>6.26-chylex-3</p>
<ul>
<li>Prepared fork for standalone release.</li>
</ul>
<br />
<p>6.26-chylex-2</p>
<ul>
<li>Fixed Rider support.</li>
</ul>
<br/>
<p>6.26-chylex-1</p>
<ul>
<li>Removed post-update notification.</li>
</ul>
<br/>
<p>6.26</p>
<ul>
<li>Original version the fork is based on.</li>
</ul>
]]>
</change-notes>
<!-- please see https://plugins.jetbrains.com/docs/intellij/plugin-compatibility.html
on how to target different products -->
<depends>com.intellij.modules.lang</depends>
<depends optional="true" config-file="kotlin-brackets.xml">org.jetbrains.kotlin</depends>
<depends optional="true" config-file="JSX.xml">JavaScript</depends>
<depends optional="true" config-file="dart-brackets.xml">Dart</depends>
<depends optional="true" config-file="groovy-brackets.xml">org.intellij.groovy</depends>
<depends optional="true" config-file="csharp-brackets.xml">com.intellij.modules.rider</depends>
<depends optional="true" config-file="intellij-haskell-annotator.xml">intellij.haskell</depends>
<depends optional="true" config-file="sql-brackets.xml">com.intellij.database</depends>
<depends optional="true" config-file="oc-brackets.xml">com.intellij.modules.clion</depends>
<depends optional="true" config-file="sh-brackets.xml">com.jetbrains.sh</depends>
<depends optional="true" config-file="php-brackets.xml">com.jetbrains.php</depends>
<depends optional="true" config-file="go-template-brackets.xml">org.jetbrains.plugins.go-template</depends>
<depends optional="true" config-file="jade-rainbow-visitor.xml">com.jetbrains.plugins.jade</depends>
<depends optional="true" config-file="python-brackets.xml">com.intellij.modules.python</depends>
<extensionPoints>
<extensionPoint name="bracePairProvider" beanClass="com.intellij.lang.LanguageExtensionPoint" dynamic="true">
<with attribute="implementationClass"
implements="com.github.izhangzhihao.rainbow.brackets.provider.BracePairProvider"/>
</extensionPoint>
</extensionPoints>
<extensions defaultExtensionNs="com.intellij">
<!--test only-->
<!--<annotator language="JAVA" implementationClass="com.github.izhangzhihao.rainbow.brackets.annotator.RainbowAnnotator"/>-->
<highlightVisitor implementation="com.github.izhangzhihao.rainbow.brackets.visitor.DefaultRainbowVisitor"/>
<highlightVisitor implementation="com.github.izhangzhihao.rainbow.brackets.visitor.XmlRainbowVisitor"/>
<applicationConfigurable instance="com.github.izhangzhihao.rainbow.brackets.settings.RainbowConfigurable"/>
<applicationService
serviceImplementation="com.github.izhangzhihao.rainbow.brackets.settings.RainbowSettings"/>
<colorAndFontPanelFactory
implementation="com.github.izhangzhihao.rainbow.brackets.settings.RainbowColorsPageFactory"/>
<colorAndFontDescriptorProvider
implementation="com.github.izhangzhihao.rainbow.brackets.settings.RainbowColorsPageFactory"/>
<additionalTextAttributes scheme="Default" file="colorSchemes/rainbow-color-default.xml"/>
<additionalTextAttributes scheme="Darcula" file="colorSchemes/rainbow-color-default-darcula.xml"/>
<!--<errorHandler implementation="com.github.izhangzhihao.rainbow.brackets.util.GitHubErrorReporter"/>-->
<highlightingPassFactory implementation="com.github.izhangzhihao.rainbow.brackets.indents.RainbowIndentsPassFactory"/>
<editorNotificationProvider implementation="com.github.izhangzhihao.rainbow.brackets.RainbowifyBanner"/>
<notificationGroup id="Rainbow Brackets Notification Group" displayType="STICKY_BALLOON"/>
</extensions>
<applicationListeners>
<listener class="com.github.izhangzhihao.rainbow.brackets.listener.RainbowColorsSchemeListener" topic="com.intellij.openapi.editor.colors.EditorColorsListener"/>
</applicationListeners>
<actions>
<action class="com.github.izhangzhihao.rainbow.brackets.action.ScopeHighlightingAction"
id="Rainbow.ScopeHighlightingAction"
text="Highlight Current Scope"
description="Highlight current scope.">
<mouse-shortcut keymap="$default" keystroke="control button3"/>
<mouse-shortcut keymap="Mac OS X" keystroke="meta button3"/>
<mouse-shortcut keymap="Mac OS X 10.5+" keystroke="meta button3"/>
</action>
<action class="com.github.izhangzhihao.rainbow.brackets.action.ScopeOutsideHighlightingRestrainAction"
id="Rainbow.ScopeOutsideHighlightingRestrainAction"
text="Restrain Scope Highlighting"
description="Restrain outside of current scope highlighting.">
<mouse-shortcut keymap="$default" keystroke="alt button3"/>
<mouse-shortcut keymap="Mac OS X" keystroke="alt button3"/>
<mouse-shortcut keymap="Mac OS X 10.5+" keystroke="alt button3"/>
</action>
</actions>
</idea-plugin>

View File

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

1
rider/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/build/

11
rider/build.gradle.kts Normal file
View File

@ -0,0 +1,11 @@
plugins {
id("org.jetbrains.intellij")
}
intellij {
type.set("RD")
}
dependencies {
implementation(project(":idea"))
}

View File

@ -10,7 +10,6 @@ import com.intellij.psi.tree.IElementType
import com.jetbrains.rider.ideaInterop.fileTypes.csharp.kotoparser.lexer.CSharpTokenType
import com.jetbrains.rider.ideaInterop.fileTypes.csharp.psi.CSharpDummyNode
class CSharpRainbowVisitor : RainbowHighlightVisitor() {
override fun suitableForFile(file: PsiFile)

View File

@ -5,4 +5,13 @@ pluginManagement {
maven(url = "https://oss.sonatype.org/content/repositories/snapshots/")
gradlePluginPortal()
}
plugins {
kotlin("jvm") version "1.8.0"
id("org.jetbrains.intellij") version "1.15.0"
}
}
include("clion")
include("idea")
include("rider")

View File

@ -1,5 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<annotator language="C#" implementationClass="com.github.izhangzhihao.rainbow.brackets.annotator.RainbowAnnotator"/>
</extensions>
</idea-plugin>

View File

@ -1,816 +0,0 @@
<idea-plugin require-restart="true">
<id>com.chylex.intellij.rainbowbrackets</id>
<name>Rainbow Brackets</name>
<vendor email="izhangzhihao@hotmail.com" url="https://github.com/izhangzhihao">izhangzhihao</vendor>
<description><![CDATA[
<strong>🌈Rainbow Brackets for IntelliJ based IDEs/Android Studio/HUAWEI DevEco Studio</strong>
<br/>
<b>Sponsors</b>
<p>This plugin is sponsored by <b>CodeStream</b></p>
<a href=https://sponsorlink.codestream.com/?utm_source=jbmarket&utm_campaign=jbrainbowbrackets&utm_medium=banner>
<img src=https://alt-images.codestream.com/codestream_logo_jbrainbowbrackets.png>
</a>
<br>Eliminate context switching and costly distractions. Create and merge PRs and perform code reviews from inside your IDE while using jump-to-definition, your keybindings, and other IDE favorites.
<a href=https://sponsorlink.codestream.com/?utm_source=jbmarket&utm_campaign=jbrainbowbrackets&utm_medium=banner>Learn more</a>
<br/>
<p>Supported languages:</p>
<p>Java, Scala, Clojure, Kotlin, Python, Haskell, Agda, Rust, JavaScript, TypeScript, Erlang, Go, Groovy, Ruby,
Elixir, ObjectiveC, PHP, HTML, XML, SQL, Apex language, C#, Dart, Pug/Jade, Bash, Vue.js, C# Razor Pages, GLSL(the OpenGL Shading Language), Go Template, C++, C...</p>
<br/>
<p>Author's choiceRainbow Brackets + One Dark Theme + Nyan Progress Bar + Fira Code(Font)</p>
<br/>
<p>
<img src="https://raw.githubusercontent.com/izhangzhihao/intellij-rainbow-brackets/2020.2/screenshots/with-java.png"
border="0" width="500" height="205" alt="with-java"/></p>
<p>
<img src="https://raw.githubusercontent.com/izhangzhihao/intellij-rainbow-brackets/2020.2/screenshots/with-material-theme-ui.png"
border="0" width="500" height="167" alt="with-material-theme-ui.png"/></p>
<p>
<img src="https://raw.githubusercontent.com/izhangzhihao/intellij-rainbow-brackets/2020.2/screenshots/with-scala.png"
border="0" width="500" height="250" alt="with-scala"/></p>
<p>
<img src="https://raw.githubusercontent.com/izhangzhihao/intellij-rainbow-brackets/2020.2/screenshots/with-kotlin.png"
border="0" width="500" height="191" alt="with-kotlin"/></p>
<p>
<img src="https://raw.githubusercontent.com/izhangzhihao/intellij-rainbow-brackets/2020.2/screenshots/with-Clojure.png"
border="0" width="500" height="190" alt="with-Clojure.png"/></p>
<p>
<img src="https://raw.githubusercontent.com/izhangzhihao/intellij-rainbow-brackets/2020.2/screenshots/with-HTML.png"
border="0" width="500" height="112" alt="with-HTML.png"/></p>
<p>
<img src="https://user-images.githubusercontent.com/10737066/40234968-46593fe2-5adb-11e8-8ea8-0026fad86ca9.gif"
border="0" width="500" height="206" alt="Highlight current scope.gif"/></p>
<p>
<img src="https://user-images.githubusercontent.com/10737066/40235004-642dfe54-5adb-11e8-9fd7-648b92fab8f5.gif"
border="0" width="500" height="206" alt="Highlight current scope.gif"/></p>
]]></description>
<change-notes><![CDATA[
<p>6.26-chylex-2</p>
<ul>
<li>Fixed Rider support.</li>
</ul>
<br/>
<p>6.26-chylex-1</p>
<ul>
<li>Removed post-update notification.</li>
</ul>
<br/>
<p>6.26</p>
<ul>
<li>Bump dependencies.</li>
</ul>
<br/>
<p>6.25</p>
<ul>
<li><a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/pull/2484">#2484 Add configurable threshold for number of lines for big files.</a></li>
</ul>
<br/>
<p>6.24</p>
<ul>
<li><a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/2478">#2478 Scope highlighting not working with Hiberbee Theme(and other themes).</a></li>
</ul>
<br/>
<p>6.23</p>
<ul>
<li><a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/2465">#2465 Improved performance of `annotateUtil`.</a></li>
</ul>
<br/>
<p>6.22</p>
<ul>
<li><a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/2408">#2408 Support Code With Me client(Doesn't even need to be installed on the client side)</a></li>
</ul>
<br/>
<p>6.21</p>
<ul>
<li>Handle exceptions in `RainbowHighlightVisitor.analyze()`</a></li>
<li>Cleanup 201.* stuff</a></li>
<li>Refactoring</a></li>
<li>Mirror changes from https://github.com/JetBrains/intellij-community</a></li>
<li>Using textMatches instead of text to avoid expensive traverses the whole PSI tree & format code</a></li>
<li>Add support for rainbowify Python keywords</li>
<li>Compatible with DataSpell</li>
</ul>
<br/>
<p>6.20</p>
<ul>
<li>Handle exceptions in `RainbowHighlightVisitor.analyze()`</a></li>
<li>Cleanup 201.* stuff</a></li>
<li>Refactoring</a></li>
<li>Mirror changes from https://github.com/JetBrains/intellij-community</a></li>
<li>Using textMatches instead of text to avoid expensive traverses the whole PSI tree & format code</a></li>
<li>Add support for rainbowify Python keywords</li>
<li>Compatible with DataSpell</li>
</ul>
<br/>
<p>6.19</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/2280">#2280: [SQL] the END keyword is improperly detected as closing a BEGIN scope when the END actually closes a CASE.</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/1993">#1993: Change the default color schema in light theme.</a></li>
<li>Nashorn Engine removed, compatible with JDK15+, tested with OpenJDK 17-ea+24 on MacBook Pro (16-inch, 2019) & IntelliJ IDEA 2021.2 Build #IU-212.4638.7</li>
<li>Compatible with HUAWEI DevEco Studio</li>
</ul>
<br/>
<p>6.18</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/2037">#2037: Wrong coloring in generic `<` after comparison operator `<`.</a></li>
<li>Error report removed.</li>
</ul>
<br/>
<p>6.17</p>
<ul>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/pull/1068">#1068: @keeganwitt Add language exclusions to settings (closes #1046) (#1068) </a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/1067">#1067: Don't rainbowify big files notification annoying</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/1057">#1057: Wrong coloring in lambda expressions with braces</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/497">#497: Add `<` & `>` support for C# </a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/191">#191: C# Razor Pages (.cshtml) Support </a></li>
<li>Deprecated API usage removed.</li>
</ul>
<br/>
<p>6.16</p>
<ul>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/458">#458: Color Parentheses In Go Template</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/988">#988: (@Grandmother) minor: fix mispell in notification message</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/973">#973: File text mismatch</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/497">#497: C# in Rider - only squiggly brackets are rainbowified </a></li>
</ul>
<br/>
<p>6.15</p>
<ul>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/897">#897: Initial support for Pug/Jade Language</a></li>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/830">#830: New option "Do NOT rainbowify template string"</a></li>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/784">#784: Disable rainbowify on big files(>1000 lines for now)</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/851">#851: Rainbowify tag name doesn't works in JSX</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/875">#875: cannot create configurable component</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/799">#799 #817: Wrong element created by ASTFactory</a></li>
</ul>
<br/>
<p>6.13</p>
<ul>
<li>Make as a non-dynamic plugin, so it now requires restart.</li>
</ul>
<br/>
<p>6.12.1</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/516">#516: Add option to raibowify tag name of XML/HTML(disabled by default)</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/279">#279: Hide update notification on any click & Disable update notification support</a></li>
<li>Feature: Rainbowify XML/HTML tag name.</li>
<li>Feature: Upgrade to kotlin 1.4.10.</li>
</ul>
<br/>
<p>6.12</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/279">#279: Hide update notification on any click & Disable update notification support</a></li>
<li>Feature: Rainbowify XML/HTML tag name.</li>
<li>Feature: Upgrade to kotlin 1.4.10.</li>
</ul>
<br/>
<p>6.11</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/481">#481: rainbow-brackets does not support bash shell properly(for BashSupport Pro and Shell Script)</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/485">#485: Incorrect coloriziong after lambda in C#</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/242">#242: Colorization is applied only to left parenthesis in for loop(C#) </a></li>
<li>Feature: C# support switch to new implementation.</li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/476">#476: Cannot create class com.github.izhangzhihao.rainbow.brackets.provider.SqlProvider</a></li>
</ul>
<br/>
<p>6.10</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/480">#480: Plugin Incompatibility: Android Studio 4.2 Alpha 8</a></li>
</ul>
<br/>
<p>6.9.1</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/445">#445: No working on Android Studio canary 4.2</a></li>
<li>Some bug fixs and code refactorings</li>
</ul>
<br/>
<p>6.7</p>
<ul>
<li>Fix NPE</li>
</ul>
<br/>
<p>6.6</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/436">#436: Duplicated indent guides in 2020.2 EAP</a></li>
</ul>
<br/>
<p>6.5</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/410">#410: ArrayIndexOutOfBoundsException</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/429">#429: NullPointerException</a></li>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/427">#427: Colorizing angle brackets for Typescript generics</a></li>
<li>Some refactoring!</li>
</ul>
<br/>
<p>6.4</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/420">#420: Exceptions in random color generator</a></li>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/423">#423: Don't rainbow php and echo tag</a></li>
<li>Fix anonymous feedback</li>
<li>Some refactoring!</li>
</ul>
<br/>
<p>6.3</p>
<ul>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/417">#417: Disable Rainbow Indents in Zen mode</a></li>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/227">#227: Coloring for angle bracket for C++ code</a></li>
<li>Fix some exceptions and refactoring!</li>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/214">#214: New color generator to generate your color schema</a></li>
</ul>
<br/>
<p>6.2</p>
<ul>
<li>Fix <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/410">#410: ArrayIndexOutOfBoundsException when number of colors to less than 5</a></li>
</ul>
<br/>
<p>6.1</p>
<ul>
<li>First release of 2020.1 and Java 11!</li>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/235">#235: support SQL begin end colorization</a></li>
<li>Notification improved</li>
<li>Error report improved</li>
<li>Deprecated API usage removed</li>
<li>Initial support for <a href="https://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/dynamic_plugins.html">dynamic plugin</a></li>
</ul>
<br/>
<p>6.0</p>
<ul>
<li>First release of 2020.1 and Java 11!</li>
<li>Feature <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/issues/235">#235: support SQL begin end colorization</a></li>
<li>Notification improved</li>
<li>Error report improved</li>
<li>Deprecated API usage removed</li>
<li>Initial support for <a href="https://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/dynamic_plugins.html">dynamic plugin</a></li>
</ul>
<br/>
<p>5.35</p>
<ul>
<li>Final release of 2017.2 and Java 8! start from the next release, we will build against with 2020.1 and Java 11</li>
</ul>
<br/>
<p>5.34</p>
<ul>
<li>Compatible with Material Theme UI Plugin</li>
<li>Fix typo</li>
</ul>
<br/>
<p>5.33</p>
<ul>
<li>Fix ArrayIndexOutOfBoundsException</li>
</ul>
<br/>
<p>5.32</p>
<ul>
<li>Feature #391: Support cycle color on all bracket types(new option `Cycle count on all bracket types`)</li>
<li>Fix ArrayIndexOutOfBoundsException</li>
</ul>
<br/>
<p>5.31</p>
<ul>
<li>#187 Feature: Ability to increase the number of colours in the IDE</li>
<li>#247 Feature: Add a button to apply the color code to all kind of brackets</li>
<li>#374 Feature: Add support for IntelliJ-Haskell</li>
<li>Fix #54: Disable rainbow for mxml files</li>
<li>Fix typo</li>
</ul>
<br/>
<p>5.30</p>
<ul>
<li>Rollback indent guides</li>
</ul>
<br/>
<p>5.29</p>
<ul>
<li>Compatible color schema with the latest version of material-theme-jetbrains</li>
<li>Fix some errors</li>
</ul>
<br/>
<p>5.28</p>
<ul>
<li>Improve error report</li>
<li>Fix some errors with Nginx plugin</li>
</ul>
<br/>
<p>5.27</p>
<ul>
<li>Improve rainbow indent guide lines</li>
</ul>
<br/>
<p>5.26</p>
<ul>
<li>Improve error report.</li>
</ul>
<br/>
<p>5.25</p>
<ul>
<li>Fix #259 Runtime error in rainbow indent guide lines.</li>
</ul>
<br/>
<p>5.24</p>
<ul>
<li>Fix #252 Runtime error in rainbow indent guide lines.</li>
<li>Fix #254 Nginx support is been disabled from now on.</li>
<li>Re-enable anonymous feedback</li>
</ul>
<br/>
<p>5.23</p>
<ul>
<li>#164 #251 New feature: Rainbow indent guide lines(experimental), Thanks https://github.com/YiiGuxing !</li>
</ul>
<br/>
<p>5.22</p>
<ul>
<li>Fix #243 #180, allow users custom matched brace by setting `overrideMatchedBraceAttributes = false`</li>
</ul>
<br/>
<p>5.21</p>
<ul>
<li>#65 [Scope Highlighting] now the effects will not been removed after shortcut released, users could press the key `ESC` to do this. There also have an option `Press any key to remove the highlighting effects`</li>
<li>Refactoring & Remove dead code</li>
</ul>
<br/>
<p>5.20</p>
<ul>
<li>#233 Option to not rainbowify brackets of the first level</li>
<li>#234 Color is displayed with wrong order in C# code</li>
</ul>
<br/>
<p>5.19</p>
<ul>
<li>Fix notification.</li>
</ul>
<br/>
<p>5.18</p>
<ul>
<li>Add notification for custom your own rainbow colors.</li>
</ul>
<br/>
<p>5.17</p>
<ul>
<li>More color options for squiggly brackets before cycle(#215).</li>
<li>NullPointerException in while analyse code(#216).</li>
</ul>
<br/>
<p>5.16</p>
<ul>
<li>Add shiny new icon.</li>
</ul>
<br/>
<p>5.15</p>
<ul>
<li>Fix support for kotlin scheme attribute "KOTLIN_FUNCTION_LITERAL_BRACES_AND_ARROW".</li>
</ul>
<br/>
<p>5.14</p>
<ul>
<li>Remove deprecated API usages.</li>
<li>Refactoring.</li>
<li>Added Dart to the supported languages list(#205).</li>
</ul>
<br/>
<p>5.13</p>
<ul>
<li>Fix macro support of Clang(#198)</li>
<li>Remove red-variation colors from default configuration(#192)</li>
</ul>
<br/>
<p>5.12</p>
<ul>
<li>Intellij-rainbow-brackets now support C# language(#6)!</li>
</ul>
<br/>
<p>5.11</p>
<ul>
<li>Now you could disable rainbow brackets for specific languages, see more info <a
href="https://github.com/izhangzhihao/intellij-rainbow-brackets#disable-rainbow-brackets-for-specific-languages">here</a>.
</li>
</ul>
<br/>
<p>5.10</p>
<ul>
<li>New color settings page!!! Thanks this PR(#179) from https://github.com/YiiGuxing.</li>
<li>See the new settings page in Settings/Preferences > Editor > Color Scheme > Rainbow Brackets.</li>
</ul>
<br/>
<p>5.9.1</p>
<ul>
<li>Fix wrong background color on a light theme of "MATCHED_BRACE_ATTRIBUTES"(#155).</li>
</ul>
<br/>
<p>5.9</p>
<ul>
<li>Rainbow Kotlin lambda expression arrow(#142).</li>
<li>Experimental feature: Highlight Kotlin label(#143).</li>
<li>Override "MATCHED_BRACE_ATTRIBUTES".</li>
<li>Improve configs & docs.</li>
<li>Cleanup temp code & deprecated code.</li>
<li>Remove anonymous feedback.</li>
</ul>
<br/>
<p>5.8.3</p>
<ul>
<li>Improve anonymous feedback</li>
</ul>
<br/>
<p>5.8.2</p>
<ul>
<li>Override kotlin plugin setting `KOTLIN_FUNCTION_LITERAL_BRACES_AND_ARROW` to empty so that we could
rainbowify multiple level lambda expressions.
</li>
</ul>
<br/>
<p>5.8.1</p>
<ul>
<li>Fix #67: Can't find resource for bundle java.util.PropertyResourceBundle, key version</li>
<li>Improve anonymous feedback</li>
</ul>
<br/>
<p>5.8</p>
<ul>
<li>Feature #52 Flat out all text other than brackets on key (Alt + Button3) press. (via pull request#63)
</li>
<li>Feature #61 Change Highlight Current Scope Keymap to Ctrl + Button3 (Windows & Linux) or Meta+ Button3
(Mac) (via pull request#63)
</li>
<li>Add anonymous feedback support</li>
</ul>
<br/>
<p>5.7.1</p>
<ul>
<li>Fix #60 :Exception in v5.7</li>
<li>Experimental feature: Highlight current scope when Ctrl(Windows & Linux)/Meta(Mac) key pressed (feature
#37 / pull request#59)
</li>
</ul>
<br/>
<p>5.7</p>
<ul>
<li>Experimental feature: Highlight current scope when Ctrl(Windows & Linux)/Meta(Mac) key pressed (feature
#37 / pull request#59)
</li>
</ul>
<br/>
<p>5.6</p>
<ul>
<li>Performance improvement</li>
</ul>
<br/>
<p>5.5</p>
<ul>
<li>Fix #53 The closing brackets or keywords are not highlighted (Ruby & PHP)</li>
</ul>
<br/>
<p>5.4</p>
<ul>
<li>Fix #53 The closing brackets or keywords are not highlighted (Ruby & PHP)</li>
</ul>
<br/>
<p>5.3</p>
<ul>
<li>Improve angle bracket support for Groovy</li>
</ul>
<br/>
<p>5.2</p>
<ul>
<li>#48 Performance improvement</li>
<li>#49 Fix images size</li>
</ul>
<br/>
<p>5.1</p>
<ul>
<li>#39 Enable rainbow html in js</li>
</ul>
<br/>
<p>5.0</p>
<ul>
<li>Finally, intellij-rainbow-brackets released version 5.0 with all RC features & bug fix</li>
<li><b>Thanks for https://github.com/YiiGuxing, which helps move this plugin from `Annotator` to
`HighlightVisitor`!</b></li>
<li>Check more info at <a href="https://github.com/izhangzhihao/intellij-rainbow-brackets/pull/25">here</a>
</li>
<li>From 5.x series we didn't need specific implementations like java/scala/kotlin specific implementations
in 3.x series anymore!
</li>
<br/>
<li>#13 Add test for dart support & add `DartAngleBracketProvider` for support dart angle brackets</li>
<li>#18 where to customize brackets color? See the config guide in <a
href="https://github.com/izhangzhihao/intellij-rainbow-brackets#Config-brackets-colors">here</a>
</li>
<li>Add test for #39</li>
<li>#38 Add support for JSX (React)</li>
<li>Fix #27 Settings no longer works</li>
<li>#30 Adjust color: remove red, purple from color palettes, add some material design color to color
palettes.
</li>
<li>#32 Add version info in setting page</li>
<li>#31 Fix 'Enablement of round brackets enables all but angle brackets'</li>
<li>#10 #2 Add setting to disable rainbow-ify brackets without content</li>
<li>Show update notification after plugin updated</li>
<li>Add a lot of tests</li>
<li>Convert all java code to kotlin</li>
<br/>
<li>And with much more features not documented in release notes.</li>
<li>NOTE: this version are build against with IU-2017.2.7, but verified by IC-2017.2</li>
</ul>
<br/>
<p>5.0-RC4</p>
<ul>
<li>#10 #2 Add setting to disable rainbow-ify brackets without content</li>
<li>Show update notification after plugin updated</li>
<li>Add a lot of tests</li>
<li>Convert all java code to kotlin</li>
<li>NOTE: this version are build against with IU-2017.2.7, but verified by IC-2017.2</li>
</ul>
<br/>
<p>5.0-RC3</p>
<ul>
<li>#32 Add version info in setting page</li>
<li>#31 Fix 'Enablement of round brackets enables all but angle brackets(#31)'</li>
</ul>
<br/>
<p>5.0-RC2</p>
<ul>
<li>#30 Adjust color: remove red, purple from color palettes, add some material design color to color
palettes.
</li>
</ul>
<br/>
<p>5.0-RC1</p>
<ul>
<li>Fix #27 Settings no longer works</li>
</ul>
<br/>
<p>5.0-RC0</p>
<ul>
<li>This is the first RC releases on 5.x series!</li>
<li><b>Thanks for https://github.com/YiiGuxing, which helps move this plugin from `Annotator` to
`HighlightVisitor`!</b></li>
<li>Check more info at https://github.com/izhangzhihao/intellij-rainbow-brackets/pull/25</li>
<li>This RC release has fantastic compatibility with previous release(3.x series).</li>
<li>From 5.x series we didn't need specific implementations like java/scala/kotlin specific implementations
in 3.x series anymore!
</li>
<li>And with much more features not documented in release notes.</li>
</ul>
<br/>
<p>3.1</p>
<ul>
<li>Add a specific implementation for PHP language</li>
</ul>
<br/>
<p>3.0</p>
<ul>
<li>Version 3.0 has been released, with all RC features & bug fix</li>
<li>Fix #23 Inconsistent colors</li>
<li>Fix #21 Wrong bracket colorization based on spaces</li>
<li>Fix #19 Kotlin expression inside string bug</li>
<li>Fix #12 Symbol less ">" is considered as a bracket even without leading "<"</li>
<li>Fix #11 Same level brackets should have same color</li>
<li>And much more!</li>
<li>Add specific implement for java/kotlin/scala/javascript</li>
<li>Add example to help people add specific implementation for specific language!</li>
<li>Check out README.md on github https://github.com/izhangzhihao/intellij-rainbow-brackets</li>
</ul>
<br/>
<p>3.0-RC5</p>
<ul>
<li>Adjust colors for default light theme. Thanks to https://github.com/YiiGuxing</li>
</ul>
<br/>
<p>3.0-RC4</p>
<ul>
<li>Add specific implement for java/kotlin/scala</li>
<li>So now in java/kotlin/scala same level brackets should have same color.</li>
<li>Fix: #19:Kotlin expression inside string bug</li>
</ul>
<br/>
<p>3.0-RC2</p>
<ul>
<li>Remove option for enable/disable rainbow for HTML/XML</li>
</ul>
<br/>
<p>3.0-RC1</p>
<ul>
<li>Add new setting page to control what/how to colorify:</li>
<li>1. Add option to Enable/disable rainbow</li>
<li>2. Add option to Enable rainbow for any unsupported languages</li>
<li>3. Add option to Enable/disable rainbow for HTML/XML</li>
<li>4. Add option to Enable/disable rainbow for round brackets</li>
<li>5. Add option to Enable/disable rainbow for squiggly brackets</li>
<li>6. Add option to Enable/disable rainbow for square brackets</li>
<li>7. Add option to Enable/disable rainbow for angle brackets</li>
</ul>
<br/>
<p>2.6</p>
<ul>
<li>Add support for salesforce apex language, thanks for https://github.com/onisuly</li>
</ul>
<br/>
<p>2.5</p>
<ul>
<li>Fix Rust support, thanks for https://github.com/fst3a</li>
</ul>
<br/>
<p>2.4</p>
<ul>
<li>Add support for SQL</li>
</ul>
<br/>
<p>2.3</p>
<ul>
<li>Add support for HTML/XML</li>
</ul>
<br/>
<p>2.2</p>
<ul>
<li>Add support for C#</li>
</ul>
<br/>
<p>2.1</p>
<ul>
<li>New identifiable colors</li>
</ul>
<br/>
<p>2.0</p>
<ul>
<li>Rainbowify brackets faster!</li>
</ul>
<br/>
<p>1.1</p>
<ul>
<li>Support IntelliJ IDEA based IDEs version 14 and above</li>
</ul>
<br/>
<p>1.0</p>
<ul>
<li>Initial release</li>
</ul>
]]>
</change-notes>
<!-- please see https://plugins.jetbrains.com/docs/intellij/plugin-compatibility.html
on how to target different products -->
<depends>com.intellij.modules.lang</depends>
<depends optional="true" config-file="kotlin-brackets.xml">org.jetbrains.kotlin</depends>
<depends optional="true" config-file="JSX.xml">JavaScript</depends>
<depends optional="true" config-file="dart-brackets.xml">Dart</depends>
<depends optional="true" config-file="groovy-brackets.xml">org.intellij.groovy</depends>
<!--<depends optional="true" config-file="csharp-annotator.xml">com.intellij.modules.rider</depends>-->
<depends optional="true" config-file="csharp-brackets.xml">com.intellij.modules.rider</depends>
<depends optional="true" config-file="intellij-haskell-annotator.xml">intellij.haskell</depends>
<depends optional="true" config-file="sql-brackets.xml">com.intellij.database</depends>
<depends optional="true" config-file="oc-brackets.xml">com.intellij.modules.clion</depends>
<depends optional="true" config-file="sh-brackets.xml">com.jetbrains.sh</depends>
<depends optional="true" config-file="php-brackets.xml">com.jetbrains.php</depends>
<depends optional="true" config-file="go-template-brackets.xml">org.jetbrains.plugins.go-template</depends>
<depends optional="true" config-file="jade-rainbow-visitor.xml">com.jetbrains.plugins.jade</depends>
<depends optional="true" config-file="python-brackets.xml">com.intellij.modules.python</depends>
<extensionPoints>
<extensionPoint name="bracePairProvider" beanClass="com.intellij.lang.LanguageExtensionPoint" dynamic="true">
<with attribute="implementationClass"
implements="com.github.izhangzhihao.rainbow.brackets.provider.BracePairProvider"/>
</extensionPoint>
</extensionPoints>
<extensions defaultExtensionNs="com.intellij">
<!--test only-->
<!--<annotator language="JAVA" implementationClass="com.github.izhangzhihao.rainbow.brackets.annotator.RainbowAnnotator"/>-->
<highlightVisitor implementation="com.github.izhangzhihao.rainbow.brackets.visitor.DefaultRainbowVisitor"/>
<highlightVisitor implementation="com.github.izhangzhihao.rainbow.brackets.visitor.XmlRainbowVisitor"/>
<applicationConfigurable instance="com.github.izhangzhihao.rainbow.brackets.settings.RainbowConfigurable"/>
<applicationService
serviceImplementation="com.github.izhangzhihao.rainbow.brackets.settings.RainbowSettings"/>
<colorAndFontPanelFactory
implementation="com.github.izhangzhihao.rainbow.brackets.settings.RainbowColorsPageFactory"/>
<colorAndFontDescriptorProvider
implementation="com.github.izhangzhihao.rainbow.brackets.settings.RainbowColorsPageFactory"/>
<additionalTextAttributes scheme="Default" file="colorSchemes/rainbow-color-default.xml"/>
<additionalTextAttributes scheme="Darcula" file="colorSchemes/rainbow-color-default-darcula.xml"/>
<!--<errorHandler implementation="com.github.izhangzhihao.rainbow.brackets.util.GitHubErrorReporter"/>-->
<highlightingPassFactory implementation="com.github.izhangzhihao.rainbow.brackets.indents.RainbowIndentsPassFactory"/>
<editorNotificationProvider implementation="com.github.izhangzhihao.rainbow.brackets.RainbowifyBanner"/>
<notificationGroup id="Rainbow Brackets Notification Group" displayType="STICKY_BALLOON"/>
</extensions>
<applicationListeners>
<listener class="com.github.izhangzhihao.rainbow.brackets.listener.RainbowColorsSchemeListener" topic="com.intellij.openapi.editor.colors.EditorColorsListener"/>
</applicationListeners>
<actions>
<action class="com.github.izhangzhihao.rainbow.brackets.action.ScopeHighlightingAction"
id="Rainbow.ScopeHighlightingAction"
text="Highlight Current Scope"
description="Highlight current scope.">
<mouse-shortcut keymap="$default" keystroke="control button3"/>
<mouse-shortcut keymap="Mac OS X" keystroke="meta button3"/>
<mouse-shortcut keymap="Mac OS X 10.5+" keystroke="meta button3"/>
</action>
<action class="com.github.izhangzhihao.rainbow.brackets.action.ScopeOutsideHighlightingRestrainAction"
id="Rainbow.ScopeOutsideHighlightingRestrainAction"
text="Restrain Scope Highlighting"
description="Restrain outside of current scope highlighting.">
<mouse-shortcut keymap="$default" keystroke="alt button3"/>
<mouse-shortcut keymap="Mac OS X" keystroke="alt button3"/>
<mouse-shortcut keymap="Mac OS X 10.5+" keystroke="alt button3"/>
</action>
</actions>
</idea-plugin>