mirror of
https://github.com/chylex/IntelliJ-Rainbow-Brackets.git
synced 2026-06-14 07:02:29 +02:00
Compare commits
4 Commits
a02e7f0916
...
6628c25dd6
| Author | SHA1 | Date | |
|---|---|---|---|
|
6628c25dd6
|
|||
|
8fb43ce885
|
|||
|
c5a509e513
|
|||
|
bfc7773a1d
|
3
.idea/runConfigurations/Run_CLion.xml
generated
3
.idea/runConfigurations/Run_CLion.xml
generated
@@ -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>
|
||||
5
.idea/runConfigurations/Run_IDEA.xml
generated
5
.idea/runConfigurations/Run_IDEA.xml
generated
@@ -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>
|
||||
3
.idea/runConfigurations/Run_Rider.xml
generated
3
.idea/runConfigurations/Run_Rider.xml
generated
@@ -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>
|
||||
@@ -1,8 +0,0 @@
|
||||
val ideaVersion: String by project
|
||||
|
||||
dependencies {
|
||||
intellijPlatform {
|
||||
@Suppress("DEPRECATION")
|
||||
intellijIdeaUltimate(ideaVersion)
|
||||
}
|
||||
}
|
||||
40
base/build.gradle.kts
Normal file
40
base/build.gradle.kts
Normal 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()
|
||||
}
|
||||
}
|
||||
@@ -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) }
|
||||
@@ -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>
|
||||
@@ -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" />
|
||||
@@ -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 {
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
@@ -1,5 +0,0 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<annotator language="C#" implementationClass="com.chylex.intellij.coloredbrackets.annotator.RainbowAnnotator" />
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -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>
|
||||
@@ -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")
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<annotator language="Haskell" implementationClass="com.chylex.intellij.coloredbrackets.annotator.RainbowAnnotator" />
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
Reference in New Issue
Block a user