mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-04 17:20:55 +07:00
OPENIDE #15 Correct collaboration of two or more IDEs based on IntelliJ IDEA
This commit is contained in:
2
.idea/copyright/apache_2_license.xml
generated
2
.idea/copyright/apache_2_license.xml
generated
@@ -1,6 +1,6 @@
|
|||||||
<component name="CopyrightManager">
|
<component name="CopyrightManager">
|
||||||
<copyright>
|
<copyright>
|
||||||
<option name="notice" value="Copyright 2000-&#36;today.year JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license." />
|
<option name="notice" value="Copyright (c) Haulmont &#36;today.year. All Rights Reserved. Use is subject to license terms." />
|
||||||
<option name="keyword" value="Copyright" />
|
<option name="keyword" value="Copyright" />
|
||||||
<option name="allowReplaceKeyword" value="JetBrains" />
|
<option name="allowReplaceKeyword" value="JetBrains" />
|
||||||
<option name="myName" value="apache 2 license" />
|
<option name="myName" value="apache 2 license" />
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ internal suspend fun createCommunityBuildContext(
|
|||||||
projectHome: Path = COMMUNITY_ROOT.communityRoot,
|
projectHome: Path = COMMUNITY_ROOT.communityRoot,
|
||||||
): BuildContext {
|
): BuildContext {
|
||||||
return BuildContextImpl.createContext(projectHome = projectHome,
|
return BuildContextImpl.createContext(projectHome = projectHome,
|
||||||
productProperties = IdeaCommunityProperties(COMMUNITY_ROOT.communityRoot),
|
productProperties = OpenIdeProperties(COMMUNITY_ROOT.communityRoot),
|
||||||
setupTracer = true,
|
setupTracer = true,
|
||||||
options = options)
|
options = options)
|
||||||
}
|
}
|
||||||
|
|||||||
82
build/src/org/jetbrains/intellij/build/OpenIdeProperties.kt
Normal file
82
build/src/org/jetbrains/intellij/build/OpenIdeProperties.kt
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
// Copyright (c) Haulmont 2024. All Rights Reserved.
|
||||||
|
// Use is subject to license terms.
|
||||||
|
package org.jetbrains.intellij.build
|
||||||
|
|
||||||
|
import org.jetbrains.intellij.build.kotlin.KotlinBinaries
|
||||||
|
import java.nio.file.Path
|
||||||
|
|
||||||
|
open class OpenIdeProperties(val communityHomeDir: Path): IdeaCommunityProperties(communityHomeDir) {
|
||||||
|
|
||||||
|
override val baseFileName: String = "openide"
|
||||||
|
|
||||||
|
override fun createWindowsCustomizer(projectHome: String): WindowsDistributionCustomizer = CommunityWindowsDistributionCustomizer()
|
||||||
|
override fun createLinuxCustomizer(projectHome: String): LinuxDistributionCustomizer = CommunityLinuxDistributionCustomizer()
|
||||||
|
override fun createMacCustomizer(projectHome: String): MacDistributionCustomizer = CommunityMacDistributionCustomizer()
|
||||||
|
|
||||||
|
protected open inner class CommunityWindowsDistributionCustomizer : WindowsDistributionCustomizer() {
|
||||||
|
init {
|
||||||
|
icoPath = "${communityHomeDir}/build/conf/ideaCE/win/images/idea_CE.ico"
|
||||||
|
icoPathForEAP = "${communityHomeDir}/build/conf/ideaCE/win/images/idea_CE_EAP.ico"
|
||||||
|
installerImagesPath = "${communityHomeDir}/build/conf/ideaCE/win/images"
|
||||||
|
fileAssociations = listOf("java", "gradle", "groovy", "kt", "kts", "pom")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getFullNameIncludingEdition(appInfo: ApplicationInfoProperties) = "OpenIDE"
|
||||||
|
|
||||||
|
override fun getFullNameIncludingEditionAndVendor(appInfo: ApplicationInfoProperties) = "OpenIDE"
|
||||||
|
}
|
||||||
|
|
||||||
|
protected open inner class CommunityLinuxDistributionCustomizer : LinuxDistributionCustomizer() {
|
||||||
|
init {
|
||||||
|
iconPngPath = "${communityHomeDir}/build/conf/ideaCE/linux/images/icon_CE_128.png"
|
||||||
|
iconPngPathForEAP = "${communityHomeDir}/build/conf/ideaCE/linux/images/icon_CE_EAP_128.png"
|
||||||
|
snapName = "open-ide"
|
||||||
|
snapDescription =
|
||||||
|
"The most intelligent Java IDE. Every aspect of OpenIDE is specifically designed to maximize developer productivity. " +
|
||||||
|
"Together, powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience."
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getRootDirectoryName(appInfo: ApplicationInfoProperties, buildNumber: String) = "openIDE-$buildNumber"
|
||||||
|
|
||||||
|
override fun generateExecutableFilesPatterns(context: BuildContext, includeRuntime: Boolean, arch: JvmArchitecture): Sequence<String> {
|
||||||
|
return super.generateExecutableFilesPatterns(context, includeRuntime, arch)
|
||||||
|
.plus(KotlinBinaries.kotlinCompilerExecutables)
|
||||||
|
.filterNot { it == "plugins/**/*.sh" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected open inner class CommunityMacDistributionCustomizer : MacDistributionCustomizer() {
|
||||||
|
init {
|
||||||
|
icnsPath = "${communityHomeDir}/build/conf/ideaCE/mac/images/idea.icns"
|
||||||
|
icnsPathForEAP = "${communityHomeDir}/build/conf/ideaCE/mac/images/communityEAP.icns"
|
||||||
|
urlSchemes = listOf("idea")
|
||||||
|
associateIpr = true
|
||||||
|
fileAssociations = FileAssociation.from("java", "groovy", "kt", "kts")
|
||||||
|
bundleIdentifier = "ru.openide"
|
||||||
|
dmgImagePath = "${communityHomeDir}/build/conf/ideaCE/mac/images/dmg_background.tiff"
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getRootDirectoryName(appInfo: ApplicationInfoProperties, buildNumber: String): String {
|
||||||
|
return if (appInfo.isEAP) {
|
||||||
|
"OpenIDE ${appInfo.majorVersion}.${appInfo.minorVersionMainPart} EAP.app"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
"OpenIDE.app"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun generateExecutableFilesPatterns(context: BuildContext, includeRuntime: Boolean, arch: JvmArchitecture): Sequence<String> {
|
||||||
|
return super.generateExecutableFilesPatterns(context, includeRuntime, arch)
|
||||||
|
.plus(KotlinBinaries.kotlinCompilerExecutables)
|
||||||
|
.filterNot { it == "plugins/**/*.sh" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getSystemSelector(appInfo: ApplicationInfoProperties, buildNumber: String): String {
|
||||||
|
return "OpenIDE${appInfo.majorVersion}.${appInfo.minorVersionMainPart}"
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getBaseArtifactName(appInfo: ApplicationInfoProperties, buildNumber: String) = "openIDE-$buildNumber"
|
||||||
|
|
||||||
|
override fun getOutputDirectoryName(appInfo: ApplicationInfoProperties) = "open-ide"
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<logo url="/idea_community_logo.png"/>
|
<logo url="/idea_community_logo.png"/>
|
||||||
<icon svg="/idea-ce.svg" svg-small="/idea-ce_16.svg"/>
|
<icon svg="/idea-ce.svg" svg-small="/idea-ce_16.svg"/>
|
||||||
<icon-eap svg="/idea-ce-eap.svg" svg-small="/idea-ce-eap_16.svg"/>
|
<icon-eap svg="/idea-ce-eap.svg" svg-small="/idea-ce-eap_16.svg"/>
|
||||||
<names product="IDEA" fullname="IntelliJ IDEA" edition="Community Edition" script="idea" motto="Capable and Ergonomic IDE for JVM"/>
|
<names product="OpenIDE" fullname="OpenIDE" script="openide" motto="Capable and Ergonomic IDE for JVM"/>
|
||||||
|
|
||||||
<essential-plugin>com.intellij.java</essential-plugin>
|
<essential-plugin>com.intellij.java</essential-plugin>
|
||||||
<essential-plugin>com.intellij.java.ide</essential-plugin>
|
<essential-plugin>com.intellij.java.ide</essential-plugin>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
// Copyright (c) Haulmont 2024. All Rights Reserved.
|
||||||
|
// Use is subject to license terms.
|
||||||
package com.intellij.idea.customization.base
|
package com.intellij.idea.customization.base
|
||||||
|
|
||||||
import com.intellij.openapi.util.BuildNumber
|
import com.intellij.openapi.util.BuildNumber
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
// Copyright (c) Haulmont 2024. All Rights Reserved.
|
||||||
|
// Use is subject to license terms.
|
||||||
package com.intellij.util.io
|
package com.intellij.util.io
|
||||||
|
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
|
|||||||
Reference in New Issue
Block a user