1
0
mirror of https://github.com/chylex/IntelliJ-Rainbow-Brackets.git synced 2026-06-14 07:02:29 +02:00

Compare commits

...

4 Commits

87 changed files with 90 additions and 109 deletions

View File

@@ -17,8 +17,11 @@
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<ExternalSystemDebugDisabled>false</ExternalSystemDebugDisabled>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<GradleProfilingDisabled>false</GradleProfilingDisabled>
<GradleCoverageDisabled>false</GradleCoverageDisabled>
<method v="2" />
</configuration>
</component>
</component>

View File

@@ -10,15 +10,18 @@
</option>
<option name="taskNames">
<list>
<option value=":runIde" />
<option value=":base:runIde" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<ExternalSystemDebugDisabled>false</ExternalSystemDebugDisabled>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<GradleProfilingDisabled>false</GradleProfilingDisabled>
<GradleCoverageDisabled>false</GradleCoverageDisabled>
<method v="2" />
</configuration>
</component>

View File

@@ -17,8 +17,11 @@
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<ExternalSystemDebugDisabled>false</ExternalSystemDebugDisabled>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<GradleProfilingDisabled>false</GradleProfilingDisabled>
<GradleCoverageDisabled>false</GradleCoverageDisabled>
<method v="2" />
</configuration>
</component>
</component>

View File

@@ -1,8 +0,0 @@
val ideaVersion: String by project
dependencies {
intellijPlatform {
@Suppress("DEPRECATION")
intellijIdeaUltimate(ideaVersion)
}
}

40
base/build.gradle.kts Normal file
View File

@@ -0,0 +1,40 @@
import org.jetbrains.intellij.platform.gradle.TestFrameworkType
import org.jetbrains.intellij.platform.gradle.extensions.excludeCoroutines
import org.jetbrains.intellij.platform.gradle.extensions.excludeKotlinStdlib
val ideaVersion: String by project
dependencies {
intellijPlatform {
@Suppress("DEPRECATION")
intellijIdeaUltimate(ideaVersion)
bundledPlugin("JavaScript")
bundledPlugin("com.intellij.css")
bundledPlugin("com.intellij.database")
bundledPlugin("com.intellij.java")
bundledPlugin("org.intellij.groovy")
bundledPlugin("org.intellij.plugins.markdown")
bundledPlugin("org.jetbrains.kotlin")
bundledPlugin("org.jetbrains.plugins.yaml")
compatiblePlugin("Dart")
compatiblePlugin("PythonCore")
compatiblePlugin("com.jetbrains.php")
compatiblePlugin("com.jetbrains.plugins.jade")
compatiblePlugin("com.jetbrains.sh")
compatiblePlugin("org.intellij.scala")
compatiblePlugin("org.jetbrains.plugins.go-template")
compatiblePlugin("org.jetbrains.plugins.ruby")
testFramework(TestFrameworkType.Platform)
testFramework(TestFrameworkType.Plugin.Java)
testFramework(TestFrameworkType.Plugin.JavaScript)
}
testImplementation("junit:junit:4.13.2")
testImplementation("io.kotest:kotest-assertions-core:5.8.0") {
excludeKotlinStdlib()
excludeCoroutines()
}
}

View File

@@ -6,9 +6,7 @@ import com.chylex.intellij.coloredbrackets.settings.RainbowSettings
import com.chylex.intellij.coloredbrackets.util.memoizedFileExtension
import com.intellij.codeInsight.daemon.impl.HighlightVisitor
import com.intellij.codeInsight.daemon.impl.analysis.HighlightInfoHolder
import com.intellij.ide.plugins.PluginManagerCore
import com.intellij.openapi.editor.colors.EditorColorsManager
import com.intellij.openapi.extensions.PluginId
import com.intellij.openapi.util.TextRange
import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiDocumentManager
@@ -26,8 +24,7 @@ abstract class RainbowHighlightVisitor : HighlightVisitor {
return settings.isRainbowEnabled &&
checkForBigFile(file) &&
!settings.languageBlacklist.contains(file.fileType.name) &&
!settings.languageBlacklist.contains(memoizedFileExtension(file.name)) &&
fileIsNotHaskellOrIntelliJHaskellPluginNotEnabled(file.fileType.name)
!settings.languageBlacklist.contains(memoizedFileExtension(file.name))
}
final override fun analyze(file: PsiFile, updateWholeFile: Boolean, holder: HighlightInfoHolder, action: Runnable): Boolean {
@@ -84,19 +81,11 @@ abstract class RainbowHighlightVisitor : HighlightVisitor {
}
companion object {
private val isIntelliJHaskellEnabled: Boolean by lazy {
PluginManagerCore.getPlugin(
PluginId.getId("intellij.haskell")
)?.isEnabled ?: false
}
fun checkForBigFile(file: PsiFile): Boolean =
!(RainbowSettings.instance.doNOTRainbowifyBigFiles &&
file.getLineCount() > RainbowSettings.instance.bigFilesLinesThreshold)
private fun fileIsNotHaskellOrIntelliJHaskellPluginNotEnabled(fileType: String) =
fileType != "Haskell" || !isIntelliJHaskellEnabled
private fun PsiElement.getLineCount(): Int {
try {
val doc = containingFile?.let { PsiDocumentManager.getInstance(project).getDocument(it) }

View File

@@ -1,12 +1,12 @@
<idea-plugin>
<extensions defaultExtensionNs="com.chylex.coloredbrackets">
<bracePairProvider language="kotlin"
implementationClass="com.chylex.intellij.coloredbrackets.provider.KotlinBracePairProvider" />
</extensions>
<extensions defaultExtensionNs="com.intellij">
<annotator language="kotlin"
implementationClass="com.chylex.intellij.coloredbrackets.annotator.KotlinLambdaExpressionArrowAnnotator" />
<annotator language="kotlin"
implementationClass="com.chylex.intellij.coloredbrackets.annotator.KotlinLabelAnnotator" />
</extensions>
<extensions defaultExtensionNs="com.chylex.coloredbrackets">
<bracePairProvider language="kotlin"
implementationClass="com.chylex.intellij.coloredbrackets.provider.KotlinBracePairProvider" />
</extensions>
</idea-plugin>

View File

@@ -43,26 +43,23 @@
]]></change-notes>
<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="cpp-nova-brackets.xml">org.jetbrains.plugins.clion.radler</depends>
<depends optional="true" config-file="cpp-rider-brackets.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>
<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-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>
<depends optional="true" config-file="plugin-jade.xml">com.jetbrains.plugins.jade</depends>
<depends optional="true" config-file="plugin-javascript.xml">JavaScript</depends>
<depends optional="true" config-file="plugin-kotlin.xml">org.jetbrains.kotlin</depends>
<depends optional="true" config-file="plugin-php.xml">com.jetbrains.php</depends>
<depends optional="true" config-file="plugin-python.xml">com.intellij.modules.python</depends>
<depends optional="true" config-file="plugin-rider.xml">com.intellij.modules.rider</depends>
<depends optional="true" config-file="plugin-sh.xml">com.jetbrains.sh</depends>
<depends optional="true" config-file="plugin-sql.xml">com.intellij.database</depends>
<extensionPoints>
<extensionPoint name="bracePairProvider" beanClass="com.intellij.lang.LanguageExtensionPoint" dynamic="true">
<with attribute="implementationClass"
implements="com.chylex.intellij.coloredbrackets.provider.BracePairProvider" />
<with attribute="implementationClass" implements="com.chylex.intellij.coloredbrackets.provider.BracePairProvider" />
</extensionPoint>
</extensionPoints>
@@ -71,12 +68,9 @@
<highlightVisitor implementation="com.chylex.intellij.coloredbrackets.visitor.XmlRainbowVisitor" />
<applicationConfigurable instance="com.chylex.intellij.coloredbrackets.settings.RainbowConfigurable" displayName="Colored Brackets" parentId="appearance" />
<applicationService
serviceImplementation="com.chylex.intellij.coloredbrackets.settings.RainbowSettings" />
<colorAndFontPanelFactory
implementation="com.chylex.intellij.coloredbrackets.settings.RainbowColorsPageFactory" />
<colorAndFontDescriptorProvider
implementation="com.chylex.intellij.coloredbrackets.settings.RainbowColorsPageFactory" />
<applicationService serviceImplementation="com.chylex.intellij.coloredbrackets.settings.RainbowSettings" />
<colorAndFontPanelFactory implementation="com.chylex.intellij.coloredbrackets.settings.RainbowColorsPageFactory" />
<colorAndFontDescriptorProvider implementation="com.chylex.intellij.coloredbrackets.settings.RainbowColorsPageFactory" />
<additionalTextAttributes scheme="Default" file="colorSchemes/rainbow-color-default.xml" />
<additionalTextAttributes scheme="Darcula" file="colorSchemes/rainbow-color-default-darcula.xml" />

View File

@@ -1,7 +1,5 @@
@file:Suppress("ConvertLambdaToReference")
import org.jetbrains.intellij.platform.gradle.TestFrameworkType
plugins {
kotlin("jvm")
id("org.jetbrains.intellij.platform")
@@ -10,7 +8,7 @@ plugins {
group = "com.chylex.intellij.coloredbrackets"
version = "1.3.0"
val ideaVersion = "2023.3"
val ideaVersion = "2025.3"
allprojects {
apply(plugin = "org.jetbrains.kotlin.jvm")
@@ -31,7 +29,7 @@ allprojects {
intellijPlatform {
pluginConfiguration {
ideaVersion {
sinceBuild.set("233")
sinceBuild.set("253")
untilBuild.set(provider { null })
}
}
@@ -62,40 +60,14 @@ idea {
}
dependencies {
project(":api")
intellijPlatform {
@Suppress("DEPRECATION")
intellijIdeaUltimate(ideaVersion)
bundledPlugin("JavaScript")
bundledPlugin("com.intellij.css")
bundledPlugin("com.intellij.database")
bundledPlugin("com.intellij.java")
bundledPlugin("org.intellij.groovy")
bundledPlugin("org.intellij.plugins.markdown")
bundledPlugin("org.jetbrains.kotlin")
bundledPlugin("org.jetbrains.plugins.yaml")
plugin("Dart", "233.11799.172") // https://plugins.jetbrains.com/plugin/6351-dart/versions/stable
plugin("PythonCore", "233.11799.300") // https://plugins.jetbrains.com/plugin/631-python/versions
plugin("com.jetbrains.php", "233.11799.300") // https://plugins.jetbrains.com/plugin/6610-php/versions
plugin("com.jetbrains.sh", "233.11799.165") // https://plugins.jetbrains.com/plugin/13122-shell-script/versions
plugin("org.intellij.scala", "2023.3.19") // https://plugins.jetbrains.com/plugin/1347-scala/versions
plugin("org.jetbrains.plugins.go-template", "233.11799.172") // https://plugins.jetbrains.com/plugin/10581-go-template/versions
plugin("org.jetbrains.plugins.ruby", "233.11799.300") // https://plugins.jetbrains.com/plugin/1293-ruby/versions
testFramework(TestFrameworkType.Plugin.Java)
pluginComposedModule(implementation(project(":api")))
pluginComposedModule(implementation(project(":base")))
pluginComposedModule(implementation(project(":clion")))
pluginComposedModule(implementation(project(":rider")))
}
testImplementation("junit:junit:4.13.2")
testImplementation("io.kotest:kotest-assertions-core:5.8.0") {
exclude(group = "org.jetbrains.kotlin")
}
}
tasks.test {

View File

@@ -1,12 +1,12 @@
val ideaVersion: String by project
dependencies {
implementation(project(":api"))
implementation(project(":base"))
intellijPlatform {
clion(ideaVersion)
bundledPlugin("com.intellij.clion")
// bundledPlugin("org.jetbrains.plugins.clion.radler") // Only in 2024.1 or newer. Worked around by only including the .xml file, and taking the implementation from Rider.
bundledPlugin("org.jetbrains.plugins.clion.radler")
}
}

View File

@@ -1,11 +1,13 @@
val ideaVersion: String by project
dependencies {
implementation(project(":api"))
implementation(project(":base"))
intellijPlatform {
rider(ideaVersion) {
useInstaller = false
}
bundledModule("intellij.rider.cpp.core.languages")
}
}

View File

@@ -1,10 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="com.chylex.coloredbrackets">
<bracePairProvider language="C++"
implementationClass="com.chylex.intellij.coloredbrackets.provider.CppBracePairProvider" />
</extensions>
<extensions defaultExtensionNs="com.intellij">
<highlightVisitor implementation="com.chylex.intellij.coloredbrackets.visitor.CppRainbowVisitor" />
</extensions>
</idea-plugin>

View File

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

View File

@@ -1,10 +1,13 @@
<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>

View File

@@ -2,11 +2,11 @@ rootProject.name = "ColoredBrackets"
pluginManagement {
plugins {
kotlin("jvm") version "1.9.21"
id("org.jetbrains.intellij.platform") version "2.9.0"
kotlin("jvm") version "2.2.20"
id("org.jetbrains.intellij.platform") version "2.11.0"
}
}
include("api")
include("clion")
include("rider")
include(":base")
include(":clion")
include(":rider")

View File

@@ -1,5 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<annotator language="Haskell" implementationClass="com.chylex.intellij.coloredbrackets.annotator.RainbowAnnotator" />
</extensions>
</idea-plugin>