From e475e60939fd50453d7a1e9b0b33af998a5ec06d Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 4 Jul 2012 14:26:58 +0200 Subject: [PATCH] thread-safe caches in optimized file managers --- .../compiler/server/BuildManager.java | 1 - .../jps/javac/OptimizedFileManager.java | 15 +- .../jps/javac/OptimizedFileManager17.java | 62 +++ jps/lib/optimizedFileManager.jar | Bin 20107 -> 22515 bytes .../src/misc/registry.properties | 476 +++++++++--------- 5 files changed, 307 insertions(+), 247 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java b/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java index 8ba5b70a2d71..b6e26e706010 100644 --- a/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java +++ b/java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java @@ -696,7 +696,6 @@ public class BuildManager implements ApplicationComponent{ if (ApplicationManager.getApplication().isUnitTestMode()) { cmdLine.addParameter("-Dtest.mode=true"); } - cmdLine.addParameter("-Djdt.compiler.useSingleThread=true"); final String shouldGenerateIndex = System.getProperty(GlobalOptions.GENERATE_CLASSPATH_INDEX_OPTION); if (shouldGenerateIndex != null) { diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager.java b/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager.java index 97180415b83c..18217abca394 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager.java @@ -18,6 +18,7 @@ import java.nio.CharBuffer; import java.nio.charset.*; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicReference; /** * WARNING: Loaded via reflection, do not delete @@ -337,7 +338,7 @@ class OptimizedFileManager extends DefaultFileManager { if (cb == null) { InputStream in = new FileInputStream(f); try { - ByteBuffer bb = makeByteBuffer(in); + final ByteBuffer bb = makeByteBuffer(in); JavaFileObject prev = log.useSource(this); try { cb = decode(bb, ignoreEncodingErrors); @@ -507,20 +508,18 @@ class OptimizedFileManager extends DefaultFileManager { } private static class ByteBufferCache { - private ByteBuffer cached; + private AtomicReference myCached = new AtomicReference(null); ByteBuffer get(int capacity) { if (capacity < 20480) { capacity = 20480; } - ByteBuffer result = (cached != null && cached.capacity() >= capacity) ? - (ByteBuffer)cached.clear() : - ByteBuffer.allocate(capacity + capacity>>1); - cached = null; - return result; + final ByteBuffer cached = myCached.getAndSet(null); + return (cached != null && cached.capacity() >= capacity) ? (ByteBuffer)cached.clear() : ByteBuffer.allocate(capacity + capacity>>1); } + void put(ByteBuffer x) { - cached = x; + myCached.set(x); } } private final ByteBufferCache myByteBufferCache = new ByteBufferCache(); diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java b/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java index 43ae5035077d..af04f6c37f17 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java @@ -19,6 +19,7 @@ import java.nio.CharBuffer; import java.nio.charset.CharsetDecoder; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicReference; /** * WARNING: Loaded via reflection, do not delete @@ -31,6 +32,7 @@ class OptimizedFileManager17 extends com.sun.tools.javac.file.JavacFileManager { private final Map myIsFile = new ConcurrentHashMap(); private final Map myDirectoryCache = new ConcurrentHashMap(); public static final File[] NULL_FILE_ARRAY = new File[0]; + private final Map> myContentCache = new ConcurrentHashMap>(); public OptimizedFileManager17() throws Throwable { super(new Context(), true, null); @@ -197,6 +199,66 @@ class OptimizedFileManager17 extends com.sun.tools.javac.file.JavacFileManager { return fileKinds.contains(getKind(name)); } + public CharBuffer getCachedContent(JavaFileObject file) { + final SoftReference r = myContentCache.get(file); + return r == null ? null : r.get(); + } + + public void cache(JavaFileObject file, CharBuffer cb) { + myContentCache.put(file, new SoftReference(cb)); + } + + public void flush() { + try { + super.flush(); + } + finally { + myContentCache.clear(); + } + } + + public ByteBuffer makeByteBuffer(InputStream in) throws IOException { + int limit = in.available(); + if (limit < 1024) { + limit = 1024; + } + ByteBuffer result = myByteBufferCache.get(limit); + int position = 0; + while (in.available() != 0) { + if (position >= limit) { + // expand buffer + result = ByteBuffer.allocate(limit <<= 1).put((ByteBuffer)result.flip()); + } + final int count = in.read(result.array(), position, limit - position); + if (count < 0) { + break; + } + result.position(position += count); + } + return (ByteBuffer)result.flip(); + } + + public void recycleByteBuffer(ByteBuffer bb) { + myByteBufferCache.put(bb); + } + + private static class ByteBufferCache { + private AtomicReference myCached = new AtomicReference(null); + + ByteBuffer get(int capacity) { + if (capacity < 20480) { + capacity = 20480; + } + final ByteBuffer cached = myCached.getAndSet(null); + return (cached != null && cached.capacity() >= capacity) ? (ByteBuffer)cached.clear() : ByteBuffer.allocate(capacity + capacity>>1); + } + + void put(ByteBuffer x) { + myCached.set(x); + } + } + private final ByteBufferCache myByteBufferCache = new ByteBufferCache(); + private class InputFileObject extends BaseFileObject { private String name; final File file; diff --git a/jps/lib/optimizedFileManager.jar b/jps/lib/optimizedFileManager.jar index 2f5fa66e4335d4fe730c138a7c920e5833b53fcc..abf36a723c988df17b96e948e4c3207f4fe2fc16 100644 GIT binary patch delta 19123 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 diff --git a/platform/platform-resources-en/src/misc/registry.properties b/platform/platform-resources-en/src/misc/registry.properties index 3eccb0251981..edbddf0c26a1 100644 --- a/platform/platform-resources-en/src/misc/registry.properties +++ b/platform/platform-resources-en/src/misc/registry.properties @@ -1,238 +1,238 @@ -localHistory.daysToKeep=5 -localHistory.daysToKeep.description=Specify how many working days changes should be remembered.\n\ - WARNING: Do not use local history as main version control since it may become corrupted if the IDE hangs. -undo.globalUndoLimit=10 -undo.documentUndoLimit=100 - -actionSystem.fixLostTyping=true -actionSystem.fixLostTyping.description=Redispatch events, lost between actions and dialog show/close -actionSystem.fixStickyFocusedWindows=true -actionSystem.fixNullFocusedComponent=true -actionSystem.noDefaultComponent=true -actionSystem.commandProcessingTimeout=30000 -actionSystem.commandProcessingTimeout.description=Timeout after which currently proccessed command is forcibly cancelled -actionSystem.typeAheadTimeBeforeDialog=2000 -actionSystem.typeAheadTimeBeforeDialog.description=If dialog shown as a result of some typing, all key types withing this time will be redispatched after dialog is closed -actionSystem.typeAheadTimeAfterPopupAction=500 -actionSystem.playback.autodelay=20 -actionSystem.playback.autodelay.description=Delay between events generated by the playback runner -actionSystem.playback.useDirectActionCall=true -actionSystem.playback.useTypingTargets=true -actionSystem.focusIdleTimeout=20 -actionSystem.mac.screenMenuNotUpdatedFix=false -actionSystem.keyGestures.enabled=false -actionSystem.keyGestureDblClickTime=500 -actionSystem.suspendFocusTransferIfApplicationInactive=true -actionSystem.noContextComponentWhileFocusTransfer=true -actionSystem.secondKeystrokeTimout=2000 -actionSystem.secondKeystrokeAutoPopupEnabled=false -actionSystem.secondKeystrokePopupTimeout=500 -actionSystem.keyGestureHoldTime=400 -actionSystem.autoSelectTimeout=1000 -actionSystem.quickAccessEnabled=false -actionSystem.quickAccessModifiers= -actionSystem.quickAccessShowSpotsTime=1500 -actionSystem.win.supressAlt=true -actionSystem.mouseGesturesEnabled=true -actionSystem.assertFocusAccessFromEdt=true - -ide.firstStartup=true -ide.debugMode=false -ide.debugMode.description=Record additonal information to make bug reports more informative -ide.debug.minProgressTime=0 -ide.forcedShowTooltip=alt -ide.forcedShowTooltip.description=Shortcut for forced show tooltip -ide.popup.dropShadow=false -ide.consumeKnownToolkitBugs=true -ide.highlight.match.in.selected.only=true -ide.lazyIconLoading=true -ide.checkDuplicateMnemonics=false -ide.checkDuplicateMnemonics.description=Check for duplicate mnemonics -ide.dnd.textHints=false -ide.max.recent.projects=25 - -ide.appIcon.progress=true -ide.appIcon.badge=true -ide.appIcon.requestAttention=true - -ide.windowSystem.hScrollChars=15 -ide.windowSystem.vScrollChars=5 -ide.windowSystem.focusAppOnStartup=true -ide.windowSystem.autoShowProcessPopup=false -ide.windowSystem.showListItemsPopup=true -ide.windowSystem.asyncSplitters=true -ide.windowSystem.showTooWindowButtonsSwitcher=true - -ide.tree.yeildingUiUpdate=true -ide.tree.showBusyIndicator=true -ide.tree.waitForReadyTimeout=250 -ide.tree.waitForReadySchedule=250 -ide.tree.clearOnHideTime=120000 -ide.tree.autoscrollToVCenter=true -ide.tree.ensureSelectionOnFocusGained=true -ide.tree.autoExpandMaxDepth=5 -ide.tree.expandRecursionDepth=50 -ide.tree.checkStructure=false -ide.tree.uiLockAttempt=250 -ide.tree.deferredicon.invalidates.cache=true - -ide.splitter.mouseZone=6 -ide.smart.horizontal.scrolling=true - -ide.tooltip.callout=true -ide.tooltip.mode=default -ide.tooltip.description=Available options are: default,system,graphite -ide.tooltip.animationCycle=150 -ide.tooltip.initialDelay=1200 -ide.tooltip.initialDelay.highlighter=150 -ide.tooltip.reshowDelay=500 -ide.tooltip.dismissDelay=4000 -ide.tooltip.initialReshowDelay=300 -ide.tooltip.autoDismissDeadZone=300 -ide.balloon.shadowEnabled=true -ide.balloon.shadow.size=15 - - -editor.balloonHints=true -editor.mouseSelectionStateResetTimeout=1000 -editor.mouseSelectionStateResetDeadzone=4 -editor.use.new.tabs=true -editor.smarterSelectionQuoting=true - -ide.showIndexRebuildMessage=false - -ide.tabbedPane.bufferedPaint=true -ide.tabbedPane.dragOutMultiplier=1.2 - -ide.mac.filechooser.showhidden.files=false -ide.mac.filechooser.native=true -ide.mac.message.dialogs.as.sheets=true -ide.mac.inplaceDialogMnemonicsFix=true -ide.mac.fix.dialog.showing=false -ide.mac.hide.cursor.when.typing=true -ide.mac.show.native.help=true -ide.mac.useNativeClipboard=false - -debugger.valueTooltipAutoShow=true -debugger.valueTooltipAutoShow.description=Auto show tooltip on mouse over -debugger.mayBringFrameToFrontOnBreakpoint=true -debugger.breakpoint.message.full.trace=false -debugger.breakpoint.message.full.trace.description='Log message to console' breakpoint action will out full stacktrace for the thread that hit the breakpoint -debugger.breakpoint.use.breakpoints.popup=true - -filesystem.useNative=true - -analyze.exceptions.on.the.fly=false -analyze.exceptions.on.the.fly.description=Automatically analyze clipboard on frame activation, and if there is a stacktrace calls Analyze Stacktrace - -compiler.perform.outputs.refresh.on.start=false -compiler.perform.outputs.refresh.on.start.description=Whether to perform initial FS refresh before compilation starts. Need this to detect external changes to output dirs - -compiler.max.static.constants.searches=3000 -compiler.max.static.constants.searches.description=If the number of changed compile time constants exceeds this value, make will start full-project rebuild - -# out-of-process build parameters - -#compiler.out-of-process.as-server=false -#compiler.out-of-process.as-server.description=Use implementation of out-of-process build as server process - -compiler.process.heap.size=700 -compiler.process.heap.size.description=Heap size value in MB for the build process - -compiler.process.32bit.vm.on.mac=true -compiler.process.32bit.vm.on.mac.description=Force -d32 VM option on Mac (recommended for faster startup and lower memory footprint) - -compiler.process.vm.options=-Xss2048k -compiler.process.vm.options.description=Additional options for the build process' VM - -compiler.process.use.memory.temp.cache=true -compiler.process.use.memory.temp.cache.description=Store temporary data in memory for faster compilation; requires larger server heap size - -compiler.process.use.external.javac=false -compiler.process.use.external.javac.description=Run javac compiler in a separate process (allows to run build process with smaller heap size) - -compiler.process.debug.port=-1 -#compiler.server.javac.debug.port=-1 - - -# parameters specific to server implementation -compiler.server.max.simultaneous.builds=1 -compiler.server.max.simultaneous.builds.description=The max number of simultaneous build sessions. Increasing this value may require larger server heap size - -compiler.server.ping.interval=5 -compiler.server.ping.interval.description=Interval in seconds between ping requests the IDE periodically sends to server. If server does not receive pings for some time, it shuts down. Specify -1 to disable this feature. - -# end of out-of-process build parameters - - -vcs.show.colored.annotations=true -vcs.showConsole=true - -psi.incremental.reparse.depth.limit=1000 -psi.viewer.selection.color=0,153,153 -psi.deferIconLoading=true - -find.search.in.project.files=false - -structureView.coalesceTime=500 - -keymap.show.alias.actions=false -frameworks.download.libraries.server.url=http://pluginsrepo-test:8080 -caches.indexerThreadsCount=-1 -vcs.show.history.numbers=true -navbar.updateMergeTime=250 -navbar.userActivityMergeTime=500 - -inspectionGadgets.telemetry.enabled=false - -jvmbugfix.mac.caccessibleLeak=true - -projectView.showHierarchyErrors=true -projectView.hide.dot.idea=true -show.live.templates.in.completion=false -documentation.component.editor.font=false - -ide.completion.middle.matching=true -ide.completion.middle.matching.description=Suggest items in completion that contain the entered string somewhere in the middle - -ide.goto.middle.matching=true -ide.goto.middle.matching.description=Suggest items in goto actions that contain the entered string somewhere in the middle - -ide.enable.toolwindow.stack=false - -change.signature.awesome.mode=true -change.signature.awesome.mode.description=Enables list view for change signature - -enable.groovy.hotswap=true -enable.groovy.hotswap.description=Whether IDEA should add a special java agent to the debugged process which allows to hot-swap Groovy changes in some cases -dump.threads.on.empty.lookup=false -dump.threads.on.empty.lookup.description=Whether IDEA should issue a thread dump when an empty completion lookup appears - -file.structure.tree.mode=true - -disable.toolwindow.overlayed=true -disable.toolwindow.overlayed.description=Disable transparent toolwindow stripes - -core.pooled.threads=20 - -editor.dumb.mode.available=true -enable.animation.on.dialogs=false -vcs.remote.management.ready=false -type.ahead.logging.enabled=false -fast.tree.expand.in.structure.view=false - -ide.use.nautilus3=true -ide.use.nautilus3.description=Use Nautilus if available - -ide.goto.implementation.show.interfaces=false -ide.goto.implementation.show.interfaces.description=Whether to show sub-interfaces when invoking Goto Implementation (Ctrl+Alt+B) on an interface - -ide.open.editors.asynchronously=true -ide.open.editors.asynchronously.description=Prepare editors in background thread -file.colors.in.commit.dialog=false - -testng.serialized.protocol.enabled=false -testng.skip.expected.exceptions=true -dark.laf.available=false - -actionSystem.force.alt.gr=false +localHistory.daysToKeep=5 +localHistory.daysToKeep.description=Specify how many working days changes should be remembered.\n\ + WARNING: Do not use local history as main version control since it may become corrupted if the IDE hangs. +undo.globalUndoLimit=10 +undo.documentUndoLimit=100 + +actionSystem.fixLostTyping=true +actionSystem.fixLostTyping.description=Redispatch events, lost between actions and dialog show/close +actionSystem.fixStickyFocusedWindows=true +actionSystem.fixNullFocusedComponent=true +actionSystem.noDefaultComponent=true +actionSystem.commandProcessingTimeout=30000 +actionSystem.commandProcessingTimeout.description=Timeout after which currently proccessed command is forcibly cancelled +actionSystem.typeAheadTimeBeforeDialog=2000 +actionSystem.typeAheadTimeBeforeDialog.description=If dialog shown as a result of some typing, all key types withing this time will be redispatched after dialog is closed +actionSystem.typeAheadTimeAfterPopupAction=500 +actionSystem.playback.autodelay=20 +actionSystem.playback.autodelay.description=Delay between events generated by the playback runner +actionSystem.playback.useDirectActionCall=true +actionSystem.playback.useTypingTargets=true +actionSystem.focusIdleTimeout=20 +actionSystem.mac.screenMenuNotUpdatedFix=false +actionSystem.keyGestures.enabled=false +actionSystem.keyGestureDblClickTime=500 +actionSystem.suspendFocusTransferIfApplicationInactive=true +actionSystem.noContextComponentWhileFocusTransfer=true +actionSystem.secondKeystrokeTimout=2000 +actionSystem.secondKeystrokeAutoPopupEnabled=false +actionSystem.secondKeystrokePopupTimeout=500 +actionSystem.keyGestureHoldTime=400 +actionSystem.autoSelectTimeout=1000 +actionSystem.quickAccessEnabled=false +actionSystem.quickAccessModifiers= +actionSystem.quickAccessShowSpotsTime=1500 +actionSystem.win.supressAlt=true +actionSystem.mouseGesturesEnabled=true +actionSystem.assertFocusAccessFromEdt=true + +ide.firstStartup=true +ide.debugMode=false +ide.debugMode.description=Record additonal information to make bug reports more informative +ide.debug.minProgressTime=0 +ide.forcedShowTooltip=alt +ide.forcedShowTooltip.description=Shortcut for forced show tooltip +ide.popup.dropShadow=false +ide.consumeKnownToolkitBugs=true +ide.highlight.match.in.selected.only=true +ide.lazyIconLoading=true +ide.checkDuplicateMnemonics=false +ide.checkDuplicateMnemonics.description=Check for duplicate mnemonics +ide.dnd.textHints=false +ide.max.recent.projects=25 + +ide.appIcon.progress=true +ide.appIcon.badge=true +ide.appIcon.requestAttention=true + +ide.windowSystem.hScrollChars=15 +ide.windowSystem.vScrollChars=5 +ide.windowSystem.focusAppOnStartup=true +ide.windowSystem.autoShowProcessPopup=false +ide.windowSystem.showListItemsPopup=true +ide.windowSystem.asyncSplitters=true +ide.windowSystem.showTooWindowButtonsSwitcher=true + +ide.tree.yeildingUiUpdate=true +ide.tree.showBusyIndicator=true +ide.tree.waitForReadyTimeout=250 +ide.tree.waitForReadySchedule=250 +ide.tree.clearOnHideTime=120000 +ide.tree.autoscrollToVCenter=true +ide.tree.ensureSelectionOnFocusGained=true +ide.tree.autoExpandMaxDepth=5 +ide.tree.expandRecursionDepth=50 +ide.tree.checkStructure=false +ide.tree.uiLockAttempt=250 +ide.tree.deferredicon.invalidates.cache=true + +ide.splitter.mouseZone=6 +ide.smart.horizontal.scrolling=true + +ide.tooltip.callout=true +ide.tooltip.mode=default +ide.tooltip.description=Available options are: default,system,graphite +ide.tooltip.animationCycle=150 +ide.tooltip.initialDelay=1200 +ide.tooltip.initialDelay.highlighter=150 +ide.tooltip.reshowDelay=500 +ide.tooltip.dismissDelay=4000 +ide.tooltip.initialReshowDelay=300 +ide.tooltip.autoDismissDeadZone=300 +ide.balloon.shadowEnabled=true +ide.balloon.shadow.size=15 + + +editor.balloonHints=true +editor.mouseSelectionStateResetTimeout=1000 +editor.mouseSelectionStateResetDeadzone=4 +editor.use.new.tabs=true +editor.smarterSelectionQuoting=true + +ide.showIndexRebuildMessage=false + +ide.tabbedPane.bufferedPaint=true +ide.tabbedPane.dragOutMultiplier=1.2 + +ide.mac.filechooser.showhidden.files=false +ide.mac.filechooser.native=true +ide.mac.message.dialogs.as.sheets=true +ide.mac.inplaceDialogMnemonicsFix=true +ide.mac.fix.dialog.showing=false +ide.mac.hide.cursor.when.typing=true +ide.mac.show.native.help=true +ide.mac.useNativeClipboard=false + +debugger.valueTooltipAutoShow=true +debugger.valueTooltipAutoShow.description=Auto show tooltip on mouse over +debugger.mayBringFrameToFrontOnBreakpoint=true +debugger.breakpoint.message.full.trace=false +debugger.breakpoint.message.full.trace.description='Log message to console' breakpoint action will out full stacktrace for the thread that hit the breakpoint +debugger.breakpoint.use.breakpoints.popup=true + +filesystem.useNative=true + +analyze.exceptions.on.the.fly=false +analyze.exceptions.on.the.fly.description=Automatically analyze clipboard on frame activation, and if there is a stacktrace calls Analyze Stacktrace + +compiler.perform.outputs.refresh.on.start=false +compiler.perform.outputs.refresh.on.start.description=Whether to perform initial FS refresh before compilation starts. Need this to detect external changes to output dirs + +compiler.max.static.constants.searches=3000 +compiler.max.static.constants.searches.description=If the number of changed compile time constants exceeds this value, make will start full-project rebuild + +# out-of-process build parameters + +#compiler.out-of-process.as-server=false +#compiler.out-of-process.as-server.description=Use implementation of out-of-process build as server process + +compiler.process.heap.size=700 +compiler.process.heap.size.description=Heap size value in MB for the build process + +compiler.process.32bit.vm.on.mac=true +compiler.process.32bit.vm.on.mac.description=Force -d32 VM option on Mac (recommended for faster startup and lower memory footprint) + +compiler.process.vm.options=-Xss2048k -Djdt.compiler.useSingleThread=true +compiler.process.vm.options.description=Additional options for the build process' VM + +compiler.process.use.memory.temp.cache=true +compiler.process.use.memory.temp.cache.description=Store temporary data in memory for faster compilation; requires larger server heap size + +compiler.process.use.external.javac=false +compiler.process.use.external.javac.description=Run javac compiler in a separate process (allows to run build process with smaller heap size) + +compiler.process.debug.port=-1 +#compiler.server.javac.debug.port=-1 + + +# parameters specific to server implementation +compiler.server.max.simultaneous.builds=1 +compiler.server.max.simultaneous.builds.description=The max number of simultaneous build sessions. Increasing this value may require larger server heap size + +compiler.server.ping.interval=5 +compiler.server.ping.interval.description=Interval in seconds between ping requests the IDE periodically sends to server. If server does not receive pings for some time, it shuts down. Specify -1 to disable this feature. + +# end of out-of-process build parameters + + +vcs.show.colored.annotations=true +vcs.showConsole=true + +psi.incremental.reparse.depth.limit=1000 +psi.viewer.selection.color=0,153,153 +psi.deferIconLoading=true + +find.search.in.project.files=false + +structureView.coalesceTime=500 + +keymap.show.alias.actions=false +frameworks.download.libraries.server.url=http://pluginsrepo-test:8080 +caches.indexerThreadsCount=-1 +vcs.show.history.numbers=true +navbar.updateMergeTime=250 +navbar.userActivityMergeTime=500 + +inspectionGadgets.telemetry.enabled=false + +jvmbugfix.mac.caccessibleLeak=true + +projectView.showHierarchyErrors=true +projectView.hide.dot.idea=true +show.live.templates.in.completion=false +documentation.component.editor.font=false + +ide.completion.middle.matching=true +ide.completion.middle.matching.description=Suggest items in completion that contain the entered string somewhere in the middle + +ide.goto.middle.matching=true +ide.goto.middle.matching.description=Suggest items in goto actions that contain the entered string somewhere in the middle + +ide.enable.toolwindow.stack=false + +change.signature.awesome.mode=true +change.signature.awesome.mode.description=Enables list view for change signature + +enable.groovy.hotswap=true +enable.groovy.hotswap.description=Whether IDEA should add a special java agent to the debugged process which allows to hot-swap Groovy changes in some cases +dump.threads.on.empty.lookup=false +dump.threads.on.empty.lookup.description=Whether IDEA should issue a thread dump when an empty completion lookup appears + +file.structure.tree.mode=true + +disable.toolwindow.overlayed=true +disable.toolwindow.overlayed.description=Disable transparent toolwindow stripes + +core.pooled.threads=20 + +editor.dumb.mode.available=true +enable.animation.on.dialogs=false +vcs.remote.management.ready=false +type.ahead.logging.enabled=false +fast.tree.expand.in.structure.view=false + +ide.use.nautilus3=true +ide.use.nautilus3.description=Use Nautilus if available + +ide.goto.implementation.show.interfaces=false +ide.goto.implementation.show.interfaces.description=Whether to show sub-interfaces when invoking Goto Implementation (Ctrl+Alt+B) on an interface + +ide.open.editors.asynchronously=true +ide.open.editors.asynchronously.description=Prepare editors in background thread +file.colors.in.commit.dialog=false + +testng.serialized.protocol.enabled=false +testng.skip.expected.exceptions=true +dark.laf.available=false + +actionSystem.force.alt.gr=false