diff --git a/bin/idea.properties b/bin/idea.properties index d1ee5b74a939..706970c5b400 100644 --- a/bin/idea.properties +++ b/bin/idea.properties @@ -1,33 +1,33 @@ -# Set up IDEA_PROPERTIES environment variable to specify custom location of this properties file like -# SET IDEA_PROPERTIES=c:\ideaconfig\idea.properties -# before launching idea. +# Set up @@product_uc@@_PROPERTIES environment variable to specify custom location of this properties file like +# SET @@product_uc@@_PROPERTIES=c:\config\idea.properties +# before launching IDE. # If not specified it is searched according following sequence (first successful is used). # 1. ${user.home} # 2. ${idea.home}/bin -# Use ${idea.home} macro to specify location relative to IDEA installation home +# Use ${idea.home} macro to specify location relative to IDE installation home # Also use ${xxx} where xxx is any java property (including defined in previous lines of this file) to refer to its value # Note for Windows users: please make sure you're using forward slashes. I.e. c:/idea/system #--------------------------------------------------------------------- -# Uncomment this option if you want to customize path to IDEA config folder. Make sure you're using forward slashes +# Uncomment this option if you want to customize path to IDE config folder. Make sure you're using forward slashes #--------------------------------------------------------------------- -# idea.config.path=${user.home}/.IdeaIC/config +# idea.config.path=${user.home}/.@@settings_dir@@/config #--------------------------------------------------------------------- -# Uncomment this option if you want to customize path to IDEA system folder. Make sure you're using forward slashes +# Uncomment this option if you want to customize path to IDE system folder. Make sure you're using forward slashes #--------------------------------------------------------------------- -# idea.system.path=${user.home}/.IdeaIC/system +# idea.system.path=${user.home}/.@@settings_dir@@/system #--------------------------------------------------------------------- # Uncomment this option if you want to customize path to user installed plugins folder. Make sure you're using forward slashes #--------------------------------------------------------------------- -# idea.plugins.path=${user.home}/.IdeaIC/config/plugins +# idea.plugins.path=${user.home}/.@@settings_dir@@/config/plugins #--------------------------------------------------------------------- -# Uncomment this option if you want to customize path to IDEA logs folder. Make sure you're using forward slashes. +# Uncomment this option if you want to customize path to IDE logs folder. Make sure you're using forward slashes. #--------------------------------------------------------------------- -# idea.log.path=${user.home}/.IdeaIC/system/log +# idea.log.path=${user.home}/.@@settings_dir@@/system/log #--------------------------------------------------------------------- # Maximum file size (kilobytes) IDE should provide code assistance for. @@ -37,6 +37,31 @@ #--------------------------------------------------------------------- idea.max.intellisense.filesize=2500 +#--------------------------------------------------------------------- +# This option controls console cyclic buffer: keeps the console output size not higher than the specified buffer size (Kb). +# Older lines are deleted. In order to disable cycle buffer use idea.cycle.buffer.size=disabled +#--------------------------------------------------------------------- +idea.cycle.buffer.size=1024 + +#--------------------------------------------------------------------- +# Configure if a special launcher should be used when running processes from within IDE. +# Using Launcher enables "soft exit" and "thread dump" features +#--------------------------------------------------------------------- +idea.no.launcher=false + +#--------------------------------------------------------------------- +# To avoid too long classpath +#--------------------------------------------------------------------- +idea.dynamic.classpath=false + +#--------------------------------------------------------------------- +# Uncomment this property to prevent IDE from throwing ProcessCanceledException when user activity +# detected. This option is only useful for plugin developers, while debugging PSI related activities +# performed in background error analysis thread. +# DO NOT UNCOMMENT THIS UNLESS YOU'RE DEBUGGING IDE ITSELF. Significant slowdowns and lockups will happen otherwise. +#--------------------------------------------------------------------- +#idea.ProcessCanceledException=disabled + #--------------------------------------------------------------------- # There are two possible values of idea.popup.weight property: "heavy" and "medium". # If you have WM configured as "Focus follows mouse with Auto Raise" then you have to @@ -62,34 +87,11 @@ sun.java2d.noddraw=true #--------------------------------------------------------------------- sun.java2d.d3d=false -#--------------------------------------------------------------------- -# IDEA copies library jars to prevent their locking. If copying is not desirable, specify "true" -#--------------------------------------------------------------------- -idea.jars.nocopy=false - -#--------------------------------------------------------------------- -# Configure if a special launcher should be used when running processes from within IDEA. -# Using Launcher enables "soft exit" and "thread dump" features -#--------------------------------------------------------------------- -idea.no.launcher=false - -#--------------------------------------------------------------------- -# The VM option value to be used start the JVM in debug mode. -# Some environments define it in a different way (-XXdebug in Oracle VM) -#--------------------------------------------------------------------- -idea.xdebug.key=-Xdebug - #--------------------------------------------------------------------- # Workaround for slow scrolling in JDK6 #--------------------------------------------------------------------- swing.bufferPerWindow=false -#--------------------------------------------------------------------- -# This option controls console cyclic buffer: keeps the console output size not higher than the specified buffer size (Kb). -# Older lines are deleted. In order to disable cycle buffer use idea.cycle.buffer.size=disabled -#--------------------------------------------------------------------- -idea.cycle.buffer.size=1024 - #--------------------------------------------------------------------- # Removing this property may lead to editor performance degradation under X Window. #--------------------------------------------------------------------- diff --git a/build/conf/ideaCE.properties b/build/conf/ideaCE.properties new file mode 100644 index 000000000000..81afaed35094 --- /dev/null +++ b/build/conf/ideaCE.properties @@ -0,0 +1,11 @@ + +#--------------------------------------------------------------------- +# IDE copies library jars to prevent their locking. If copying is not desirable, specify "true" +#--------------------------------------------------------------------- +idea.jars.nocopy=false + +#--------------------------------------------------------------------- +# The VM option value to be used start the JVM in debug mode. +# Some JREs define it in a different way (-XXdebug in Oracle VM) +#--------------------------------------------------------------------- +idea.xdebug.key=-Xdebug diff --git a/build/scripts/dist.gant b/build/scripts/dist.gant index b94649c9a1c1..a7102c1d3787 100644 --- a/build/scripts/dist.gant +++ b/build/scripts/dist.gant @@ -91,14 +91,16 @@ def layoutAll(Map args, String home, String out, Paths _paths = null) { layout(paths.distAll) { dir("bin") { - fileset(dir: "${home}/bin") { include(name: "*.*") } + fileset(dir: "${home}/bin") { + include(name: "*.*") + } } dir("license") { fileset(dir: "${home}/license") } fileset(file: "${home}/LICENSE.txt") } - patchPropertiesFile(paths.distAll) + patchPropertiesFile(paths.distAll, args + [appendices: ["$home/build/conf/ideaCE.properties"]]) layoutWin(args, home, paths) layoutMac(args, home, paths) @@ -145,8 +147,8 @@ private layoutMac(Map _args, String home, Paths paths) { CFBundleTypeRole Editor - """ - args."idea.properties.path" = "$home/bin/idea.properties" +""" + args."idea.properties.path" = "${paths.distAll}/bin/idea.properties" args.mac_no_yjp = true layoutMacApp(target, home, args) } diff --git a/build/scripts/utils.gant b/build/scripts/utils.gant index 8ec747692ff6..bb785ed1d630 100644 --- a/build/scripts/utils.gant +++ b/build/scripts/utils.gant @@ -252,7 +252,6 @@ binding.setVariable("layoutMacApp", { String path, String ch, Map args -> String version = isEap() ? "EAP $args.buildNumber" : "${p("component.version.major")}.${p("component.version.minor")}" - args.get("idea.properties", [:])["idea.fatal.error.notification"] = isEap() ? "enabled" : "disabled"; String properties = readIdeaProperties(args) String classPath = classPathLibs.collect {"\$APP_PACKAGE/lib/${it}" }.join(":") @@ -376,9 +375,12 @@ binding.setVariable("unixVMOptions", { String target, String name -> binding.setVariable("unixReadme", { String target, String home, Map args -> String fullName = args.fullName != null ? args.fullName : p("component.names.fullname") + String settings_dir = args.system_selector.replaceFirst("\\d+", "") copyAndPatchFile("$home/build/Install-Linux-tar.txt", "$target/Install-Linux-tar.txt", - ["product_full": fullName, "product": p("component.names.product").toLowerCase(), - "system_selector": args.system_selector, "settings_dir": fullName.replace(" ", "")], "@@") + ["product_full": fullName, + "product": p("component.names.product").toLowerCase(), + "system_selector": args.system_selector, + "settings_dir": settings_dir], "@@") ant.fixcrlf(file: "$target/bin/Install-Linux-tar.txt", eol: "unix") }) @@ -405,12 +407,24 @@ binding.setVariable("forceDelete", { String dirPath -> } }) -binding.setVariable("copyPropertiesFile", { String source, String target -> - ant.copy(file: source, tofile: "$target/bin/idea.properties", overwrite: "true") - patchPropertiesFile(target) -}) +binding.setVariable("patchPropertiesFile", { String target, Map args = [:] -> + String file = "$target/bin/idea.properties" + + if (args.appendices != null) { + ant.concat(destfile: file, append: true) { + args.appendices.each { + fileset(file: it) + } + } + } + + String product_uc = args.product_uc != null ? args.product_uc : p("component.names.product").toUpperCase() + String settings_dir = args.system_selector.replaceFirst("\\d+", "") + ant.replace(file: file) { + replacefilter(token: "@@product_uc@@", value: product_uc) + replacefilter(token: "@@settings_dir@@", value: settings_dir) + } -binding.setVariable("patchPropertiesFile", { String target -> String message = (isEap() ? """ #----------------------------------------------------------------------- # Change to 'disabled' if you don't want to receive instant visual notifications @@ -425,7 +439,7 @@ idea.fatal.error.notification=enabled #----------------------------------------------------------------------- idea.fatal.error.notification=disabled """) - ant.echo(file: "$target/bin/idea.properties", append: "true", message: message) + ant.echo(file: file, append: true, message: message) }) binding.setVariable("zipSources", { String home, String targetDir -> @@ -458,8 +472,6 @@ binding.setVariable("zipSources", { String home, String targetDir -> * "idea.properties" : ["idea.max.intellisense.filesize" : 3000, * "idea.cycle.buffer.size" : null, * "idea.is.internal" : true ]) - -layoutMacApp("idea.properties.path" : "/Users/romeo/work/git/IDEA_master/ruby/build/idea.properties") * @param args * @return text xml properties description in xml */ @@ -508,10 +520,10 @@ private String readIdeaProperties(Map args) { ideaProperties.each { key, value -> if (value != null) { buff.append( - """ +""" $key $value - """ +""" ) } } @@ -521,6 +533,10 @@ private String readIdeaProperties(Map args) { binding.setVariable("buildWinZip", { String zipPath, List paths -> project.stage(".win.zip") + paths.each { + ant.fixcrlf(file: "$it/bin/idea.properties", eol: "dos") + } + ant.zip(zipfile: zipPath) { paths.each { fileset(dir: it) @@ -566,6 +582,10 @@ binding.setVariable("buildMacZip", { String zipRoot, String zipPath, List paths, binding.setVariable("buildTarGz", { String tarRoot, String tarPath, List paths -> project.stage(".tar.gz") + paths.each { + ant.fixcrlf(file: "$it/bin/idea.properties", eol: "dos") + } + ant.tar(tarfile: tarPath) { paths.each { tarfileset(dir: it, prefix: tarRoot) {