12 Commits
25 changed files with 132 additions and 274 deletions
+1
View File
@@ -1,4 +1,5 @@
/.idea/*
!/.idea/dictionaries
!/.idea/runConfigurations
/.gradle/
+7
View File
@@ -0,0 +1,7 @@
<component name="ProjectDictionaryState">
<dictionary name="project">
<words>
<w>Rainbowify</w>
</words>
</dictionary>
</component>
+2 -2
View File
@@ -4,9 +4,9 @@ This is a fork of the [🌈Rainbow Brackets](https://github.com/izhangzhihao/int
## Key Changes
- Updates for new IntelliJ Platform versions
- Support for C# (Rider)
- Support for C++ (Rider, CLion, CLion Nova)
- Support for C++
- Support for Settings Sync
- Improved highlighting performance
- Increased default setting for maximum line count from 1K to 100K
- Fixed service initialization warnings reported by 2024.2+
+4 -5
View File
@@ -19,14 +19,17 @@ dependencies {
bundledPlugin("org.jetbrains.plugins.yaml")
compatiblePlugin("PythonCore")
compatiblePlugin("com.intellij.clion")
compatiblePlugin("com.intellij.nativeDebug")
compatiblePlugin("com.jetbrains.php")
compatiblePlugin("com.jetbrains.plugins.jade")
compatiblePlugin("com.jetbrains.sh")
compatiblePlugin("org.intellij.scala")
compatiblePlugin("org.jetbrains.plugins.clion.radler")
compatiblePlugin("org.jetbrains.plugins.go-template")
compatiblePlugin("org.jetbrains.plugins.ruby")
plugin("Dart:504.0.0") // https://plugins.jetbrains.com/plugin/6351-dart/versions/stable
plugin("Dart:507.0.0") // https://plugins.jetbrains.com/plugin/6351-dart/versions/stable
testFramework(TestFrameworkType.Platform)
testFramework(TestFrameworkType.Plugin.Java)
@@ -39,7 +42,3 @@ dependencies {
excludeCoroutines()
}
}
intellijPlatform {
buildSearchableOptions = true
}
@@ -57,8 +57,7 @@ object BracePairs {
true
}
}
?.map { listOf(Pair(it.leftBraceType.toString(), it), Pair(it.rightBraceType.toString(), it)) }
?.flatten()
?.flatMap { listOf(Pair(it.leftBraceType.toString(), it), Pair(it.rightBraceType.toString(), it)) }
?.forEach {
val bracePairs = braceMap[it.first]
if (bracePairs == null) {
@@ -74,7 +73,7 @@ object BracePairs {
.toMap()
}
private fun getBraceTypeSetOf(language: Language): Set<IElementType> = language.bracePairs?.values?.flatten()?.map { listOf(it.leftBraceType, it.rightBraceType) }?.flatten()?.toSet() ?: emptySet()
private fun getBraceTypeSetOf(language: Language): Set<IElementType> = language.bracePairs?.values?.flatten()?.flatMap { listOf(it.leftBraceType, it.rightBraceType) }?.toSet() ?: emptySet()
val braceTypeSet: (Language) -> Set<IElementType> = { language: Language -> getBraceTypeSetOf(language) }.memoize()
@@ -1,123 +0,0 @@
package com.chylex.intellij.coloredbrackets.annotator
import com.chylex.intellij.coloredbrackets.RainbowHighlighter.NAME_ANGLE_BRACKETS
import com.chylex.intellij.coloredbrackets.RainbowHighlighter.NAME_ROUND_BRACKETS
import com.chylex.intellij.coloredbrackets.RainbowHighlighter.NAME_SQUARE_BRACKETS
import com.chylex.intellij.coloredbrackets.RainbowHighlighter.NAME_SQUIGGLY_BRACKETS
import com.chylex.intellij.coloredbrackets.RainbowHighlighter.getRainbowColorByLevel
import com.chylex.intellij.coloredbrackets.annotator.RainbowUtils.annotateUtil
import com.chylex.intellij.coloredbrackets.annotator.RainbowUtils.settings
import com.chylex.intellij.coloredbrackets.settings.RainbowSettings
import com.intellij.lang.annotation.AnnotationHolder
import com.intellij.lang.annotation.Annotator
import com.intellij.lang.annotation.HighlightSeverity
import com.intellij.openapi.editor.colors.EditorColorsManager
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import com.intellij.psi.impl.source.tree.LeafPsiElement
class RainbowAnnotator : Annotator {
override fun annotate(element: PsiElement, holder: AnnotationHolder) {
val settings = settings
if (settings.isRainbowEnabled && element is LeafPsiElement) {
if (!settings.applyColorsOfRoundForAllBrackets) {
if (settings.isEnableRainbowRoundBrackets) annotateUtil(element, holder, "(", ")", NAME_ROUND_BRACKETS)
if (settings.isEnableRainbowSquareBrackets) annotateUtil(element, holder, "[", "]", NAME_SQUARE_BRACKETS)
if (settings.isEnableRainbowSquigglyBrackets) annotateUtil(element, holder, "{", "}", NAME_SQUIGGLY_BRACKETS)
if (settings.isEnableRainbowAngleBrackets) annotateUtil(element, holder, "<", ">", NAME_ANGLE_BRACKETS)
}
else {
if (settings.isEnableRainbowRoundBrackets) annotateUtil(element, holder, "(", ")", NAME_ROUND_BRACKETS)
if (settings.isEnableRainbowSquareBrackets) annotateUtil(element, holder, "[", "]", NAME_ROUND_BRACKETS)
if (settings.isEnableRainbowSquigglyBrackets) annotateUtil(element, holder, "{", "}", NAME_ROUND_BRACKETS)
if (settings.isEnableRainbowAngleBrackets) annotateUtil(element, holder, "<", ">", NAME_ROUND_BRACKETS)
}
}
}
}
object RainbowUtils {
private val leftBracketsSet = setOf("(", "[", "{", "<")
private val rightBracketsSet = setOf(")", "]", "}", ">")
val settings
get() = RainbowSettings.instance
private tailrec fun iterateChildren(
LEFT: String,
RIGHT: String,
currentNode: PsiElement,
currentLevel: Int,
currentChild: PsiElement,
): Int {
val calculatedLevel = if (currentChild is LeafPsiElement) {
//Using `currentChild.elementType.toString()` if we didn't want add more dependencies.
if (!settings.cycleCountOnAllBrackets) {
when (currentChild.text) {
LEFT -> currentLevel + 1
RIGHT -> currentLevel - 1
else -> currentLevel
}
}
else {
when {
leftBracketsSet.contains(currentChild.text) -> currentLevel + 1
rightBracketsSet.contains(currentChild.text) -> currentLevel - 1
else -> currentLevel
}
}
}
else currentLevel
return if ((currentChild != currentNode) && (currentChild != currentNode.parent.lastChild))
iterateChildren(LEFT, RIGHT, currentNode, calculatedLevel, currentChild.nextSibling)
else
calculatedLevel
}
private tailrec fun iterateParents(
LEFT: String,
RIGHT: String,
currentNode: PsiElement,
currentLevel: Int,
): Int = if (currentNode.parent !is PsiFile) {
val calculatedLevel = iterateChildren(LEFT, RIGHT, currentNode, currentLevel, currentNode.parent.firstChild)
iterateParents(LEFT, RIGHT, currentNode.parent, calculatedLevel)
}
else currentLevel
private fun getBracketLevel(element: LeafPsiElement, LEFT: String, RIGHT: String): Int {
//Using `element.elementType.toString()` if we didn't want add more dependencies.
val startLevel = if (element.text == RIGHT) 0 else -1
return iterateParents(LEFT, RIGHT, element, startLevel)
}
fun annotateUtil(
element: LeafPsiElement, holder: AnnotationHolder,
LEFT: String, RIGHT: String, rainbowName: String,
) {
//Using `element.elementType.toString()` if we didn't want add more dependencies.
val level = when (element.text) {
LEFT, RIGHT -> getBracketLevel(element, LEFT, RIGHT)
else -> -1
}
val scheme = EditorColorsManager.getInstance().globalScheme
if (RainbowSettings.instance.isDoNOTRainbowifyTheFirstLevel) {
if (level >= 1) {
holder.newSilentAnnotation(HighlightSeverity.INFORMATION)
.range(element.psi)
.textAttributes(getRainbowColorByLevel(scheme, rainbowName, level))
.create()
}
}
else {
if (level >= 0) {
holder.newSilentAnnotation(HighlightSeverity.INFORMATION)
.range(element.psi)
.textAttributes(getRainbowColorByLevel(scheme, rainbowName, level))
.create()
}
}
}
}
@@ -134,13 +134,14 @@ private fun matchColor(hueValue: Int, hue: Hue): Color {
hueVal -= 360
}
for (color in Color.values()) {
for (color in Color.entries) {
if (hueVal in color.hueRange.first..color.hueRange.second) {
return color
}
}
// Returning Monochrome if we can't find a value, but this should never happen
return Color.monochrome
Color.monochrome
}
}
}
@@ -11,15 +11,17 @@ import com.intellij.openapi.application.ReadAction
import com.intellij.openapi.editor.Document
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.editor.SoftWrap
import com.intellij.openapi.editor.ex.DocumentEx
import com.intellij.openapi.editor.ex.EditorEx
import com.intellij.openapi.editor.impl.EditorImpl
import com.intellij.openapi.editor.impl.view.EditorPainter
import com.intellij.openapi.editor.impl.view.VisualLinesIterator
import com.intellij.openapi.editor.markup.CustomHighlighterRenderer
import com.intellij.openapi.editor.markup.RangeHighlighter
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Condition
import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiManager
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.psi.xml.XmlFile
import com.intellij.psi.xml.XmlTag
@@ -36,13 +38,15 @@ import kotlin.math.max
* */
class RainbowIndentGuideRenderer : CustomHighlighterRenderer {
override fun paint(editor: Editor, highlighter: RangeHighlighter, g: Graphics) {
if (editor !is EditorEx) return
val rainbowInfo = getRainbowInfo(editor, highlighter) ?: return
if (editor !is EditorEx) {
return
}
val startOffset = highlighter.startOffset
val doc = highlighter.document
if (startOffset >= doc.textLength) return
if (startOffset >= doc.textLength) {
return
}
val endOffset = highlighter.endOffset
@@ -60,15 +64,21 @@ class RainbowIndentGuideRenderer : CustomHighlighterRenderer {
val startPosition = editor.offsetToVisualPosition(off)
val indentColumn = startPosition.column
if (indentColumn <= 0) return
if (indentColumn <= 0) {
return
}
val foldingModel = editor.foldingModel
if (foldingModel.isOffsetCollapsed(off)) return
if (foldingModel.isOffsetCollapsed(off)) {
return
}
val headerRegion = foldingModel.getCollapsedRegionAtOffset(doc.getLineEndOffset(doc.getLineNumber(off)))
val tailRegion = foldingModel.getCollapsedRegionAtOffset(doc.getLineStartOffset(doc.getLineNumber(endOffset)))
if (tailRegion != null && tailRegion === headerRegion) return
if (tailRegion != null && tailRegion === headerRegion) {
return
}
val guide = editor.indentsModel.caretIndentGuide
val selected = if (guide != null) {
@@ -78,7 +88,7 @@ class RainbowIndentGuideRenderer : CustomHighlighterRenderer {
}
else false
val lineHeight = editor.getLineHeight()
val lineHeight = editor.lineHeight
val start = editor.visualPositionToXY(startPosition)
start.y += lineHeight
val endPosition = editor.offsetToVisualPosition(endOffset)
@@ -95,7 +105,11 @@ class RainbowIndentGuideRenderer : CustomHighlighterRenderer {
}
maxY = StrictMath.min(maxY, clip.y + clip.height)
}
if (start.y >= maxY) return
if (start.y >= maxY) {
return
}
val rainbowInfo = getRainbowInfo(editor, highlighter) ?: return
val targetX = max(0, start.x + EditorPainter.getIndentGuideShift(editor)).toDouble()
g.color = if (selected) {
rainbowInfo.color
@@ -163,33 +177,35 @@ class RainbowIndentGuideRenderer : CustomHighlighterRenderer {
}
private fun getRainbowInfo(editor: EditorEx, highlighter: RangeHighlighter): RainbowInfo? {
val virtualFile = editor.virtualFile?.takeIf { it.isValid } ?: return null
val document = editor.document
val project = editor.project ?: return null
val document = editor.document
return ReadAction.compute<RainbowInfo, Throwable> {
val psiFile = PsiManager.getInstance(project).findFile(virtualFile) ?: return@compute null
var element = try {
psiFile.findElementAt(highlighter.endOffset)?.parent ?: return@compute null
} catch (_: Throwable) {
return@compute null
}
var rainbowInfo = RainbowInfo.RAINBOW_INFO_KEY[element]
if (rainbowInfo == null && psiFile is XmlFile && element !is XmlTag) {
element = PsiTreeUtil.findFirstParent(element, true, XML_TAG_PARENT_CONDITION) ?: return@compute null
rainbowInfo = RainbowInfo.RAINBOW_INFO_KEY[element] ?: return@compute null
}
if (!element.isValid || !checkBoundary(document, element, highlighter)) {
null
}
else {
rainbowInfo
}
return ReadAction.computeBlocking<RainbowInfo?, Throwable> {
getRainbowInfoInReadAction(project, document, highlighter)
}
}
private fun getRainbowInfoInReadAction(project: Project, document: DocumentEx, highlighter: RangeHighlighter): RainbowInfo? {
val psiFile = PsiDocumentManager.getInstance(project).getPsiFile(document) ?: return null
var element = try {
psiFile.findElementAt(highlighter.endOffset)?.parent ?: return null
} catch (_: Throwable) {
return null
}
var rainbowInfo = RainbowInfo.RAINBOW_INFO_KEY[element]
if (rainbowInfo == null && psiFile is XmlFile && element !is XmlTag) {
element = PsiTreeUtil.findFirstParent(element, true, XML_TAG_PARENT_CONDITION) ?: return null
rainbowInfo = RainbowInfo.RAINBOW_INFO_KEY[element] ?: return null
}
if (!element.isValid || !checkBoundary(document, element, highlighter)) {
return null
}
return rainbowInfo
}
/***
* introduced from https://github.com/izhangzhihao/intellij-rainbow-brackets/commit/d9d40e6910e9c15fbdcba12280df18019ea170b5
*/
@@ -269,6 +285,5 @@ class RainbowIndentGuideRenderer : CustomHighlighterRenderer {
private fun XmlTag.getEndTagStartLineNumber(document: Document): Int? =
lastChild?.findPrevSibling(XML_END_TAG_START_CONDITION)?.let { document.lineNumber(it.startOffset) }
}
}
@@ -46,7 +46,9 @@ class RainbowIndentsPass internal constructor(
override fun doCollectInformation(progress: ProgressIndicator) {
val stamp = myEditor.getUserData(LAST_TIME_INDENTS_BUILT)
if (stamp != null && stamp == nowStamp()) return
if (stamp != null && stamp == nowStamp()) {
return
}
myDescriptors = buildDescriptors()
@@ -72,7 +74,9 @@ class RainbowIndentsPass internal constructor(
val stamp = myEditor.getUserData(LAST_TIME_INDENTS_BUILT)
val nowStamp = nowStamp()
if (stamp == nowStamp) return
if (stamp == nowStamp) {
return
}
myEditor.putUserData(LAST_TIME_INDENTS_BUILT, nowStamp)
@@ -142,7 +146,9 @@ class RainbowIndentsPass internal constructor(
}
private fun buildDescriptors(): List<IndentGuideDescriptor> {
if (!isRainbowIndentGuidesShown(this.myProject)) return emptyList()
if (!isRainbowIndentGuidesShown(this.myProject)) {
return emptyList()
}
val calculator = IndentsCalculator()
calculator.calculate()
@@ -17,7 +17,7 @@ class RainbowConfigurable : SearchableConfigurable {
}
override fun isModified(): Boolean {
return settingsForm?.isModified ?: return false
return settingsForm?.isModified ?: false
}
@Throws(ConfigurationException::class)
@@ -39,7 +39,7 @@ class RainbowOptionsPanel(
private lateinit var colorLabel4: JLabel
private lateinit var colorLabel5: JLabel
private val colorLabels: Array<JLabel>
private val colorLabels = arrayOf(colorLabel1, colorLabel2, colorLabel3, colorLabel4, colorLabel5)
private lateinit var color1: ColorPanel
private lateinit var color2: ColorPanel
@@ -47,7 +47,7 @@ class RainbowOptionsPanel(
private lateinit var color4: ColorPanel
private lateinit var color5: ColorPanel
private val colors: Array<ColorPanel>
private val colors = arrayOf(color1, color2, color3, color4, color5)
private lateinit var gradientLabel: JLabel
@@ -56,9 +56,6 @@ class RainbowOptionsPanel(
EventDispatcher.create(ColorAndFontSettingsListener::class.java)
init {
colors = arrayOf(color1, color2, color3, color4, color5)
colorLabels = arrayOf(colorLabel1, colorLabel2, colorLabel3, colorLabel4, colorLabel5)
val actionListener = ActionListener {
eventDispatcher.multicaster.settingsChanged()
options.stateChanged()
@@ -70,7 +67,9 @@ class RainbowOptionsPanel(
options.addListener(object : ColorAndFontSettingsListener.Abstract() {
override fun settingsChanged() {
if (!schemesProvider.areSchemesLoaded()) return
if (!schemesProvider.areSchemesLoaded()) {
return
}
if (optionsTree.selectedValue != null) {
// update options after global state change
processListValueChanged()
@@ -236,7 +235,9 @@ class RainbowOptionsPanel(
}
val pathInChild = findOption(childObject, matcher)
if (pathInChild != null) return pathInChild
if (pathInChild != null) {
return pathInChild
}
}
return null
+19 -5
View File
@@ -8,16 +8,26 @@
<br><br>
<b>Key Changes</b>
<ul>
<li>Updates for new IntelliJ Platform versions</li>
<li>Support for C# (Rider)</li>
<li>Support for C++ (Rider, CLion, CLion Nova)</li>
<li>Support for C++</li>
<li>Support for Settings Sync</li>
<li>Improved highlighting performance</li>
<li>Increased default setting for maximum line count from 1K to 100K</li>
<li>Fixed service initialization warnings reported by 2024.2+</li>
</ul>
]]></description>
<change-notes><![CDATA[
<b>Version 1.5.0</b>
<ul>
<li>Updated to IntelliJ Platform 2026.2.</li>
<li>Added support for C++ plugin for IntelliJ IDEA.</li>
</ul>
<b>Version 1.4.0</b>
<ul>
<li>Updated to IntelliJ Platform 2025.3.</li>
<li>Removed support for the Haskell plugin, since it is no longer available.</li>
</ul>
<b>Version 1.3.0</b>
<ul>
<li>Fixed assertion error caused by missing read lock in indent guide renderer.</li>
@@ -38,13 +48,13 @@
<ul>
<li>Restored support for CLion and Rider.</li>
<li>Added support for Settings Sync.</li>
<li>Fixed service initialization warnings reported by IJ 2024.2.</li>
<li>Fixed service initialization warnings reported by IntelliJ Platform 2024.2.</li>
</ul>
]]></change-notes>
<depends>com.intellij.modules.lang</depends>
<depends optional="true" config-file="plugin-clion-nova.xml">org.jetbrains.plugins.clion.radler</depends>
<depends optional="true" config-file="plugin-clion.xml">com.intellij.modules.clion</depends>
<depends optional="true" config-file="plugin-clion-classic.xml">com.intellij.cidr.lang</depends>
<depends optional="true" config-file="plugin-cpp.xml">org.jetbrains.plugins.clion.radler</depends>
<depends optional="true" config-file="plugin-dart.xml">Dart</depends>
<depends optional="true" config-file="plugin-go-template.xml">org.jetbrains.plugins.go-template</depends>
<depends optional="true" config-file="plugin-groovy.xml">org.intellij.groovy</depends>
@@ -78,6 +88,10 @@
<editorNotificationProvider implementation="com.chylex.intellij.coloredbrackets.RainbowifyBanner" />
</extensions>
<extensions defaultExtensionNs="org.jetbrains.kotlin">
<supportsKotlinPluginMode supportsK2="true" />
</extensions>
<applicationListeners>
<listener class="com.chylex.intellij.coloredbrackets.listener.RainbowColorsSchemeListener" topic="com.intellij.openapi.editor.colors.EditorColorsListener" />
</applicationListeners>
@@ -60,7 +60,7 @@ console.log(a == b)
fun testIssue21() {
@Language("JavaScript") val code = "open (\$" + "{f})\n" + "open (\$" + "{f} )"
@Language("JavaScript") val code = $$"open (${f})\nopen (${f} )"
myFixture.configureByText(JavaScriptFileType, code)
PsiDocumentManager.getInstance(project).commitAllDocuments()
@@ -23,7 +23,7 @@ end
myFixture.configureByText(RubyFileType.RUBY, code)
PsiDocumentManager.getInstance(project).commitAllDocuments()
val doHighlighting = myFixture.doHighlighting()
assertFalse(doHighlighting.isEmpty());
assertFalse(doHighlighting.isEmpty())
doHighlighting.getBrackets().shouldBe(
arrayOf(
roundLevel(0),
@@ -42,7 +42,7 @@ foobar(p1: "", p2: false, p3: 1)
myFixture.configureByText(RubyFileType.RUBY, code)
PsiDocumentManager.getInstance(project).commitAllDocuments()
val doHighlighting = myFixture.doHighlighting()
assertFalse(doHighlighting.isEmpty());
assertFalse(doHighlighting.isEmpty())
doHighlighting.getBrackets().shouldBe(
arrayOf(
roundLevel(0),
@@ -8,78 +8,6 @@ import io.kotest.matchers.shouldBe
import org.intellij.lang.annotations.Language
class RainbowXMLTest : LightJavaCodeInsightFixtureTestCase() {
fun `disabled for non-determinist results of testRainbowTagNameForXML`() {
@Language("XML") val code =
"""
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE note SYSTEM>
<idea-plugin>
<name>Rainbow Brackets</name>
<description>
<p>Supported languages:</p>
<p>Java, Scala, Clojure, Kotlin, Python, Haskell, Agda, Rust, JavaScript, TypeScript, Erlang, Go, Groovy, Ruby, Elixir, ObjectiveC, PHP, C#, HTML, XML, SQL, Apex language ...</p>
<br/>
</description>
</idea-plugin>
""".trimIndent()
val rainbowSettings = RainbowSettings.instance
rainbowSettings.rainbowifyTagNameInXML = true
myFixture.configureByText(XmlFileType.INSTANCE, code)
PsiDocumentManager.getInstance(project).commitAllDocuments()
val doHighlighting = myFixture.doHighlighting()
assertFalse(doHighlighting.isEmpty())
doHighlighting.getBrackets().shouldBe(
arrayOf(
angleLevel(0),
angleLevel(0),
angleLevel(0),
angleLevel(0),
angleLevel(0),
angleLevel(0),//idea-plugin
angleLevel(0),
angleLevel(1),
angleLevel(1),//name
angleLevel(1),
angleLevel(1),
angleLevel(1),//name
angleLevel(1),
angleLevel(1),
angleLevel(1),//description
angleLevel(1),
angleLevel(2),
angleLevel(2),//p
angleLevel(2),
angleLevel(2),
angleLevel(2),//p
angleLevel(2),
angleLevel(2),
angleLevel(2),//p
angleLevel(2),
angleLevel(2),
angleLevel(2),//p
angleLevel(2),
angleLevel(2),
angleLevel(2),//br
angleLevel(2),
angleLevel(1),
angleLevel(1),//description
angleLevel(1),
angleLevel(0),
angleLevel(0),//idea-plugin
angleLevel(0)
)
)
}
fun testRainbowForXML() {
@Language("XML") val code =
"""
+21 -5
View File
@@ -6,9 +6,9 @@ plugins {
}
group = "com.chylex.intellij.coloredbrackets"
version = "1.3.0"
version = "1.5.0"
val ideaVersion = "2025.3"
val ideaVersion = "2026.2"
allprojects {
apply(plugin = "org.jetbrains.kotlin.jvm")
@@ -29,14 +29,18 @@ allprojects {
intellijPlatform {
sandboxContainer.set(layout.buildDirectory.map { it.dir("idea-sandbox") })
buildSearchableOptions = false
pluginConfiguration {
ideaVersion {
sinceBuild.set("253")
sinceBuild.set("262")
untilBuild.set(provider { null })
}
}
pluginVerification {
ides {
current()
}
}
}
kotlin {
@@ -50,6 +54,14 @@ allprojects {
}
}
subprojects {
version = rootProject.version
intellijPlatform {
buildSearchableOptions = false
}
}
idea {
module {
excludeDirs.add(file(".kotlin"))
@@ -69,6 +81,10 @@ dependencies {
}
}
intellijPlatform {
buildSearchableOptions.set(true)
}
tasks.test {
useJUnit()
}
+1 -4
View File
@@ -3,12 +3,9 @@ val ideaVersion: String by project
dependencies {
implementation(project(":base"))
runtimeOnly(project(":rider")) // Support for CLion Nova.
intellijPlatform {
clion(ideaVersion)
bundledPlugin("com.intellij.clion")
bundledPlugin("org.jetbrains.plugins.clion.radler")
compatiblePlugin("com.intellij.cidr.lang")
}
}
+1 -1
View File
@@ -8,6 +8,6 @@ dependencies {
useInstaller = false
}
bundledModule("intellij.rider.cpp.core.languages")
bundledModule("intellij.rider.languages")
}
}
@@ -1,13 +1,10 @@
<idea-plugin>
<extensions defaultExtensionNs="com.chylex.coloredbrackets">
<bracePairProvider language="C++"
implementationClass="com.chylex.intellij.coloredbrackets.provider.CppBracePairProvider" />
<bracePairProvider language="C#"
implementationClass="com.chylex.intellij.coloredbrackets.provider.CSharpBracePairProvider" />
</extensions>
<extensions defaultExtensionNs="com.intellij">
<highlightVisitor implementation="com.chylex.intellij.coloredbrackets.visitor.CppRainbowVisitor" />
<highlightVisitor implementation="com.chylex.intellij.coloredbrackets.visitor.CSharpRainbowVisitor" />
</extensions>
</idea-plugin>
+2 -2
View File
@@ -2,8 +2,8 @@ rootProject.name = "ColoredBrackets"
pluginManagement {
plugins {
kotlin("jvm") version "2.2.20"
id("org.jetbrains.intellij.platform") version "2.16.0"
kotlin("jvm") version "2.4.10"
id("org.jetbrains.intellij.platform") version "2.18.1"
}
}