From b20f87d1102f83f2b4750efd040ae32e93d531e4 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Thu, 9 Jan 2014 18:44:22 +0400 Subject: [PATCH] IDEA-110113 spellchecker always on in commit text field --- .../ex/InspectionProfileWrapper.java | 6 +-- .../ui/SpellCheckingEditorCustomization.java | 7 +-- .../SpellCheckingEditorCustomizationTest.java | 52 +++++++++++++++++++ 3 files changed, 57 insertions(+), 8 deletions(-) create mode 100644 spellchecker/testSrc/com/intellij/spellchecker/ui/SpellCheckingEditorCustomizationTest.java diff --git a/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionProfileWrapper.java b/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionProfileWrapper.java index 136ea58bcda7..4554cbe89dc2 100644 --- a/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionProfileWrapper.java +++ b/platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionProfileWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 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. @@ -79,10 +79,6 @@ public class InspectionProfileWrapper { return myProfile.isToolEnabled(key, element); } - public boolean isToolEnabled(final HighlightDisplayKey key) { - return myProfile.isToolEnabled(key); - } - public InspectionToolWrapper getInspectionTool(final String shortName, PsiElement element) { return myProfile.getInspectionTool(shortName, element); } diff --git a/spellchecker/src/com/intellij/spellchecker/ui/SpellCheckingEditorCustomization.java b/spellchecker/src/com/intellij/spellchecker/ui/SpellCheckingEditorCustomization.java index 31c0462dda1b..b71b5994cdb4 100644 --- a/spellchecker/src/com/intellij/spellchecker/ui/SpellCheckingEditorCustomization.java +++ b/spellchecker/src/com/intellij/spellchecker/ui/SpellCheckingEditorCustomization.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2010 JetBrains s.r.o. + * Copyright 2000-2014 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. @@ -25,6 +25,7 @@ import com.intellij.codeInspection.ex.LocalInspectionToolWrapper; import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiDocumentManager; +import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.spellchecker.inspections.SpellCheckingInspection; import com.intellij.ui.SimpleEditorCustomization; @@ -152,8 +153,8 @@ public class SpellCheckingEditorCustomization extends SimpleEditorCustomization } @Override - public boolean isToolEnabled(HighlightDisplayKey key) { - return myDelegate.isToolEnabled(key) && SPELL_CHECK_TOOLS.containsKey(key.toString()) && myUseSpellCheck; + public boolean isToolEnabled(HighlightDisplayKey key, PsiElement element) { + return myDelegate.isToolEnabled(key, element) && SPELL_CHECK_TOOLS.containsKey(key.toString()) && myUseSpellCheck; } public void setUseSpellCheck(boolean useSpellCheck) { diff --git a/spellchecker/testSrc/com/intellij/spellchecker/ui/SpellCheckingEditorCustomizationTest.java b/spellchecker/testSrc/com/intellij/spellchecker/ui/SpellCheckingEditorCustomizationTest.java new file mode 100644 index 000000000000..3fd653fd7e61 --- /dev/null +++ b/spellchecker/testSrc/com/intellij/spellchecker/ui/SpellCheckingEditorCustomizationTest.java @@ -0,0 +1,52 @@ +/* + * Copyright 2000-2014 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.spellchecker.ui; + +import com.intellij.codeInspection.ex.InspectionProfileImpl; +import com.intellij.openapi.editor.ex.EditorEx; +import com.intellij.openapi.fileTypes.PlainTextFileType; +import com.intellij.spellchecker.inspections.SpellCheckingInspection; +import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase; + +public class SpellCheckingEditorCustomizationTest extends LightPlatformCodeInsightFixtureTestCase { + public void testEnabled() throws Exception { + doTest(true, "missspelling"); + } + + public void testDisabled() throws Exception { + doTest(false, "missspelling"); + } + + @Override + protected boolean isWriteActionRequired() { + return false; + } + + private void doTest(boolean enabled, String document) { + InspectionProfileImpl.INIT_INSPECTIONS = true; + try { + myFixture.configureByText(PlainTextFileType.INSTANCE, document); + myFixture.enableInspections(new SpellCheckingInspection()); + + SpellCheckingEditorCustomization.getInstance(enabled).customize((EditorEx)myFixture.getEditor()); + + myFixture.checkHighlighting(); + } + finally { + InspectionProfileImpl.INIT_INSPECTIONS = false; + } + } +}