Merge branch 'origin/master'
authorElizaveta Shashkova <Elizaveta.Shashkova@jetbrains.com>
Wed, 18 Feb 2015 17:41:29 +0000 (20:41 +0300)
committerElizaveta Shashkova <Elizaveta.Shashkova@jetbrains.com>
Wed, 18 Feb 2015 17:41:29 +0000 (20:41 +0300)
573 files changed:
.idea/libraries/winp.xml
README.md [new file with mode: 0644]
build/conf/mac/Contents/Info.plist
build/conf/mac/Contents/MacOS/idea
build/scripts/common_tests.gant
build/scripts/libLicenses.gant
build/scripts/utils.gant
colorSchemes/src/colorSchemes/WarmNeon.xml
java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java
java/debugger/impl/src/com/intellij/debugger/actions/ExportThreadsAction.java
java/debugger/impl/src/com/intellij/debugger/actions/ThreadDumpAction.java
java/debugger/impl/src/com/intellij/debugger/engine/JavaDebugProcess.java
java/debugger/impl/src/com/intellij/debugger/engine/JavaValue.java
java/debugger/impl/src/com/intellij/debugger/settings/ThreadsViewConfigurable.form
java/debugger/impl/src/com/intellij/debugger/settings/ThreadsViewConfigurable.java
java/debugger/impl/src/com/intellij/debugger/settings/ThreadsViewSettings.java
java/debugger/impl/src/com/intellij/debugger/ui/DebuggerSessionTab.java
java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/StackFrameDescriptorImpl.java
java/idea-ui/src/com/intellij/ide/actions/ImportProjectAction.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ContentEntriesEditor.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavaResourceRootEditHandlerBase.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/LanguageLevelCombo.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/LanguageLevelConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ProjectConfigurable.java
java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java
java/java-analysis-impl/src/com/intellij/codeInspection/LambdaCanBeMethodReferenceInspection.java
java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java
java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaMemoryStateImpl.java
java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/StandardInstructionVisitor.java
java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/instructions/AssignInstruction.java
java/java-analysis-impl/src/com/intellij/codeInspection/nullable/NullableStuffInspectionBase.java
java/java-analysis-impl/src/com/intellij/openapi/roots/JavaProjectRootsUtil.java
java/java-analysis-impl/src/com/intellij/refactoring/util/VariableData.java
java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java
java/java-impl/src/com/intellij/ide/favoritesTreeView/PsiClassFavoriteNodeProvider.java
java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java
java/java-impl/src/com/intellij/openapi/roots/impl/LanguageLevelProjectExtensionImpl.java
java/java-impl/src/com/intellij/psi/impl/smartPointers/AnchorElementInfoFactory.java
java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java
java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractJavaInplaceIntroducer.java
java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java
java/java-impl/src/com/intellij/unscramble/ThreadDumpPanel.java
java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowUtil.java
java/java-psi-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaNameValuePairType.java
java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceIncorporationPhase.java
java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceSession.java
java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/MethodReferenceResolver.java
java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiNameValuePairImpl.java
java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java
java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/PrivateFieldInSuperClass.java
java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/RawQualifier.java
java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ReturnTypeSpecific.java
java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/HighlightReferenceWhenContradictBoundsAreInferred.java
java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/IDEA136581.java [new file with mode: 0644]
java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/TryCatchWithoutFinallyBlockProcessing.java [new file with mode: 0644]
java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/afterChangedFunctionalType.java [new file with mode: 0644]
java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/beforeChangedFunctionalType.java [new file with mode: 0644]
java/java-tests/testData/inspection/dataFlow/contractCheck/DoubleParameter.java [new file with mode: 0644]
java/java-tests/testData/inspection/dataFlow/fixture/ExplicitlyNullableLocalVar.java [new file with mode: 0644]
java/java-tests/testData/inspection/nullableProblems/NotNullFieldNotInitializedInOneConstructor.java [new file with mode: 0644]
java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaExpression.java [new file with mode: 0644]
java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaExpression_after.java [new file with mode: 0644]
java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaParameter.java [new file with mode: 0644]
java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaParameter_after.java [new file with mode: 0644]
java/java-tests/testSrc/com/intellij/codeInsight/daemon/indentGuide/IndentGuideTest.groovy
java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java
java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/OverloadResolutionTest.java
java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/PsiPolyExpressionUtilTest.java
java/java-tests/testSrc/com/intellij/codeInspection/ContractCheckTest.java
java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java
java/java-tests/testSrc/com/intellij/codeInspection/NullableStuffInspectionTest.java
java/java-tests/testSrc/com/intellij/psi/impl/smartPointers/SmartPsiElementPointersTest.java
java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java
java/structuralsearch-java/src/com/intellij/structuralsearch/JavaReplaceHandler.java
java/structuralsearch-java/src/com/intellij/structuralsearch/JavaStructuralSearchProfile.java
jps/jps-builders/src/org/jetbrains/jps/incremental/ResourcesTarget.java
jps/jps-builders/testSrc/org/jetbrains/jps/builders/rebuild/ModuleRebuildTest.kt
jps/model-api/src/org/jetbrains/jps/model/java/JavaResourceRootProperties.java [new file with mode: 0644]
jps/model-api/src/org/jetbrains/jps/model/java/JavaResourceRootType.java
jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaExtensionService.java
jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaDependenciesEnumeratorImpl.java
jps/model-impl/src/org/jetbrains/jps/model/java/impl/JpsJavaExtensionServiceImpl.java
jps/model-impl/testSrc/org/jetbrains/jps/model/JpsDependenciesEnumeratorTest.java
jps/model-impl/testSrc/org/jetbrains/jps/model/JpsModuleRootModificationUtil.java
jps/model-serialization/src/org/jetbrains/jps/model/serialization/java/JpsJavaModelSerializerExtension.java
jps/model-serialization/testData/resourceRoots/resourceRoots.iml [new file with mode: 0644]
jps/model-serialization/testData/resourceRoots/resourceRoots.ipr [new file with mode: 0644]
jps/model-serialization/testSrc/org/jetbrains/jps/model/serialization/JpsProjectSerializationTest.java
jps/standalone-builder/src/org/jetbrains/jps/gant/JpsGantProjectBuilder.java
lib/src/winp-1.21-patched.zip [deleted file]
lib/src/winp-1.23-sources.jar [new file with mode: 0644]
lib/src/winp.patch [deleted file]
lib/winp-1.21-patched.jar [deleted file]
lib/winp-1.23.jar [new file with mode: 0644]
native/MacLauncher/Launcher.m
platform/analysis-api/src/com/intellij/codeInsight/highlighting/HighlightErrorFilter.java
platform/analysis-api/src/com/intellij/codeInsight/intention/IntentionAction.java
platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/DefaultHighlightVisitor.java
platform/bootstrap/src/com/intellij/ide/BootstrapClassLoaderUtil.java
platform/built-in-server/src/org/jetbrains/io/fastCgi/FastCgiRequest.java
platform/built-in-server/src/org/jetbrains/io/jsonRpc/JsonRpcServer.java
platform/built-in-server/testSrc/BinaryRequestHandlerTest.kt
platform/core-api/src/com/intellij/openapi/editor/markup/AttributesFlyweight.java
platform/core-api/src/com/intellij/openapi/options/ExternalInfo.java
platform/core-api/src/com/intellij/openapi/options/ExternalizableScheme.java
platform/core-api/src/com/intellij/openapi/options/SchemesManager.java
platform/core-api/src/com/intellij/openapi/options/SchemesManagerFactory.java
platform/core-api/src/com/intellij/openapi/project/DumbService.java
platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java
platform/core-impl/src/com/intellij/ide/plugins/PluginManagerCore.java
platform/core-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java
platform/core-impl/src/com/intellij/mock/MockComponentManager.java
platform/core-impl/src/com/intellij/openapi/options/AbstractSchemesManager.java
platform/core-impl/src/com/intellij/psi/impl/source/text/DiffLog.java
platform/core-impl/src/com/intellij/psi/impl/source/tree/TreeUtil.java
platform/diff-api/src/com/intellij/diff/DiffContentFactory.java
platform/diff-impl/src/com/intellij/diff/DiffContentFactoryImpl.java
platform/diff-impl/src/com/intellij/diff/DiffRequestFactoryImpl.java
platform/diff-impl/src/com/intellij/diff/contents/DocumentContentWrapper.java
platform/diff-impl/src/com/intellij/diff/impl/DiffRequestProcessor.java
platform/diff-impl/src/com/intellij/diff/impl/DiffWindowBase.java
platform/diff-impl/src/com/intellij/diff/tools/dir/DifDiffViewer.java
platform/diff-impl/src/com/intellij/diff/tools/simple/SimpleDiffViewer.java
platform/diff-impl/src/com/intellij/diff/tools/util/FoldingModelSupport.java
platform/diff-impl/src/com/intellij/diff/tools/util/base/DiffViewerBase.java
platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java
platform/external-system-api/resources/i18n/ExternalSystemBundle.properties
platform/external-system-impl/src/com/intellij/openapi/externalSystem/action/task/ToggleBeforeSyncTaskAction.java [new file with mode: 0644]
platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemJdkUtil.java
platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ExternalProjectsState.java
platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ExternalSystemTaskActivator.java
platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/TaskActivationState.java
platform/external-system-impl/src/com/intellij/openapi/externalSystem/util/ExternalSystemUtil.java
platform/lang-api/src/com/intellij/codeInsight/daemon/MergeableLineMarkerInfo.java
platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java
platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSchemes.java
platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettingsCustomizable.java
platform/lang-api/src/com/intellij/psi/codeStyle/CommonCodeStyleSettings.java
platform/lang-api/src/com/intellij/refactoring/classMembers/MemberInfoBase.java
platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesModel.java
platform/lang-impl/src/com/intellij/application/options/codeStyle/WrappingAndBracesPanel.java
platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/IndentsPass.java
platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightingSettingsPerFile.java
platform/lang-impl/src/com/intellij/codeInsight/documentation/DockablePopupManager.java
platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java
platform/lang-impl/src/com/intellij/codeInsight/editorActions/BackspaceHandler.java
platform/lang-impl/src/com/intellij/codeInsight/editorActions/BackspaceToWordStartHandler.java
platform/lang-impl/src/com/intellij/codeInsight/editorActions/CopyHandler.java
platform/lang-impl/src/com/intellij/codeInsight/editorActions/EnterHandler.java
platform/lang-impl/src/com/intellij/codeInsight/editorActions/PasteHandler.java
platform/lang-impl/src/com/intellij/codeInsight/folding/impl/CollapseSelectionHandler.java
platform/lang-impl/src/com/intellij/codeInsight/folding/impl/actions/CollapseSelectionAction.java
platform/lang-impl/src/com/intellij/codeInsight/hint/ParameterInfoController.java
platform/lang-impl/src/com/intellij/codeInsight/hint/ShowParameterInfoHandler.java
platform/lang-impl/src/com/intellij/codeInsight/intention/impl/IntentionActionWithTextCaching.java
platform/lang-impl/src/com/intellij/codeInsight/intention/impl/IntentionListStep.java
platform/lang-impl/src/com/intellij/codeInsight/intention/impl/config/IntentionSettingsConfigurable.java
platform/lang-impl/src/com/intellij/codeInsight/intention/impl/config/IntentionSettingsTree.java
platform/lang-impl/src/com/intellij/codeInsight/navigation/GotoTargetHandler.java
platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java
platform/lang-impl/src/com/intellij/execution/actions/BaseRunConfigurationAction.java
platform/lang-impl/src/com/intellij/execution/console/IdeConsoleRootType.java
platform/lang-impl/src/com/intellij/find/impl/FindDialog.java
platform/lang-impl/src/com/intellij/find/impl/FindInProjectUtil.java
platform/lang-impl/src/com/intellij/ide/impl/ProjectViewSelectInTarget.java
platform/lang-impl/src/com/intellij/ide/scratch/NewScratchFileAction.java
platform/lang-impl/src/com/intellij/ide/scratch/RootType.java
platform/lang-impl/src/com/intellij/ide/scratch/ScratchFileService.java
platform/lang-impl/src/com/intellij/ide/scratch/ScratchFileServiceImpl.java
platform/lang-impl/src/com/intellij/ide/scratch/ScratchProjectViewPane.java
platform/lang-impl/src/com/intellij/ide/scratch/ScratchRootType.java
platform/lang-impl/src/com/intellij/ide/scratch/ScratchWidget.java
platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ContentEntryTreeCellRenderer.java
platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/JavaTestSourceRootEditHandler.java
platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleSchemeImpl.java
platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleSchemesImpl.java
platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/LegacyCodeStyleSchemesSettings.java [deleted file]
platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/PersistableCodeStyleSchemes.java
platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesDialog.java
platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesHandler.java
platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java
platform/lang-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteDialog.java
platform/lang-impl/src/com/intellij/tools/BaseToolManager.java
platform/lang-impl/src/com/intellij/tools/ToolAction.java
platform/lvcs-impl/src/com/intellij/history/integration/IdeaGateway.java
platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeBuilder.java
platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java
platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUpdater.java
platform/platform-api/src/com/intellij/ide/util/treeView/TreeRunnable.java [new file with mode: 0644]
platform/platform-api/src/com/intellij/ide/util/treeView/TreeState.java
platform/platform-api/src/com/intellij/ide/util/treeView/UpdaterTreeState.java
platform/platform-api/src/com/intellij/openapi/fileEditor/FileEditorProvider.java
platform/platform-api/src/com/intellij/openapi/options/Configurable.java
platform/platform-api/src/com/intellij/openapi/ui/ComponentWithBrowseButton.java
platform/platform-api/src/com/intellij/openapi/util/NamedRunnable.java
platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java
platform/platform-api/src/com/intellij/ui/SuitableFontProvider.java [new file with mode: 0644]
platform/platform-api/src/com/intellij/ui/table/JBTable.java
platform/platform-impl/src/com/intellij/execution/process/impl/OSProcessManagerImpl.java
platform/platform-impl/src/com/intellij/ide/actions/OccurenceNavigatorActionBase.java
platform/platform-impl/src/com/intellij/ide/actions/OpenFileAction.java
platform/platform-impl/src/com/intellij/ide/actions/OpenProjectFileChooserDescriptor.java
platform/platform-impl/src/com/intellij/ide/actions/RefreshAction.java
platform/platform-impl/src/com/intellij/ide/actions/SynchronizeAction.java
platform/platform-impl/src/com/intellij/ide/ui/customization/CustomizableActionsPanel.java
platform/platform-impl/src/com/intellij/ide/util/ExportToFileUtil.java
platform/platform-impl/src/com/intellij/idea/StartupUtil.java
platform/platform-impl/src/com/intellij/openapi/actionSystem/RegistryToggleAction.java
platform/platform-impl/src/com/intellij/openapi/actionSystem/ex/QuickList.java
platform/platform-impl/src/com/intellij/openapi/actionSystem/ex/QuickListsManager.java
platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StorageUtil.java
platform/platform-impl/src/com/intellij/openapi/diff/actions/MergeOperations.java
platform/platform-impl/src/com/intellij/openapi/editor/actions/HungryBackspaceAction.java
platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java
platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java
platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java
platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java
platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorComposite.java
platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java
platform/platform-impl/src/com/intellij/openapi/fileTypes/impl/FileTypeRenderer.java
platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/ActionsTree.java
platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/ActionsTreeUtil.java
platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/QuickListPanel.java
platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/QuickListsPanel.java
platform/platform-impl/src/com/intellij/openapi/options/SchemesManagerImpl.java
platform/platform-impl/src/com/intellij/openapi/options/ex/ConfigurableCardPanel.java
platform/platform-impl/src/com/intellij/openapi/vfs/impl/FilePointerPartNode.java
platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/FakeVirtualFile.java
platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InsertOverwritePanel.java
platform/platform-impl/src/com/intellij/ui/SuitableFontProviderImpl.java [new file with mode: 0644]
platform/platform-impl/src/com/intellij/ui/mac/MacFileChooserDialogImpl.java
platform/platform-impl/src/com/intellij/ui/mac/growl/Growl.java
platform/platform-impl/src/io/netty/buffer/ByteBufUtf8Writer.java [new file with mode: 0644]
platform/platform-impl/src/io/netty/buffer/ByteBufUtilEx.java
platform/platform-impl/src/org/jetbrains/concurrency/PromiseManager.java
platform/platform-impl/src/org/jetbrains/io/ChannelBufferToString.java
platform/platform-impl/src/org/jetbrains/io/Decoder.java
platform/platform-impl/src/org/jetbrains/io/MessageDecoder.java
platform/platform-impl/src/org/jetbrains/io/NettyUtil.java
platform/platform-resources-en/src/messages/ApplicationBundle.properties
platform/platform-resources-en/src/messages/CodeInsightBundle.properties
platform/platform-resources/src/DefaultColorSchemesManager.xml
platform/platform-resources/src/META-INF/LangExtensions.xml
platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml
platform/platform-resources/src/META-INF/PlatformExtensions.xml
platform/platform-resources/src/idea/ExternalSystemActions.xml
platform/platform-tests/testSrc/com/intellij/openapi/fileEditor/FileEditorManagerTest.java
platform/platform-tests/testSrc/com/intellij/openapi/vfs/impl/VirtualFilePointerTest.java
platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SourceFolderImpl.java
platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ui/tree/actions/ServersTreeAction.java
platform/script-debugger/backend/src/org/jetbrains/debugger/Breakpoint.java
platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManager.java
platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManagerBase.java
platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptRegExpBreakpointTarget.java
platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptRegExpSupport.java [deleted file]
platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptRegExpSupportVisitor.java [new file with mode: 0644]
platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/DebugProcessImpl.java
platform/script-debugger/protocol/protocol-reader-runtime/src/org/jetbrains/jsonProtocol/OutMessage.java
platform/script-debugger/protocol/protocol-reader/protocol-reader.iml
platform/script-debugger/protocol/protocol-reader/src/ArrayReader.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/ClassScope.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/EnumReader.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/Enums.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/ExistingSubtypeAspect.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/FieldLoader.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/FieldProcessor.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/FileScope.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/FileUpdater.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/GlobalScope.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/InterfaceReader.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/JsonProtocolModelParseException.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/LazyCachedMethodHandler.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/MapReader.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/MethodHandler.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/ObjectValueReader.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/PrimitiveValueReader.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/RawValueReader.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/ReadDelegate.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/ReaderGenerator.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/ReaderRoot.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/StringIntPairValueReader.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/SubtypeCaster.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/TextOutput.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/TypeRef.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/TypeWriter.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/Util.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/ValueReader.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/VolatileFieldBinding.kt [new file with mode: 0644]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ArrayReader.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ClassScope.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/EnumReader.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/Enums.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ExistingSubtypeAspect.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/FieldLoader.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/FieldProcessor.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/FieldTypeInfo.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/FileScope.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/FileUpdater.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/GlobalScope.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/InterfaceReader.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/JsonProtocolModelParseException.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/LazyCachedMethodHandler.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/MapReader.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/MethodHandler.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ObjectValueReader.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/PrimitiveValueReader.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/RawValueReader.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ReadDelegate.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ReaderGenerator.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ReaderRoot.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/StringIntPairValueReader.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/SubtypeCaster.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/TextOutput.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/TypeRef.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/TypeWriter.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/Util.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/ValueReader.java [deleted file]
platform/script-debugger/protocol/protocol-reader/src/org/jetbrains/protocolReader/VolatileFieldBinding.java [deleted file]
platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/handlers/MatchingHandler.java
platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTest.java
platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralSearchTest.java
platform/testFramework/src/com/intellij/testFramework/UsefulTestCase.java
platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java
platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestUtil.java
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyTestFixtureBuilderImpl.java
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/IdeaTestFixtureFactoryImpl.java
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/LightTempDirTestFixtureImpl.java
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/ModuleFixtureBuilderImpl.java
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/TempDirTestFixtureImpl.java
platform/testFramework/testSrc/com/intellij/openapi/keymap/KeymapsTestCase.java
platform/usageView/src/com/intellij/usages/UsageTargetUtil.java
platform/usageView/src/com/intellij/usages/impl/SearchForUsagesRunnable.java
platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java
platform/util-rt/src/com/intellij/openapi/util/io/FileUtilRt.java
platform/util/resources/misc/registry.properties
platform/util/src/com/intellij/openapi/util/JDOMUtil.java
platform/util/src/com/intellij/openapi/util/text/StringUtil.java
platform/util/src/com/intellij/util/diff/DiffTree.java
platform/util/src/com/intellij/util/ui/JBInsets.java
platform/util/src/com/intellij/util/ui/JBUI.java
platform/util/src/com/intellij/util/ui/UIUtil.java
platform/util/src/com/intellij/xml/util/XmlStringUtil.java
platform/util/testSrc/com/intellij/util/diff/DiffTreeTest.java
platform/util/testSrc/com/intellij/util/text/StringUtilTest.java
platform/vcs-impl/src/com/intellij/ide/actions/SynchronizeCurrentFileAction.java
platform/vcs-impl/src/com/intellij/openapi/vcs/changes/CacheChangeProcessor.java
platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekGraphBuilder.java
platform/vcs-log/impl/gen/icons/VcsLogIcons.java [moved from platform/vcs-log/impl/src/icons/VcsLogIcons.java with 100% similarity]
platform/vcs-log/impl/resources/icons/CollapseMerges.png
platform/vcs-log/impl/resources/icons/CollapseMerges@2x.png
platform/vcs-log/impl/resources/icons/CollapseMerges@2x_dark.png
platform/vcs-log/impl/resources/icons/CollapseMerges_dark.png
platform/vcs-log/impl/resources/icons/ExpandMerges.png
platform/vcs-log/impl/resources/icons/ExpandMerges@2x.png
platform/vcs-log/impl/resources/icons/ExpandMerges@2x_dark.png
platform/vcs-log/impl/resources/icons/ExpandMerges_dark.png
platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/StructureFilterPopupComponent.java
platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java
platform/vcs-log/impl/vcs-log-impl.iml
platform/xdebugger-api/src/com/intellij/xdebugger/XNamedTreeNode.java [new file with mode: 0644]
platform/xdebugger-api/src/com/intellij/xdebugger/evaluation/InlineDebuggerHelper.java [new file with mode: 0644]
platform/xdebugger-api/src/com/intellij/xdebugger/evaluation/XDebuggerEditorsProvider.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/actions/ResumeAction.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/actions/UseInlineDebuggerAction.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XDebuggerTreeRenderer.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/RestorableStateNode.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/XValueContainerNode.java
plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/FieldMayBeStaticInspection.java
plugins/InspectionGadgets/test/com/siyeh/igtest/performance/FieldMayBeStaticInspection.java [deleted file]
plugins/InspectionGadgets/test/com/siyeh/igtest/performance/field_may_be_static/FieldMayBeStatic.java [new file with mode: 0644]
plugins/InspectionGadgets/testsrc/com/siyeh/ig/internationalization/UnnecessaryUnicodeEscapeInspectionTest.java
plugins/InspectionGadgets/testsrc/com/siyeh/ig/performance/FieldMayBeStaticInspectionTest.java [new file with mode: 0644]
plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/inject/java/ConcatenationInjector.java
plugins/devkit/src/run/JUnitDevKitPatcher.java
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/dgm/DGMMemberContributor.java
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/dsl/GroovyDslFileIndex.java
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/auxiliary/modifiers/GrModifierListImpl.java
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightMethodBuilder.java
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrMethodWrapper.java
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/ResolveUtil.java
plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GrMethodOverrideCompletionProvider.java [new file with mode: 0644]
plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyCompletionContributor.java
plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/handlers/GroovyMethodOverrideHandler.java [new file with mode: 0644]
plugins/groovy/test/org/jetbrains/plugins/groovy/completion/GroovyCompletionTest.groovy
plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/Gr23HighlightingTest.groovy [moved from plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/Gr2_3HighlightingTest.groovy with 91% similarity]
plugins/hg4idea/testSrc/hg4idea/test/config/HgConfigTest.java
plugins/java-decompiler/engine/readme.txt
plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/main/rels/LambdaProcessor.java
plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/exps/InvocationExprent.java
plugins/java-i18n/src/com/intellij/codeInspection/i18n/InvalidPropertyKeyInspection.java
plugins/java-i18n/src/com/intellij/lang/properties/PropertiesReferenceContributor.java
plugins/maven/src/test/java/org/jetbrains/idea/maven/compiler/ManifestGenerationTest.java
plugins/ui-designer/src/com/intellij/uiDesigner/editor/UIFormEditorProvider.java
python/edu/course-creator-python/course-creator-python.iml
python/edu/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCProjectGenerator.java
python/edu/course-creator-python/src/com/jetbrains/edu/coursecreator/actions/PyCCRunTestsAction.java
python/edu/course-creator-python/tests/CCDocumentListenerTest.java [deleted file]
python/edu/course-creator-python/tests/CCTestCase.java
python/edu/interactive-learning-python/interactive-learning-python.iml
python/edu/interactive-learning-python/src/com/jetbrains/edu/learning/PyStudyDirectoryProjectGenerator.java
python/edu/interactive-learning-python/src/com/jetbrains/edu/learning/PyStudyExecutor.java
python/edu/interactive-learning-python/src/com/jetbrains/edu/learning/PyStudyTestRunner.java
python/edu/interactive-learning-python/src/com/jetbrains/edu/learning/actions/PyStudyIntroductionCourseAction.java
python/edu/interactive-learning-python/tests/JsonParserTest.java
python/edu/interactive-learning-python/tests/StudyDocumentListenerTest.java
python/edu/interactive-learning-python/tests/StudyTestCase.java
python/edu/resources/fileTemplates/internal/test_helper.py.ft [moved from python/edu/course-creator-python/resources/fileTemplates/internal/test_helper.py.ft with 100% similarity]
python/educational/course-creator/course-creator.iml
python/educational/course-creator/resources/META-INF/plugin.xml
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/CCDocumentListener.java [deleted file]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/CCEditorFactoryListener.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectComponent.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectService.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/CCRefactoringElementListenerProvider.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/CCUtils.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAddAnswerPlaceholder.java [moved from python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAddTaskWindow.java with 72% similarity]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCAnswerPlaceholderAction.java [moved from python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCTaskWindowAction.java with 84% similarity]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCChangeCourseInfo.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateCourseArchive.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateLesson.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateTask.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateTaskFile.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCDeleteAnswerPlaceholder.java [moved from python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCDeleteTaskWindow.java with 57% similarity]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCFromCourseArchive.java [new file with mode: 0644]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCPushLesson.java [new file with mode: 0644]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCRename.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCRenameLesson.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCRenameTask.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCRunTestsAction.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowAnswerPlaceholderDetails.java [new file with mode: 0644]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowPreview.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowTaskWindowDetails.java [deleted file]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/format/AnswerPlaceholder.java [deleted file]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/format/Course.java [deleted file]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/format/Lesson.java [deleted file]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/format/Task.java [deleted file]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/format/TaskFile.java [deleted file]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCDirectoryNode.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/ui/CCCreateAnswerPlaceholderDialog.java [new file with mode: 0644]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/ui/CCCreateAnswerPlaceholderPanel.form [moved from python/educational/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateTaskWindowPanel.form with 66% similarity]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/ui/CCCreateAnswerPlaceholderPanel.java [new file with mode: 0644]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateCourseArchivePanel.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateTaskFileDialog.java
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateTaskWindowDialog.java [deleted file]
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/ui/CreateTaskWindowPanel.java [deleted file]
python/educational/educational.iml
python/educational/interactive-learning/interactive-learning.iml
python/educational/interactive-learning/resources/META-INF/plugin.xml
python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyCourseResourceManager.java [new file with mode: 0644]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyDocumentListener.java [deleted file]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyProjectComponent.java [new file with mode: 0644]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyState.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyTaskManager.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyUtils.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyCheckAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyEditInputAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyNextStudyTaskAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyNextWindowAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyPrevWindowAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyPreviousStudyTaskAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyRefreshTaskFileAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyRunAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyShowHintAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyTaskNavigationAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyWindowNavigationAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/course/AnswerPlaceholder.java [deleted file]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/course/Course.java [deleted file]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/course/Lesson.java [deleted file]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/course/LessonInfo.java [deleted file]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/course/Stateful.java [deleted file]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/course/Task.java [deleted file]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/course/TaskFile.java [deleted file]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/courseFormat/StudyStatus.java [moved from python/educational/interactive-learning/src/com/jetbrains/edu/learning/course/StudyStatus.java with 50% similarity]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/courseFormat/UserTest.java [moved from python/educational/interactive-learning/src/com/jetbrains/edu/learning/course/UserTest.java with 94% similarity]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/courseGeneration/StudyGenerator.java [new file with mode: 0644]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java [moved from python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyProjectGenerator.java with 58% similarity]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/editor/StudyEditor.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/editor/StudyEditorFactoryListener.java [moved from python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyEditorFactoryListener.java with 70% similarity]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/editor/StudyFileEditorProvider.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/editor/StudyHighlightErrorFilter.java [moved from python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyHighlightErrorFilter.java with 75% similarity]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/navigation/StudyNavigator.java [new file with mode: 0644]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/projectView/StudyDirectoryNode.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/projectView/StudyTreeStructureProvider.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/run/StudyExecutor.java [moved from python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyExecutor.java with 95% similarity]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/run/StudySmartChecker.java [new file with mode: 0644]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/run/StudyTestRunner.java [moved from python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyTestRunner.java with 93% similarity]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/stepic/StudyStepicConnector.java [deleted file]
python/educational/interactive-learning/src/com/jetbrains/edu/learning/ui/StudyNewProjectPanel.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/ui/StudyTestContentPanel.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/ui/StudyToolWindowFactory.java
python/educational/src/com/jetbrains/edu/EduAnswerPlaceholderDeleteHandler.java [moved from python/educational/interactive-learning/src/com/jetbrains/edu/learning/TaskWindowDeleteHandler.java with 73% similarity]
python/educational/src/com/jetbrains/edu/EduAnswerPlaceholderPainter.java [new file with mode: 0644]
python/educational/src/com/jetbrains/edu/EduDocumentListener.java [new file with mode: 0644]
python/educational/src/com/jetbrains/edu/EduNames.java [moved from python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyNames.java with 73% similarity]
python/educational/src/com/jetbrains/edu/EduUtils.java [new file with mode: 0644]
python/educational/src/com/jetbrains/edu/courseFormat/AnswerPlaceholder.java [new file with mode: 0644]
python/educational/src/com/jetbrains/edu/courseFormat/AnswerPlaceholderComparator.java [new file with mode: 0644]
python/educational/src/com/jetbrains/edu/courseFormat/Course.java [new file with mode: 0644]
python/educational/src/com/jetbrains/edu/courseFormat/Lesson.java [new file with mode: 0644]
python/educational/src/com/jetbrains/edu/courseFormat/Task.java [new file with mode: 0644]
python/educational/src/com/jetbrains/edu/courseFormat/TaskFile.java [new file with mode: 0644]
python/educational/src/com/jetbrains/edu/stepic/CourseInfo.java [moved from python/educational/interactive-learning/src/com/jetbrains/edu/learning/course/CourseInfo.java with 97% similarity]
python/educational/src/com/jetbrains/edu/stepic/EduStepicConnector.java [new file with mode: 0644]
python/gen/icons/PythonIcons.java
python/helpers/pycharm/django_manage_commands_provider/_optparse.py
python/helpers/python-skeletons/builtins.py
python/pluginSrc/com/jetbrains/python/psi/impl/PyJavaClassType.java
python/resources/icons/com/jetbrains/python/function.png [new file with mode: 0644]
python/resources/icons/com/jetbrains/python/function@2x.png [new file with mode: 0644]
python/rest/src/com/jetbrains/rest/RestColorsPage.java
python/rest/src/com/jetbrains/rest/RestFileType.java
python/src/META-INF/python-core.xml
python/src/com/jetbrains/python/PyBundle.properties
python/src/com/jetbrains/python/WordWithPosition.java
python/src/com/jetbrains/python/codeInsight/completion/PyKeywordCompletionContributor.java
python/src/com/jetbrains/python/codeInsight/dataflow/scope/ScopeUtil.java
python/src/com/jetbrains/python/commandInterface/chunkDriverBasedPresenter/ChunkAndInfo.java [deleted file]
python/src/com/jetbrains/python/commandInterface/chunkDriverBasedPresenter/ChunkDriverBasedPresenter.java [deleted file]
python/src/com/jetbrains/python/commandInterface/chunkDriverBasedPresenter/ChunkInfo.java [deleted file]
python/src/com/jetbrains/python/commandInterface/chunkDriverBasedPresenter/ParseInfo.java [deleted file]
python/src/com/jetbrains/python/commandInterface/chunkDriverBasedPresenter/package-info.java [deleted file]
python/src/com/jetbrains/python/commandInterface/command/Command.java
python/src/com/jetbrains/python/commandInterface/command/Option.java
python/src/com/jetbrains/python/commandInterface/command/OptionTypedArgumentInfo.java
python/src/com/jetbrains/python/commandInterface/commandBasedChunkDriver/CommandBasedChunkDriver.java [deleted file]
python/src/com/jetbrains/python/commandInterface/commandBasedRangeDriver/CommandBasedRangeInfoDriver.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandInterface/commandBasedRangeDriver/CommandExecutor.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandInterface/commandBasedRangeDriver/RangeInfoCollector.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandInterface/commandBasedRangeDriver/UnusedOptionsCollector.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandInterface/commandBasedRangeDriver/package-info.java [moved from python/src/com/jetbrains/python/commandInterface/commandBasedChunkDriver/package-info.java with 81% similarity]
python/src/com/jetbrains/python/commandInterface/package-info.java
python/src/com/jetbrains/python/commandInterface/rangeBasedPresenter/Executor.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandInterface/rangeBasedPresenter/RangeBasedPresenter.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandInterface/rangeBasedPresenter/RangeInfo.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandInterface/rangeBasedPresenter/RangeInfoDriver.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandInterface/rangeBasedPresenter/SuggestionInfo.java [moved from python/src/com/jetbrains/python/commandInterface/chunkDriverBasedPresenter/SuggestionInfo.java with 86% similarity]
python/src/com/jetbrains/python/commandInterface/rangeBasedPresenter/package-info.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandLineParser/CommandLine.java [moved from python/src/com/jetbrains/python/commandLineParser/CommandLineParseResult.java with 58% similarity]
python/src/com/jetbrains/python/commandLineParser/CommandLineArgument.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandLineParser/CommandLineOption.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandLineParser/CommandLineParser.java
python/src/com/jetbrains/python/commandLineParser/CommandLinePart.java [moved from python/src/com/jetbrains/python/commandInterface/chunkDriverBasedPresenter/ChunkDriver.java with 51% similarity]
python/src/com/jetbrains/python/commandLineParser/CommandLinePartVisitor.java [moved from python/src/com/jetbrains/python/commandLineParser/CommandLinePartType.java with 57% similarity]
python/src/com/jetbrains/python/commandLineParser/optParse/LongOptionParser.java
python/src/com/jetbrains/python/commandLineParser/optParse/OptParseCommandLineParser.java
python/src/com/jetbrains/python/commandLineParser/optParse/OptionParser.java
python/src/com/jetbrains/python/commandLineParser/optParse/OptionParserRegexBased.java [new file with mode: 0644]
python/src/com/jetbrains/python/commandLineParser/optParse/ShortOptionParser.java
python/src/com/jetbrains/python/commandLineParser/package-info.java
python/src/com/jetbrains/python/psi/PyUtil.java
python/src/com/jetbrains/python/psi/impl/PyClassImpl.java
python/src/com/jetbrains/python/psi/impl/PyFunctionImpl.java
python/src/com/jetbrains/python/suggestionList/SuggestionList.java
python/testData/inspections/PyUnresolvedReferencesInspection/incorrectFileLevelMetaclass.py [new file with mode: 0644]
python/testData/inspections/PyUnresolvedReferencesInspection3K/classLevelReferenceInMethodAnnotation.py [new file with mode: 0644]
python/testData/refactoring/move/templateAttributesExpansionInCreatedDestinationModule/after/src/a.py [new file with mode: 0644]
python/testData/refactoring/move/templateAttributesExpansionInCreatedDestinationModule/after/src/b.py [new file with mode: 0644]
python/testData/refactoring/move/templateAttributesExpansionInCreatedDestinationModule/before/src/a.py [new file with mode: 0644]
python/testSrc/com/jetbrains/python/PythonCompletionTest.java
python/testSrc/com/jetbrains/python/PythonKeywordCompletionTest.java
python/testSrc/com/jetbrains/python/inspections/Py3UnresolvedReferencesInspectionTest.java
python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java
python/testSrc/com/jetbrains/python/refactoring/PyMoveTest.java
resources-en/src/messages/DebuggerBundle.properties
resources/src/META-INF/IdeaPlugin.xml
resources/src/idea/JavaActions.xml
xml/dom-impl/src/com/intellij/util/xml/stubs/builder/DomStubBuilder.java
xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.form
xml/xml-psi-impl/src/com/intellij/psi/impl/source/xml/XmlAttributeReference.java

index 07689aee601ac4b98ff15f2f7e956147823f98ec..620afb405b5380c38a5a66be3c62906f1b3fdc68 100644 (file)
@@ -1,12 +1,15 @@
 <component name="libraryTable">
   <library name="winp">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/lib/winp-1.21-patched.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/winp-1.23.jar!/" />
     </CLASSES>
     <JAVADOC />
+    <NATIVE>
+      <root url="jar://$PROJECT_DIR$/lib/winp-1.23.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lib/src/winp-1.23-sources.jar!/" />
+    </NATIVE>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/lib/src/winp-1.21-patched.zip!/winp-1.21/src/main/java" />
-      <root url="jar://$PROJECT_DIR$/lib/src/winp-1.21-patched.zip!/winp-1.21/src/test/java" />
+      <root url="jar://$PROJECT_DIR$/lib/src/winp-1.23-sources.jar!/" />
     </SOURCES>
   </library>
 </component>
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..5d4abee
--- /dev/null
+++ b/README.md
@@ -0,0 +1,13 @@
+# IntelliJ IDEA Community Edition
+### Building and Running from the IDE
+To develop IntelliJ IDEA, you can use either IntelliJ IDEA Community Edition or IntelliJ IDEA Ultimate. To build and run the code:
+* Run **getPlugins.sh** / **getPlugins.bat** from the project root directory to check out additional modules.
+* Make sure you have the **Groovy** plugin enabled. Parts of IntelliJ IDEA are written in Groovy, and you will get compilation errors if you don't have the plugin enabled.
+* Make sure you have the **UI Designer** plugin enabled. Most of IntelliJ IDEA's UI is built using the **UI Designer**, and the version you build will not run correctly if you don't have the plugin enabled.
+* Open the project
+* Configure a JSDK named "**IDEA jdk**" (case sensitive), pointing to an installation of JDK 1.6
+* Unless you're running on a Mac with an Apple JDK, add <JDK_HOME>/lib/tools.jar to the set of "**IDEA jdk**" jars.
+* Use Build | Make Project to build the code.
+* To run the code, use the provided shared run configuration "**IDEA**".
+
+You can find other useful information at [http://www.jetbrains.org](http://www.jetbrains.org)
\ No newline at end of file
index 31cb058c7bf065f4366ee03a3d15286b908133cb..8daa490e8ecc4e955e122707396222c8125d7d83 100644 (file)
     <key>CFBundleInfoDictionaryVersion</key>
     <string>6.0</string>
     <key>CFBundleName</key>
-    <string>@@bundle_name@@</string>
+    <string>@@bundle_name@@@@product_state@@</string>
     <key>CFBundlePackageType</key>
     <string>APPL</string>
     <key>CFBundleIdentifier</key>
-    <string>@@bundle_identifier@@</string>
+    <string>@@bundle_identifier@@@@product_state@@</string>
     <key>CFBundleSignature</key>
     <string>????</string>
     <key>CFBundleGetInfoString</key>
index 50bc99369097b269596932c3e41db98bda0031ca..f3f7185702f0cdcfde24ee0c8783889e4e618ce7 100755 (executable)
Binary files a/build/conf/mac/Contents/MacOS/idea and b/build/conf/mac/Contents/MacOS/idea differ
index 14891f74808c348fbd57f4a02940fe4cdaae2275..f7a94081028f40a33e38de4ca6bd1746fe9e5761 100644 (file)
@@ -63,7 +63,7 @@ target('run_tests': 'Run java tests') {
         };
       }
 
-      commonJvmArgs().each { jvmarg(value: it) }
+      commonJvmArgsForTests().each { jvmarg(value: it) }
 
       jvmarg(value: "-Dbootstrap.testcases=$testCase")
 
index 333c8135687b97a933ff1ad291689ab528b4e8fc..5986ef469c2b163f0057ecec7b3959181ef3250b 100644 (file)
@@ -247,7 +247,7 @@ libraryLicense(name: "TestNG", version: "5.7 snapshot", license: "Apache 2.0", u
 libraryLicense(name: "Trilead SSH", libraryName: "trilead-ssh2", version: "build 213 and 217", license: "BSD style (see LICENSE.txt in trilead.jar)", url: "http://www.trilead.com/SSH_Library/")
 libraryLicense(name: "Trove4j", version: "1.1 (with patches by JetBrains)", license: "LGPL", url: "http://trove4j.sourceforge.net/", licenseUrl: "http://trove4j.sourceforge.net/html/license.html")
 libraryLicense(name: "Velocity", version: "1.7", license: "Apache 2.0", url: "http://velocity.apache.org/", licenseUrl: "http://velocity.apache.org/index.html")
-libraryLicense(name: "winp", version: "1.21 (patched)", license: "MIT", url: "http://java.net/projects/winp", licenseUrl: "http://opensource.org/licenses/mit-license.php")
+libraryLicense(name: "winp", version: "1.23", license: "MIT", url: "http://java.net/projects/winp", licenseUrl: "http://opensource.org/licenses/mit-license.php")
 libraryLicense(name: "Xalan", libraryName:"Xalan-2.7.1", version: "2.7.1", license: "Apache 2.0", url: "http://xml.apache.org/xalan-j/", licenseUrl: "http://xml.apache.org/xalan-j/")
 libraryLicense(name: "Xerces", version: "2.9.1", license: "Apache 2.0", url: "http://xerces.apache.org/xerces2-j/", licenseUrl: "http://xerces.apache.org/xerces2-j/")
 libraryLicense(name: "XML Commons (xml-apis.jar, resolver.jar)", version: "", license: "Apache 2.0, W3C Software License , public domain", url: "http://xml.apache.org/commons/", licenseUrl: "http://xml.apache.org/commons/licenses.html")
index 117fa4a957f3b5ebf10f04f1beca668e386998cc..7421c91f9cc5cd7cba218a7f62d31abdebcec0d7 100644 (file)
@@ -243,11 +243,12 @@ binding.setVariable("wireBuildDate", { String buildNumber, String appInfoFile ->
   patchFiles([appInfoFile], ["BUILD_NUMBER": buildNumber, "BUILD_DATE": DSTAMP])
 })
 
-binding.setVariable("commonJvmArgs", {
+binding.setVariable("commonJvmArgsForTests", {
   def jdwp = "-Xrunjdwp:transport=dt_socket,server=y,suspend=$debugSuspend"
   if (debugPort != null) jdwp += ",address=$debugPort"
   return [
     "-ea",
+    "-Dio.netty.leakDetectionLevel=PARANOID",
     "-server",
     "-Xbootclasspath/p:${projectBuilder.moduleOutput(findModule("boot"))}",
     "-XX:+HeapDumpOnOutOfMemoryError",
@@ -366,6 +367,7 @@ binding.setVariable("layoutMacApp", { String path, String ch, Map args ->
 
   String minor = p("component.version.minor")
   String version = isEap() && !minor.contains("RC") && !minor.contains("Beta") ? "EAP $args.buildNumber" : "${p("component.version.major")}.${minor}"
+  String EAP = isEap() && !minor.contains("RC") && !minor.contains("Beta") ? "-EAP" : ""
 
   Map properties = readIdeaProperties(args)
 
@@ -426,6 +428,7 @@ binding.setVariable("layoutMacApp", { String path, String ch, Map args ->
     replacefilter(token: "@@executable@@", value: executable)
     replacefilter(token: "@@icns@@", value: icns)
     replacefilter(token: "@@bundle_name@@", value: fullName)
+    replacefilter(token: "@@product_state@@", value: EAP)
     replacefilter(token: "@@bundle_identifier@@", value: args.bundleIdentifier)
     replacefilter(token: "@@year@@", value: "$todayYear")
     replacefilter(token: "@@version@@", value: version)
index e5b34911353ce37ca6d95a5e7f6cdb3aced61811..1c8b73189c71fa5325422c6619de4503f753a1c6 100644 (file)
@@ -1,6 +1,7 @@
 <scheme name="WarmNeon" version="124" parent_scheme="Default">
   <option name="LINE_SPACING" value="1.1" />
   <option name="EDITOR_FONT_SIZE" value="11" />
+  <option name="EDITOR_QUICK_DOC_FONT_SIZE" value="MEDIUM" />
   <option name="EDITOR_FONT_NAME" value="DejaVu Sans Mono" />
   <colors>
     <option name="ADDED_LINES_COLOR" value="395439" />
@@ -8,7 +9,7 @@
     <option name="CARET_COLOR" value="ff00" />
     <option name="CARET_ROW_COLOR" value="282828" />
     <option name="CONSOLE_BACKGROUND_KEY" value="404040" />
-    <option name="DELETED_LINES_COLOR" value="747474"/>
+    <option name="DELETED_LINES_COLOR" value="747474" />
     <option name="FILESTATUS_MODIFIED" value="215ee6" />
     <option name="GUTTER_BACKGROUND" value="424242" />
     <option name="INDENT_GUIDE" value="505050" />
@@ -21,8 +22,9 @@
     <option name="SELECTED_FOLDING_TREE_COLOR" value="32be33" />
     <option name="SELECTED_INDENT_GUIDE" value="6b5656" />
     <option name="SELECTION_BACKGROUND" value="348d34" />
+    <option name="TEARLINE_COLOR" value="404040" />
     <option name="WHITESPACES" value="656565" />
-    <option name="WHITESPACES_MODIFIED_LINES_COLOR" value="6E5A5A"/>
+    <option name="WHITESPACES_MODIFIED_LINES_COLOR" value="6e5a5a" />
   </colors>
   <attributes>
     <option name="ABSTRACT_CLASS_NAME_ATTRIBUTES">
@@ -51,7 +53,7 @@
     </option>
     <option name="BAD_CHARACTER">
       <value>
-        <option name="FOREGROUND" value="9F0E44" />
+        <option name="FOREGROUND" value="9f0e44" />
         <option name="BACKGROUND" value="ffcccc" />
       </value>
     </option>
         <option name="FOREGROUND" value="f2f0b5" />
       </value>
     </option>
-    <option name="CONSOLE_BLACK_OUTPUT">
-      <value>
-        <option name="FOREGROUND" value="000000" />
-      </value>
-    </option>
-    <option name="CONSOLE_BLUE_OUTPUT">
-      <value>
-        <option name="FOREGROUND" value="405EC9" />
-      </value>
-    </option>
     <option name="CONSOLE_BLUE_BRIGHT_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="7A8FD9" />
+        <option name="FOREGROUND" value="7a8fd9" />
       </value>
     </option>
-    <option name="CONSOLE_CYAN_OUTPUT">
+    <option name="CONSOLE_BLUE_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="20BAD5" />
+        <option name="FOREGROUND" value="405ec9" />
       </value>
     </option>
     <option name="CONSOLE_CYAN_BRIGHT_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="59D1E6" />
+        <option name="FOREGROUND" value="59d1e6" />
       </value>
     </option>
-    <option name="CONSOLE_DARKGRAY_OUTPUT">
+    <option name="CONSOLE_CYAN_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="555555" />
+        <option name="FOREGROUND" value="20bad5" />
       </value>
     </option>
     <option name="CONSOLE_ERROR_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="E54242" />
+        <option name="FOREGROUND" value="e54242" />
       </value>
     </option>
     <option name="CONSOLE_GRAY_OUTPUT">
         <option name="FOREGROUND" value="a7a7a7" />
       </value>
     </option>
-    <option name="CONSOLE_GREEN_OUTPUT">
+    <option name="CONSOLE_GREEN_BRIGHT_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="34B434" />
+        <option name="FOREGROUND" value="9bc28e" />
       </value>
     </option>
-    <option name="CONSOLE_GREEN_BRIGHT_OUTPUT">
+    <option name="CONSOLE_GREEN_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="9BC28E" />
+        <option name="FOREGROUND" value="34b434" />
       </value>
     </option>
-    #A3E131
-    <option name="CONSOLE_MAGENTA_OUTPUT">
+    <option name="CONSOLE_MAGENTA_BRIGHT_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="FF00FF" />
+        <option name="FOREGROUND" value="f971bb" />
       </value>
     </option>
-    <option name="CONSOLE_MAGENTA_BRIGHT_OUTPUT">
+    <option name="CONSOLE_MAGENTA_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="F971BB" />
+        <option name="FOREGROUND" value="ff00ff" />
       </value>
     </option>
     <option name="CONSOLE_NORMAL_OUTPUT">
         <option name="BACKGROUND" value="404040" />
       </value>
     </option>
-    <option name="CONSOLE_RED_OUTPUT">
+    <option name="CONSOLE_RED_BRIGHT_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="E54242" />
+        <option name="FOREGROUND" value="eb6f6f" />
       </value>
     </option>
-    <option name="CONSOLE_RED_BRIGHT_OUTPUT">
+    <option name="CONSOLE_RED_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="EB6F6F" />
+        <option name="FOREGROUND" value="e54242" />
       </value>
     </option>
     <option name="CONSOLE_SYSTEM_OUTPUT">
         <option name="FONT_TYPE" value="2" />
       </value>
     </option>
-    <option name="CONSOLE_WHITE_OUTPUT">
+    <option name="CONSOLE_YELLOW_BRIGHT_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="ffffff" />
+        <option name="FOREGROUND" value="dedb74" />
       </value>
     </option>
     <option name="CONSOLE_YELLOW_OUTPUT">
       <value>
-        <option name="FOREGROUND" value="DBE439" />
-      </value>
-    </option>
-    <option name="CONSOLE_YELLOW_BRIGHT_OUTPUT">
-      <value>
-        <option name="FOREGROUND" value="DEDB74" />
+        <option name="FOREGROUND" value="dbe439" />
       </value>
     </option>
     <option name="CSS.COMMENT">
       <value>
-        <option name="FOREGROUND" value="E2E95D" />
+        <option name="FOREGROUND" value="e2e95d" />
       </value>
     </option>
     <option name="CSS.FUNCTION">
         <option name="FONT_TYPE" value="1" />
       </value>
     </option>
-    <option name="CSS.IDENT">
-      <value />
-    </option>
     <option name="CSS.KEYWORD">
       <value>
         <option name="FOREGROUND" value="3fa7d4" />
     </option>
     <option name="DEFAULT_INVALID_STRING_ESCAPE">
       <value>
-        <option name="FOREGROUND" value="9F0E44" />
+        <option name="FOREGROUND" value="9f0e44" />
         <option name="BACKGROUND" value="ffcccc" />
       </value>
     </option>
     </option>
     <option name="DEFAULT_NUMBER">
       <value>
-        <option name="FOREGROUND" value="F971BB" />
+        <option name="FOREGROUND" value="f971bb" />
       </value>
     </option>
     <option name="DEFAULT_PREDEFINED_SYMBOL">
         <option name="FONT_TYPE" value="1" />
       </value>
     </option>
+    <option name="DOC_COMMENT_TAG_VALUE">
+      <value>
+        <option name="FOREGROUND" value="b8b8b8" />
+        <option name="FONT_TYPE" value="3" />
+      </value>
+    </option>
     <option name="DUPLICATE_FROM_SERVER">
       <value>
         <option name="BACKGROUND" value="273b40" />
         <option name="BACKGROUND" value="2a2a2a" />
       </value>
     </option>
+    <option name="ERRORS_ATTRIBUTES">
+      <value>
+        <option name="EFFECT_COLOR" value="ff0000" />
+        <option name="ERROR_STRIPE_COLOR" value="ff0000" />
+        <option name="EFFECT_TYPE" value="2" />
+      </value>
+    </option>
     <option name="EXECUTIONPOINT_ATTRIBUTES">
       <value>
         <option name="FOREGROUND" value="eaed5b" />
         <option name="EFFECT_TYPE" value="1" />
       </value>
     </option>
+    <option name="GENERIC_SERVER_ERROR_OR_WARNING">
+      <value>
+        <option name="EFFECT_COLOR" value="f49810" />
+        <option name="ERROR_STRIPE_COLOR" value="f49810" />
+        <option name="EFFECT_TYPE" value="2" />
+      </value>
+    </option>
     <option name="GQL_ID">
       <value>
         <option name="FOREGROUND" value="c0c0c0" />
         <option name="FONT_TYPE" value="1" />
       </value>
     </option>
-    <option name="GROOVY_KEYWORD">
-      <value />
-    </option>
     <option name="GString">
       <value>
         <option name="FOREGROUND" value="99cc00" />
         <option name="EFFECT_TYPE" value="1" />
       </value>
     </option>
+    <option name="IDENTIFIER_UNDER_CARET_ATTRIBUTES">
+      <value>
+        <option name="BACKGROUND" value="e4e4ff" />
+        <option name="ERROR_STRIPE_COLOR" value="ccccff" />
+      </value>
+    </option>
     <option name="IMPLICIT_ANONYMOUS_CLASS_PARAMETER_ATTRIBUTES">
       <value>
         <option name="FOREGROUND" value="9cd4de" />
       </value>
     </option>
+    <option name="INFO_ATTRIBUTES">
+      <value>
+        <option name="EFFECT_COLOR" value="cccccc" />
+        <option name="ERROR_STRIPE_COLOR" value="ffffcc" />
+        <option name="EFFECT_TYPE" value="2" />
+      </value>
+    </option>
     <option name="INJECTED_LANGUAGE_FRAGMENT">
       <value>
         <option name="BACKGROUND" value="284e28" />
         <option name="FOREGROUND" value="e45041" />
       </value>
     </option>
-    <option name="JS.BRACES">
-      <value />
-    </option>
     <option name="JS.BRACKETS">
       <value>
         <option name="FONT_TYPE" value="1" />
       </value>
     </option>
-    <option name="JS.COMMA">
-      <value />
-    </option>
     <option name="JS.DOC_COMMENT">
       <value>
         <option name="FOREGROUND" value="c87878" />
         <option name="EFFECT_TYPE" value="1" />
       </value>
     </option>
-    <option name="JS.DOT">
-      <value />
-    </option>
     <option name="JS.GLOBAL_FUNCTION">
       <value>
         <option name="FONT_TYPE" value="2" />
         <option name="EFFECT_TYPE" value="-1" />
       </value>
     </option>
-    <option name="JS.OPERATION_SIGN">
-      <value />
-    </option>
     <option name="JS.PARAMETER">
       <value>
         <option name="FOREGROUND" value="cfdb96" />
         <option name="EFFECT_TYPE" value="-1" />
       </value>
     </option>
-    <option name="JS.SEMICOLON">
-      <value />
-    </option>
     <option name="JS.STRING">
       <value>
         <option name="FOREGROUND" value="34ae34" />
         <option name="FOREGROUND" value="dd2e2e" />
       </value>
     </option>
-    <option name="JSP_DIRECTIVE_BACKGROUND">
-      <value />
-    </option>
     <option name="JSP_DIRECTIVE_NAME">
       <value>
         <option name="FOREGROUND" value="c9a666" />
         <option name="EFFECT_TYPE" value="5" />
       </value>
     </option>
+    <option name="NOT_TOP_FRAME_ATTRIBUTES">
+      <value>
+        <option name="FOREGROUND" value="eaed5b" />
+        <option name="BACKGROUND" value="2a526e" />
+      </value>
+    </option>
     <option name="PROPERTIES.LINE_COMMENT">
       <value>
         <option name="FOREGROUND" value="e75252" />
         <option name="EFFECT_TYPE" value="1" />
       </value>
     </option>
+    <option name="REASSIGNED_LOCAL_VARIABLE_ATTRIBUTES">
+      <value>
+        <option name="EFFECT_COLOR" value="9bc28e" />
+        <option name="EFFECT_TYPE" value="1" />
+      </value>
+    </option>
     <option name="REASSIGNED_PARAMETER_ATTRIBUTES">
       <value>
         <option name="EFFECT_COLOR" value="152102" />
         <option name="BACKGROUND" value="ffa600" />
       </value>
     </option>
-    <option name="SPY-JS.FUNCTION_SCOPE">
-      <value>
-        <option name="BACKGROUND" value="3A3A3A"/>
-        <option name="EFFECT_TYPE" value="2"/>
-      </value>
-    </option>
-    <option name="SPY-JS.PROGRAM_SCOPE">
+    <option name="SPY-JS.EXCEPTION">
       <value>
-        <option name="BACKGROUND" value="3A3A3A"/>
-        <option name="EFFECT_TYPE" value="2"/>
+        <option name="BACKGROUND" value="532b2e" />
+        <option name="EFFECT_TYPE" value="2" />
       </value>
     </option>
-    <option name="SPY-JS.EXCEPTION">
+    <option name="SPY-JS.FUNCTION_SCOPE">
       <value>
-        <option name="BACKGROUND" value="532B2E"/>
-        <option name="EFFECT_TYPE" value="2"/>
+        <option name="BACKGROUND" value="3a3a3a" />
+        <option name="EFFECT_TYPE" value="2" />
       </value>
     </option>
     <option name="SPY-JS.PATH_LEVEL_ONE">
       <value>
-        <option name="BACKGROUND" value="425F44"/>
-        <option name="EFFECT_TYPE" value="2"/>
+        <option name="BACKGROUND" value="425f44" />
+        <option name="EFFECT_TYPE" value="2" />
       </value>
     </option>
     <option name="SPY-JS.PATH_LEVEL_TWO">
       <value>
         <option name="EFFECT_COLOR" value="a9b7c6" />
-        <option name="EFFECT_TYPE" value="1"/>
+        <option name="EFFECT_TYPE" value="1" />
+      </value>
+    </option>
+    <option name="SPY-JS.PROGRAM_SCOPE">
+      <value>
+        <option name="BACKGROUND" value="3a3a3a" />
+        <option name="EFFECT_TYPE" value="2" />
       </value>
     </option>
     <option name="SPY-JS.VALUE_HINT">
       <value>
         <option name="EFFECT_COLOR" value="a9b7c6" />
-        <option name="EFFECT_TYPE" value="0"/>
       </value>
     </option>
     <option name="SQL_COLUMN">
         <option name="FONT_TYPE" value="1" />
       </value>
     </option>
+    <option name="TYPO">
+      <value>
+        <option name="EFFECT_COLOR" value="8000" />
+        <option name="EFFECT_TYPE" value="2" />
+      </value>
+    </option>
     <option name="UNMATCHED_BRACE_ATTRIBUTES">
       <value>
         <option name="BACKGROUND" value="dc4040" />
     <option name="WARNING_ATTRIBUTES">
       <value>
         <option name="BACKGROUND" value="5a4601" />
-        <option name="EFFECT_TYPE" value="1" />
         <option name="ERROR_STRIPE_COLOR" value="ffff00" />
+        <option name="EFFECT_TYPE" value="1" />
+      </value>
+    </option>
+    <option name="WRITE_IDENTIFIER_UNDER_CARET_ATTRIBUTES">
+      <value>
+        <option name="BACKGROUND" value="ffe4ff" />
+        <option name="ERROR_STRIPE_COLOR" value="ffcdff" />
       </value>
     </option>
     <option name="WRITE_SEARCH_RESULT_ATTRIBUTES">
       </value>
     </option>
   </attributes>
-</scheme>
+</scheme>
\ No newline at end of file
index e04539b3e469ccc37b053ce74069a4f7e72fbc6e..5ffd19125a8ccaf3f63daa7107c361a12ba9496b 100644 (file)
@@ -901,8 +901,14 @@ public class BuildManager implements ApplicationComponent{
 
       // now select the latest version from the sdks that are used in the project, but not older than the internal sdk version
       final JavaSdk javaSdkType = JavaSdk.getInstance();
+      if (IS_UNIT_TEST_MODE) {
+        LOG.info("detecting JDK");
+      }
       for (Sdk candidate : candidates) {
         final String vs = candidate.getVersionString();
+        if (IS_UNIT_TEST_MODE) {
+          LOG.info(" candidate=" + candidate);
+        }
         if (vs != null) {
           final JavaSdkVersion candidateVersion = javaSdkType.getVersion(vs);
           if (candidateVersion != null) {
@@ -925,6 +931,10 @@ public class BuildManager implements ApplicationComponent{
       }
 
       final Sdk internalJdk = JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk();
+      if (IS_UNIT_TEST_MODE) {
+        LOG.info("projectJdk = " + projectJdk);
+        LOG.info("internalJdk = " + internalJdk);
+      }
       if (projectJdk == null || sdkVersion == null || !sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_6)) {
         projectJdk = internalJdk;
       }
@@ -938,9 +948,15 @@ public class BuildManager implements ApplicationComponent{
         if (systemCompiler == null) {
           throw new ExecutionException("No system java compiler is provided by the JRE. Make sure tools.jar is present in IntelliJ IDEA classpath.");
         }
+        if (IS_UNIT_TEST_MODE) {
+          LOG.info("compute compiler path by jar for " + systemCompiler.getClass());
+        }
         compilerPath = ClasspathBootstrap.getResourcePath(systemCompiler.getClass());
       }
       else {
+        if (IS_UNIT_TEST_MODE) {
+          LOG.info("compute compiler path from jdk " + projectJdk + ", jdk home = " + projectJdk.getHomePath());
+        }
         compilerPath = projectJdkType.getToolsPath(projectJdk);
         if (compilerPath == null) {
           throw new ExecutionException("Cannot determine path to 'tools.jar' library for " + projectJdk.getName() + " (" + projectJdk.getHomePath() + ")");
@@ -950,10 +966,15 @@ public class BuildManager implements ApplicationComponent{
       vmExecutablePath = projectJdkType.getVMExecutablePath(projectJdk);
     }
     else {
+      if (IS_UNIT_TEST_MODE) {
+        LOG.info("use forced jdk home " + forcedCompiledJdkHome);
+      }
       compilerPath = new File(forcedCompiledJdkHome, "lib/tools.jar").getAbsolutePath();
       vmExecutablePath = new File(forcedCompiledJdkHome, "bin/java").getAbsolutePath();
     }
-
+    if (IS_UNIT_TEST_MODE) {
+      LOG.info("compilerPath=" + compilerPath);
+    }
     final CompilerWorkspaceConfiguration config = CompilerWorkspaceConfiguration.getInstance(project);
     final GeneralCommandLine cmdLine = new GeneralCommandLine();
     cmdLine.setExePath(vmExecutablePath);
index ed829100c502d79fef45085157230206ec87cdb7..25d95ed8629200be91acccfa22b5f96d4c797534 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 package com.intellij.debugger.actions;
 
 import com.intellij.debugger.DebuggerManagerEx;
+import com.intellij.debugger.engine.DebugProcessImpl;
+import com.intellij.debugger.engine.events.DebuggerCommandImpl;
 import com.intellij.debugger.impl.DebuggerContextImpl;
 import com.intellij.debugger.impl.DebuggerSession;
-import com.intellij.debugger.ui.ExportDialog;
-import com.intellij.idea.ActionsBundle;
+import com.intellij.ide.actions.ExportToTextFileAction;
 import com.intellij.openapi.actionSystem.AnAction;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.actionSystem.CommonDataKeys;
 import com.intellij.openapi.actionSystem.Presentation;
+import com.intellij.openapi.application.ApplicationManager;
+import com.intellij.openapi.application.ModalityState;
 import com.intellij.openapi.project.Project;
-import com.intellij.openapi.ui.Messages;
-import com.intellij.openapi.util.text.StringUtil;
-import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.util.SystemProperties;
+import com.intellij.unscramble.ThreadDumpPanel;
+import com.intellij.unscramble.ThreadState;
 
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
+import java.util.List;
 
 public class ExportThreadsAction extends AnAction implements AnAction.TransparentUpdate {
   public void actionPerformed(AnActionEvent e) {
-    Project project = CommonDataKeys.PROJECT.getData(e.getDataContext());
+    final Project project = CommonDataKeys.PROJECT.getData(e.getDataContext());
     if (project == null) {
       return;
     }
     DebuggerContextImpl context = (DebuggerManagerEx.getInstanceEx(project)).getContext();
 
-    if(context.getDebuggerSession() != null) {
-      String destinationDirectory = "";
-      final VirtualFile baseDir = project.getBaseDir();
-      if (baseDir != null) destinationDirectory = baseDir.getPresentableUrl();
-
-      ExportDialog dialog = new ExportDialog(context.getDebugProcess(), destinationDirectory);
-      if (dialog.showAndGet()) {
-        try {
-          File file = new File(dialog.getFilePath());
-          BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-          try {
-            String text = StringUtil.convertLineSeparators(dialog.getTextToSave(), SystemProperties.getLineSeparator());
-            writer.write(text);
-          }
-          finally {
-            writer.close();
+    final DebuggerSession session = context.getDebuggerSession();
+    if(session != null && session.isAttached()) {
+      final DebugProcessImpl process = context.getDebugProcess();
+      if (process != null) {
+        process.getManagerThread().invoke(new DebuggerCommandImpl() {
+          protected void action() throws Exception {
+            final List<ThreadState> threads = ThreadDumpAction.buildThreadStates(process.getVirtualMachineProxy());
+            ApplicationManager.getApplication().invokeLater(new Runnable() {
+              public void run() {
+                ExportToTextFileAction.export(project, ThreadDumpPanel.createToFileExporter(project, threads));
+              }
+            }, ModalityState.NON_MODAL);
           }
-        }
-        catch (IOException ex) {
-          Messages
-            .showMessageDialog(project, ex.getMessage(), ActionsBundle.actionText(DebuggerActions.EXPORT_THREADS), Messages.getErrorIcon());
-        }
+        });
       }
     }
   }
 
-
-
   public void update(AnActionEvent event){
     Presentation presentation = event.getPresentation();
     Project project = CommonDataKeys.PROJECT.getData(event.getDataContext());
index e8eb1a9025049d3f09250a229449dee83509c78d..96e6d015f02628e16fba5794891f5496500ff064 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2010 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -83,7 +83,7 @@ public class ThreadDumpAction extends AnAction implements AnAction.TransparentUp
     }
   }
 
-  private static List<ThreadState> buildThreadStates(VirtualMachineProxyImpl vmProxy) {
+  static List<ThreadState> buildThreadStates(VirtualMachineProxyImpl vmProxy) {
     final List<ThreadReference> threads = vmProxy.getVirtualMachine().allThreads();
     final List<ThreadState> result = new ArrayList<ThreadState>();
     final Map<String, ThreadState> nameToThreadMap = new HashMap<String, ThreadState>();
index 09898a068e3a3ff9221d7dc7b2fb12e18da50d88..0b1cd18bb05bb2a42df9ea64ea5eab7eaefe0078 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -322,7 +322,7 @@ public class JavaDebugProcess extends XDebugProcess {
   public void registerAdditionalActions(@NotNull DefaultActionGroup leftToolbar, @NotNull DefaultActionGroup topToolbar, @NotNull DefaultActionGroup settings) {
     Constraints beforeRunner = new Constraints(Anchor.BEFORE, "Runner.Layout");
     leftToolbar.add(Separator.getInstance(), beforeRunner);
-    leftToolbar.add(ActionManager.getInstance().getAction(DebuggerActions.EXPORT_THREADS), beforeRunner);
+    //leftToolbar.add(ActionManager.getInstance().getAction(DebuggerActions.EXPORT_THREADS), beforeRunner);
     leftToolbar.add(ActionManager.getInstance().getAction(DebuggerActions.DUMP_THREADS), beforeRunner);
     leftToolbar.add(Separator.getInstance(), beforeRunner);
 
index 5c2ad181c38da0570576ec044e52fb4d3055129b..16fdaad1eab66515239c8a5ff406326126e01156 100644 (file)
@@ -236,17 +236,19 @@ public class JavaValue extends XNamedValue implements NodeDescriptorProvider, XV
             if (type != null) {
               final String typeName = type.componentTypeName();
               if (TypeConversionUtil.isPrimitive(typeName) || CommonClassNames.JAVA_LANG_STRING.equals(typeName)) {
-                int max = CommonClassNames.JAVA_LANG_STRING.equals(typeName) ? 5 : 10;
-                final List<Value> values = value.getValues();
+                int size = value.length();
+                int max = Math.min(size, CommonClassNames.JAVA_LANG_STRING.equals(typeName) ? 5 : 10);
+                //TODO [eu]: this is a quick fix for IDEA-136606, need to move this away from EDT!!!
+                final List<Value> values = value.getValues(0, max);
                 int i = 0;
                 final List<String> vals = new ArrayList<String>(max);
-                while (i < values.size() && i <= max) {
+                while (i < values.size()) {
                   vals.add(StringUtil.first(values.get(i).toString(), 15, true));
                   i++;
                 }
                 String more = "";
-                if (vals.size() < values.size()) {
-                  more = ", + " + (values.size() - vals.size()) + " more";
+                if (vals.size() < size) {
+                  more = ", + " + (size - vals.size()) + " more";
                 }
 
                 renderer.renderValue("{" + StringUtil.join(vals, ", ") + more + "}");
index 2eb90d92cf8d750452f13d1b57e7a525cc05c736..75ab5fe66b82883af3e50a70a91eebf477ffef0c 100644 (file)
@@ -1,27 +1,24 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.intellij.debugger.settings.ThreadsViewConfigurable">
-  <grid id="a2574" binding="myPanel" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+  <grid id="a2574" binding="myPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
     <margin top="0" left="0" bottom="0" right="0"/>
     <constraints>
       <xy x="126" y="76" width="271" height="203"/>
-      <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3"/>
     </constraints>
     <properties/>
     <border type="none"/>
     <children>
-      <grid id="4cb6d" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="0">
+      <grid id="4cb6d" layout-manager="GridLayoutManager" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="0">
         <margin top="0" left="0" bottom="0" right="0"/>
         <constraints>
-          <xy x="0" y="0" width="271" height="79"/>
-          <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="1" fill="1"/>
+          <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="1" fill="1" indent="0" use-parent-layout="false"/>
         </constraints>
         <properties/>
         <border type="etched"/>
         <children>
           <component id="b8249" class="javax.swing.JCheckBox" binding="myShowGroupsCheckBox">
             <constraints>
-              <xy x="2" y="2" width="140" height="27"/>
-              <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0"/>
+              <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
             </constraints>
             <properties>
               <margin top="5" left="2" bottom="2" right="2"/>
@@ -30,8 +27,7 @@
           </component>
           <component id="5bfe" class="javax.swing.JCheckBox" binding="myShowSyntheticsCheckBox">
             <constraints>
-              <xy x="2" y="29" width="267" height="24"/>
-              <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0"/>
+              <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
             </constraints>
             <properties>
               <text resource-bundle="messages/DebuggerBundle" key="label.threads.view.configurable.show.stack.frames.for.synthetic.methods"/>
@@ -39,8 +35,7 @@
           </component>
           <component id="a7f8b" class="javax.swing.JCheckBox" binding="myShowCurrentThreadChechBox">
             <constraints>
-              <xy x="2" y="53" width="206" height="24"/>
-              <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0"/>
+              <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
             </constraints>
             <properties>
               <text resource-bundle="messages/DebuggerBundle" key="label.threads.view.configurable.current.thread.on.top"/>
           </component>
         </children>
       </grid>
-      <grid id="f4cba" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="0">
+      <grid id="f4cba" layout-manager="GridLayoutManager" row-count="4" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="0">
         <margin top="0" left="0" bottom="0" right="0"/>
         <constraints>
-          <xy x="0" y="84" width="271" height="79"/>
-          <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="1" fill="1"/>
+          <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="1" fill="1" indent="0" use-parent-layout="false"/>
         </constraints>
         <properties/>
         <border type="etched"/>
         <children>
           <component id="4f5e9" class="javax.swing.JCheckBox" binding="myLineNumberCheckBox">
             <constraints>
-              <xy x="2" y="2" width="128" height="27"/>
-              <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0"/>
+              <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
             </constraints>
             <properties>
               <margin top="5" left="2" bottom="2" right="2"/>
@@ -69,8 +62,7 @@
           </component>
           <component id="2fbc6" class="javax.swing.JCheckBox" binding="myClassNameCheckBox">
             <constraints>
-              <xy x="2" y="29" width="123" height="24"/>
-              <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0"/>
+              <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
             </constraints>
             <properties>
               <text resource-bundle="messages/DebuggerBundle" key="label.threads.view.configurable.show.class.name"/>
           </component>
           <component id="b56d7" class="javax.swing.JCheckBox" binding="mySourceCheckBox">
             <constraints>
-              <xy x="2" y="53" width="156" height="24"/>
-              <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0"/>
+              <grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
             </constraints>
             <properties>
               <text resource-bundle="messages/DebuggerBundle" key="label.threads.view.configurable.show.source.file.name"/>
             </properties>
           </component>
+          <component id="99bb5" class="javax.swing.JCheckBox" binding="myPackageCheckBox">
+            <constraints>
+              <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+            </constraints>
+            <properties>
+              <text resource-bundle="messages/DebuggerBundle" key="label.threads.view.configurable.show.package"/>
+            </properties>
+          </component>
         </children>
       </grid>
     </children>
index bf11ceb86752c5d469514e6a91af42ff80fadd34..3dae116f22f394f4ce902557053774a5dbf00d83 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -38,12 +38,14 @@ public class ThreadsViewConfigurable extends BaseConfigurable {
   private JCheckBox mySourceCheckBox;
   private JCheckBox myShowSyntheticsCheckBox;
   private JCheckBox myShowCurrentThreadChechBox;
+  private JCheckBox myPackageCheckBox;
   private final CompositeDataBinding myDataBinding = new CompositeDataBinding();
 
   public ThreadsViewConfigurable(ThreadsViewSettings settings) {
     mySettings = settings;
 
     myDataBinding.addBinding(new ToggleButtonBinding("SHOW_CLASS_NAME", myClassNameCheckBox));
+    myDataBinding.addBinding(new ToggleButtonBinding("SHOW_PACKAGE_NAME", myPackageCheckBox));
     myDataBinding.addBinding(new ToggleButtonBinding("SHOW_LINE_NUMBER", myLineNumberCheckBox));
     myDataBinding.addBinding(new ToggleButtonBinding("SHOW_SOURCE_NAME", mySourceCheckBox));
     myDataBinding.addBinding(new ToggleButtonBinding("SHOW_THREAD_GROUPS", myShowGroupsCheckBox));
index 95fda53d68fbb0d230e1b9906240f063d93e5fa1..fb4ffa4de91ed213be71b7d77562ba2c29fc933e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,6 +29,7 @@ public class ThreadsViewSettings implements PersistentStateComponent<ThreadsView
   public boolean SHOW_THREAD_GROUPS = false;
   public boolean SHOW_LINE_NUMBER = true;
   public boolean SHOW_CLASS_NAME = true;
+  public boolean SHOW_PACKAGE_NAME = true;
   public boolean SHOW_SOURCE_NAME = false;
   public boolean SHOW_SYNTHETIC_FRAMES = true;
   public boolean SHOW_CURRENT_THREAD = true;
index 8e5cfb72ce3f8aaae0facf2b2613ed13dfa99a46..a088e953557f1313ac52fb7a60fc123d8268072c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -287,7 +287,7 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
     }
 
     leftToolbar.addSeparator();
-    addAction(leftToolbar, DebuggerActions.EXPORT_THREADS);
+    //addAction(leftToolbar, DebuggerActions.EXPORT_THREADS);
     addAction(leftToolbar, DebuggerActions.DUMP_THREADS);
     leftToolbar.addSeparator();
 
index 70717822e8c004df02abe177b5a49c30546ccd2e..a85f0b479c266c1c642d415ad26562c012e31a91 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,6 +31,7 @@ import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.psi.PsiFile;
 import com.intellij.ui.FileColorManager;
 import com.intellij.util.StringBuilderSpinAllocator;
+import com.intellij.util.ui.EmptyIcon;
 import com.intellij.util.ui.TextTransferable;
 import com.intellij.xdebugger.XDebugSession;
 import com.intellij.xdebugger.frame.XStackFrame;
@@ -228,9 +229,11 @@ public class StackFrameDescriptorImpl extends NodeDescriptorImpl implements Stac
           }
           else {
             label.append(name.substring(dotIndex + 1));
-            label.append(" {");
-            label.append(name.substring(0, dotIndex));
-            label.append("}");
+            if (settings.SHOW_PACKAGE_NAME) {
+              label.append(" {");
+              label.append(name.substring(0, dotIndex));
+              label.append("}");
+            }
           }
         }
       }
@@ -294,7 +297,7 @@ public class StackFrameDescriptorImpl extends NodeDescriptorImpl implements Stac
     }
     catch (EvaluateException ignored) {
     }
-    return AllIcons.Debugger.StackFrame;
+    return EmptyIcon.create(6);//AllIcons.Debugger.StackFrame;
   }
 
   public Icon getIcon() {
index 70026f04fff585300d7dcdfbc0c802c01b88ebe4..63780a4d99bdbe90e1fb5ea77a2e1a8def5b4a92 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,11 +21,9 @@ import com.intellij.openapi.wm.impl.welcomeScreen.NewWelcomeScreen;
 
 /**
  * @author Dmitry Avdeev
- *         Date: 11/6/12
+ * @since 6.11.2012
  */
 public class ImportProjectAction extends ImportModuleAction {
-
-
   @Override
   public void actionPerformed(AnActionEvent e) {
     doImport(null);
index 188a4f90ea4faaf8cbaa05d6310b8673cdb972b2..0726dd55f03fb11882ba860d905680657ec3d998 100644 (file)
@@ -17,7 +17,6 @@ package com.intellij.openapi.roots.ui.configuration;
 
 import com.intellij.openapi.options.ConfigurationException;
 import com.intellij.openapi.roots.LanguageLevelModuleExtensionImpl;
-import com.intellij.openapi.roots.LanguageLevelProjectExtension;
 
 import javax.swing.*;
 import java.awt.*;
@@ -47,13 +46,12 @@ public class ContentEntriesEditor extends JavaContentEntriesEditor {
 
   @Override
   protected void addAdditionalSettingsToPanel(final JPanel mainPanel) {
-    myLanguageLevelConfigurable = new LanguageLevelConfigurable() {
+    myLanguageLevelConfigurable = new LanguageLevelConfigurable(myProject) {
       @Override
       public LanguageLevelModuleExtensionImpl getLanguageLevelExtension() {
         return getModel().getModuleExtension(LanguageLevelModuleExtensionImpl.class);
       }
     };
-    myLanguageLevelConfigurable.addProjectDefault(LanguageLevelProjectExtension.getInstance(myProject).getLanguageLevel());
     mainPanel.add(myLanguageLevelConfigurable.createComponent(), BorderLayout.NORTH);
     myLanguageLevelConfigurable.reset();
   }
index ba7778da639766f24ef9b8e0e9e741e270787c5b..ca72f1376e55a6d6685816a97e9b0c9031a194ca 100644 (file)
  */
 package com.intellij.openapi.roots.ui.configuration;
 
+import com.intellij.icons.AllIcons;
 import com.intellij.openapi.actionSystem.CustomShortcutSet;
+import com.intellij.openapi.project.ProjectBundle;
+import com.intellij.openapi.roots.SourceFolder;
+import com.intellij.openapi.ui.DialogWrapper;
+import com.intellij.openapi.util.io.FileUtil;
+import com.intellij.openapi.util.text.StringUtil;
+import com.intellij.ui.roots.IconActionComponent;
+import com.intellij.util.ui.FormBuilder;
+import com.intellij.util.ui.UIUtil;
+import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
-import org.jetbrains.jps.model.JpsDummyElement;
+import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
+import org.jetbrains.jps.model.java.JavaResourceRootProperties;
 import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
 
 import javax.swing.*;
+import java.awt.*;
 
 /**
  * @author nik
  */
-public abstract class JavaResourceRootEditHandlerBase extends ModuleSourceRootEditHandler<JpsDummyElement> {
-  protected JavaResourceRootEditHandlerBase(JpsModuleSourceRootType<JpsDummyElement> rootType) {
+public abstract class JavaResourceRootEditHandlerBase extends ModuleSourceRootEditHandler<JavaResourceRootProperties> {
+  public JavaResourceRootEditHandlerBase(JpsModuleSourceRootType<JavaResourceRootProperties> rootType) {
     super(rootType);
   }
 
@@ -41,4 +53,103 @@ public abstract class JavaResourceRootEditHandlerBase extends ModuleSourceRootEd
   public CustomShortcutSet getMarkRootShortcutSet() {
     return null;
   }
+
+  @NotNull
+  @Override
+  public Icon getRootIcon(@NotNull JavaResourceRootProperties properties) {
+    return properties.isForGeneratedSources() ? getGeneratedRootIcon() : getRootIcon();
+  }
+
+  @NotNull
+  protected Icon getGeneratedRootIcon() {
+    return getRootIcon();
+  }
+
+  @Nullable
+  @Override
+  public String getPropertiesString(@NotNull JavaResourceRootProperties properties) {
+    StringBuilder buffer = new StringBuilder();
+    if (properties.isForGeneratedSources()) {
+      buffer.append(" [generated]");
+    }
+    String relativeOutputPath = properties.getRelativeOutputPath();
+    if (!relativeOutputPath.isEmpty()) {
+      buffer.append(" (").append(relativeOutputPath).append(")");
+    }
+    return buffer.length() > 0 ? buffer.toString() : null;
+  }
+
+  @Nullable
+  @Override
+  public JComponent createPropertiesEditor(@NotNull final SourceFolder folder,
+                                           @NotNull final JComponent parentComponent,
+                                           @NotNull final ContentRootPanel.ActionCallback callback) {
+    final IconActionComponent iconComponent = new IconActionComponent(AllIcons.Modules.SetPackagePrefix,
+                                                                      AllIcons.Modules.SetPackagePrefixRollover,
+                                                                      ProjectBundle.message("module.paths.edit.properties.tooltip"),
+                                                                      new Runnable() {
+                                                                        @Override
+                                                                        public void run() {
+                                                                          JavaResourceRootProperties properties = folder.getJpsElement().getProperties( JavaModuleSourceRootTypes.RESOURCES);
+                                                                          assert properties != null;
+                                                                          ResourceRootPropertiesDialog
+                                                                            dialog = new ResourceRootPropertiesDialog(parentComponent, properties);
+                                                                          if (dialog.showAndGet()) {
+                                                                            callback.onSourceRootPropertiesChanged(folder);
+                                                                          }
+                                                                        }
+                                                                      });
+    final JPanel panel = new JPanel(new BorderLayout());
+    panel.setOpaque(false);
+    panel.add(iconComponent, BorderLayout.CENTER);
+    panel.add(Box.createHorizontalStrut(3), BorderLayout.EAST);
+    return panel;
+  }
+
+  private static class ResourceRootPropertiesDialog extends DialogWrapper {
+    private final JTextField myRelativeOutputPathField;
+    private final JCheckBox myIsGeneratedCheckBox;
+    private final JPanel myMainPanel;
+    @NotNull private final JavaResourceRootProperties myProperties;
+
+    private ResourceRootPropertiesDialog(@NotNull JComponent parentComponent, @NotNull JavaResourceRootProperties properties) {
+      super(parentComponent, true);
+      myProperties = properties;
+      setTitle(ProjectBundle.message("module.paths.edit.properties.title"));
+      myRelativeOutputPathField = new JTextField();
+      myIsGeneratedCheckBox = new JCheckBox(UIUtil.replaceMnemonicAmpersand("For &generated resources"));
+      myMainPanel = FormBuilder.createFormBuilder()
+        .addLabeledComponent("Relative output &path:", myRelativeOutputPathField)
+        .addComponent(myIsGeneratedCheckBox)
+        .getPanel();
+      myRelativeOutputPathField.setText(myProperties.getRelativeOutputPath());
+      myRelativeOutputPathField.setColumns(25);
+      myIsGeneratedCheckBox.setSelected(myProperties.isForGeneratedSources());
+      init();
+    }
+
+    @Nullable
+    @Override
+    public JComponent getPreferredFocusedComponent() {
+      return myRelativeOutputPathField;
+    }
+
+    @Override
+    protected void doOKAction() {
+      myProperties.setRelativeOutputPath(normalizePath(myRelativeOutputPathField.getText()));
+      myProperties.setForGeneratedSources(myIsGeneratedCheckBox.isSelected());
+      super.doOKAction();
+    }
+
+    @NotNull
+    private static String normalizePath(String path) {
+      return StringUtil.trimEnd(StringUtil.trimStart(FileUtil.toSystemIndependentName(path.trim()), "/"), "/");
+    }
+
+    @Nullable
+    @Override
+    protected JComponent createCenterPanel() {
+      return myMainPanel;
+    }
+  }
 }
index 7c6d71383860ffad43ca8722ddac2fc39ce1c9a4..f277f2c77ba981d794b59f8f47c71681f214c341 100644 (file)
@@ -25,7 +25,6 @@ import com.intellij.openapi.ui.ComboBox;
 import com.intellij.pom.java.LanguageLevel;
 import com.intellij.ui.ColoredListCellRendererWrapper;
 import com.intellij.ui.SimpleTextAttributes;
-import org.jetbrains.annotations.Nullable;
 
 import javax.swing.*;
 
@@ -33,11 +32,8 @@ import javax.swing.*;
  * @author ven
  */
 @SuppressWarnings("unchecked")
-public class LanguageLevelCombo extends ComboBox {
+public abstract class LanguageLevelCombo extends ComboBox {
 
-  /** Default from current SDK or project*/
-  @Nullable
-  private LanguageLevel myDefaultLevel;
   private final String myDefaultItem;
 
   public LanguageLevelCombo(String defaultItem) {
@@ -53,8 +49,9 @@ public class LanguageLevelCombo extends ComboBox {
         }
         else if (value instanceof String) {    // default for SDK or project
           append((String)value);
-          if (myDefaultLevel != null) {
-            append(" (" + myDefaultLevel.getPresentableText() + ")", SimpleTextAttributes.GRAYED_ATTRIBUTES);
+          LanguageLevel defaultLevel = getDefaultLevel();
+          if (defaultLevel != null) {
+            append(" (" + defaultLevel.getPresentableText() + ")", SimpleTextAttributes.GRAYED_ATTRIBUTES);
           }
         }
       }
@@ -70,7 +67,7 @@ public class LanguageLevelCombo extends ComboBox {
     sdkUpdated(sdk);
 
     LanguageLevelProjectExtension extension = LanguageLevelProjectExtension.getInstance(project);
-    if (myDefaultLevel != null && extension.isDefault()) {
+    if (getDefaultLevel() != null && extension.isDefault()) {
       setSelectedItem(myDefaultItem);
     }
     else {
@@ -78,6 +75,8 @@ public class LanguageLevelCombo extends ComboBox {
     }
   }
 
+  protected abstract LanguageLevel getDefaultLevel();
+
   void sdkUpdated(Sdk sdk) {
     LanguageLevel newLevel = null;
     if (sdk != null) {
@@ -92,19 +91,23 @@ public class LanguageLevelCombo extends ComboBox {
   void updateDefaultLevel(LanguageLevel newLevel) {
     if (newLevel == null) {
       if (getSelectedItem() == myDefaultItem) {
-        setSelectedItem(myDefaultLevel);
+        setSelectedItem(getDefaultLevel());
       }
       removeItem(myDefaultItem);
     }
     else if (!(getItemAt(0) instanceof String)) {
-      insertItemAt(myDefaultItem, 0);
+      addDefaultItem();
     }
-    myDefaultLevel = newLevel;
+    repaint();
+  }
+
+  void addDefaultItem() {
+    insertItemAt(myDefaultItem, 0);
   }
 
   public LanguageLevel getSelectedLevel() {
     Object item = getSelectedItem();
-    return item instanceof LanguageLevel ? (LanguageLevel)item : myDefaultLevel;
+    return item instanceof LanguageLevel ? (LanguageLevel)item : getDefaultLevel();
   }
 
   public boolean isDefault() {
index 3057e3e36ecd4391aa99fff8e61afb872d1a6a37..ad7ca4a1f8d7a49c587ca7874de2e3b01c667f09 100644 (file)
@@ -18,8 +18,10 @@ package com.intellij.openapi.roots.ui.configuration;
 
 import com.intellij.openapi.options.ConfigurationException;
 import com.intellij.openapi.options.UnnamedConfigurable;
+import com.intellij.openapi.project.Project;
 import com.intellij.openapi.project.ProjectBundle;
 import com.intellij.openapi.roots.LanguageLevelModuleExtensionImpl;
+import com.intellij.openapi.roots.impl.LanguageLevelProjectExtensionImpl;
 import com.intellij.pom.java.LanguageLevel;
 import org.jetbrains.annotations.NotNull;
 
@@ -36,8 +38,14 @@ public abstract class LanguageLevelConfigurable implements UnnamedConfigurable {
   private LanguageLevelCombo myLanguageLevelCombo;
   private JPanel myPanel = new JPanel(new GridBagLayout());
 
-  public LanguageLevelConfigurable() {
-    myLanguageLevelCombo = new LanguageLevelCombo(ProjectBundle.message("project.language.level.combo.item"));
+  public LanguageLevelConfigurable(final Project project) {
+    myLanguageLevelCombo = new LanguageLevelCombo(ProjectBundle.message("project.language.level.combo.item")) {
+      @Override
+      protected LanguageLevel getDefaultLevel() {
+        return LanguageLevelProjectExtensionImpl.getInstanceImpl(project).getCurrentLevel();
+      }
+    };
+    myLanguageLevelCombo.addDefaultItem();
     myLanguageLevelCombo.addActionListener(new ActionListener() {
       @Override
       public void actionPerformed(final ActionEvent e) {
@@ -82,8 +90,4 @@ public abstract class LanguageLevelConfigurable implements UnnamedConfigurable {
   }
 
   public abstract LanguageLevelModuleExtensionImpl getLanguageLevelExtension();
-
-  public void addProjectDefault(LanguageLevel projectDefault) {
-    myLanguageLevelCombo.updateDefaultLevel(projectDefault);
-  }
 }
index a27450522fbdc1fb1f83d29abcc24b6474b1f546..b7ba7b6fb3077489b4c804e67d160474e9ee5bac 100644 (file)
@@ -28,9 +28,13 @@ import com.intellij.openapi.options.ConfigurationException;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.project.ProjectBundle;
 import com.intellij.openapi.project.ex.ProjectEx;
+import com.intellij.openapi.projectRoots.JavaSdk;
+import com.intellij.openapi.projectRoots.JavaSdkVersion;
+import com.intellij.openapi.projectRoots.Sdk;
 import com.intellij.openapi.roots.CompilerProjectExtension;
 import com.intellij.openapi.roots.LanguageLevelProjectExtension;
 import com.intellij.openapi.roots.ModifiableRootModel;
+import com.intellij.openapi.roots.impl.LanguageLevelProjectExtensionImpl;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectStructureElementConfigurable;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
@@ -43,6 +47,7 @@ import com.intellij.openapi.util.io.FileUtil;
 import com.intellij.openapi.util.registry.Registry;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.openapi.vfs.VfsUtilCore;
+import com.intellij.pom.java.LanguageLevel;
 import com.intellij.ui.DocumentAdapter;
 import com.intellij.ui.FieldPanel;
 import com.intellij.ui.InsertPathAction;
@@ -169,6 +174,13 @@ public class ProjectConfigurable extends ProjectStructureElementConfigurable<Pro
       @Override
       public void actionPerformed(ActionEvent e) {
         myLanguageLevelCombo.sdkUpdated(myProjectJdkConfigurable.getSelectedProjectJdk());
+        LanguageLevelProjectExtensionImpl.getInstanceImpl(myProject).setCurrentLevel(myLanguageLevelCombo.getSelectedLevel());
+      }
+    });
+    myLanguageLevelCombo.addActionListener(new ActionListener() {
+      @Override
+      public void actionPerformed(ActionEvent e) {
+        LanguageLevelProjectExtensionImpl.getInstanceImpl(myProject).setCurrentLevel(myLanguageLevelCombo.getSelectedLevel());
       }
     });
   }
@@ -282,7 +294,7 @@ public class ProjectConfigurable extends ProjectStructureElementConfigurable<Pro
   @Override
   @SuppressWarnings({"SimplifiableIfStatement"})
   public boolean isModified() {
-    if (!LanguageLevelProjectExtension.getInstance(myProject).getLanguageLevel().equals(myLanguageLevelCombo.getSelectedItem())) {
+    if (!LanguageLevelProjectExtension.getInstance(myProject).getLanguageLevel().equals(myLanguageLevelCombo.getSelectedLevel())) {
       return true;
     }
     final String compilerOutput = getOriginalCompilerOutputUrl();
@@ -303,7 +315,15 @@ public class ProjectConfigurable extends ProjectStructureElementConfigurable<Pro
   }
 
   private void createUIComponents() {
-    myLanguageLevelCombo = new LanguageLevelCombo(JavaCoreBundle.message("default.language.level.description"));
+    myLanguageLevelCombo = new LanguageLevelCombo(JavaCoreBundle.message("default.language.level.description")) {
+      @Override
+      protected LanguageLevel getDefaultLevel() {
+        Sdk sdk = myProjectJdkConfigurable.getSelectedProjectJdk();
+        if (sdk == null) return null;
+        JavaSdkVersion version = JavaSdk.getInstance().getVersion(sdk);
+        return version == null ? null : version.getMaxLanguageLevel();
+      }
+    };
     final JTextField textField = new JTextField();
     final FileChooserDescriptor outputPathsChooserDescriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
     InsertPathAction.addTo(textField, outputPathsChooserDescriptor);
index 7036b5d5ea1adaadf15a24dceb8bd41237d4e33d..464e9dd4b07f4884baf4e81a9ba0f38f0032014b 100644 (file)
@@ -110,7 +110,7 @@ public class HighlightControlFlowUtil {
     return null;
   }
 
-  private static boolean isFinalFieldInitialized(@NotNull PsiField field) {
+  public static boolean isFieldInitializedAfterObjectConstruction(@NotNull PsiField field) {
     if (field.hasInitializer()) return true;
     final boolean isFieldStatic = field.hasModifierProperty(PsiModifier.STATIC);
     final PsiClass aClass = field.getContainingClass();
@@ -232,7 +232,7 @@ public class HighlightControlFlowUtil {
   @Nullable
   public static HighlightInfo checkFinalFieldInitialized(@NotNull PsiField field) {
     if (!field.hasModifierProperty(PsiModifier.FINAL)) return null;
-    if (isFinalFieldInitialized(field)) return null;
+    if (isFieldInitializedAfterObjectConstruction(field)) return null;
 
     String description = JavaErrorMessages.message("variable.not.initialized", field.getName());
     TextRange range = HighlightNamesUtil.getFieldDeclarationTextRange(field);
index 33ef7d22442c2ba87022edb4ae7f0ca356fa7844..dc392cec131b585ca585275ad651358221c0d564 100644 (file)
@@ -422,6 +422,7 @@ public class LambdaCanBeMethodReferenceInspection extends BaseJavaBatchLocalInsp
       if (lambdaExpression == null) return;
       PsiType functionalInterfaceType = lambdaExpression.getFunctionalInterfaceType();
       if (functionalInterfaceType == null || !functionalInterfaceType.isValid()) return;
+      String functionalTypeText = functionalInterfaceType.getCanonicalText();
       final String methodRefText = createMethodReferenceText(element, functionalInterfaceType,
                                                              lambdaExpression.getParameterList().getParameters());
 
@@ -430,14 +431,13 @@ public class LambdaCanBeMethodReferenceInspection extends BaseJavaBatchLocalInsp
         final PsiExpression psiExpression = factory.createExpressionFromText(methodRefText, lambdaExpression);
         final SmartTypePointer typePointer = SmartTypePointerManager.getInstance(project).createSmartTypePointer(functionalInterfaceType);
         PsiElement replace = lambdaExpression.replace(psiExpression);
-        if (((PsiMethodReferenceExpression)replace).getFunctionalInterfaceType() == null) { //ambiguity
+        final PsiType functionalTypeAfterReplacement = ((PsiMethodReferenceExpression)replace).getFunctionalInterfaceType();
+        functionalInterfaceType = typePointer.getType();
+        if (functionalTypeAfterReplacement == null || functionalInterfaceType != null && !functionalTypeAfterReplacement.equals(functionalInterfaceType)) { //ambiguity
           final PsiTypeCastExpression cast = (PsiTypeCastExpression)factory.createExpressionFromText("(A)a", replace);
-          functionalInterfaceType = typePointer.getType();
-          if (functionalInterfaceType != null) {
-            cast.getCastType().replace(factory.createTypeElement(functionalInterfaceType));
-            cast.getOperand().replace(replace);
-            replace = replace.replace(cast);
-          }
+          cast.getCastType().replace(factory.createTypeElement(functionalInterfaceType));
+          cast.getOperand().replace(replace);
+          replace = replace.replace(cast);
         }
         JavaCodeStyleManager.getInstance(project).shortenClassReferences(replace);
       }
index 38d4857c7514479a05ecfbbf13eaf77bbd8a24b5..3cde802544c84496b40bc31a1fc809c60838768d 100644 (file)
@@ -1330,11 +1330,7 @@ public class ControlFlowAnalyzer extends JavaElementVisitor {
 
   @Override public void visitClassObjectAccessExpression(PsiClassObjectAccessExpression expression) {
     startElement(expression);
-    PsiElement[] children = expression.getChildren();
-    for (PsiElement child : children) {
-      child.accept(this);
-    }
-    pushUnknown();
+    addInstruction(new PushInstruction(myFactory.createTypeValue(expression.getType(), Nullness.NOT_NULL), expression));
     finishElement(expression);
   }
 
index e914c50278f9145f8fea4cb94eecc80483ae06ab..56bf0f301195cd744cb6e395f83d3c2be6f5011c 100644 (file)
@@ -625,7 +625,7 @@ public class DfaMemoryStateImpl implements DfaMemoryState {
       applyEquivalenceRelation(dfaRelation, dfaLeft, dfaRight);
       return isNegated;
     }
-    if (canBeNaN(dfaLeft) || canBeNaN(dfaRight)) {
+    if (canBeNaN(dfaLeft) && canBeNaN(dfaRight)) {
       applyEquivalenceRelation(dfaRelation, dfaLeft, dfaRight);
       return true;
     }
index 4d8df8da219a443c5a6f1d505afe300a7e18b909..390b0451e0827a8082ef6e33c216d20745313906 100644 (file)
@@ -80,6 +80,11 @@ public class StandardInstructionVisitor extends InstructionVisitor {
       if (!(psi instanceof PsiField) || !psi.hasModifierProperty(PsiModifier.VOLATILE)) {
         memState.setVarValue(var, dfaSource);
       }
+      if (var.getInherentNullability() == Nullness.NULLABLE && !memState.isNotNull(dfaSource) && instruction.isVariableInitializer()) {
+        DfaMemoryStateImpl stateImpl = (DfaMemoryStateImpl)memState;
+        stateImpl.setVariableState(var, stateImpl.getVariableState(var).withNullability(Nullness.NULLABLE));
+      }
+
     } else if (dfaDest instanceof DfaTypeValue && ((DfaTypeValue)dfaDest).isNotNull()) {
       checkNotNullable(memState, dfaSource, NullabilityProblem.assigningToNotNull, instruction.getRExpression());
     }
index a320e5ccf495f3e0199ae6f0afb2797351782f46..90b3796a43fa06acdd7c414ca088c506bb9a3724 100644 (file)
@@ -30,6 +30,7 @@ import com.intellij.codeInspection.dataFlow.DfaMemoryState;
 import com.intellij.codeInspection.dataFlow.InstructionVisitor;
 import com.intellij.codeInspection.dataFlow.value.DfaValue;
 import com.intellij.psi.PsiExpression;
+import com.intellij.psi.PsiVariable;
 import org.jetbrains.annotations.Nullable;
 
 public class AssignInstruction extends Instruction {
@@ -46,10 +47,15 @@ public class AssignInstruction extends Instruction {
     return visitor.visitAssign(this, runner, stateBefore);
   }
 
+  @Nullable
   public PsiExpression getRExpression() {
     return myRExpression;
   }
 
+  public boolean isVariableInitializer() {
+    return myRExpression != null && myRExpression.getParent() instanceof PsiVariable;
+  }
+
   @Nullable
   public DfaValue getAssignedValue() {
     return myAssignedValue;
index bda9f4be9581448eed5bb3ce568a04a35a0b1f68..9f6253402c86370b389d0ddb900a69fb15d2b409 100644 (file)
@@ -18,6 +18,7 @@ package com.intellij.codeInspection.nullable;
 import com.intellij.codeInsight.AnnotationUtil;
 import com.intellij.codeInsight.NullableNotNullManager;
 import com.intellij.codeInsight.daemon.GroupNames;
+import com.intellij.codeInsight.daemon.impl.analysis.HighlightControlFlowUtil;
 import com.intellij.codeInsight.intention.AddAnnotationPsiFix;
 import com.intellij.codeInsight.intention.impl.AddNotNullAnnotationFix;
 import com.intellij.codeInspection.*;
@@ -179,9 +180,8 @@ public class NullableStuffInspectionBase extends BaseJavaBatchLocalInspectionToo
             }
           }
 
-          List<PsiExpression> initializers = DfaPsiUtil.findAllConstructorInitializers(field);
           if (REQUIRE_NOTNULL_FIELDS_INITIALIZED) {
-            if (annotated.isDeclaredNotNull && initializers.isEmpty()) {
+            if (annotated.isDeclaredNotNull && !HighlightControlFlowUtil.isFieldInitializedAfterObjectConstruction(field)) {
               final PsiAnnotation annotation = AnnotationUtil.findAnnotation(field, manager.getNotNulls());
               if (annotation != null) {
                 holder.registerProblem(annotation.isPhysical() ? annotation : field.getNameIdentifier(),
@@ -191,7 +191,7 @@ public class NullableStuffInspectionBase extends BaseJavaBatchLocalInspectionToo
             }
           }
 
-          for (PsiExpression rhs : initializers) {
+          for (PsiExpression rhs : DfaPsiUtil.findAllConstructorInitializers(field)) {
             if (rhs instanceof PsiReferenceExpression) {
               PsiElement target = ((PsiReferenceExpression)rhs).resolve();
               if (target instanceof PsiParameter && target.isPhysical()) {
index f7666eb21ffb78b479f0375899de7eae8d1b9277..767bc5cc948d5bcc80105f5d1524ee6f06d5188d 100644 (file)
@@ -12,6 +12,7 @@ import com.intellij.util.containers.ContainerUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
+import org.jetbrains.jps.model.java.JavaResourceRootProperties;
 import org.jetbrains.jps.model.java.JavaSourceRootProperties;
 
 import java.util.ArrayList;
@@ -51,7 +52,8 @@ public class JavaProjectRootsUtil {
 
   private static boolean isForGeneratedSources(SourceFolder sourceFolder) {
     JavaSourceRootProperties properties = sourceFolder.getJpsElement().getProperties(JavaModuleSourceRootTypes.SOURCES);
-    return properties != null && properties.isForGeneratedSources();
+    JavaResourceRootProperties resourceProperties = sourceFolder.getJpsElement().getProperties(JavaModuleSourceRootTypes.RESOURCES);
+    return properties != null && properties.isForGeneratedSources() || resourceProperties != null && resourceProperties.isForGeneratedSources();
   }
 
   public static boolean isInGeneratedCode(@NotNull VirtualFile file, @NotNull Project project) {
index 0fd6cc0569e4817778679c8316b308b44d2dff43..bcb4e271d54507b04cd46033c091020dcd135e9c 100644 (file)
@@ -15,9 +15,8 @@
  */
 package com.intellij.refactoring.util;
 
-import com.intellij.psi.PsiType;
-import com.intellij.psi.PsiVariable;
-import com.intellij.psi.SmartTypePointerManager;
+import com.intellij.psi.*;
+import com.intellij.psi.search.GlobalSearchScope;
 import org.jetbrains.annotations.NotNull;
 
 public class VariableData {
@@ -33,6 +32,9 @@ public class VariableData {
 
   public VariableData(@NotNull PsiVariable var, @NotNull PsiType type) {
     variable = var;
+    if (type instanceof PsiLambdaParameterType || type instanceof PsiLambdaExpressionType || type instanceof PsiMethodReferenceType) {
+      type = PsiType.getJavaLangObject(var.getManager(), GlobalSearchScope.allScope(var.getProject()));
+    }
     this.type = SmartTypePointerManager.getInstance(var.getProject()).createSmartTypePointer(type).getType();
   }
 }
index 5ef5abbc9b0d2f69c91372dd17fa39498eb611bf..a5b22a82ec83e3368e8f95d7a94b3c9a32b7faaa 100644 (file)
@@ -45,6 +45,7 @@ import com.intellij.openapi.fileChooser.FileChooserDescriptor;
 import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
 import com.intellij.openapi.fileEditor.FileDocumentManager;
 import com.intellij.openapi.fileEditor.FileEditorManager;
+import com.intellij.openapi.project.DumbService;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.project.ProjectBundle;
 import com.intellij.openapi.projectRoots.SdkModificator;
@@ -161,7 +162,12 @@ public class ExternalAnnotationsManagerImpl extends ReadableExternalAnnotationsM
         application.invokeLater(new Runnable() {
           @Override
           public void run() {
-            setupRootAndAnnotateExternally(entry, project, listOwner, annotationFQName, fromFile, packageName, value);
+            DumbService.getInstance(project).withAlternativeResolveEnabled(new Runnable() {
+              @Override
+              public void run() {
+                setupRootAndAnnotateExternally(entry, project, listOwner, annotationFQName, fromFile, packageName, value);
+              }
+            });
           }
         }, project.getDisposed());
       }
index fc5fe63e7a98268c8caed49cc4f32d6e67763c98..6352d8105a0afa133b771ee0d693d3c35d89d458 100644 (file)
@@ -27,10 +27,10 @@ import com.intellij.ide.util.treeView.AbstractTreeNode;
 import com.intellij.openapi.actionSystem.CommonDataKeys;
 import com.intellij.openapi.actionSystem.DataContext;
 import com.intellij.openapi.actionSystem.LangDataKeys;
-import com.intellij.openapi.actionSystem.PlatformDataKeys;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.module.ModuleManager;
 import com.intellij.openapi.module.ModuleUtilCore;
+import com.intellij.openapi.project.DumbService;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.FileIndexFacade;
 import com.intellij.openapi.util.Comparing;
@@ -146,6 +146,10 @@ public class PsiClassFavoriteNodeProvider extends FavoriteNodeProvider {
 
   @Override
   public Object[] createPathFromUrl(final Project project, final String url, final String moduleName) {
+    if (DumbService.isDumb(project)) {
+      return null;
+    }
+
     GlobalSearchScope scope = null;
     if (moduleName != null) {
       final Module module = ModuleManager.getInstance(project).findModuleByName(moduleName);
index dbc4330202a8aef55d32dbe5a26314772ba3bad0..4ee28ed0cbe37e9c404aebdc4d14e479bcdf4b54 100644 (file)
@@ -241,8 +241,11 @@ public class JavaSdkImpl extends JavaSdk {
     final FileChooserDescriptor descriptor = new FileChooserDescriptor(baseDescriptor) {
       @Override
       public void validateSelectedFiles(VirtualFile[] files) throws Exception {
-        if (files.length > 0 && JrtFileSystem.isModularJdk(files[0].getPath()) && !JrtFileSystem.isSupported()) {
-          throw new Exception(LangBundle.message("jrt.not.available.message"));
+        if (files.length > 0 && !JrtFileSystem.isSupported()) {
+          String path = files[0].getPath();
+          if (JrtFileSystem.isModularJdk(path) || JrtFileSystem.isModularJdk(adjustSelectedSdkHome(path))) {
+            throw new Exception(LangBundle.message("jrt.not.available.message"));
+          }
         }
         baseDescriptor.validateSelectedFiles(files);
       }
index d9e5a703efeffe06a1d35aa6991e3342a0534feb..02f63b9881ea998af3d5f0319cd2d2aacba04a51 100644 (file)
@@ -52,6 +52,10 @@ import org.jetbrains.annotations.Nullable;
     setDefault(project.isDefault() ? true : null);
   }
 
+  public static LanguageLevelProjectExtensionImpl getInstanceImpl(Project project) {
+    return (LanguageLevelProjectExtensionImpl)getInstance(project);
+  }
+
   private void readExternal(final Element element) {
     String level = element.getAttributeValue(LANGUAGE_LEVEL);
     if (level == null) {
@@ -129,7 +133,17 @@ import org.jetbrains.annotations.Nullable;
     }
   }
 
-  public static class MyProjectExtension extends ProjectExtension {
+    private LanguageLevel myCurrentLevel;
+
+    public void setCurrentLevel(LanguageLevel level) {
+      myCurrentLevel = level;
+    }
+
+    public LanguageLevel getCurrentLevel() {
+      return myCurrentLevel;
+    }
+
+    public static class MyProjectExtension extends ProjectExtension {
     private final LanguageLevelProjectExtensionImpl myInstance;
 
     public MyProjectExtension(final Project project) {
index a3ed29f87dddcd535b9a6d22ddb5a808944eae49..173a7e070258b349087f364398873adbf4f6bae4 100644 (file)
  */
 package com.intellij.psi.impl.smartPointers;
 
+import com.intellij.lang.java.JavaLanguage;
 import com.intellij.psi.*;
 import com.intellij.psi.impl.source.PsiFileWithStubSupport;
 import com.intellij.psi.stubs.IStubElementType;
 import com.intellij.psi.stubs.StubTree;
 import com.intellij.psi.util.PsiUtilCore;
 import com.intellij.psi.xml.XmlTag;
+import com.intellij.psi.xml.XmlToken;
 import com.intellij.xml.util.XmlTagUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -53,6 +55,18 @@ public class AnchorElementInfoFactory implements SmartPointerElementInfoFactory
 
   @Nullable
   static PsiElement getAnchor(PsiElement element) {
+    //a hack
+    if (element instanceof XmlTag) {
+      XmlToken tagNameElement = XmlTagUtil.getStartTagNameElement((XmlTag)element);
+      if (tagNameElement != null && tagNameElement.isPhysical()) {
+        return tagNameElement;
+      }
+    }
+    
+    if (!element.getLanguage().isKindOf(JavaLanguage.INSTANCE)) {
+      return null;
+    }
+    
     PsiUtilCore.ensureValid(element);
     PsiElement anchor = null;
     if (element instanceof PsiClass) {
@@ -69,9 +83,6 @@ public class AnchorElementInfoFactory implements SmartPointerElementInfoFactory
     else if (element instanceof PsiVariable) {
       anchor = ((PsiVariable)element).getNameIdentifier();
     }
-    else if (element instanceof XmlTag) {
-      anchor = XmlTagUtil.getStartTagNameElement((XmlTag)element);
-    }
     if (anchor != null && (!anchor.isPhysical() /*|| anchor.getTextRange()==null*/)) return null;
     return anchor;
   }
index 9fc5f475d0295ea73c109cad574254d1673174e1..bc05efb60871874624f1549caa5df5f0e74187d1 100644 (file)
@@ -634,6 +634,12 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager {
       if (isIdentifier(text)) {
         return new NamesByExprInfo(text, getSuggestionsByName(text, variableKind, false, correctKeywords));
       }
+    } else if (expr instanceof PsiFunctionalExpression) {
+      final PsiType functionalInterfaceType = ((PsiFunctionalExpression)expr).getFunctionalInterfaceType();
+      if (functionalInterfaceType != null) {
+        final String[] namesByType = suggestVariableNameByType(functionalInterfaceType, variableKind, correctKeywords);
+        return new NamesByExprInfo(null, namesByType);
+      }
     }
 
     return new NamesByExprInfo(null, ArrayUtil.EMPTY_STRING_ARRAY);
index 2ce7340632c98e37cee541104fdb161802e4f76d..92aedd951319e0a579321f613218e2de7e10b238 100644 (file)
@@ -50,7 +50,7 @@ public abstract class AbstractJavaInplaceIntroducer extends AbstractInplaceIntro
 
   @Override
   protected String[] suggestNames(boolean replaceAll, PsiVariable variable) {
-    final PsiType defaultType = myTypeSelectorManager.getTypeSelector().getSelectedType();
+    final PsiType defaultType = getType();
     final String propertyName = variable != null
                                 ? JavaCodeStyleManager.getInstance(myProject).variableNameToPropertyName(variable.getName(), VariableKind.LOCAL_VARIABLE)
                                 : null;
index 43758f6203423316da3411088857d4d10f697899..e782fd1c7847677acbc4c972d6321dfe996b2118 100644 (file)
@@ -386,7 +386,7 @@ public class RefactoringUtil {
 
   public static PsiType getTypeByExpressionWithExpectedType(PsiExpression expr) {
     PsiType type = getTypeByExpression(expr);
-    final boolean isFunctionalType = type instanceof PsiLambdaExpressionType || type instanceof PsiMethodReferenceType;
+    final boolean isFunctionalType = type instanceof PsiLambdaExpressionType || type instanceof PsiMethodReferenceType || type instanceof PsiLambdaParameterType;
     if (type != null && !isFunctionalType) {
       return type;
     }
index 1c37445ba7498306cdbe501550da7d9f70718dde..f477247181c093257c24a7f2e12176c0102a1d08 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@ import com.intellij.codeInsight.highlighting.HighlightManager;
 import com.intellij.execution.ui.ConsoleView;
 import com.intellij.icons.AllIcons;
 import com.intellij.ide.DataManager;
+import com.intellij.ide.ExporterToTextFile;
 import com.intellij.notification.NotificationGroup;
 import com.intellij.openapi.actionSystem.*;
 import com.intellij.openapi.editor.Editor;
@@ -32,22 +33,25 @@ import com.intellij.openapi.project.Project;
 import com.intellij.openapi.ui.MessageType;
 import com.intellij.openapi.ui.Splitter;
 import com.intellij.openapi.util.text.StringUtil;
+import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.openapi.wm.IdeFocusManager;
 import com.intellij.openapi.wm.ToolWindowId;
 import com.intellij.ui.*;
 import com.intellij.ui.components.JBList;
 import com.intellij.util.PlatformIcons;
 import com.intellij.util.ui.UIUtil;
+import org.jetbrains.annotations.NonNls;
+import org.jetbrains.annotations.Nullable;
 
 import javax.swing.*;
+import javax.swing.event.ChangeListener;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
 import java.awt.*;
 import java.awt.datatransfer.StringSelection;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
+import java.io.File;
+import java.util.*;
 import java.util.List;
 
 import static com.intellij.icons.AllIcons.Debugger.ThreadStates.*;
@@ -56,7 +60,7 @@ import static com.intellij.icons.AllIcons.Debugger.ThreadStates.*;
  * @author Jeka
  * @author Konstantin Bulenkov
  */
-public class ThreadDumpPanel extends JPanel {
+public class ThreadDumpPanel extends JPanel implements DataProvider {
   private static final Icon PAUSE_ICON_DAEMON = new LayeredIcon(Paused, Daemon_sign);
   private static final Icon LOCKED_ICON_DAEMON = new LayeredIcon(Locked, Daemon_sign);
   private static final Icon RUNNING_ICON_DAEMON = new LayeredIcon(Running, Daemon_sign);
@@ -68,6 +72,7 @@ public class ThreadDumpPanel extends JPanel {
   private final List<ThreadState> myThreadDump;
   private final JPanel myFilterPanel;
   private final SearchTextField myFilterField;
+  private final ExporterToTextFile myExporterToTextFile;
 
   public ThreadDumpPanel(final Project project, final ConsoleView consoleView, final DefaultActionGroup toolbarActions, final List<ThreadState> threadDump) {
     super(new BorderLayout());
@@ -103,11 +108,14 @@ public class ThreadDumpPanel extends JPanel {
       }
     });
 
+    myExporterToTextFile = createToFileExporter(project, myThreadDump);
+
     FilterAction filterAction = new FilterAction();
     filterAction.registerCustomShortcutSet(ActionManager.getInstance().getAction(IdeActions.ACTION_FIND).getShortcutSet(), myThreadList);
     toolbarActions.add(filterAction);
     toolbarActions.add(new CopyToClipboardAction(threadDump, project));
     toolbarActions.add(new SortThreadsAction());
+    toolbarActions.add(ActionManager.getInstance().getAction(IdeActions.ACTION_EXPORT_TO_TEXT_FILE));
     add(ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, toolbarActions, false).getComponent(), BorderLayout.WEST);
 
     JPanel leftPanel = new JPanel(new BorderLayout());
@@ -137,6 +145,15 @@ public class ThreadDumpPanel extends JPanel {
     }
   }
 
+  @Nullable
+  @Override
+  public Object getData(@NonNls String dataId) {
+    if (PlatformDataKeys.EXPORTER_TO_TEXT_FILE.is(dataId)) {
+      return myExporterToTextFile;
+    }
+    return null;
+  }
+
   private void updateThreadList() {
     String text = myFilterPanel.isVisible() ? myFilterField.getText() : "";
     DefaultListModel model = (DefaultListModel)myThreadList.getModel();
@@ -354,4 +371,59 @@ public class ThreadDumpPanel extends JPanel {
       updateThreadList();
     }
   }
+
+  public static ExporterToTextFile createToFileExporter(Project project, List<ThreadState> threadStates) {
+    return new MyToFileExporter(project, threadStates);
+  }
+
+  private static class MyToFileExporter implements ExporterToTextFile {
+    private final Project myProject;
+    private final List<ThreadState> myThreadStates;
+
+    public MyToFileExporter(Project project, List<ThreadState> threadStates) {
+      myProject = project;
+      myThreadStates = threadStates;
+    }
+
+    @Override
+    public JComponent getSettingsEditor() {
+      return null;
+    }
+
+    @Override
+    public void addSettingsChangedListener(ChangeListener listener) throws TooManyListenersException {}
+
+    @Override
+    public void removeSettingsChangedListener(ChangeListener listener) {}
+
+    @Override
+    public String getReportText() {
+      StringBuilder sb = new StringBuilder();
+      for (ThreadState state : myThreadStates) {
+        sb.append(state.getStackTrace()).append("\n\n");
+      }
+      return sb.toString();
+    }
+
+    private static final @NonNls String DEFAULT_REPORT_FILE_NAME = "threads_report.txt";
+
+    @Override
+    public String getDefaultFilePath() {
+      final VirtualFile baseDir = myProject.getBaseDir();
+      if (baseDir != null) {
+        return baseDir.getPresentableUrl() + File.separator + DEFAULT_REPORT_FILE_NAME;
+      }
+      return null;
+    }
+
+    @Override
+    public void exportedTo(String filePath) {
+
+    }
+
+    @Override
+    public boolean canExport() {
+      return !myThreadStates.isEmpty();
+    }
+  }
 }
index 2d6759d7e44191907e266733fbe5f4d00d11372b..cc632cae898338fb0919d55ef7e5f69180daa402 100644 (file)
@@ -730,9 +730,19 @@ public class ControlFlowUtil {
         if (throwToOffset == nextOffset) {
 
           if (nextOffset == endOffset) {
-            final Instruction lastInstruction = flow.getInstructions().get(endOffset - 1);
-            isNormal = !(lastInstruction instanceof GoToInstruction && ((GoToInstruction)lastInstruction).isReturn) &&
-                       !(lastInstruction instanceof ThrowToInstruction);
+            int lastOffset = endOffset - 1;
+            Instruction lastInstruction = flow.getInstructions().get(lastOffset);
+            if (lastInstruction instanceof GoToInstruction &&
+                ((GoToInstruction)lastInstruction).role == BranchingInstruction.Role.END &&
+                !((GoToInstruction)lastInstruction).isReturn) {
+              lastOffset--;
+            }
+
+            if (lastOffset >= 0) {
+              lastInstruction = flow.getInstructions().get(lastOffset);
+              isNormal = !(lastInstruction instanceof GoToInstruction && ((GoToInstruction)lastInstruction).isReturn) &&
+                         !(lastInstruction instanceof ThrowToInstruction);
+            }
           }
 
           isNormal |= throwToOffset <= endOffset && !isLeaf(nextOffset) && canCompleteNormally[nextOffset];
index ca19d9766eb8572e742d138ab8e0268374f05b81..aa389214205a7cf04e18b951f662b41887008afd 100644 (file)
@@ -196,7 +196,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx {
     DumbService dumbService = DumbService.getInstance(getProject());
     PsiElementFinder[] finders = finders();
     if (dumbService.isDumb()) {
-      List<PsiElementFinder> list = dumbService.filterByDumbAwareness(Arrays.asList(finders));
+      List<PsiElementFinder> list = dumbService.filterByDumbAwareness(finders);
       finders = list.toArray(new PsiElementFinder[list.size()]);
     }
     return finders;
index a7aa915fa54c85ac22ba9e5f659ff8c0045da333..f7c1963ea6c3ece8eab7d1932935e064eaefbd8e 100644 (file)
@@ -68,7 +68,7 @@ public class JavaNameValuePairType extends JavaStubElementType<PsiNameValuePairS
       }
       else if (child.getTokenType() == JavaElementType.LITERAL_EXPRESSION) {
         value = RecordUtil.intern(tree.getCharTable(), tree.getChildren(child).get(0));
-        value = StringUtil.stripQuotesAroundValue(value);
+        value = StringUtil.unquoteString(value);
       }
     }
     return new PsiNameValuePairStubImpl(parentStub, StringRef.fromString(name), StringRef.fromString(value));
index 9c8b8b4772b3bcbb933437d9cd11557ab1418036..8ee31c32f6ef8cdccddac5f5c52d6f6c90656a44 100644 (file)
@@ -288,10 +288,8 @@ public class InferenceIncorporationPhase {
       public boolean process(Pair<PsiType, PsiType> pair) {
         final PsiType sType = pair.first;
         final PsiType tType = pair.second;
-        if (!mySession.isProperType(sType) && !mySession.isProperType(tType)) {
-          if (!(sType instanceof PsiWildcardType) && !(tType instanceof PsiWildcardType) && sType != null && tType != null) {
-            addConstraint(new TypeEqualityConstraint(sType, tType));
-          }
+        if (!(sType instanceof PsiWildcardType) && !(tType instanceof PsiWildcardType) && sType != null && tType != null) {
+          addConstraint(new TypeEqualityConstraint(sType, tType));
         }
         return true;
       }
index fcf0f710d62df66f59ea01dcc8d3d1e660f87c6f..9ec7ab51b0599f8f33991fbea4a0ab588da408bc 100644 (file)
@@ -806,7 +806,7 @@ public class InferenceSession {
       for (int i = 0; i < freshParameters.length; i++) {
         PsiTypeParameter parameter = freshParameters[i];
         final InferenceVariable var = vars.get(i);
-        final PsiType lub = getLowerBound(var, PsiSubstitutor.EMPTY);
+        final PsiType lub = getLowerBound(var, substitutor);
         if (lub != PsiType.NULL) {
           for (PsiClassType upperBoundType : parameter.getExtendsListTypes()) {
             if (!TypeConversionUtil.isAssignable(upperBoundType, lub)) {
@@ -1127,13 +1127,18 @@ public class InferenceSession {
 
     if (parameters.length == functionalMethodParameters.length && !varargs || isStatic && varargs) {//static methods
 
-      if (method.isConstructor() && PsiUtil.isRawSubstitutor(containingClass, qualifierResolveResult.getSubstitutor())) {
+      PsiSubstitutor psiSubstitutor = qualifierResolveResult.getSubstitutor();
+      if (method.isConstructor() && PsiUtil.isRawSubstitutor(containingClass, psiSubstitutor)) {
+        //15.13.1 If ClassType is a raw type, but is not a non-static member type of a raw type,
+        //the candidate notional member methods are those specified in ยง15.9.3 for a
+        //class instance creation expression that uses <> to elide the type arguments to a class
         initBounds(containingClass.getTypeParameters());
+        psiSubstitutor = PsiSubstitutor.EMPTY;
       }
 
       for (int i = 0; i < functionalMethodParameters.length; i++) {
         final PsiType pType = signature.getParameterTypes()[i];
-        addConstraint(new TypeCompatibilityConstraint(substituteWithInferenceVariables(getParameterType(parameters, i, qualifierResolveResult.getSubstitutor(), varargs)),
+        addConstraint(new TypeCompatibilityConstraint(substituteWithInferenceVariables(getParameterType(parameters, i, psiSubstitutor, varargs)),
                                                       PsiImplUtil.normalizeWildcardTypeByPosition(pType, reference)));
       }
     }
index 1b66ab4dada0a87f98ad0a5bb2bc73a0b71c2621..56674fa3952bd7d72ababec9a9e7fc141fe211c1 100644 (file)
@@ -111,10 +111,10 @@ public class MethodReferenceResolver implements ResolveCache.PolyVariantContextR
                 @NotNull
                 @Override
                 public PsiSubstitutor inferTypeArguments(@NotNull ParameterTypeInferencePolicy policy, boolean includeReturnConstraint) {
-                  return inferTypeArguments();
+                  return inferTypeArguments(includeReturnConstraint);
                 }
 
-                private PsiSubstitutor inferTypeArguments() {
+                private PsiSubstitutor inferTypeArguments(boolean includeReturnConstraint) {
                   if (interfaceMethod == null) return substitutor;
                   final InferenceSession session = new InferenceSession(method.getTypeParameters(), substitutor, reference.getManager(), reference);
                   session.initThrowsConstraints(method);
@@ -127,7 +127,7 @@ public class MethodReferenceResolver implements ResolveCache.PolyVariantContextR
                     return substitutor;
                   }
 
-                  if (interfaceMethodReturnType != PsiType.VOID && interfaceMethodReturnType != null) {
+                  if (includeReturnConstraint && interfaceMethodReturnType != PsiType.VOID && interfaceMethodReturnType != null) {
                     if (method.isConstructor()) {
                       //todo
                       session.initBounds(reference, method.getContainingClass().getTypeParameters());
@@ -230,7 +230,7 @@ public class MethodReferenceResolver implements ResolveCache.PolyVariantContextR
         if (!(conflict instanceof MethodCandidateInfo)) continue;
         final PsiMethod psiMethod = ((MethodCandidateInfo)conflict).getElement();
 
-        final PsiSubstitutor substitutor = conflict.getSubstitutor();
+        final PsiSubstitutor substitutor = ((MethodCandidateInfo)conflict).getSubstitutor(false);
         final PsiType[] parameterTypes = psiMethod.getSignature(substitutor).getParameterTypes();
 
         final boolean varargs = ((MethodCandidateInfo)conflict).isVarargs();
index 029db164f0c3fd39831ad895c1c506d4100d22aa..2408bbba5bff7a7258add9a9d26eef6bd9fea682 100644 (file)
@@ -162,7 +162,27 @@ public class PsiMethodReferenceExpressionImpl extends PsiReferenceExpressionBase
           LOG.assertTrue(componentType != null, qualifierResolveResult.getSubstitutor());
           //15.13.1 A method reference expression of the form ArrayType :: new is always exact.
           return factory.createMethodFromText("public " + componentType.createArrayType().getCanonicalText() + " __array__(int i) {return null;}", this);
-        } else {
+        }
+        else {
+          if (getQualifierType() == null) {
+            //ClassType is raw or is a non-static member type of a raw type.
+            PsiClass aClass = containingClass;
+            while (aClass != null) {
+              if (aClass.hasTypeParameters()) {
+                return null;
+              }
+
+              if (aClass.hasModifierProperty(PsiModifier.STATIC)) {
+                break;
+              }
+
+              aClass = aClass.getContainingClass();
+
+              if (PsiTreeUtil.isAncestor(aClass, this, true)) {
+                break;
+              }
+            }
+          }
           methods = containingClass.getConstructors();
         }
       }
index 7bb0bbf781a796b1885a7909882997a6dcf3cf28..2cd009372ada6d14fcf85d59619422822ea426e0 100644 (file)
@@ -18,6 +18,7 @@ package com.intellij.psi.impl.source.tree.java;
 import com.intellij.lang.ASTNode;
 import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.util.TextRange;
+import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.psi.*;
 import com.intellij.psi.impl.PsiImplUtil;
 import com.intellij.psi.impl.java.stubs.JavaStubElementTypes;
@@ -68,7 +69,13 @@ public class PsiNameValuePairImpl extends JavaStubPsiElement<PsiNameValuePairStu
   @Override
   public String getLiteralValue() {
     PsiNameValuePairStub stub = getStub();
-    return stub == null ? null : stub.getValue();
+    if (stub == null) {
+      PsiAnnotationMemberValue value = getValue();
+      return value instanceof PsiLiteralExpression ? StringUtil.unquoteString(value.getText()) : null;
+    }
+    else {
+      return stub.getValue();
+    }
   }
 
   @Override
index a93170650aa83fffa19a162c2153076357c039ad..040653e20934eda0dde94c9b9324898e3ce32834 100644 (file)
@@ -239,9 +239,13 @@ public class PsiReferenceExpressionImpl extends PsiReferenceExpressionBase imple
   @NotNull
   private JavaResolveResult[] resolve(IElementType parentType, @NotNull PsiFile containingFile) {
     if (parentType == JavaElementType.REFERENCE_EXPRESSION) {
+      JavaResolveResult[] variable = null;
       JavaResolveResult[] result = resolveToVariable(containingFile);
-      if (result.length == 1 && result[0].isAccessible()) {
-        return result;
+      if (result.length == 1) {
+        if (result[0].isAccessible()) {
+          return result;
+        }
+        variable = result;
       }
 
       PsiElement classNameElement = getReferenceNameElement();
@@ -260,7 +264,7 @@ public class PsiReferenceExpressionImpl extends PsiReferenceExpressionBase imple
         result = resolveToPackage(containingFile);
       }
 
-      return result;
+      return result.length == 0 && variable != null ? variable : result;
     }
 
     if (parentType == JavaElementType.METHOD_CALL_EXPRESSION) {
index 7722886314363092fc1f16794556f30f700dffd6..7d1894cd6f3b88302df8b49eea6c177b9940ff72 100644 (file)
@@ -4,7 +4,7 @@ class C {
 
 class A extends C {
   {
-    <error descr="Cannot resolve symbol 'id'">id</error>.MyObject.fromInt(1);
+    <error descr="'id' has private access in 'C'">id</error>.MyObject.fromInt(1);
 
     <error descr="'id' has private access in 'C'">id</error>.MyObject o;
   }
index 67bbac28af1ed9783d26d15962a2f3ded74ebf9c..69fd19863ad2e43eb419ddc208419b40436c5890 100644 (file)
@@ -39,6 +39,6 @@ class MyTest1 {
     static void foo(I3 i) {}
 
     static {
-        foo<error descr="Cannot resolve method 'foo(<method reference>)'">(Foo::new)</error>;
+        foo<error descr="Ambiguous method call: both 'MyTest1.foo(I1)' and 'MyTest1.foo(I2)' match">(Foo::new)</error>;
     }
 }
index 6b4de4e565a8b4cd904f6596e61d697837c8ada2..0696aadf6179aecb1531436c0e3d1a9d627fce87 100644 (file)
@@ -67,7 +67,7 @@ class MyTest1 {
     }
 
     public static void main(String[] args) {
-        m<error descr="Ambiguous method call: both 'MyTest1.m(I2)' and 'MyTest1.m(I3)' match">(Foo::new)</error>;
+        m<error descr="Ambiguous method call: both 'MyTest1.m(I1)' and 'MyTest1.m(I2)' match">(Foo::new)</error>;
     }
 }
 class MyTest2 {
@@ -104,6 +104,6 @@ class MyTest2 {
     }
 
     public static void main(String[] args) {
-        m<error descr="Ambiguous method call: both 'MyTest2.m(I2)' and 'MyTest2.m(I3)' match">(Foo::new)</error>;
+        m<error descr="Ambiguous method call: both 'MyTest2.m(I1)' and 'MyTest2.m(I2)' match">(Foo::new)</error>;
     }
 }
index c05073e7870f682bc55040fc87fe53ed28304227..0d1e79863b9d5d825773cb3301f8ea044051f876 100644 (file)
@@ -29,10 +29,10 @@ class Test {
     static void meth4(I3 s) { }
 
     static {
-        meth1(Foo::<error descr="Cannot resolve constructor 'Foo'">new</error>);
+        meth1(<error descr="Inferred type 'java.lang.String' for type parameter 'X' is not within its bound; should extend 'java.lang.Number'">Foo::new</error>);
         meth2(Foo::new);
-        meth3(Foo::<error descr="Cannot resolve constructor 'Foo'">new</error>);
-        meth4<error descr="Cannot resolve method 'meth4(<method reference>)'">(Foo::new)</error>;
+        meth3(<error descr="Inferred type 'java.lang.Object' for type parameter 'X' is not within its bound; should extend 'java.lang.Number'">Foo::new</error>);
+        meth4<error descr="Ambiguous method call: both 'Test.meth4(I1)' and 'Test.meth4(I2)' match">(Foo::new)</error>;
 
         meth1(<error descr="Inferred type 'java.lang.String' for type parameter 'X' is not within its bound; should extend 'java.lang.Number'">Test::foo</error>);
         meth2(Test::foo);
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/IDEA136581.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/IDEA136581.java
new file mode 100644 (file)
index 0000000..faf13e5
--- /dev/null
@@ -0,0 +1,57 @@
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static java.util.stream.Collectors.*;
+
+class Main {
+  public static void main(String... args) {
+    final List<TestReferences> entities = new ArrayList<>();
+    entities.add(new TestReferences(1, 2));
+    entities.add(new TestReferences(3, 4));
+
+    process(entities);
+  }
+
+  private static Map<Integer, Set<Integer>> process(List<? extends References> entities) {
+    return entities.stream()
+      .collect(groupingBy(References::getGroupById,
+                          mapping(References::getOtherId, toSet())));
+  }
+
+  public static interface References {
+    int getGroupById();
+
+    int getOtherId();
+  }
+
+  public static class TestReferences implements References {
+    private int groupById;
+
+    private int otherId;
+
+    public TestReferences(int groupById, int otherId) {
+      this.groupById = groupById;
+      this.otherId = otherId;
+    }
+
+    @Override
+    public int getGroupById() {
+      return groupById;
+    }
+
+    public void setGroupById(int groupById) {
+      this.groupById = groupById;
+    }
+
+    @Override
+    public int getOtherId() {
+      return otherId;
+    }
+
+    public void setOtherId(int otherId) {
+      this.otherId = otherId;
+    }
+  }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/TryCatchWithoutFinallyBlockProcessing.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/TryCatchWithoutFinallyBlockProcessing.java
new file mode 100644 (file)
index 0000000..81eb743
--- /dev/null
@@ -0,0 +1,43 @@
+
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.concurrent.Callable;
+
+class Test {
+
+  {
+    Callable<String> r0 = () -> {
+      log();
+      return "";
+    };
+
+    Callable<String> r = () -> {
+      try {
+        return "";
+      }
+      catch (Throwable ex) {
+        log();
+        return "";
+      }
+    };
+
+    Callable<String> r1 = () -> {
+      log();
+      try {
+        return "";
+      }
+      catch (Throwable ex) {
+        return "";
+      }
+    };
+
+    Callable<String> r2 = () -> {
+      try (InputStream stream = new FileInputStream("")) {
+        return  null;
+      }
+    };
+  }
+
+
+  private static void log() throws Exception {}
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/afterChangedFunctionalType.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/afterChangedFunctionalType.java
new file mode 100644 (file)
index 0000000..5ed2e6b
--- /dev/null
@@ -0,0 +1,17 @@
+// "Replace lambda with method reference" "true"
+import java.util.prefs.Preferences;
+
+class Test {
+
+  private Preferences preferences;
+
+  {
+    foo(short.class, (Writer<Short>) Preferences::putInt);
+  }
+
+  private <T> void foo(Class<T> type, Writer<T> writer) {}
+
+  interface Writer<T> {
+    void write(Preferences preferences, String key, T value);
+  }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/beforeChangedFunctionalType.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/lambda2methodReference/beforeChangedFunctionalType.java
new file mode 100644 (file)
index 0000000..e58ba88
--- /dev/null
@@ -0,0 +1,17 @@
+// "Replace lambda with method reference" "true"
+import java.util.prefs.Preferences;
+
+class Test {
+
+  private Preferences preferences;
+
+  {
+    foo(short.class, (p, k, v) -> p.put<caret>Int(k, v));
+  }
+
+  private <T> void foo(Class<T> type, Writer<T> writer) {}
+
+  interface Writer<T> {
+    void write(Preferences preferences, String key, T value);
+  }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/dataFlow/contractCheck/DoubleParameter.java b/java/java-tests/testData/inspection/dataFlow/contractCheck/DoubleParameter.java
new file mode 100644 (file)
index 0000000..d88bbcc
--- /dev/null
@@ -0,0 +1,11 @@
+import org.jetbrains.annotations.Contract;
+
+class Zoo {
+  @Contract("null, _ -> null; !null, _ -> !null")
+  public static Double testContract_1(Double value1, int value2) {
+    if (value1 == null) {
+      return null;
+    }
+    return 0.0;
+  }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/ExplicitlyNullableLocalVar.java b/java/java-tests/testData/inspection/dataFlow/fixture/ExplicitlyNullableLocalVar.java
new file mode 100644 (file)
index 0000000..f7a0b48
--- /dev/null
@@ -0,0 +1,15 @@
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+abstract class IDEATest {
+  abstract Object someMethod(@NotNull Object someParam);
+  abstract Object someObject();
+
+  public void testIDEA() {
+    @Nullable Object obj2 = someObject();
+    someMethod(<warning descr="Argument 'obj2' might be null">obj2</warning>);
+  }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/nullableProblems/NotNullFieldNotInitializedInOneConstructor.java b/java/java-tests/testData/inspection/nullableProblems/NotNullFieldNotInitializedInOneConstructor.java
new file mode 100644 (file)
index 0000000..33f5103
--- /dev/null
@@ -0,0 +1,16 @@
+import org.jetbrains.annotations.*;
+
+class Test {
+  <warning descr="Not-null fields must be initialized">@NotNull</warning> Object member;
+
+  public Test() {
+  }
+
+  public Test(@NotNull Object member) {
+    this.member = member;
+  }
+
+  private void accessMember() {
+    member = new Object();
+  }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaExpression.java b/java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaExpression.java
new file mode 100644 (file)
index 0000000..016c43a
--- /dev/null
@@ -0,0 +1,12 @@
+import java.util.function.Supplier;
+class Test {
+
+  private void a()
+  {
+    b(<selection>(s) -> {
+      System.out.println(s);
+    }</selection>);
+  }
+
+  void b(Supplier s) {}
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaExpression_after.java b/java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaExpression_after.java
new file mode 100644 (file)
index 0000000..668bc27
--- /dev/null
@@ -0,0 +1,16 @@
+import java.util.function.Supplier;
+class Test {
+
+  private void a()
+  {
+    b(newMethod());
+  }
+
+    private Supplier newMethod() {
+        return (s) -> {
+          System.out.println(s);
+        };
+    }
+
+    void b(Supplier s) {}
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaParameter.java b/java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaParameter.java
new file mode 100644 (file)
index 0000000..b273927
--- /dev/null
@@ -0,0 +1,12 @@
+import java.util.function.Supplier;
+class Test {
+
+  private void a()
+  {
+    b((s) -> {
+      System.out.println(<selection>s</selection>);
+    });
+  }
+
+  void b(Supplier s) {}
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaParameter_after.java b/java/java-tests/testData/refactoring/extractMethod/ExtractUnresolvedLambdaParameter_after.java
new file mode 100644 (file)
index 0000000..668b9ed
--- /dev/null
@@ -0,0 +1,16 @@
+import java.util.function.Supplier;
+class Test {
+
+  private void a()
+  {
+    b((s) -> {
+      System.out.println(newMethod((Object) s));
+    });
+  }
+
+    private boolean newMethod(Object s) {
+        return s;
+    }
+
+    void b(Supplier s) {}
+}
\ No newline at end of file