[eclipse-anyedit] 01/06: Imported Upstream version 2.4.4

Jakub Adam xhaakon-guest at alioth.debian.org
Thu Aug 1 19:43:52 UTC 2013


This is an automated email from the git hooks/post-receive script.

xhaakon-guest pushed a commit to branch master
in repository eclipse-anyedit.

commit cda1374399eba110272ff7baa9d4526455201ca6
Author: Jakub Adam <jakub.adam at ktknet.cz>
Date:   Thu Aug 1 21:16:16 2013 +0200

    Imported Upstream version 2.4.4
---
 AnyEditTools-feature/feature.xml                   |    9 +-
 AnyEditTools/.classpath                            |   18 +-
 AnyEditTools/.settings/AnyeditPlatform_3.6.target  |   10 +
 .../.settings/AnyeditPlatform_3.7.1.target         |   22 +-
 AnyEditTools/.settings/org.eclipse.jdt.core.prefs  |  712 ++++++++++----------
 AnyEditTools/.settings/org.eclipse.jdt.ui.prefs    |  180 +++--
 AnyEditTools/META-INF/MANIFEST.MF                  |   12 +-
 AnyEditTools/plugin.xml                            |    2 +-
 .../de/loskutov/anyedit/AnyEditToolsPlugin.java    |    4 +-
 .../src/de/loskutov/anyedit/IAnyEditConstants.java |   16 +-
 .../loskutov/anyedit/IOpenEditorParticipant.java   |    8 +-
 AnyEditTools/src/de/loskutov/anyedit/Messages.java |    7 +-
 .../loskutov/anyedit/actions/AbstractAction.java   |   11 +-
 .../anyedit/actions/AbstractOpenAction.java        |    7 +-
 .../anyedit/actions/AbstractReplaceAction.java     |   13 +-
 .../anyedit/actions/AbstractTextAction.java        |    7 +-
 .../loskutov/anyedit/actions/Base64UnEncode.java   |    7 +-
 .../de/loskutov/anyedit/actions/ChangeCase.java    |   52 +-
 .../loskutov/anyedit/actions/ConvertAllAction.java |   10 +-
 .../anyedit/actions/ConvertAllInFolderAction.java  |   52 +-
 .../loskutov/anyedit/actions/ConvertUnicode.java   |   23 +-
 .../anyedit/actions/CountAllInFolderAction.java    |   10 +-
 .../actions/DefaultOpenEditorParticipant.java      |    8 +-
 .../src/de/loskutov/anyedit/actions/OpenFile.java  |   43 +-
 .../src/de/loskutov/anyedit/actions/OpenType.java  |    7 +-
 .../loskutov/anyedit/actions/SaveToFileAction.java |   11 +-
 .../anyedit/actions/SaveToFileParticipant.java     |   11 +-
 .../src/de/loskutov/anyedit/actions/Spaces.java    |   16 +-
 .../loskutov/anyedit/actions/ToggleWhitespace.java |   23 +-
 .../src/de/loskutov/anyedit/actions/UnEscape.java  |   18 +-
 .../anyedit/actions/compare/CompareWithAction.java |    9 +-
 .../compare/CompareWithClipboardAction.java        |    7 +-
 .../actions/compare/CompareWithEditorAction.java   |   19 +-
 .../actions/compare/CompareWithExternalAction.java |    7 +-
 .../actions/compare/CompareWithResourceAction.java |   13 +-
 .../anyedit/actions/internal/IDirtyWorkaround.java |    4 +-
 .../anyedit/actions/internal/InternalOpenType.java |    6 +-
 .../actions/internal/SpecialSaveAction.java        |    9 +-
 .../actions/internal/SpecialSaveAllAction.java     |    9 +-
 .../anyedit/actions/internal/StartupHelper.java    |   39 +-
 .../anyedit/actions/internal/StartupHelper2.java   |   28 +-
 .../anyedit/actions/replace/ReplaceWithAction.java |    7 +-
 .../replace/ReplaceWithClipboardAction.java        |    8 +-
 .../actions/replace/ReplaceWithEditorAction.java   |    8 +-
 .../actions/replace/ReplaceWithExternalAction.java |   10 +-
 .../actions/replace/ReplaceWithResourceAction.java |   10 +-
 .../anyedit/actions/sort/AbstractSortAction.java   |   22 +-
 .../actions/sort/AbstractSortComparator.java       |    2 +-
 ...SortAlphabeticallyCaseInsensitiveAscending.java |    7 +-
 ...ortAlphabeticallyCaseInsensitiveDescending.java |    7 +-
 .../SortAlphabeticallyCaseSensitiveAscending.java  |    7 +-
 .../SortAlphabeticallyCaseSensitiveDescending.java |    7 +-
 .../actions/sort/SortNumericallyAscending.java     |    7 +-
 .../actions/sort/SortNumericallyDescending.java    |    7 +-
 .../anyedit/compare/AnyeditCompareInput.java       |   15 +-
 .../anyedit/compare/ClipboardStreamContent.java    |    4 +-
 .../loskutov/anyedit/compare/ContentWrapper.java   |    6 +-
 .../compare/EditableSharedDocumentAdapter.java     |    4 +-
 .../anyedit/compare/ExternalFileStreamContent.java |    8 +-
 .../anyedit/compare/FileStreamContent.java         |    7 +-
 .../de/loskutov/anyedit/compare/StreamContent.java |    6 +-
 .../anyedit/compare/TextStreamContent.java         |    2 +-
 .../src/de/loskutov/anyedit/jdt/JdtUtils.java      |   13 +-
 .../anyedit/jdt/SelectWorkingSetsAction.java       |   17 +-
 .../src/de/loskutov/anyedit/jdt/TypeFactory.java   |   10 +-
 .../src/de/loskutov/anyedit/messages.properties    |    9 +-
 .../loskutov/anyedit/ui/editor/AbstractEditor.java |   10 +-
 .../anyedit/ui/editor/EditorAdapterFactory.java    |    4 +-
 .../anyedit/ui/editor/EditorPropertyTester.java    |    4 +-
 .../preferences/AndyEditPreferenceInitializer.java |   14 +-
 .../ui/preferences/AnyEditPreferencePage.java      |  125 ++--
 .../ui/preferences/CombinedPreferences.java        |    4 +-
 .../ui/preferences/ProjectPreferencePage.java      |  160 +++--
 .../anyedit/ui/preferences/SupportPanel.java       |    6 +-
 .../de/loskutov/anyedit/ui/wizards/ExportPage.java |   16 +-
 .../de/loskutov/anyedit/ui/wizards/IWSAction.java  |   10 +-
 .../de/loskutov/anyedit/ui/wizards/ImportPage.java |   30 +-
 .../src/de/loskutov/anyedit/ui/wizards/WSPage.java |    9 +-
 .../anyedit/ui/wizards/WorkingSetExportWizard.java |   14 +-
 .../anyedit/ui/wizards/WorkingSetImportWizard.java |    2 +
 .../loskutov/anyedit/util/Base64Preferences.java   |   17 +-
 .../src/de/loskutov/anyedit/util/EclipseUtils.java |   32 +-
 .../loskutov/anyedit/util/LineReplaceResult.java   |    7 +-
 .../anyedit/util/TextReplaceResultSet.java         |   21 +-
 .../src/de/loskutov/anyedit/util/TextUtil.java     |  141 ++--
 .../test/de/loskutov/anyedit/util/TestUtils.java   |    6 +-
 86 files changed, 1259 insertions(+), 1062 deletions(-)

diff --git a/AnyEditTools-feature/feature.xml b/AnyEditTools-feature/feature.xml
index 8e5b68e..be06c1a 100644
--- a/AnyEditTools-feature/feature.xml
+++ b/AnyEditTools-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="AnyEditTools"
       label="AnyEditTools"
-      version="2.4.2.qualifier"
+      version="2.4.4.qualifier"
       provider-name="Andrey Loskutov"
       plugin="de.loskutov.anyedit.AnyEditTools"
       image="loskutov32.gif">
@@ -15,16 +15,17 @@
    </description>
 
    <copyright url="http://andrei.gmxhome.de/anyedit/copyright.html">
-      Copyright (c)2002 - 2010 by Andrei Loskutov <Loskutov at gmx.de>. All rights reserved.
+      Copyright (c)2002 - 2012 by Andrey Loskutov <Loskutov at gmx.de>.
+All rights reserved.
    </copyright>
 
    <license url="http://www.eclipse.org/legal/epl-v10.html">
-      Copyright (c) 2002 - 2010 Andrei Loskutov, licensed under the Eclipse Public License 1.0.
+      Copyright (c) 2002 - 2012 Andrey Loskutov, licensed under the Eclipse Public License 1.0.
    </license>
 
    <url>
       <update label="Andrey Loskutov plugins site" url="http://andrei.gmxhome.de/eclipse/"/>
-      <discovery label="Andrei Loskutov plugins site" url="http://andrei.gmxhome.de/eclipse/"/>
+      <discovery label="Andrey Loskutov plugins site" url="http://andrei.gmxhome.de/eclipse/"/>
    </url>
 
    <requires>
diff --git a/AnyEditTools/.classpath b/AnyEditTools/.classpath
index a5e86be..8cb0d82 100644
--- a/AnyEditTools/.classpath
+++ b/AnyEditTools/.classpath
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="test"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3.8.1"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="test"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3.8.1"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/AnyEditTools/.settings/AnyeditPlatform_3.6.target b/AnyEditTools/.settings/AnyeditPlatform_3.6.target
new file mode 100755
index 0000000..0d3af22
--- /dev/null
+++ b/AnyEditTools/.settings/AnyeditPlatform_3.6.target
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target includeMode="feature" name="Eclipse3.6_anyedit" sequenceNumber="0">
+<locations>
+<location path="${system_property:user.home}/bin/Eclipse36" type="Directory"/>
+</locations>
+<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<launcherArgs>
+<vmArgs>-Xmx900m</vmArgs>
+</launcherArgs>
+</target>
diff --git a/AnyEditTools/.settings/AnyeditPlatform_3.7.1.target b/AnyEditTools/.settings/AnyeditPlatform_3.7.1.target
index 32ab8cb..f9ec7ad 100755
--- a/AnyEditTools/.settings/AnyeditPlatform_3.7.1.target
+++ b/AnyEditTools/.settings/AnyeditPlatform_3.7.1.target
@@ -1,12 +1,10 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.6"?>
-
-<target includeMode="feature" name="Eclipse3.7.1_anyedit">
-<locations>
-<location path="${system_property:user.home}/bin/Eclipse371" type="Directory"/>
-</locations>
-<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
-<launcherArgs>
-<vmArgs>-Xmx900m</vmArgs>
-</launcherArgs>
-</target>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target includeMode="feature" name="Eclipse3.7.1_anyedit" sequenceNumber="0">
+<locations>
+<location path="${system_property:user.home}/bin/Eclipse371" type="Directory"/>
+</locations>
+<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<launcherArgs>
+<vmArgs>-Xmx900m</vmArgs>
+</launcherArgs>
+</target>
diff --git a/AnyEditTools/.settings/org.eclipse.jdt.core.prefs b/AnyEditTools/.settings/org.eclipse.jdt.core.prefs
index 6fe943f..94414f6 100644
--- a/AnyEditTools/.settings/org.eclipse.jdt.core.prefs
+++ b/AnyEditTools/.settings/org.eclipse.jdt.core.prefs
@@ -1,355 +1,357 @@
-#Thu May 27 00:02:47 CEST 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=100
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=100
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=warning
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=100
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=100
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/AnyEditTools/.settings/org.eclipse.jdt.ui.prefs b/AnyEditTools/.settings/org.eclipse.jdt.ui.prefs
index b8cce28..b64c7a4 100644
--- a/AnyEditTools/.settings/org.eclipse.jdt.ui.prefs
+++ b/AnyEditTools/.settings/org.eclipse.jdt.ui.prefs
@@ -1,64 +1,116 @@
-#Thu May 27 00:02:04 CEST 2010
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Andrei (Eclipse [built-in])
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for [...]
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=false
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=false
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=true
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=true
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=false
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=false
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=true
+cleanup.remove_unused_private_methods=false
+cleanup.remove_unused_private_types=false
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_FS
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Andrei (Eclipse [built-in])
+formatter_settings_version=11
+internal.default.compliance=default
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for [...]
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=false
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=true
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=true
+sp_cleanup.remove_unused_private_methods=false
+sp_cleanup.remove_unused_private_types=false
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/AnyEditTools/META-INF/MANIFEST.MF b/AnyEditTools/META-INF/MANIFEST.MF
index bc36d4d..78e58bc 100644
--- a/AnyEditTools/META-INF/MANIFEST.MF
+++ b/AnyEditTools/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: de.loskutov.anyedit.AnyEditTools;singleton:=true
-Bundle-Version: 2.4.2.qualifier
+Bundle-Version: 2.4.4.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: de.loskutov.anyedit.AnyEditToolsPlugin
 Bundle-Vendor: %Bundle-Vendor
@@ -24,15 +24,17 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
  org.eclipse.jdt.ui;resolution:=optional,
  org.eclipse.jdt.core;resolution:=optional,
  org.junit;resolution:=optional
-Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
 Export-Package: de.loskutov.anyedit,
- de.loskutov.anyedit.compare,
- de.loskutov.anyedit.jdt,
  de.loskutov.anyedit.actions,
  de.loskutov.anyedit.actions.compare,
+ de.loskutov.anyedit.actions.internal;x-internal:=true,
  de.loskutov.anyedit.actions.replace,
+ de.loskutov.anyedit.actions.sort,
+ de.loskutov.anyedit.compare,
+ de.loskutov.anyedit.jdt,
  de.loskutov.anyedit.ui.editor,
  de.loskutov.anyedit.ui.preferences,
  de.loskutov.anyedit.ui.wizards,
  de.loskutov.anyedit.util
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/AnyEditTools/plugin.xml b/AnyEditTools/plugin.xml
index 57d6052..6c87399 100644
--- a/AnyEditTools/plugin.xml
+++ b/AnyEditTools/plugin.xml
@@ -848,7 +848,7 @@
             label="AnyEdit"/>
       <keyword
             id="AnyEditTools.keyword2"
-            label="Andrei"/>
+            label="Andrey"/>
       <keyword
             id="AnyEditTools.keyword3"
             label="cool"/>
diff --git a/AnyEditTools/src/de/loskutov/anyedit/AnyEditToolsPlugin.java b/AnyEditTools/src/de/loskutov/anyedit/AnyEditToolsPlugin.java
index eba595e..3793a98 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/AnyEditToolsPlugin.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/AnyEditToolsPlugin.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit;
diff --git a/AnyEditTools/src/de/loskutov/anyedit/IAnyEditConstants.java b/AnyEditTools/src/de/loskutov/anyedit/IAnyEditConstants.java
index 8af5547..7ec37d6 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/IAnyEditConstants.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/IAnyEditConstants.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit;
@@ -12,7 +12,7 @@ package de.loskutov.anyedit;
 /**
  * Some constant names copied from org.eclipse.jdt.ui.PreferenceConstants
  *
- * @author Andrei
+ * @author Andrey
  */
 public interface IAnyEditConstants {
 
@@ -137,6 +137,16 @@ public interface IAnyEditConstants {
     String SAVE_AND_TRIM_ENABLED = "saveAndTrim";
 
     /**
+     * A named preference that controls if blank lines should be trimmed
+     * when removing trailing whitespace.
+     * "removeTrailing" action should be executed.
+     * <p>
+     * Value is of type <code>Boolean</code>.
+     * </p>
+     */
+    String IGNORE_BLANK_LINES_WHEN_TRIMMING = "ignoreBlankLinesWhenTrimming";
+
+    /**
      * A named preference that controls if before "save" action in editor the
      * "addNewLine" action should be executed.
      * <p>
diff --git a/AnyEditTools/src/de/loskutov/anyedit/IOpenEditorParticipant.java b/AnyEditTools/src/de/loskutov/anyedit/IOpenEditorParticipant.java
index 163d532..482a7b9 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/IOpenEditorParticipant.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/IOpenEditorParticipant.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit;
 
@@ -27,7 +27,7 @@ import org.eclipse.ui.IWorkbenchPart;
  * might be undefined. If one of participants was successful in guessing the file/opening
  * the editor, other participants would be ignored.
  *
- * @author Andrei
+ * @author Andrey
  */
 public interface IOpenEditorParticipant {
 
@@ -57,7 +57,7 @@ public interface IOpenEditorParticipant {
      */
     IFile guessFile(IDocument doc, ISelectionProvider selectionProvider,
             IEditorInput currentInput, IWorkbenchPart currentPart)
-            throws OperationCanceledException;
+                    throws OperationCanceledException;
 
     /**
      * Opens editor
diff --git a/AnyEditTools/src/de/loskutov/anyedit/Messages.java b/AnyEditTools/src/de/loskutov/anyedit/Messages.java
index 99c7286..a347aa3 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/Messages.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/Messages.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit;
 
@@ -92,6 +92,9 @@ public class Messages  extends NLS {
     public static String pref_saveAndTrim;
     public static String pref_saveAndTrimTip;
 
+    public static String pref_ignoreOnTrim;
+    public static String pref_ignoreOnTrimTip;
+
     public static String pref_saveAndAddLine;
     public static String pref_saveAndAddLineTip;
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractAction.java
index 09f140b..255bfd1 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions;
 
@@ -12,8 +12,8 @@ import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.ui.IViewActionDelegate;
 import org.eclipse.ui.IViewPart;
@@ -21,11 +21,12 @@ import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
 import org.eclipse.ui.handlers.HandlerUtil;
+
 import de.loskutov.anyedit.ui.editor.AbstractEditor;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public abstract class AbstractAction extends AbstractHandler implements IWorkbenchWindowActionDelegate, IViewActionDelegate {
 
@@ -43,6 +44,7 @@ public abstract class AbstractAction extends AbstractHandler implements IWorkben
         if (window != null && isEnabled()) {
             part = HandlerUtil.getActivePart(event);
             run(new Action(){
+                @Override
                 public String getId() {
                     return event.getCommand().getId();
                 }
@@ -68,6 +70,7 @@ public abstract class AbstractAction extends AbstractHandler implements IWorkben
         return new AbstractEditor(EclipseUtils.getActiveEditor());
     }
 
+    @Override
     public void dispose() {
         if(editor != null){
             editor.dispose();
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractOpenAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractOpenAction.java
index e418c48..03a6526 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractOpenAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractOpenAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.actions;
@@ -25,7 +25,7 @@ import de.loskutov.anyedit.ui.editor.AbstractEditor;
 import de.loskutov.anyedit.ui.editor.EditorPropertyTester;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public abstract class AbstractOpenAction
 extends AbstractAction
@@ -42,6 +42,7 @@ implements IEditorActionDelegate {
         setEditor(new AbstractEditor(targetEditor));
     }
 
+    @Override
     public void run(IAction action) {
         super.run(action);
         if (getViewPart() != null) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractReplaceAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractReplaceAction.java
index 047e09e..329747d 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractReplaceAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractReplaceAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.actions;
@@ -23,6 +23,7 @@ public abstract class AbstractReplaceAction extends AbstractTextAction {
     /** contains possible error information during replace */
     protected boolean shouldStopReplace;
 
+    @Override
     protected TextReplaceResultSet estimateActionRange(IDocument doc){
         TextReplaceResultSet result = new TextReplaceResultSet();
         if (doc == null || getEditor().getSelectionProvider() == null) {
@@ -41,12 +42,10 @@ public abstract class AbstractReplaceAction extends AbstractTextAction {
         return result;
     }
 
-    /* (non-Javadoc)
-     * @see de.loskutov.anyedit.actions.AbstractTextAction#doTextOperation(org.eclipse.jface.text.IDocument, java.lang.String, int, int)
-     */
+    @Override
     protected void doTextOperation(IDocument doc,
             String actionID, TextReplaceResultSet resultSet)
-            throws BadLocationException {
+                    throws BadLocationException {
 
         ITextSelection textSelection = (ITextSelection) getEditor()
                 .getSelectionProvider().getSelection();
@@ -85,7 +84,7 @@ public abstract class AbstractReplaceAction extends AbstractTextAction {
             }
 
             String line = doc.get(
-                lineInfo.getOffset() + startReplaceIndex, rangeToReplace);
+                    lineInfo.getOffset() + startReplaceIndex, rangeToReplace);
             if(line == null){
                 resultSet.add(null);
                 continue;
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractTextAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractTextAction.java
index 90d58ad..889ee4a 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractTextAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/AbstractTextAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 /* This class is started as extension of Rahul Kuchal's whitespace plugin.
  * Rahul Kuchal - http://www.kuchhal.com/ */
@@ -69,6 +69,7 @@ implements IEditorActionDelegate {
     /**
      * @see IActionDelegate#run(IAction)
      */
+    @Override
     public final void run(IAction action) {
         super.run(action);
         if(getEditor() == null){
@@ -131,7 +132,7 @@ implements IEditorActionDelegate {
         int changedLinesNbr = result.getNumberOfLines();
         boolean rewriteWholeDoc = changedLinesNbr >= docLinesNbr;
         DocumentRewriteSession rewriteSession =
-            currEditor.startSequentialRewriteMode(rewriteWholeDoc);
+                currEditor.startSequentialRewriteMode(rewriteWholeDoc);
 
         // some oddities with document??? prevent overflow in changedLinesNbr
         if(rewriteWholeDoc){
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/Base64UnEncode.java b/AnyEditTools/src/de/loskutov/anyedit/actions/Base64UnEncode.java
index d1998f9..30433f6 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/Base64UnEncode.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/Base64UnEncode.java
@@ -1,11 +1,11 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  * Contributor:  Stefan Seidel - initial API and implementation
- * Contributor:  Andrei Loskutov - platform independent refactoring and integration
+ * Contributor:  Andrey Loskutov - platform independent refactoring and integration
  *******************************************************************************/
 package de.loskutov.anyedit.actions;
 
@@ -24,11 +24,13 @@ public class Base64UnEncode extends AbstractReplaceAction {
 
     private boolean splitLines;
 
+    @Override
     protected int getActionKey(String actionID) {
         return actionID.startsWith(AbstractTextAction.ACTION_ID_ENCODE) ? KEY_ENCODE
                 : KEY_DECODE;
     }
 
+    @Override
     protected void doTextOperation(IDocument doc, String actionID,
             TextReplaceResultSet resultSet) throws BadLocationException {
         splitLines = splitLinesEnabled();
@@ -40,6 +42,7 @@ public class Base64UnEncode extends AbstractReplaceAction {
                 IAnyEditConstants.BASE64_SPLIT_LINE);
     }
 
+    @Override
     protected String performReplace(String line, int actionKey) {
         String charset = getEditor().computeEncoding();
         if (actionKey == KEY_DECODE) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/ChangeCase.java b/AnyEditTools/src/de/loskutov/anyedit/actions/ChangeCase.java
index fdc5e7f..e6e4026 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/ChangeCase.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/ChangeCase.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.actions;
@@ -13,7 +13,7 @@ import de.loskutov.anyedit.util.TextUtil;
 
 /**
  * Initiated by Ray Vanderborght.
- * @author Andrei
+ * @author Andrey
  */
 public class ChangeCase extends AbstractReplaceAction {
 
@@ -23,40 +23,36 @@ public class ChangeCase extends AbstractReplaceAction {
     private static final int KEY_CAPITALIZE = 3;
     private static final int KEY_CAMEL = 4;
 
-    /* (non-Javadoc)
-     * @see de.loskutov.anyedit.actions.AbstractReplaceAction#performReplace(java.lang.String, int)
-     */
+    @Override
     protected String performReplace(String line, int actionKey) {
 
         switch (actionKey) {
-            case KEY_TO_LOWER :{
-                return line.toLowerCase();
-            }
-            case KEY_TO_UPPER :{
-                return line.toUpperCase();
-            }
-            case KEY_CAPITALIZE :{
-                return TextUtil.capitalize(line);
-            }
-            case KEY_CAMEL :{
-                if(line.indexOf('_') < 0) {
-                    return TextUtil.fromCamelToUnderscore(line);
-                }
-                return TextUtil.fromUnderscoreToCamel(line);
+        case KEY_TO_LOWER :{
+            return line.toLowerCase();
+        }
+        case KEY_TO_UPPER :{
+            return line.toUpperCase();
+        }
+        case KEY_CAPITALIZE :{
+            return TextUtil.capitalize(line);
+        }
+        case KEY_CAMEL :{
+            if(line.indexOf('_') < 0) {
+                return TextUtil.fromCamelToUnderscore(line);
             }
+            return TextUtil.fromUnderscoreToCamel(line);
+        }
 
-            default :
-                // fall througth
+        default :
+            // fall througth
 
-            case KEY_INVERT_CASE :{
-                return TextUtil.invertCase(line);
-            }
+        case KEY_INVERT_CASE :{
+            return TextUtil.invertCase(line);
+        }
         }
     }
 
-    /* (non-Javadoc)
-     * @see de.loskutov.anyedit.actions.AbstractReplaceAction#getActionKey(java.lang.String)
-     */
+    @Override
     protected int getActionKey(String actionID) {
         if(actionID.startsWith(ACTION_ID_TO_LOWER)){
             return KEY_TO_LOWER;
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertAllAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertAllAction.java
index cb16fc5..2278755 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertAllAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertAllAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.actions;
@@ -68,7 +68,7 @@ public class ConvertAllAction extends Action implements IActionDelegate, IWorkbe
     private final Spaces spacesAction;
 
     protected final IContentType text_type = Platform.getContentTypeManager()
-    .getContentType("org.eclipse.core.runtime.text");
+            .getContentType("org.eclipse.core.runtime.text");
 
     private Shell shell;
 
@@ -336,10 +336,10 @@ public class ConvertAllAction extends Action implements IActionDelegate, IWorkbe
             monitor.beginTask(Messages.ConvertAll_task, selectedFiles.size());
             int filesToConvert = selectedFiles.size();
             IPreferenceStore preferenceStore = AnyEditToolsPlugin.getDefault()
-            .getPreferenceStore();
+                    .getPreferenceStore();
 
             boolean saveIfDirty = preferenceStore
-            .getBoolean(IAnyEditConstants.SAVE_DIRTY_BUFFER);
+                    .getBoolean(IAnyEditConstants.SAVE_DIRTY_BUFFER);
             int modified = 0;
             int skipped = 0;
             int errors = 0;
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertAllInFolderAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertAllInFolderAction.java
index 14732c0..6bf34f1 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertAllInFolderAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertAllInFolderAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.actions;
@@ -35,10 +35,11 @@ import de.loskutov.anyedit.Messages;
 // TODO check how we could reuse ConvertLineDelimitersAction etc
 public class ConvertAllInFolderAction extends ConvertAllAction {
 
+    @Override
     public void selectionChanged(IAction action, ISelection selection) {
         if (selection instanceof IStructuredSelection) {
             IStructuredSelection ssel = (IStructuredSelection) selection;
-            Iterator iterator = ssel.iterator();
+            Iterator<?> iterator = ssel.iterator();
             selectedFiles.clear();
             selectedResources.clear();
             while (iterator.hasNext()) {
@@ -74,6 +75,7 @@ public class ConvertAllInFolderAction extends ConvertAllAction {
         return null;
     }
 
+    @Override
     public void run(final IAction action) {
 
         IPreferenceStore preferenceStore = AnyEditToolsPlugin.getDefault()
@@ -102,30 +104,30 @@ public class ConvertAllInFolderAction extends ConvertAllAction {
             // starting main action, which will be executed in separated thread
             PlatformUI.getWorkbench().getProgressService().run(true, true,
                     new IRunnableWithProgress() {
-                        public void run(IProgressMonitor monitor)
-                                throws InvocationTargetException, InterruptedException {
-                            monitor.beginTask(Messages.ConvertAllInFolder_task,
-                                    selectedResources.size() * 10);
-                            try {
-                                for (int i = 0; i < selectedResources.size()
-                                        && !monitor.isCanceled(); i++) {
-
-                                    Object o = selectedResources.get(i);
-                                    if(o instanceof IContainer) {
-                                        addAllFiles((IContainer) o,
-                                                selectedFiles, monitor);
-                                    } else if(o instanceof IFile){
-                                        if (selectedFiles.contains(o)) {
-                                            continue;
-                                        }
-                                        selectedFiles.add(o);
-                                    }
+                public void run(IProgressMonitor monitor)
+                        throws InvocationTargetException, InterruptedException {
+                    monitor.beginTask(Messages.ConvertAllInFolder_task,
+                            selectedResources.size() * 10);
+                    try {
+                        for (int i = 0; i < selectedResources.size()
+                                && !monitor.isCanceled(); i++) {
+
+                            Object o = selectedResources.get(i);
+                            if(o instanceof IContainer) {
+                                addAllFiles((IContainer) o,
+                                        selectedFiles, monitor);
+                            } else if(o instanceof IFile){
+                                if (selectedFiles.contains(o)) {
+                                    continue;
                                 }
-                            } finally {
-                                monitor.done();
+                                selectedFiles.add(o);
                             }
                         }
-                    });
+                    } finally {
+                        monitor.done();
+                    }
+                }
+            });
         } catch (InvocationTargetException e) {
             AnyEditToolsPlugin.logError("'Convert all' operation: not all files converted", e);
         } catch (InterruptedException e) {
@@ -141,7 +143,7 @@ public class ConvertAllInFolderAction extends ConvertAllAction {
         super.run(action);
     }
 
-    protected void addAllFiles(IContainer container, List fileList, IProgressMonitor monitor) {
+    protected void addAllFiles(IContainer container, List<Object> fileList, IProgressMonitor monitor) {
         try {
             IResource[] resources = container.members();
             for (int i = 0; i < resources.length && !monitor.isCanceled(); i++) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertUnicode.java b/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertUnicode.java
index 2e6fce8..0dfdb29 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertUnicode.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/ConvertUnicode.java
@@ -1,11 +1,11 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  * Contributor:  Stefan Seidel - initial API and implementation
- * Contributor:  Andrei Loskutov - integration
+ * Contributor:  Andrey Loskutov - integration
  *******************************************************************************/
 package de.loskutov.anyedit.actions;
 
@@ -29,9 +29,7 @@ public class ConvertUnicode extends AbstractReplaceAction {
     private boolean warnAboutUnsupportedUnicode;
     private String charset;
 
-    /* (non-Javadoc)
-     * @see de.loskutov.anyedit.actions.AbstractReplaceAction#doTextOperation(org.eclipse.jface.text.IDocument, java.lang.String, de.loskutov.anyedit.util.TextReplaceResultSet)
-     */
+    @Override
     protected void doTextOperation(IDocument doc, String actionID,
             TextReplaceResultSet resultSet) throws BadLocationException {
         warnAboutUnsupportedUnicode = warnAboutUnsupportedUnicode();
@@ -47,12 +45,7 @@ public class ConvertUnicode extends AbstractReplaceAction {
                 IAnyEditConstants.WARN_ABOUT_UNSUPPORTED_UNICODE);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see de.loskutov.anyedit.actions.AbstractReplaceAction#performReplace(java.lang.String,
-     *      int)
-     */
+    @Override
     protected String performReplace(String line, int actionKey) {
         if (KEY_ESCAPE == actionKey) {
             return textUtil.toUnicode(line);
@@ -78,16 +71,12 @@ public class ConvertUnicode extends AbstractReplaceAction {
                 shouldStopReplace = true;
                 return null;
             }
-            // supress any warning, just continue
+            // suppress any warning, just continue
             return textUtil.fromUnicode(null, line);
         }
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see de.loskutov.anyedit.actions.AbstractReplaceAction#getActionKey(java.lang.String)
-     */
+    @Override
     protected int getActionKey(String actionID) {
         return actionID.startsWith(ACTION_ID_UNICODIFY) ? KEY_ESCAPE : KEY_UNESCAPE;
     }
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/CountAllInFolderAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/CountAllInFolderAction.java
index 007fbd0..0c0230c 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/CountAllInFolderAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/CountAllInFolderAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2010 Andrei Loskutov.
+ * Copyright (c) 2010 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions;
 
@@ -35,6 +35,7 @@ import de.loskutov.anyedit.Messages;
 
 public class CountAllInFolderAction extends ConvertAllInFolderAction implements IHandler {
 
+    @Override
     protected IResource getResource(Object selection) {
         if(selection instanceof IContainer) {
             return (IResource)selection;
@@ -53,13 +54,16 @@ public class CountAllInFolderAction extends ConvertAllInFolderAction implements
         return null;
     }
 
+    @Override
     protected boolean getEnablement() {
         return true;
     }
 
+    @Override
     public void run(final IAction action) {
 
         Job job = new Job("Counting resources") {
+            @Override
             protected IStatus run(IProgressMonitor monitor) {
                 monitor.beginTask(Messages.CollectAllInFolder_task, IProgressMonitor.UNKNOWN);
                 final CountingVisitor v = new CountingVisitor();
@@ -200,10 +204,12 @@ public class CountAllInFolderAction extends ConvertAllInFolderAction implements
         // noop
     }
 
+    @Override
     public boolean isEnabled() {
         return true;
     }
 
+    @Override
     public boolean isHandled() {
         return true;
     }
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/DefaultOpenEditorParticipant.java b/AnyEditTools/src/de/loskutov/anyedit/actions/DefaultOpenEditorParticipant.java
index 6dde853..d55d759 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/DefaultOpenEditorParticipant.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/DefaultOpenEditorParticipant.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions;
 
@@ -46,7 +46,7 @@ import de.loskutov.anyedit.util.EclipseUtils;
 import de.loskutov.anyedit.util.TextUtil;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class DefaultOpenEditorParticipant implements IOpenEditorParticipant {
 
@@ -117,7 +117,7 @@ public class DefaultOpenEditorParticipant implements IOpenEditorParticipant {
         }
         String editorId = getEditorId(file2);
         IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
-        .getActivePage();
+                .getActivePage();
         IFileStore fileStore;
         try {
             fileStore = EFS.getLocalFileSystem().getStore(
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/OpenFile.java b/AnyEditTools/src/de/loskutov/anyedit/actions/OpenFile.java
index 0611ebd..59f166a 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/OpenFile.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/OpenFile.java
@@ -1,8 +1,8 @@
 /*****************************************************************************************
- * Copyright (c) 2009 Andrei Loskutov. All rights reserved. This program and the
+ * Copyright (c) 2009 Andrey Loskutov. All rights reserved. This program and the
  * accompanying materials are made available under the terms of the Eclipse Public License v1.0 which
  * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html Contributor: Andrei Loskutov -
+ * http://www.eclipse.org/legal/epl-v10.html Contributor: Andrey Loskutov -
  * initial API and implementation
  ****************************************************************************************/
 
@@ -35,9 +35,10 @@ public class OpenFile extends AbstractOpenAction {
         super();
     }
 
+    @Override
     protected void handleAction(IDocument doc, ISelectionProvider selectionProvider,
             IEditorInput currentInput) {
-        List participants = getParticipants();
+        List<IOpenEditorParticipant> participants = getParticipants();
         IFile file;
         try {
             file = guessFile(participants, doc, selectionProvider, currentInput);
@@ -53,11 +54,10 @@ public class OpenFile extends AbstractOpenAction {
         }
     }
 
-    private IFile guessFile(List/* <IOpenEditorParticipant> */participants, IDocument doc,
+    private IFile guessFile(List<IOpenEditorParticipant> participants, IDocument doc,
             ISelectionProvider selectionProvider, IEditorInput currentInput) {
         for (int i = 0; i < participants.size(); i++) {
-            IOpenEditorParticipant participant = (IOpenEditorParticipant) participants
-                    .get(i);
+            IOpenEditorParticipant participant = participants.get(i);
             IFile file;
             try {
                 file = participant.guessFile(doc, selectionProvider, currentInput,
@@ -77,13 +77,12 @@ public class OpenFile extends AbstractOpenAction {
         return null;
     }
 
-    private IEditorPart openEditor(List/* <IOpenEditorParticipant> */participants,
+    private IEditorPart openEditor(List<IOpenEditorParticipant> participants,
             IDocument doc, ISelectionProvider selectionProvider,
             IEditorInput currentInput, IFile file) {
 
         for (int i = 0; i < participants.size(); i++) {
-            IOpenEditorParticipant participant = (IOpenEditorParticipant) participants
-                    .get(i);
+            IOpenEditorParticipant participant = participants.get(i);
             IEditorPart part = null;
             try {
                 part = participant.openEditor(doc, selectionProvider, currentInput, file);
@@ -101,12 +100,11 @@ public class OpenFile extends AbstractOpenAction {
         return null;
     }
 
-    private void goToLine(List/* <IOpenEditorParticipant> */participants, IDocument doc,
+    private void goToLine(List<IOpenEditorParticipant> participants, IDocument doc,
             ISelectionProvider selectionProvider, IEditorPart editorPart) {
 
         for (int i = 0; i < participants.size(); i++) {
-            IOpenEditorParticipant participant = (IOpenEditorParticipant) participants
-                    .get(i);
+            IOpenEditorParticipant participant = participants.get(i);
             int line = -1;
             try {
                 line = participant.guessLine(doc, selectionProvider, editorPart);
@@ -127,8 +125,8 @@ public class OpenFile extends AbstractOpenAction {
         }
     }
 
-    private List getParticipants() {
-        List participants = new ArrayList();
+    private List<IOpenEditorParticipant> getParticipants() {
+        List<IOpenEditorParticipant> participants = new ArrayList<IOpenEditorParticipant>();
         IExtensionRegistry registry = Platform.getExtensionRegistry();
         IExtensionPoint point = registry.getExtensionPoint(AnyEditToolsPlugin.getId()
                 + ".openEditorParticipants");
@@ -148,23 +146,20 @@ public class OpenFile extends AbstractOpenAction {
                     continue;
                 }
                 if (object instanceof IOpenEditorParticipant) {
-                    participants.add(object);
+                    participants.add((IOpenEditorParticipant) object);
                 }
             }
         }
         if (participants.size() <= 1) {
             return participants;
         }
-        Collections.sort(participants, new Comparator() {
-            public int compare(Object o1, Object o2) {
-                if (!(o1 instanceof IOpenEditorParticipant)
-                        || !(o2 instanceof IOpenEditorParticipant)) {
+        Collections.sort(participants, new Comparator<IOpenEditorParticipant>() {
+            public int compare(IOpenEditorParticipant o1, IOpenEditorParticipant o2) {
+                if (o1 == null || o2 == null) {
                     return 0;
                 }
-                IOpenEditorParticipant pa1 = (IOpenEditorParticipant) o1;
-                IOpenEditorParticipant pa2 = (IOpenEditorParticipant) o2;
                 // inverted order
-                return getPrio(pa2).compareTo(getPrio(pa1));
+                return getPrio(o2).compareTo(getPrio(o1));
             }
         });
         return participants;
@@ -175,7 +170,7 @@ public class OpenFile extends AbstractOpenAction {
         prio = prio > IOpenEditorParticipant.PRIO_HIGH ? IOpenEditorParticipant.PRIO_HIGH
                 : prio < IOpenEditorParticipant.PRIO_LOW ? IOpenEditorParticipant.PRIO_LOW
                         : prio;
-        return new Integer(prio);
+        return Integer.valueOf(prio);
     }
 
-}
\ No newline at end of file
+}
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/OpenType.java b/AnyEditTools/src/de/loskutov/anyedit/actions/OpenType.java
index 4d10137..74e584a 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/OpenType.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/OpenType.java
@@ -1,8 +1,8 @@
 /*****************************************************************************************
- * Copyright (c) 2009 Andrei Loskutov. All rights reserved. This program and the
+ * Copyright (c) 2009 Andrey Loskutov. All rights reserved. This program and the
  * accompanying materials are made available under the terms of the Eclipse Public License v1.0 which
  * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html Contributor: Andrei Loskutov -
+ * http://www.eclipse.org/legal/epl-v10.html Contributor: Andrey Loskutov -
  * initial API and implementation
  ****************************************************************************************/
 
@@ -25,6 +25,7 @@ public class OpenType extends AbstractOpenAction {
 
     private InternalOpenType defaultAction;
 
+    @Override
     protected void handleAction(IDocument doc,
             ISelectionProvider selectionProvider, IEditorInput currentInput) {
 
@@ -78,7 +79,7 @@ public class OpenType extends AbstractOpenAction {
         if (!textUtil.isJavaType(selectedText) && doc != null) {
             // try to search around caret
             int caretPosition = EclipseUtils
-            .getCaretPosition(selectionProvider);
+                    .getCaretPosition(selectionProvider);
             try {
                 IRegion line = doc.getLineInformation(doc
                         .getLineOfOffset(caretPosition));
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/SaveToFileAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/SaveToFileAction.java
index 1b261d8..f6c56eb 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/SaveToFileAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/SaveToFileAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions;
 
@@ -49,6 +49,7 @@ public class SaveToFileAction extends AbstractOpenAction {
         super();
     }
 
+    @Override
     protected void handleAction(IDocument doc, ISelectionProvider selectionProvider,
             IEditorInput currentInput) {
 
@@ -75,8 +76,8 @@ public class SaveToFileAction extends AbstractOpenAction {
                             Messages.SaveTo_ShouldOpen,
                             hasSelection ? Messages.SaveTo_MessageSelection
                                     : Messages.SaveTo_MessageNoSelection,
-                            Messages.SaveTo_MessageToggle, false, prefs,
-                            IAnyEditConstants.SAVE_TO_SHOW_OPTIONS);
+                                    Messages.SaveTo_MessageToggle, false, prefs,
+                                    IAnyEditConstants.SAVE_TO_SHOW_OPTIONS);
 
             int returnCode = dialogWithToggle.getReturnCode();
             if (returnCode != IDialogConstants.YES_ID
@@ -239,7 +240,7 @@ public class SaveToFileAction extends AbstractOpenAction {
             MessageDialog md = new MessageDialog(AnyEditToolsPlugin.getShell(),
                     Messages.SaveTo_ShouldOpen, null, Messages.SaveTo_FileExists,
                     MessageDialog.WARNING, new String[] { Messages.SaveTo_Append,
-                            Messages.SaveTo_Override, "Cancel" }, 0);
+                Messages.SaveTo_Override, "Cancel" }, 0);
             int result = md.open();
             switch (result) {
             case APPEND: // Append btn index
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/SaveToFileParticipant.java b/AnyEditTools/src/de/loskutov/anyedit/actions/SaveToFileParticipant.java
index 61050f9..9ac1083 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/SaveToFileParticipant.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/SaveToFileParticipant.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions;
 
@@ -42,10 +42,11 @@ IConsolePageParticipant {
     public void init(IPageBookViewPage myPage, IConsole console) {
         page = myPage;
         IToolBarManager toolBarManager = page.getSite().getActionBars()
-        .getToolBarManager();
+                .getToolBarManager();
         toolBarManager.appendToGroup(IConsoleConstants.OUTPUT_GROUP, new Separator());
         toolBarManager.appendToGroup(IConsoleConstants.OUTPUT_GROUP, new Action(
                 "Save to file", getImageDescriptor()) {
+            @Override
             public void run() {
                 SaveToFileParticipant.this.run(this);
             }
@@ -54,7 +55,7 @@ IConsolePageParticipant {
 
     private ImageDescriptor getImageDescriptor() {
         ImageDescriptor descriptor = AnyEditToolsPlugin.getDefault().getImageRegistry()
-        .getDescriptor("icons/saveToFile.gif");
+                .getDescriptor("icons/saveToFile.gif");
         if (descriptor == null) {
             descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(AnyEditToolsPlugin
                     .getId(), "icons/saveToFile.gif");
@@ -70,11 +71,13 @@ IConsolePageParticipant {
         return null;
     }
 
+    @Override
     public void dispose() {
         page = null;
         super.dispose();
     }
 
+    @Override
     public void run(IAction action) {
         if (page != null) {
             runWithViewer(EditorPropertyTester.getViewer(page));
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/Spaces.java b/AnyEditTools/src/de/loskutov/anyedit/actions/Spaces.java
index 9c54157..5fede53 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/Spaces.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/Spaces.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 /* This class is started as extension of Rahul Kuchal's whitespace plugin.
  * Rahul Kuchal - http://www.kuchhal.com/ */
@@ -39,6 +39,7 @@ public class Spaces extends AbstractTextAction {
         super();
     }
 
+    @Override
     protected TextReplaceResultSet estimateActionRange(IDocument doc) {
         TextReplaceResultSet result = new TextReplaceResultSet();
         if (doc == null) {
@@ -57,6 +58,7 @@ public class Spaces extends AbstractTextAction {
      * @param actionID
      * @param resultSet cannot be null
      */
+    @Override
     protected void doTextOperation(IDocument doc, String actionID,
             TextReplaceResultSet resultSet) throws BadLocationException {
         int maxNbr = resultSet.getStartLine() + resultSet.getNumberOfLines();
@@ -68,6 +70,7 @@ public class Spaces extends AbstractTextAction {
         boolean replaceAllTabs = isReplaceAllTabsEnabled(prefs);
         boolean replaceAllSpaces = isReplaceAllSpacesEnabled(prefs);
         boolean useModulo4Tabs = prefs.getBoolean(IAnyEditConstants.USE_MODULO_CALCULATION_FOR_TABS_REPLACE);
+        boolean ignoreBlankLines = prefs.getBoolean(IAnyEditConstants.IGNORE_BLANK_LINES_WHEN_TRIMMING);
 
         boolean usedOnSave = isUsedOnSave();
         if (usedOnSave) {
@@ -106,14 +109,14 @@ public class Spaces extends AbstractTextAction {
             if (convertEnabled) {
                 if (tabsToSpaces) {
                     changed = TextUtil.convertTabsToSpaces(sb, tabWidth, removeTrailing,
-                            replaceAllTabs, useModulo4Tabs);
+                            ignoreBlankLines, replaceAllTabs, useModulo4Tabs);
                 } else {
                     changed = TextUtil.convertSpacesToTabs(sb, tabWidth, removeTrailing,
-                            replaceAllSpaces);
+                            ignoreBlankLines, replaceAllSpaces);
                 }
             } else {
                 if (!usedOnSave || removeTrailing) {
-                    changed = TextUtil.removeTrailingSpace(sb);
+                    changed = TextUtil.removeTrailingSpace(sb, ignoreBlankLines);
                 } else {
                     changed = false;
                 }
@@ -148,16 +151,19 @@ public class Spaces extends AbstractTextAction {
         }
     }
 
+    @Override
     public void setFile(IFile file) {
         super.setFile(file);
         combinedPreferences = null;
     }
 
+    @Override
     public void setActiveEditor(IAction action, IEditorPart targetEditor) {
         super.setActiveEditor(action, targetEditor);
         combinedPreferences = null;
     }
 
+    @Override
     public void setEditor(AbstractEditor editor) {
         super.setEditor(editor);
         combinedPreferences = null;
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/ToggleWhitespace.java b/AnyEditTools/src/de/loskutov/anyedit/actions/ToggleWhitespace.java
index 9a8e310..15f6f92 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/ToggleWhitespace.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/ToggleWhitespace.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions;
 
@@ -54,22 +54,24 @@ ISelectionChangedListener, IPageChangedListener, IPropertyListener {
 
     private static final String TABS = "AnyEditTools.tabs";
 
-    private Map/*<Integer,Boolean>*/partToggleState;
+    private Map<Integer, Boolean> partToggleState;
 
     private IAction proxyAction;
 
 
     public ToggleWhitespace() {
         super();
-        partToggleState = new HashMap();
+        partToggleState = new HashMap<Integer, Boolean>();
     }
 
+    @Override
     public void run(IAction action) {
         super.run(action);
         this.proxyAction = action;
         toggleEditorAnnotations(action.isChecked());
     }
 
+    @Override
     public void init(IWorkbenchWindow window1) {
         super.init(window1);
         IWorkbenchPage activePage = window1.getActivePage();
@@ -81,6 +83,7 @@ ISelectionChangedListener, IPageChangedListener, IPropertyListener {
         // TODO if we are activated on startup, should get the action from toolbar and set the state
     }
 
+    @Override
     public void dispose() {
         // causes NPE if no active page is there but dispose is called
         // window.getActivePage().removePartListener(this);
@@ -111,7 +114,7 @@ ISelectionChangedListener, IPageChangedListener, IPropertyListener {
         if (rememberEditor) {
             setEditor(aEditor);
         }
-        return new Integer(aEditor.hashCode());
+        return Integer.valueOf(aEditor.hashCode());
     }
 
     private void toggleEditorAnnotations(boolean on) {
@@ -125,7 +128,7 @@ ISelectionChangedListener, IPageChangedListener, IPropertyListener {
             disableButton();
             return;
         }
-        Integer editorCookie = new Integer(aEditor.hashCode());
+        Integer editorCookie = Integer.valueOf(aEditor.hashCode());
         partToggleState.put(editorCookie, Boolean.valueOf(on));
         IEditorInput input = aEditor.getInput();
         IAnnotationModel annotationModel = documentProvider.getAnnotationModel(input);
@@ -149,6 +152,7 @@ ISelectionChangedListener, IPageChangedListener, IPropertyListener {
         final int lines = doc.getNumberOfLines();
         final Job job = new Job("Toggle whitespace") {
 
+            @Override
             public IStatus run(IProgressMonitor monitor) {
                 //                long start = System.currentTimeMillis();
                 monitor.beginTask("Whitespace annotation ...", lines);
@@ -217,6 +221,7 @@ ISelectionChangedListener, IPageChangedListener, IPropertyListener {
 
     private void removeAnnotations(final IAnnotationModelExtension extension) {
         final Job job = new Job("Toggle whitespace") {
+            @Override
             public IStatus run(IProgressMonitor monitor) {
                 monitor.beginTask("Removing whitespace annotations",
                         IProgressMonitor.UNKNOWN);
@@ -250,7 +255,7 @@ ISelectionChangedListener, IPageChangedListener, IPropertyListener {
         enableButton();
         part.addPropertyListener(this);
         if (partToggleState.get(cookie) != null) {
-            boolean checked = ((Boolean) partToggleState.get(cookie)).booleanValue();
+            boolean checked = partToggleState.get(cookie).booleanValue();
             setChecked(checked);
         } else {
             partToggleState.put(cookie, Boolean.FALSE);
@@ -340,9 +345,7 @@ ISelectionChangedListener, IPageChangedListener, IPropertyListener {
         }
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-     */
+    @Override
     public void selectionChanged(IAction action, ISelection selection) {
         this.proxyAction = action;
     }
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/UnEscape.java b/AnyEditTools/src/de/loskutov/anyedit/actions/UnEscape.java
index 8676af1..88bc62d 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/UnEscape.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/UnEscape.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.actions;
@@ -23,9 +23,7 @@ public class UnEscape extends AbstractReplaceAction {
     private static final int KEY_ESCAPE = 1;
     private boolean preserveEntities;
 
-    /* (non-Javadoc)
-     * @see de.loskutov.anyedit.actions.AbstractReplaceAction#doTextOperation(org.eclipse.jface.text.IDocument, java.lang.String, de.loskutov.anyedit.util.TextReplaceResultSet)
-     */
+    @Override
     protected void doTextOperation(IDocument doc, String actionID,
             TextReplaceResultSet resultSet) throws BadLocationException {
         preserveEntities = isPreserveEntitiesEnabled();
@@ -34,12 +32,10 @@ public class UnEscape extends AbstractReplaceAction {
 
     protected static boolean isPreserveEntitiesEnabled() {
         return AnyEditToolsPlugin.getDefault().getPreferenceStore().getBoolean(
-            IAnyEditConstants.PRESERVE_ENTITIES);
+                IAnyEditConstants.PRESERVE_ENTITIES);
     }
 
-    /* (non-Javadoc)
-     * @see de.loskutov.anyedit.actions.AbstractReplaceAction#performReplace(java.lang.String, int)
-     */
+    @Override
     protected String performReplace(String line, int actionKey) {
         if(KEY_UNESCAPE == actionKey){
             return TextUtil.unescapeText(line);
@@ -53,9 +49,7 @@ public class UnEscape extends AbstractReplaceAction {
         return TextUtil.escapeText(line);
     }
 
-    /* (non-Javadoc)
-     * @see de.loskutov.anyedit.actions.AbstractReplaceAction#getActionKey(java.lang.String)
-     */
+    @Override
     protected int getActionKey(String actionID) {
         return actionID.startsWith(ACTION_ID_UNESCAPE)? KEY_UNESCAPE : KEY_ESCAPE;
     }
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithAction.java
index d866c52..771b594 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.compare;
 
@@ -32,7 +32,7 @@ import de.loskutov.anyedit.compare.TextStreamContent;
 import de.loskutov.anyedit.ui.editor.AbstractEditor;
 
 /**
- * @author Andrei
+ * @author Andrey
  *
  */
 public abstract class CompareWithAction extends AbstractHandler implements IObjectActionDelegate /*, IWorkbenchWindowActionDelegate*/ {
@@ -48,6 +48,7 @@ public abstract class CompareWithAction extends AbstractHandler implements IObje
     public Object execute(final ExecutionEvent event) throws ExecutionException {
         IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
         Action dummyAction = new Action(){
+            @Override
             public String getId() {
                 return event.getCommand().getId();
             }
@@ -99,7 +100,7 @@ public abstract class CompareWithAction extends AbstractHandler implements IObje
     }
 
     protected abstract StreamContent createRightContent(StreamContent left)
-    throws CoreException;
+            throws CoreException;
 
     protected final StreamContent createContent(ContentWrapper content) {
         if (content == null) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithClipboardAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithClipboardAction.java
index 3a31c3d..6bc751a 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithClipboardAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithClipboardAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.compare;
 
@@ -18,7 +18,7 @@ import de.loskutov.anyedit.util.EclipseUtils;
 import de.loskutov.anyedit.util.TextUtil;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class CompareWithClipboardAction extends CompareWithAction {
 
@@ -49,6 +49,7 @@ public class CompareWithClipboardAction extends CompareWithAction {
     //        }
     // }
 
+    @Override
     protected StreamContent createRightContent(StreamContent left) throws CoreException {
         String type = left.getType();
         String content = EclipseUtils.getClipboardContent();
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithEditorAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithEditorAction.java
index f833ff2..6e5373c 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithEditorAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithEditorAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.compare;
 
@@ -45,7 +45,7 @@ import de.loskutov.anyedit.ui.editor.AbstractEditor;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class CompareWithEditorAction extends CompareWithAction {
 
@@ -55,6 +55,7 @@ public class CompareWithEditorAction extends CompareWithAction {
         super();
     }
 
+    @Override
     public void selectionChanged(IAction action, ISelection selection) {
         // restore disabled state and let us re-test enablement
         action.setEnabled(true);
@@ -65,10 +66,11 @@ public class CompareWithEditorAction extends CompareWithAction {
         }
     }
 
+    @Override
     protected StreamContent createRightContent(StreamContent left) throws CoreException {
         // WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider();
         ListDialog dialog = createSelectionDialog(editor, selectedContent,
-        "Select an opened editor to compare with current file:");
+                "Select an opened editor to compare with current file:");
 
         int result = dialog.open();
         if (result == Window.OK) {
@@ -131,6 +133,7 @@ public class CompareWithEditorAction extends CompareWithAction {
             this.contentProvider = contentProvider;
         }
 
+        @Override
         public Image getImage(Object element) {
             if (element instanceof IEditorReference) {
                 IEditorReference reference = (IEditorReference) element;
@@ -139,6 +142,7 @@ public class CompareWithEditorAction extends CompareWithAction {
             return super.getImage(element);
         }
 
+        @Override
         public String getText(Object element) {
             if (element instanceof IEditorReference) {
                 IEditorReference ref = (IEditorReference) element;
@@ -163,7 +167,7 @@ public class CompareWithEditorAction extends CompareWithAction {
     /**
      * This provider must not be re-used for more then one execution, as it creates cache
      * of editors
-     * @author Andrei
+     * @author Andrey
      */
     public static final class EditorsContentProvider implements IStructuredContentProvider {
 
@@ -184,7 +188,7 @@ public class CompareWithEditorAction extends CompareWithAction {
             } else {
                 initEditor = true;
             }
-            List refs = new ArrayList();
+            List<IEditorReference> refs = new ArrayList<IEditorReference>();
             for (int i = 0; i < editorReferences.length; i++) {
                 IEditorReference reference = editorReferences[i];
                 if(COMPARE_EDITOR_ID.equals(reference.getId())){
@@ -217,11 +221,12 @@ public class CompareWithEditorAction extends CompareWithAction {
                 }
                 refs.add(editorReferences[i]);
             }
-            references = (IEditorReference[]) refs.toArray(new IEditorReference[refs.size()]);
+            references = refs.toArray(new IEditorReference[refs.size()]);
         }
 
         private synchronized static void initEditors(final IEditorReference[] editorReferences) {
             Job initJob = new UIJob("Initializing editor parts"){
+                @Override
                 public IStatus runInUIThread(IProgressMonitor monitor) {
                     monitor.beginTask("Initializing editor parts", editorReferences.length);
                     for (int i = 0; i < editorReferences.length; i++) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithExternalAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithExternalAction.java
index 851b80c..c8713a1 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithExternalAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithExternalAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.compare;
 
@@ -26,7 +26,7 @@ import de.loskutov.anyedit.compare.StreamContent;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class CompareWithExternalAction extends CompareWithAction {
 
@@ -34,6 +34,7 @@ public class CompareWithExternalAction extends CompareWithAction {
         super();
     }
 
+    @Override
     protected StreamContent createRightContent(StreamContent left) throws CoreException {
         FileDialog dialog = new FileDialog(AnyEditToolsPlugin.getShell());
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithResourceAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithResourceAction.java
index 2886e1f..2bcc240 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithResourceAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/compare/CompareWithResourceAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.compare;
 
@@ -16,8 +16,7 @@ import de.loskutov.anyedit.compare.StreamContent;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
- *
+ * @author Andrey
  */
 public class CompareWithResourceAction extends CompareWithAction {
 
@@ -25,11 +24,7 @@ public class CompareWithResourceAction extends CompareWithAction {
         super();
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see de.loskutov.anyedit.actions.CompareWithAction#createRightContent()
-     */
+    @Override
     protected StreamContent createRightContent(StreamContent left) throws CoreException {
         IFile file = EclipseUtils.getWorkspaceFile();
         if (file == null) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/IDirtyWorkaround.java b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/IDirtyWorkaround.java
index 3d469e9..fa48372 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/IDirtyWorkaround.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/IDirtyWorkaround.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.internal;
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/InternalOpenType.java b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/InternalOpenType.java
index bac6256..a156169 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/InternalOpenType.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/InternalOpenType.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.internal;
 
@@ -24,7 +24,7 @@ import org.eclipse.ui.PlatformUI;
 import de.loskutov.anyedit.AnyEditToolsPlugin;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class InternalOpenType extends OpenTypeAction {
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/SpecialSaveAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/SpecialSaveAction.java
index bd0be63..0406ae1 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/SpecialSaveAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/SpecialSaveAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.internal;
 
@@ -29,7 +29,7 @@ import de.loskutov.anyedit.util.EclipseUtils;
 
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class SpecialSaveAction extends SaveAction implements IDirtyWorkaround {
 
@@ -43,10 +43,12 @@ public class SpecialSaveAction extends SaveAction implements IDirtyWorkaround {
     public SpecialSaveAction(IWorkbenchWindow window) {
         super(window);
         spacesAction = new Spaces(){
+            @Override
             protected AbstractEditor createActiveEditorDelegate() {
                 // this just returns the editor instance we already know, see runSpecial()
                 return getEditor();
             }
+            @Override
             public void setEditor(AbstractEditor editor) {
                 if(editor == null && getEditor() != null){
                     getEditor().dispose();
@@ -72,6 +74,7 @@ public class SpecialSaveAction extends SaveAction implements IDirtyWorkaround {
         }
     }
 
+    @Override
     public void run() {
         runBeforeSave();
         super.run();
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/SpecialSaveAllAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/SpecialSaveAllAction.java
index 3f51c80..2c14672 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/SpecialSaveAllAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/SpecialSaveAllAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.internal;
 
@@ -33,7 +33,7 @@ import de.loskutov.anyedit.ui.editor.AbstractEditor;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class SpecialSaveAllAction extends SaveAllAction implements IDirtyWorkaround {
 
@@ -46,11 +46,13 @@ public class SpecialSaveAllAction extends SaveAllAction implements IDirtyWorkaro
     public SpecialSaveAllAction(IWorkbenchWindow window) {
         super(window);
         spacesAction = new Spaces() {
+            @Override
             protected AbstractEditor createActiveEditorDelegate() {
                 // this just returns the editor instance we already know, see runSpecial()
                 return getEditor();
             }
 
+            @Override
             public void setEditor(AbstractEditor editor) {
                 if (editor == null && getEditor() != null) {
                     getEditor().dispose();
@@ -94,6 +96,7 @@ public class SpecialSaveAllAction extends SaveAllAction implements IDirtyWorkaro
         }
     }
 
+    @Override
     public void run() {
         runBeforeSave();
         super.run();
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/StartupHelper.java b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/StartupHelper.java
index fc3756f..e43db86 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/StartupHelper.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/StartupHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.internal;
 
@@ -40,18 +40,18 @@ import de.loskutov.anyedit.AnyEditToolsPlugin;
 import de.loskutov.anyedit.IAnyEditConstants;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class StartupHelper implements IWindowListener {
 
-    private List/*<PreExecutionHandler>*/ commandListeners;
+    private final List<PreExecutionHandler> commandListeners;
 
     /**
      * Will be run after workbench is started and w.window is opened
      */
     public StartupHelper() {
         super();
-        commandListeners = new ArrayList();
+        commandListeners = new ArrayList<PreExecutionHandler>();
     }
 
     public void init() {
@@ -83,45 +83,30 @@ public class StartupHelper implements IWindowListener {
         return null;
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWindowListener#windowOpened(org.eclipse.ui.IWorkbenchWindow)
-     */
     public void windowOpened(IWorkbenchWindow window) {
         DirtyHookRunnable dh = new DirtyHookRunnable();
         dh.run(window);
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWindowListener#windowActivated(org.eclipse.ui.IWorkbenchWindow)
-     */
     public void windowActivated(IWorkbenchWindow window) {
         // ignored
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWindowListener#windowDeactivated(org.eclipse.ui.IWorkbenchWindow)
-     */
     public void windowDeactivated(IWorkbenchWindow window) {
         // ignored
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWindowListener#windowClosed(org.eclipse.ui.IWorkbenchWindow)
-     */
     public void windowClosed(IWorkbenchWindow window) {
         // ignored
-        List list = commandListeners;
+        List<PreExecutionHandler> list = commandListeners;
         for (int i = 0; i < list.size(); i++) {
-            PreExecutionHandler listener = (PreExecutionHandler) list.get(i);
+            PreExecutionHandler listener = list.get(i);
             if(listener.myAction.getWindow() == window) {
                 unHookFromCommand(listener);
             }
         }
     }
 
-    /**
-     * @param listener
-     */
     private void unHookFromCommand(PreExecutionHandler listener) {
         ICommandService service = (ICommandService) PlatformUI.getWorkbench().getService(
                 ICommandService.class);
@@ -272,10 +257,6 @@ public class StartupHelper implements IWindowListener {
         return store.getBoolean(prefkey);
     }
 
-    /**
-     * @param myAction
-     * @param manager
-     */
     private static int insert(IDirtyWorkaround myAction, ToolBarManager manager,
             int controlIdx) {
         IContributionItem item;
@@ -312,10 +293,6 @@ public class StartupHelper implements IWindowListener {
         return controlIdx;
     }
 
-    /**
-     * @param myAction
-     * @param menu
-     */
     private static void insert(IDirtyWorkaround myAction, MenuManager menu) {
         IContributionItem item;
         String id = myAction.getId();
@@ -334,4 +311,4 @@ public class StartupHelper implements IWindowListener {
             menu.update(true);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/StartupHelper2.java b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/StartupHelper2.java
index f5a61f6..74e5cb6 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/internal/StartupHelper2.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/internal/StartupHelper2.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2011 Andrei Loskutov.
+ * Copyright (c) 2011 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.internal;
 
@@ -46,7 +46,7 @@ import de.loskutov.anyedit.ui.editor.AbstractEditor;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class StartupHelper2 {
 
@@ -113,10 +113,12 @@ public class StartupHelper2 {
         PreExecutionHandler(String commandId) {
             this.commandId = commandId;
             spacesAction = new Spaces(){
+                @Override
                 protected AbstractEditor createActiveEditorDelegate() {
                     // this just returns the editor instance we already know, see runSpecial()
                     return getEditor();
                 }
+                @Override
                 public void setEditor(AbstractEditor editor) {
                     if(editor == null && getEditor() != null){
                         getEditor().dispose();
@@ -167,7 +169,11 @@ public class StartupHelper2 {
 
             IEditorPart part = HandlerUtil.getActiveEditor(event);
             if(part == null) {
-                return;
+                // workaround for http://code.google.com/a/eclipselabs.org/p/anyedittools/issues/detail?id=73
+                part = EclipseUtils.getActiveEditor();
+                if(part == null) {
+                    return;
+                }
             }
             spacesAction.setActiveEditor(null, part);
             boolean trim = spacesAction.isSaveAndTrimEnabled();
@@ -189,8 +195,12 @@ public class StartupHelper2 {
         private void runSpecial2(ExecutionEvent event) {
             IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
             if (window == null) {
-                // action has been disposed
-                return;
+                window = AnyEditToolsPlugin.getDefault().getWorkbench()
+                        .getActiveWorkbenchWindow();
+                if(window == null) {
+                    // action has been disposed
+                    return;
+                }
             }
             IWorkbenchPage page = window.getActivePage();
             final IEditorPart[] dirtyEditors = page.getDirtyEditors();
@@ -268,14 +278,14 @@ public class StartupHelper2 {
         }
 
         private void run(IWorkbenchWindow window) {
+            hookOnCommand(FILE_SAVE);
+            hookOnCommand(FILE_SAVE_ALL);
+
             IWorkbenchWindowConfigurer wwConf = getWorkbenchWindowConfigurer(window);
             if (wwConf == null) {
                 return;
             }
 
-            hookOnCommand(FILE_SAVE);
-            hookOnCommand(FILE_SAVE_ALL);
-
             IActionBarConfigurer configurer = wwConf.getActionBarConfigurer();
 
             configurer.getMenuManager();
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithAction.java
index ff5d92f..f8ad70b 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.replace;
 
@@ -45,7 +45,7 @@ import de.loskutov.anyedit.ui.editor.AbstractEditor;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public abstract class ReplaceWithAction extends AbstractHandler implements IObjectActionDelegate {
 
@@ -60,6 +60,7 @@ public abstract class ReplaceWithAction extends AbstractHandler implements IObje
     public Object execute(final ExecutionEvent event) throws ExecutionException {
         IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
         Action dummyAction = new Action(){
+            @Override
             public String getId() {
                 return event.getCommand().getId();
             }
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithClipboardAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithClipboardAction.java
index 67da2e5..43be148 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithClipboardAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithClipboardAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.replace;
 
@@ -19,7 +19,7 @@ import org.eclipse.jface.viewers.ISelection;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class ReplaceWithClipboardAction extends ReplaceWithAction {
 
@@ -27,6 +27,7 @@ public class ReplaceWithClipboardAction extends ReplaceWithAction {
         super();
     }
 
+    @Override
     public void selectionChanged(IAction action, ISelection selection) {
         super.selectionChanged(action, selection);
         if (action.isEnabled()) {
@@ -49,6 +50,7 @@ public class ReplaceWithClipboardAction extends ReplaceWithAction {
         }
     }
 
+    @Override
     protected InputStream createInputStream() {
         String clipbContent = EclipseUtils.getClipboardContent();
         if (clipbContent == null || clipbContent.length() == 0) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithEditorAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithEditorAction.java
index 97a8208..3fbdcd3 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithEditorAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithEditorAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.replace;
 
@@ -33,7 +33,7 @@ import de.loskutov.anyedit.ui.editor.AbstractEditor;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  *
  */
 public class ReplaceWithEditorAction extends ReplaceWithAction {
@@ -42,6 +42,7 @@ public class ReplaceWithEditorAction extends ReplaceWithAction {
         super();
     }
 
+    @Override
     public void selectionChanged(IAction action, ISelection selection) {
         // restore disabled state and let us re-test enablement
         action.setEnabled(true);
@@ -52,6 +53,7 @@ public class ReplaceWithEditorAction extends ReplaceWithAction {
         }
     }
 
+    @Override
     protected InputStream createInputStream() {
 
         ListDialog dialog = CompareWithEditorAction.createSelectionDialog(editor,
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithExternalAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithExternalAction.java
index 085713e..d053552 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithExternalAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithExternalAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.replace;
 
@@ -23,7 +23,7 @@ import de.loskutov.anyedit.actions.compare.CompareWithExternalAction;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  *
  */
 public class ReplaceWithExternalAction extends ReplaceWithAction {
@@ -32,9 +32,7 @@ public class ReplaceWithExternalAction extends ReplaceWithAction {
         super();
     }
 
-    /* (non-Javadoc)
-     * @see de.loskutov.anyedit.actions.replace.ReplaceWithAction#createInputStream()
-     */
+    @Override
     protected InputStream createInputStream() {
         FileDialog dialog = new FileDialog(AnyEditToolsPlugin.getShell());
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithResourceAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithResourceAction.java
index b10d40e..96e1ba2 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithResourceAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/replace/ReplaceWithResourceAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.actions.replace;
 
@@ -17,7 +17,7 @@ import de.loskutov.anyedit.AnyEditToolsPlugin;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  *
  */
 public class ReplaceWithResourceAction extends ReplaceWithAction {
@@ -26,9 +26,7 @@ public class ReplaceWithResourceAction extends ReplaceWithAction {
         super();
     }
 
-    /* (non-Javadoc)
-     * @see de.loskutov.anyedit.actions.replace.ReplaceWithAction#createInputStream()
-     */
+    @Override
     protected InputStream createInputStream() {
         IFile file = EclipseUtils.getWorkspaceFile();
         if (file == null) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/AbstractSortAction.java b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/AbstractSortAction.java
index 9e32971..272cc2f 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/AbstractSortAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/AbstractSortAction.java
@@ -1,12 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2011 Andrei Loskutov.
+ * Copyright (c) 2011 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  * Contributors:
  *      Clemens Fuchslocher - initial API and implementation
- *      Andrei Loskutov     - bugfixes
+ *      Andrey Loskutov     - bugfixes
  *******************************************************************************/
 package de.loskutov.anyedit.actions.sort;
 
@@ -32,8 +32,9 @@ import de.loskutov.anyedit.util.TextReplaceResultSet;
  */
 public abstract class AbstractSortAction extends AbstractTextAction {
 
-    protected abstract Comparator getComparator();
+    protected abstract Comparator<LineReplaceResult> getComparator();
 
+    @Override
     protected TextReplaceResultSet estimateActionRange(IDocument document) {
         ITextSelection selection = getSelection();
         if (selection == null || selection.isEmpty()) {
@@ -51,8 +52,9 @@ public abstract class AbstractSortAction extends AbstractTextAction {
         return result;
     }
 
+    @Override
     protected void doTextOperation(IDocument document, String action, TextReplaceResultSet results) throws BadLocationException {
-        List lines = getLines(results, document);
+        List<LineReplaceResult> lines = getLines(results, document);
         if (lines.isEmpty() || lines.size() == 1) {
             return;
         }
@@ -61,8 +63,8 @@ public abstract class AbstractSortAction extends AbstractTextAction {
         addLines(results, lines);
     }
 
-    private List getLines(TextReplaceResultSet result, IDocument document) throws BadLocationException {
-        List lines = new ArrayList();
+    private List<LineReplaceResult> getLines(TextReplaceResultSet result, IDocument document) throws BadLocationException {
+        List<LineReplaceResult> lines = new ArrayList<LineReplaceResult>();
         int start = result.getStartLine();
         int stop = result.getStopLine();
 
@@ -78,14 +80,14 @@ public abstract class AbstractSortAction extends AbstractTextAction {
         return lines;
     }
 
-    private void sortLines(List lines) {
+    private void sortLines(List<LineReplaceResult> lines) {
         Collections.sort(lines, getComparator());
     }
 
-    private void addLines(TextReplaceResultSet results, List lineList) {
-        Iterator lines = lineList.iterator();
+    private void addLines(TextReplaceResultSet results, List<LineReplaceResult> lineList) {
+        Iterator<LineReplaceResult> lines = lineList.iterator();
         while (lines.hasNext()) {
-            results.add((LineReplaceResult) lines.next());
+            results.add(lines.next());
         }
     }
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/AbstractSortComparator.java b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/AbstractSortComparator.java
index 1905d95..a17b3c3 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/AbstractSortComparator.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/AbstractSortComparator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011 Andrei Loskutov.
+ * Copyright (c) 2011 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseInsensitiveAscending.java b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseInsensitiveAscending.java
index 260813e..537f525 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseInsensitiveAscending.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseInsensitiveAscending.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011 Andrei Loskutov.
+ * Copyright (c) 2011 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,12 +10,15 @@ package de.loskutov.anyedit.actions.sort;
 
 import java.util.Comparator;
 
+import de.loskutov.anyedit.util.LineReplaceResult;
+
 /**
  * @author Clemens Fuchslocher
  */
 public class SortAlphabeticallyCaseInsensitiveAscending extends AbstractSortAction {
 
-    protected Comparator getComparator() {
+    @Override
+    protected Comparator<LineReplaceResult> getComparator() {
         return new AbstractSortComparator() {
             public int compare(Object left, Object right) {
                 return compareLineCaseInsensitive(left, right);
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseInsensitiveDescending.java b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseInsensitiveDescending.java
index 7ae490c..aac7014 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseInsensitiveDescending.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseInsensitiveDescending.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011 Andrei Loskutov.
+ * Copyright (c) 2011 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,12 +10,15 @@ package de.loskutov.anyedit.actions.sort;
 
 import java.util.Comparator;
 
+import de.loskutov.anyedit.util.LineReplaceResult;
+
 /**
  * @author Clemens Fuchslocher
  */
 public class SortAlphabeticallyCaseInsensitiveDescending extends AbstractSortAction {
 
-    protected Comparator getComparator() {
+    @Override
+    protected Comparator<LineReplaceResult> getComparator() {
         return new AbstractSortComparator() {
             public int compare(Object left, Object right) {
                 return -compareLineCaseInsensitive(left, right);
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseSensitiveAscending.java b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseSensitiveAscending.java
index 53f77b4..6dfd002 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseSensitiveAscending.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseSensitiveAscending.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011 Andrei Loskutov.
+ * Copyright (c) 2011 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,12 +10,15 @@ package de.loskutov.anyedit.actions.sort;
 
 import java.util.Comparator;
 
+import de.loskutov.anyedit.util.LineReplaceResult;
+
 /**
  * @author Clemens Fuchslocher
  */
 public class SortAlphabeticallyCaseSensitiveAscending extends AbstractSortAction {
 
-    protected Comparator getComparator() {
+    @Override
+    protected Comparator<LineReplaceResult> getComparator() {
         return new AbstractSortComparator() {
             public int compare(Object left, Object right) {
                 return line(left).compareTo(line(right));
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseSensitiveDescending.java b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseSensitiveDescending.java
index cbf2a6f..8c036b0 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseSensitiveDescending.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortAlphabeticallyCaseSensitiveDescending.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011 Andrei Loskutov.
+ * Copyright (c) 2011 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,12 +10,15 @@ package de.loskutov.anyedit.actions.sort;
 
 import java.util.Comparator;
 
+import de.loskutov.anyedit.util.LineReplaceResult;
+
 /**
  * @author Clemens Fuchslocher
  */
 public class SortAlphabeticallyCaseSensitiveDescending extends AbstractSortAction {
 
-    protected Comparator getComparator() {
+    @Override
+    protected Comparator<LineReplaceResult> getComparator() {
         return new AbstractSortComparator() {
             public int compare(Object left, Object right) {
                 return line(right).compareTo(line(left));
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortNumericallyAscending.java b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortNumericallyAscending.java
index 760c322..e36e179 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortNumericallyAscending.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortNumericallyAscending.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011 Andrei Loskutov.
+ * Copyright (c) 2011 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,12 +10,15 @@ package de.loskutov.anyedit.actions.sort;
 
 import java.util.Comparator;
 
+import de.loskutov.anyedit.util.LineReplaceResult;
+
 /**
  * @author Clemens Fuchslocher
  */
 public class SortNumericallyAscending extends AbstractSortAction {
 
-    protected Comparator getComparator() {
+    @Override
+    protected Comparator<LineReplaceResult> getComparator() {
         return new AbstractSortComparator() {
             public int compare(Object left, Object right) {
                 return compareNumber(left, right);
diff --git a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortNumericallyDescending.java b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortNumericallyDescending.java
index 8f0b658..af2b97b 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortNumericallyDescending.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/actions/sort/SortNumericallyDescending.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011 Andrei Loskutov.
+ * Copyright (c) 2011 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,12 +10,15 @@ package de.loskutov.anyedit.actions.sort;
 
 import java.util.Comparator;
 
+import de.loskutov.anyedit.util.LineReplaceResult;
+
 /**
  * @author Clemens Fuchslocher
  */
 public class SortNumericallyDescending extends AbstractSortAction {
 
-    protected Comparator getComparator() {
+    @Override
+    protected Comparator<LineReplaceResult> getComparator() {
         return new AbstractSortComparator() {
             public int compare(Object left, Object right) {
                 return -compareNumber(left, right);
diff --git a/AnyEditTools/src/de/loskutov/anyedit/compare/AnyeditCompareInput.java b/AnyEditTools/src/de/loskutov/anyedit/compare/AnyeditCompareInput.java
index 9cd3938..31d13a1 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/compare/AnyeditCompareInput.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/compare/AnyeditCompareInput.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.compare;
 
@@ -34,7 +34,7 @@ import org.eclipse.ui.progress.UIJob;
 import de.loskutov.anyedit.AnyEditToolsPlugin;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 /*implements IContentChangeNotifier*/
 public class AnyeditCompareInput extends CompareEditorInput  {
@@ -77,6 +77,7 @@ public class AnyeditCompareInput extends CompareEditorInput  {
     }
 
 
+    @Override
     public Object getAdapter(Class adapter) {
         if(IFile.class == adapter) {
             Object object = left.getAdapter(adapter);
@@ -88,8 +89,9 @@ public class AnyeditCompareInput extends CompareEditorInput  {
         return super.getAdapter(adapter);
     }
 
+    @Override
     protected Object prepareInput(IProgressMonitor monitor)
-    throws InvocationTargetException, InterruptedException {
+            throws InvocationTargetException, InterruptedException {
         if (right == null || left == null) {
             return null;
         }
@@ -121,6 +123,7 @@ public class AnyeditCompareInput extends CompareEditorInput  {
         }
     }
 
+    @Override
     public void saveChanges(IProgressMonitor monitor) throws CoreException {
         super.saveChanges(monitor);
         if (differences instanceof DiffNode) {
@@ -136,6 +139,7 @@ public class AnyeditCompareInput extends CompareEditorInput  {
         }
     }
 
+    @Override
     public Object getCompareResult() {
         Object compareResult = super.getCompareResult();
         if(compareResult == null){
@@ -146,6 +150,7 @@ public class AnyeditCompareInput extends CompareEditorInput  {
 
     void reuseEditor() {
         UIJob job = new UIJob("Updating differences"){
+            @Override
             public IStatus runInUIThread(IProgressMonitor monitor) {
                 if(monitor.isCanceled() || left.isDisposed() || right.isDisposed()){
                     return Status.CANCEL_STATUS;
@@ -194,6 +199,7 @@ public class AnyeditCompareInput extends CompareEditorInput  {
                 }
                 return Status.OK_STATUS;
             }
+            @Override
             public boolean belongsTo(Object family) {
                 return AnyeditCompareInput.this == family;
             }
@@ -270,6 +276,7 @@ public class AnyeditCompareInput extends CompareEditorInput  {
         setTitle("Compare (" + nameLeft + " - " + nameRight + ")");
     }
 
+    @Override
     protected void handleDispose() {
         internalDispose();
         super.handleDispose();
diff --git a/AnyEditTools/src/de/loskutov/anyedit/compare/ClipboardStreamContent.java b/AnyEditTools/src/de/loskutov/anyedit/compare/ClipboardStreamContent.java
index 57b3d3a..3048d35 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/compare/ClipboardStreamContent.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/compare/ClipboardStreamContent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.compare;
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/compare/ContentWrapper.java b/AnyEditTools/src/de/loskutov/anyedit/compare/ContentWrapper.java
index e2926bd..de9a013 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/compare/ContentWrapper.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/compare/ContentWrapper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.compare;
 
@@ -25,7 +25,7 @@ import de.loskutov.anyedit.ui.editor.AbstractEditor;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class ContentWrapper implements IActionFilter {
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/compare/EditableSharedDocumentAdapter.java b/AnyEditTools/src/de/loskutov/anyedit/compare/EditableSharedDocumentAdapter.java
index 7614d9c..5f437ef 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/compare/EditableSharedDocumentAdapter.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/compare/EditableSharedDocumentAdapter.java
@@ -98,6 +98,7 @@ IElementStateListener {
         this.listener = new SharedDocumentAdapterListener(content);
     }
 
+    @Override
     public void connect(IDocumentProvider provider, IEditorInput documentKey) throws CoreException {
         super.connect(provider, documentKey);
         connectionCount++;
@@ -107,6 +108,7 @@ IElementStateListener {
         }
     }
 
+    @Override
     public void disconnect(IDocumentProvider provider, IEditorInput documentKey) {
         try {
             super.disconnect(provider, documentKey);
@@ -144,7 +146,7 @@ IElementStateListener {
      * @throws CoreException
      */
     public boolean saveDocument(IEditorInput input, boolean overwrite, IProgressMonitor monitor)
-    throws CoreException {
+            throws CoreException {
         if (isConnected()) {
             IDocumentProvider provider = SharedDocumentAdapter.getDocumentProvider(input);
             try {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/compare/ExternalFileStreamContent.java b/AnyEditTools/src/de/loskutov/anyedit/compare/ExternalFileStreamContent.java
index d935140..71c3cea 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/compare/ExternalFileStreamContent.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/compare/ExternalFileStreamContent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.compare;
 
@@ -36,7 +36,7 @@ import de.loskutov.anyedit.AnyEditToolsPlugin;
 
 /**
  * Content for external files without document support.
- * @author Andrei
+ * @author Andrey
  */
 public class ExternalFileStreamContent extends BufferedContent implements StreamContent,
 IEditableContent, IModificationDate, IEditableContentExtension {
@@ -50,6 +50,7 @@ IEditableContent, IModificationDate, IEditableContentExtension {
         this.content = content;
     }
 
+    @Override
     public void setContent(byte[] contents) {
         dirty = true;
         super.setContent(contents);
@@ -85,6 +86,7 @@ IEditableContent, IModificationDate, IEditableContentExtension {
         return false;
     }
 
+    @Override
     protected InputStream createStream() throws CoreException {
         FileInputStream fis;
         try {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/compare/FileStreamContent.java b/AnyEditTools/src/de/loskutov/anyedit/compare/FileStreamContent.java
index bc1a972..7ab6156 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/compare/FileStreamContent.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/compare/FileStreamContent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.compare;
 
@@ -22,7 +22,7 @@ import de.loskutov.anyedit.AnyEditToolsPlugin;
 
 /**
  * Content for workspace files without document support.
- * @author Andrei
+ * @author Andrey
  */
 public class FileStreamContent extends ResourceNode implements StreamContent {
 
@@ -35,6 +35,7 @@ public class FileStreamContent extends ResourceNode implements StreamContent {
         this.content = content;
     }
 
+    @Override
     public void setContent(byte[] contents) {
         dirty = true;
         super.setContent(contents);
diff --git a/AnyEditTools/src/de/loskutov/anyedit/compare/StreamContent.java b/AnyEditTools/src/de/loskutov/anyedit/compare/StreamContent.java
index 2c092f1..a81d402 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/compare/StreamContent.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/compare/StreamContent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.compare;
 
@@ -15,7 +15,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 
 /**
- * @author Andrei
+ * @author Andrey
  *
  */
 public interface StreamContent extends ITypedElement, IAdaptable,
diff --git a/AnyEditTools/src/de/loskutov/anyedit/compare/TextStreamContent.java b/AnyEditTools/src/de/loskutov/anyedit/compare/TextStreamContent.java
index 4dd9426..4b447ae 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/compare/TextStreamContent.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/compare/TextStreamContent.java
@@ -340,7 +340,7 @@ IEditableContentExtension {
         if(model == null){
             return;
         }
-        for (Iterator iterator = model.getAnnotationIterator(); iterator.hasNext();) {
+        for (Iterator<?> iterator = model.getAnnotationIterator(); iterator.hasNext();) {
             Annotation ann = (Annotation) iterator.next();
             if (lineAnnotation == ann) {
                 model.removeAnnotation(ann);
diff --git a/AnyEditTools/src/de/loskutov/anyedit/jdt/JdtUtils.java b/AnyEditTools/src/de/loskutov/anyedit/jdt/JdtUtils.java
index abaf244..bf590c3 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/jdt/JdtUtils.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/jdt/JdtUtils.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.jdt;
 
@@ -35,7 +35,7 @@ import de.loskutov.anyedit.AnyEditToolsPlugin;
 import de.loskutov.anyedit.IAnyEditConstants;
 
 /**
- * @author Andrei
+ * @author Andrey
  *
  */
 public final class JdtUtils {
@@ -53,7 +53,7 @@ public final class JdtUtils {
      *             if user doesnt select founded types
      */
     public static int searchAndOpenType(String typeName)
-    throws OperationCanceledException {
+            throws OperationCanceledException {
         if(typeName == null) {
             return 0;
         }
@@ -92,12 +92,13 @@ public final class JdtUtils {
      */
     private static IType[] getTypeForName(String simpleTypeName,
             final IJavaSearchScope searchScope, IProgressMonitor monitor)
-    throws JavaModelException {
+                    throws JavaModelException {
         final IType[] result = new IType[1];
         final TypeFactory fFactory = new TypeFactory();
         TypeNameRequestor requestor = new TypeNameRequestor() {
             boolean done;
             boolean found;
+            @Override
             public void acceptType(int modifiers, char[] packageName,
                     char[] simpleTypeName1, char[][] enclosingTypeNames, String path) {
                 if(done){
@@ -168,7 +169,7 @@ public final class JdtUtils {
         String tabOption;
         if (javaProject == null || JavaCore.getJavaCore() == null) {
             tabOption = JavaCore
-            .getOption(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE);
+                    .getOption(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE);
         } else {
             tabOption = javaProject.getOption(
                     DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, true);
diff --git a/AnyEditTools/src/de/loskutov/anyedit/jdt/SelectWorkingSetsAction.java b/AnyEditTools/src/de/loskutov/anyedit/jdt/SelectWorkingSetsAction.java
index bb666f9..27c2b86 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/jdt/SelectWorkingSetsAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/jdt/SelectWorkingSetsAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.jdt;
 
@@ -27,7 +27,7 @@ import de.loskutov.anyedit.ui.wizards.IWSAction;
 /**
  * Thic class is a dirty way to activate imported working sets into the Package Explorer
  *
- * @author Andrei
+ * @author Andrey
  */
 public class SelectWorkingSetsAction extends Action implements IWSAction {
 
@@ -37,13 +37,14 @@ public class SelectWorkingSetsAction extends Action implements IWSAction {
         super();
     }
 
+    @Override
     public void run() {
         if (workingSets == null || workingSets.length == 0) {
             return;
         }
         try {
             IViewPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
-            .getActivePage().showView(JavaUI.ID_PACKAGES);
+                    .getActivePage().showView(JavaUI.ID_PACKAGES);
             if (!(part instanceof PackageExplorerPart)) {
                 return;
             }
@@ -54,7 +55,7 @@ public class SelectWorkingSetsAction extends Action implements IWSAction {
             }
             WorkingSetModel workingSetModel = viewPart.getWorkingSetModel();
             IWorkingSet[] active = workingSetModel.getActiveWorkingSets();
-            List all = new ArrayList();
+            List<IWorkingSet> all = new ArrayList<IWorkingSet>();
             for (int i = 0; i < active.length; i++) {
                 all.add(active[i]);
             }
@@ -67,7 +68,7 @@ public class SelectWorkingSetsAction extends Action implements IWSAction {
                 }
             }
             if (all.size() > 0) {
-                workingSetModel.setActiveWorkingSets((IWorkingSet[]) all
+                workingSetModel.setActiveWorkingSets(all
                         .toArray(new IWorkingSet[all.size()]));
                 TreeViewer viewer = viewPart.getTreeViewer();
                 viewer.getControl().setRedraw(false);
@@ -92,7 +93,7 @@ public class SelectWorkingSetsAction extends Action implements IWSAction {
         return null;
     }
 
-    public void setWorkingSets(List sets) {
-        this.workingSets = (IWorkingSet[]) sets.toArray(new IWorkingSet[sets.size()]);
+    public void setWorkingSets(List<IWorkingSet> sets) {
+        this.workingSets = sets.toArray(new IWorkingSet[sets.size()]);
     }
 }
diff --git a/AnyEditTools/src/de/loskutov/anyedit/jdt/TypeFactory.java b/AnyEditTools/src/de/loskutov/anyedit/jdt/TypeFactory.java
index fed723c..a2d4812 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/jdt/TypeFactory.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/jdt/TypeFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.jdt;
 
@@ -234,7 +234,7 @@ public class TypeFactory {
                 IType declaringType = type.getDeclaringType();
                 if (declaringType != null) {
                     return getTypeQualifiedName(declaringType) + '.'
-                    + type.getElementName();
+                            + type.getElementName();
                 }
             }
         } catch (JavaModelException e) {
@@ -282,7 +282,7 @@ public class TypeFactory {
         }
 
         private IJavaElement getContainer(IJavaSearchScope scope)
-        throws JavaModelException {
+                throws JavaModelException {
             IJavaModel jmodel = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
             IPath[] enclosedPaths = scope.enclosingProjectsAndJars();
 
@@ -296,7 +296,7 @@ public class TypeFactory {
                     }
                 }
             }
-            List paths = Arrays.asList(enclosedPaths);
+            List<IPath> paths = Arrays.asList(enclosedPaths);
             IJavaProject[] projects = jmodel.getJavaProjects();
             for (int i = 0; i < projects.length; i++) {
                 IJavaProject jproject = projects[i];
diff --git a/AnyEditTools/src/de/loskutov/anyedit/messages.properties b/AnyEditTools/src/de/loskutov/anyedit/messages.properties
index 830663a..db0adf6 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/messages.properties
+++ b/AnyEditTools/src/de/loskutov/anyedit/messages.properties
@@ -18,8 +18,8 @@ SaveTo_MessageSelection=Would you like to open file in editor after save is done
 SaveTo_MessageNoSelection=Would you like to open file in editor after save is done?
 SaveTo_MessageToggle=Do not ask me in the future.
 
-SaveTo_FileExists=Selected file already exists, should AnyEdit:
-SaveTo_Override=Override it with new content
+SaveTo_FileExists=Selected file already exists, do you want:
+SaveTo_Override=Override the file
 SaveTo_Append=Append new content to file
 
 pref_tabWidth=Tab width/number of spaces for tab
@@ -82,6 +82,9 @@ pref_requiredInPathEnabledTip=Strings without "required" characters wouldn't be
 pref_saveAndTrim=Remove trailing whitespace
 pref_saveAndTrimTip=Before editor will be saved, trailing whitespace should be removed
 
+pref_ignoreOnTrim=Ignore empty lines
+pref_ignoreOnTrimTip=Trailing whitespace won't be removed for empty (whitespace) lines
+
 pref_saveAndAddLine=Create new line at the end of the file
 pref_saveAndAddLineTip=Before editor will be saved, a new empty line would be added to the end of the file
 
@@ -152,7 +155,7 @@ ConvertAll_task=Convert tabs <-> spaces
 ConvertUnicode_title=Please confirm
 ConvertUnicode_warn=Editor charset does not support encoding of some characters, converted from unicode. \
   Problem: {0} \
-	\n\nContinue?
+    \n\nContinue?
 ConvertUnicode_toggleMessage=Do not warn me in the future.
 
 OpenLineSeparatorRegex_WarningInvalidRegex=Invalid regular expression for line separators. Use Java syntax.\n
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/editor/AbstractEditor.java b/AnyEditTools/src/de/loskutov/anyedit/ui/editor/AbstractEditor.java
index 472c725..cf860fa 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/editor/AbstractEditor.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/editor/AbstractEditor.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.ui.editor;
@@ -42,7 +42,7 @@ import de.loskutov.anyedit.util.EclipseUtils;
 import de.loskutov.anyedit.util.TextUtil;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class AbstractEditor implements ITextEditorExtension2 {
     private IEditorPart editorPart;
@@ -297,7 +297,7 @@ public class AbstractEditor implements ITextEditorExtension2 {
         return editorPart.isDirty();
     }
 
-    private Object getAdapter(Class clazz){
+    private Object getAdapter(Class<?> clazz){
         if (editorPart == null) {
             return null;
         }
@@ -399,6 +399,7 @@ public class AbstractEditor implements ITextEditorExtension2 {
         return editorPart == null;
     }
 
+    @Override
     public int hashCode() {
         IDocumentProvider provider = getDocumentProvider();
         IEditorInput input = getInput();
@@ -412,6 +413,7 @@ public class AbstractEditor implements ITextEditorExtension2 {
         return code;
     }
 
+    @Override
     public boolean equals(Object obj) {
         if(obj == this){
             return true;
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/editor/EditorAdapterFactory.java b/AnyEditTools/src/de/loskutov/anyedit/ui/editor/EditorAdapterFactory.java
index 6e2f5c2..9c7f090 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/editor/EditorAdapterFactory.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/editor/EditorAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.ui.editor;
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/editor/EditorPropertyTester.java b/AnyEditTools/src/de/loskutov/anyedit/ui/editor/EditorPropertyTester.java
index 743f739..b6147d0 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/editor/EditorPropertyTester.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/editor/EditorPropertyTester.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.ui.editor;
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/AndyEditPreferenceInitializer.java b/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/AndyEditPreferenceInitializer.java
index 8e65a83..c35d379 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/AndyEditPreferenceInitializer.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/AndyEditPreferenceInitializer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.ui.preferences;
@@ -17,16 +17,17 @@ import de.loskutov.anyedit.IAnyEditConstants;
 import de.loskutov.anyedit.util.TextUtil;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class AndyEditPreferenceInitializer
 extends
 AbstractPreferenceInitializer {
 
-    /* (non-Javadoc)
+    /*
      * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences()
      * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
      */
+    @Override
     public void initializeDefaultPreferences() {
         IPreferenceStore store = AnyEditToolsPlugin.getDefault().getPreferenceStore();
         store.setDefault(IAnyEditConstants.EDITOR_TAB_WIDTH, "2");
@@ -37,8 +38,8 @@ AbstractPreferenceInitializer {
                 IAnyEditConstants.CHARACTERS_REQUIRED_IN_PATH,
                 TextUtil.DEFAULT_CHARACTERS_REQUIRED_IN_PATH);
         store.setDefault(
-        		IAnyEditConstants.LINE_SEPARATOR_REGEX,
-        		TextUtil.DEFAULT_LINE_SEPARATOR_REGEX);
+                IAnyEditConstants.LINE_SEPARATOR_REGEX,
+                TextUtil.DEFAULT_LINE_SEPARATOR_REGEX);
         store.setDefault(
                 IAnyEditConstants.BASE64_LINE_LENGTH,
                 TextUtil.DEFAULT_BASE64_LINE_LENGTH);
@@ -52,6 +53,7 @@ AbstractPreferenceInitializer {
         store.setDefault(IAnyEditConstants.SAVE_AND_CONVERT_ENABLED, false);
         store.setDefault(IAnyEditConstants.SAVE_AND_ADD_LINE, false);
         store.setDefault(IAnyEditConstants.SAVE_AND_TRIM_ENABLED, true);
+        store.setDefault(IAnyEditConstants.IGNORE_BLANK_LINES_WHEN_TRIMMING, false);
         store.setDefault(IAnyEditConstants.CONVERT_ACTION_ON_SAVE,
                 IAnyEditConstants.ACTION_ID_CONVERT_TABS);
         store.setDefault(IAnyEditConstants.REPLACE_ALL_TABS_WITH_SPACES, false);
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/AnyEditPreferencePage.java b/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/AnyEditPreferencePage.java
index a774ca3..a27259b 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/AnyEditPreferencePage.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/AnyEditPreferencePage.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.ui.preferences;
@@ -128,6 +128,8 @@ IWorkbenchPreferencePage, SelectionListener {
 
     protected Button saveAndTrimCheck;
 
+    protected Button ignoreBlankLinesOnTrimCheck;
+
     protected Button saveAndAddLineCheck;
 
     protected Button askBeforeConvertAllCheck;
@@ -188,6 +190,7 @@ IWorkbenchPreferencePage, SelectionListener {
     /*
      * @see PreferencePage#createContents(Composite)
      */
+    @Override
     protected Control createContents(Composite parent) {
 
         tabFolder = new TabFolder(parent, SWT.TOP);
@@ -463,21 +466,22 @@ IWorkbenchPreferencePage, SelectionListener {
         IPreferenceStore store = getPreferenceStore();
 
 
-        Group toolbarComposite = new Group(defPanel, SWT.SHADOW_ETCHED_IN);
-        layout = new GridLayout();
-        toolbarComposite.setLayout(layout);
-        gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
-        toolbarComposite.setLayoutData(gridData);
-        toolbarComposite.setText(Messages.pref_toolbarIntro);
-        if(EclipseUtils.getWorkbenchVersion().compareTo(new Version(3,7,0)) < 0) {
-            addSaveAllCheck = createLabeledCheck(Messages.pref_addSaveAll,
-                    Messages.pref_addSaveAllTip,
-                    store.getBoolean(IAnyEditConstants.ADD_SAVE_ALL_TO_TOOLBAR), toolbarComposite);
+        if(EclipseUtils.getWorkbenchVersion().compareTo(new Version(3,100,0)) < 0) {
+            Group toolbarComposite = new Group(defPanel, SWT.SHADOW_ETCHED_IN);
+            layout = new GridLayout();
+            toolbarComposite.setLayout(layout);
+            gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
+            toolbarComposite.setLayoutData(gridData);
+            toolbarComposite.setText(Messages.pref_toolbarIntro);
+            if(EclipseUtils.getWorkbenchVersion().compareTo(new Version(3,7,0)) < 0) {
+                addSaveAllCheck = createLabeledCheck(Messages.pref_addSaveAll,
+                        Messages.pref_addSaveAllTip,
+                        store.getBoolean(IAnyEditConstants.ADD_SAVE_ALL_TO_TOOLBAR), toolbarComposite);
+            }
+            removePrintCheck = createLabeledCheck(Messages.pref_removePrint,
+                    Messages.pref_removePrintTip,
+                    store.getBoolean(IAnyEditConstants.REMOVE_PRINT_FROM_TOOLBAR), toolbarComposite);
         }
-        removePrintCheck = createLabeledCheck(Messages.pref_removePrint,
-                Messages.pref_removePrintTip,
-                store.getBoolean(IAnyEditConstants.REMOVE_PRINT_FROM_TOOLBAR), toolbarComposite);
-
 
         Group ratingComposite = new Group(defPanel, SWT.SHADOW_ETCHED_IN);
         layout = new GridLayout();
@@ -528,6 +532,10 @@ IWorkbenchPreferencePage, SelectionListener {
                 Messages.pref_saveAndTrimTip,
                 store.getBoolean(IAnyEditConstants.SAVE_AND_TRIM_ENABLED), firstRow);
 
+        ignoreBlankLinesOnTrimCheck = createLabeledCheck(Messages.pref_ignoreOnTrim,
+                Messages.pref_ignoreOnTrimTip,
+                store.getBoolean(IAnyEditConstants.IGNORE_BLANK_LINES_WHEN_TRIMMING), firstRow);
+
         saveAndAddLineCheck = createLabeledCheck(Messages.pref_saveAndAddLine,
                 Messages.pref_saveAndAddLineTip,
                 store.getBoolean(IAnyEditConstants.SAVE_AND_ADD_LINE), firstRow);
@@ -542,13 +550,13 @@ IWorkbenchPreferencePage, SelectionListener {
         layout.numColumns = 2;
 
         convertChoiceComposite.setLayout(layout);
-        gridData = new GridData();
+        gridData = new GridData(300, 50);
         gridData.horizontalIndent = 20;
         convertChoiceComposite.setLayoutData(gridData);
         convertChoiceComposite.setText(Messages.pref_convertChoiceIntro);
 
         boolean convertTabsAction = AbstractTextAction.ACTION_ID_CONVERT_TABS
-        .equals(store.getString(IAnyEditConstants.CONVERT_ACTION_ON_SAVE));
+                .equals(store.getString(IAnyEditConstants.CONVERT_ACTION_ON_SAVE));
 
         convertTabsOnSaveRadio = createLabeledRadio(Messages.pref_convertTabsOnSave,
                 Messages.pref_convertTabsOnSaveTip,
@@ -577,6 +585,7 @@ IWorkbenchPreferencePage, SelectionListener {
         convertChoiceComposite.setEnabled(isSaveHookEnabled
                 && saveAndConvertCheck.getSelection());
         saveAndTrimCheck.setEnabled(isSaveHookEnabled);
+        ignoreBlankLinesOnTrimCheck.setEnabled(isSaveHookEnabled);
         saveAndAddLineCheck.setEnabled(isSaveHookEnabled);
         saveAndConvertCheck.setEnabled(isSaveHookEnabled);
         saveComposite.setEnabled(isSaveHookEnabled);
@@ -644,6 +653,7 @@ IWorkbenchPreferencePage, SelectionListener {
         // ignored
     }
 
+    @Override
     public boolean performOk() {
         IPreferenceStore store = getPreferenceStore();
 
@@ -687,14 +697,18 @@ IWorkbenchPreferencePage, SelectionListener {
                 replaceAllSpacesCheck.getSelection());
         store.setValue(IAnyEditConstants.PRESERVE_ENTITIES, preserveEntitiesCheck
                 .getSelection());
-        if(addSaveAllCheck!=null) {
+        if(addSaveAllCheck != null) {
             store.setValue(IAnyEditConstants.ADD_SAVE_ALL_TO_TOOLBAR, addSaveAllCheck
                     .getSelection());
         }
-        store.setValue(IAnyEditConstants.REMOVE_PRINT_FROM_TOOLBAR, removePrintCheck
-                .getSelection());
+        if(removePrintCheck != null) {
+            store.setValue(IAnyEditConstants.REMOVE_PRINT_FROM_TOOLBAR, removePrintCheck
+                    .getSelection());
+        }
         store.setValue(IAnyEditConstants.SAVE_AND_TRIM_ENABLED, saveAndTrimCheck
                 .getSelection());
+        store.setValue(IAnyEditConstants.IGNORE_BLANK_LINES_WHEN_TRIMMING, ignoreBlankLinesOnTrimCheck
+                .getSelection());
         store.setValue(IAnyEditConstants.SAVE_AND_ADD_LINE, saveAndAddLineCheck
                 .getSelection());
         store.setValue(IAnyEditConstants.SAVE_AND_CONVERT_ENABLED, saveAndConvertCheck
@@ -776,11 +790,7 @@ IWorkbenchPreferencePage, SelectionListener {
         return fButton;
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
-     */
+    @Override
     protected void performDefaults() {
         super.performDefaults();
 
@@ -822,14 +832,18 @@ IWorkbenchPreferencePage, SelectionListener {
                 .getDefaultBoolean(IAnyEditConstants.REPLACE_ALL_SPACES_WITH_TABS));
         preserveEntitiesCheck.setSelection(store
                 .getDefaultBoolean(IAnyEditConstants.PRESERVE_ENTITIES));
-        if(addSaveAllCheck!=null) {
+        if(addSaveAllCheck != null) {
             addSaveAllCheck.setSelection(store
                     .getDefaultBoolean(IAnyEditConstants.ADD_SAVE_ALL_TO_TOOLBAR));
         }
-        removePrintCheck.setSelection(store
-                .getDefaultBoolean(IAnyEditConstants.REMOVE_PRINT_FROM_TOOLBAR));
+        if(removePrintCheck != null) {
+            removePrintCheck.setSelection(store
+                    .getDefaultBoolean(IAnyEditConstants.REMOVE_PRINT_FROM_TOOLBAR));
+        }
         saveAndTrimCheck.setSelection(store
                 .getDefaultBoolean(IAnyEditConstants.SAVE_AND_TRIM_ENABLED));
+        ignoreBlankLinesOnTrimCheck.setSelection(store
+                .getDefaultBoolean(IAnyEditConstants.IGNORE_BLANK_LINES_WHEN_TRIMMING));
         saveAndAddLineCheck.setSelection(store
                 .getDefaultBoolean(IAnyEditConstants.SAVE_AND_ADD_LINE));
         saveAndConvertCheck.setSelection(store
@@ -852,8 +866,8 @@ IWorkbenchPreferencePage, SelectionListener {
                 .getDefaultBoolean(IAnyEditConstants.BASE64_SPLIT_LINE));
 
         boolean convertTabsAction = AbstractTextAction.ACTION_ID_CONVERT_TABS
-        .equals(store.getDefaultString(
-                IAnyEditConstants.CONVERT_ACTION_ON_SAVE));
+                .equals(store.getDefaultString(
+                        IAnyEditConstants.CONVERT_ACTION_ON_SAVE));
 
         boolean isSaveHookEnabled = AnyEditToolsPlugin.isSaveHookInitialized();
         convertTabsOnSaveRadio.setSelection(convertTabsAction);
@@ -867,6 +881,7 @@ IWorkbenchPreferencePage, SelectionListener {
                 && saveAndConvertCheck.getSelection());
     }
 
+    @Override
     public void dispose() {
         if (tabFolder != null) {
             tabFolder.dispose();
@@ -1071,6 +1086,7 @@ IWorkbenchPreferencePage, SelectionListener {
     private void setEditorListeners(Text text) {
         // CR means commit the changes, ESC means abort and don't commit
         text.addKeyListener(new KeyAdapter() {
+            @Override
             public void keyReleased(KeyEvent event) {
                 if (event.character == SWT.CR) {
                     if (invalidEditorText != null) {
@@ -1094,6 +1110,7 @@ IWorkbenchPreferencePage, SelectionListener {
         });
         // Consider loss of focus on the editor to mean the same as CR
         text.addFocusListener(new FocusAdapter() {
+            @Override
             public void focusLost(FocusEvent event) {
                 if (invalidEditorText != null) {
                     String infoText = Messages.pref_Invalid_file_filter;
@@ -1197,7 +1214,7 @@ IWorkbenchPreferencePage, SelectionListener {
 
     protected void removeFilters() {
         IStructuredSelection selection = (IStructuredSelection) filterViewer
-        .getSelection();
+                .getSelection();
         fileFilterContentProvider.removeFilters(selection.toArray());
     }
 
@@ -1237,13 +1254,13 @@ IWorkbenchPreferencePage, SelectionListener {
 
         private final CheckboxTableViewer fViewer;
 
-        private final List fFilters;
+        private final List<Filter> fFilters;
 
         public FilterContentProvider(CheckboxTableViewer viewer) {
             fViewer = viewer;
-            List active = createActiveStepFiltersList();
-            List inactive = createInactiveStepFiltersList();
-            fFilters = new ArrayList(active.size() + inactive.size());
+            List<String> active = createActiveStepFiltersList();
+            List<String> inactive = createInactiveStepFiltersList();
+            fFilters = new ArrayList<Filter>(active.size() + inactive.size());
             populateList(inactive, false);
             populateList(active, true);
             updateActions();
@@ -1251,15 +1268,15 @@ IWorkbenchPreferencePage, SelectionListener {
 
         public void setDefaults() {
             fViewer.remove(fFilters.toArray());
-            List defaultlist = createDefaultStepFiltersList();
+            List<String> defaultlist = createDefaultStepFiltersList();
             fFilters.clear();
             populateList(defaultlist, true);
         }
 
-        protected final void populateList(List list, boolean checked) {
-            Iterator iterator = list.iterator();
+        protected final void populateList(List<String> list, boolean checked) {
+            Iterator<String> iterator = list.iterator();
             while (iterator.hasNext()) {
-                String name = (String) iterator.next();
+                String name = iterator.next();
                 addFilter(name, checked);
             }
         }
@@ -1269,7 +1286,7 @@ IWorkbenchPreferencePage, SelectionListener {
          *
          * @return list
          */
-        protected final List createActiveStepFiltersList() {
+        protected final List<String> createActiveStepFiltersList() {
             String[] strings = EclipseUtils.parseList(getPreferenceStore().getString(
                     IAnyEditConstants.PREF_ACTIVE_FILTERS_LIST));
             return Arrays.asList(strings);
@@ -1280,7 +1297,7 @@ IWorkbenchPreferencePage, SelectionListener {
          *
          * @return list
          */
-        protected List createDefaultStepFiltersList() {
+        protected List<String> createDefaultStepFiltersList() {
             String[] strings = EclipseUtils.parseList(getPreferenceStore()
                     .getDefaultString(IAnyEditConstants.PREF_ACTIVE_FILTERS_LIST));
             return Arrays.asList(strings);
@@ -1291,7 +1308,7 @@ IWorkbenchPreferencePage, SelectionListener {
          *
          * @return list
          */
-        protected final List createInactiveStepFiltersList() {
+        protected final List<String> createInactiveStepFiltersList() {
             String[] strings = EclipseUtils.parseList(getPreferenceStore().getString(
                     IAnyEditConstants.PREF_INACTIVE_FILTERS_LIST));
             return Arrays.asList(strings);
@@ -1311,11 +1328,11 @@ IWorkbenchPreferencePage, SelectionListener {
         public void saveFilters() {
 
             int filtersSize = fFilters.size();
-            List active = new ArrayList(filtersSize);
-            List inactive = new ArrayList(filtersSize);
-            Iterator iterator = fFilters.iterator();
+            List<String> active = new ArrayList<String>(filtersSize);
+            List<String> inactive = new ArrayList<String>(filtersSize);
+            Iterator<Filter> iterator = fFilters.iterator();
             while (iterator.hasNext()) {
-                Filter filter = (Filter) iterator.next();
+                Filter filter = iterator.next();
                 String name = filter.getName();
                 if (filter.isChecked()) {
                     active.add(name);
@@ -1323,12 +1340,12 @@ IWorkbenchPreferencePage, SelectionListener {
                     inactive.add(name);
                 }
             }
-            String pref = serializeList((String[]) active.toArray(new String[active
-                                                                             .size()]));
+            String pref = serializeList(active.toArray(new String[active
+                                                                  .size()]));
             IPreferenceStore prefStore = getPreferenceStore();
             prefStore.setValue(IAnyEditConstants.PREF_ACTIVE_FILTERS_LIST,
                     pref);
-            pref = serializeList((String[]) inactive.toArray(new String[inactive.size()]));
+            pref = serializeList(inactive.toArray(new String[inactive.size()]));
             prefStore.setValue(IAnyEditConstants.PREF_INACTIVE_FILTERS_LIST,
                     pref);
         }
@@ -1396,6 +1413,7 @@ final class Filter {
         fChecked = checked;
     }
 
+    @Override
     public boolean equals(Object o) {
         if (o instanceof Filter) {
             Filter other = (Filter) o;
@@ -1406,6 +1424,7 @@ final class Filter {
         return false;
     }
 
+    @Override
     public int hashCode() {
         return getName().hashCode();
     }
@@ -1417,7 +1436,7 @@ final class Filter {
 class FilterLabelProvider extends LabelProvider implements ITableLabelProvider {
 
     private final Image imgPkg = PlatformUI.getWorkbench().getSharedImages()
-    .getImage(ISharedImages.IMG_OBJ_FILE);
+            .getImage(ISharedImages.IMG_OBJ_FILE);
 
     /**
      * @see ITableLabelProvider#getColumnText(Object, int)
@@ -1432,6 +1451,7 @@ class FilterLabelProvider extends LabelProvider implements ITableLabelProvider {
     /**
      * @see ILabelProvider#getText(Object)
      */
+    @Override
     public String getText(Object element) {
         return ((Filter) element).getName();
     }
@@ -1445,12 +1465,13 @@ class FilterLabelProvider extends LabelProvider implements ITableLabelProvider {
 }
 
 class FilterViewerSorter extends WorkbenchViewerComparator {
+    @Override
     public int compare(Viewer viewer, Object e1, Object e2) {
         if(!(viewer instanceof ContentViewer)) {
             return 0;
         }
         ILabelProvider lprov = (ILabelProvider) ((ContentViewer) viewer)
-        .getLabelProvider();
+                .getLabelProvider();
         String name1 = lprov.getText(e1);
         String name2 = lprov.getText(e2);
         if (name1 == null) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/CombinedPreferences.java b/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/CombinedPreferences.java
index a3ffa98..f64525b 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/CombinedPreferences.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/CombinedPreferences.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.ui.preferences;
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/ProjectPreferencePage.java b/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/ProjectPreferencePage.java
index 6bb40aa..590330b 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/ProjectPreferencePage.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/ProjectPreferencePage.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.ui.preferences;
 
@@ -74,6 +74,8 @@ public class ProjectPreferencePage extends PropertyPage {
 
     private Button saveAndTrimCheck;
 
+    private Button ignoreBlankLinesCheck;
+
     private Button saveAndAddLineCheck;
 
     private Button saveAndConvertCheck;
@@ -126,6 +128,8 @@ public class ProjectPreferencePage extends PropertyPage {
 
     private Button addNewLineCheck;
 
+    private Group exclGroup;
+
     public ProjectPreferencePage() {
         super();
     }
@@ -136,6 +140,7 @@ public class ProjectPreferencePage extends PropertyPage {
                 .getSymbolicName());
     }
 
+    @Override
     protected Control createContents(Composite parent) {
         initPreferences();
 
@@ -202,6 +207,7 @@ public class ProjectPreferencePage extends PropertyPage {
         return link;
     }
 
+    @Override
     public boolean performOk() {
         prefs.putBoolean(IAnyEditConstants.PROJECT_PROPS_ENABLED, enableProjectCheck.getSelection());
 
@@ -223,6 +229,8 @@ public class ProjectPreferencePage extends PropertyPage {
                 replaceAllSpacesCheck.getSelection());
         prefs.putBoolean(IAnyEditConstants.SAVE_AND_TRIM_ENABLED, saveAndTrimCheck
                 .getSelection());
+        prefs.putBoolean(IAnyEditConstants.IGNORE_BLANK_LINES_WHEN_TRIMMING, ignoreBlankLinesCheck
+                .getSelection());
         prefs.putBoolean(IAnyEditConstants.SAVE_AND_ADD_LINE, saveAndAddLineCheck
                 .getSelection());
         prefs.putBoolean(IAnyEditConstants.SAVE_AND_CONVERT_ENABLED, saveAndConvertCheck
@@ -244,6 +252,7 @@ public class ProjectPreferencePage extends PropertyPage {
         return true;
     }
 
+    @Override
     protected void performDefaults() {
         if (!enableProjectCheck.getSelection()) {
             return;
@@ -253,7 +262,7 @@ public class ProjectPreferencePage extends PropertyPage {
 
 
         IPreferenceStore defaultStore = AnyEditToolsPlugin.getDefault()
-        .getPreferenceStore();
+                .getPreferenceStore();
         tabWidthText.setText(defaultStore
                 .getDefaultString(IAnyEditConstants.EDITOR_TAB_WIDTH));
 
@@ -277,13 +286,15 @@ public class ProjectPreferencePage extends PropertyPage {
         saveAndAddLineCheck.setSelection(defaultStore
                 .getDefaultBoolean(IAnyEditConstants.SAVE_AND_ADD_LINE));
 
+        ignoreBlankLinesCheck.setSelection(defaultStore
+                .getDefaultBoolean(IAnyEditConstants.IGNORE_BLANK_LINES_WHEN_TRIMMING));
 
         saveAndConvertCheck.setSelection(defaultStore
                 .getDefaultBoolean(IAnyEditConstants.SAVE_AND_CONVERT_ENABLED));
 
         boolean convertTabsAction = AbstractTextAction.ACTION_ID_CONVERT_TABS
-        .equals(defaultStore
-                .getDefaultString(IAnyEditConstants.CONVERT_ACTION_ON_SAVE));
+                .equals(defaultStore
+                        .getDefaultString(IAnyEditConstants.CONVERT_ACTION_ON_SAVE));
 
         boolean isSaveHookEnabled = AnyEditToolsPlugin.isSaveHookInitialized();
         convertTabsOnSaveRadio.setSelection(convertTabsAction);
@@ -312,7 +323,7 @@ public class ProjectPreferencePage extends PropertyPage {
         GridLayout layout = new GridLayout();
         saveComposite.setLayout(layout);
         GridData gridData = new GridData(GridData.FILL_HORIZONTAL
-                | GridData.GRAB_HORIZONTAL);
+                | GridData.GRAB_HORIZONTAL );
         saveComposite.setLayoutData(gridData);
         String saveGroupText = Messages.pref_saveIntro;
         if (!isSaveHookEnabled) {
@@ -332,7 +343,7 @@ public class ProjectPreferencePage extends PropertyPage {
         firstRow.setLayoutData(gridData);
 
         IPreferenceStore defaultStore = AnyEditToolsPlugin.getDefault()
-        .getPreferenceStore();
+                .getPreferenceStore();
 
         saveAndTrimCheck = AnyEditPreferencePage.createLabeledCheck(
                 Messages.pref_saveAndTrim, Messages.pref_saveAndTrimTip, prefs
@@ -340,6 +351,12 @@ public class ProjectPreferencePage extends PropertyPage {
                         .getBoolean(IAnyEditConstants.SAVE_AND_TRIM_ENABLED)),
                         firstRow);
 
+        ignoreBlankLinesCheck = AnyEditPreferencePage.createLabeledCheck(
+                Messages.pref_ignoreOnTrim, Messages.pref_ignoreOnTrimTip, prefs
+                .getBoolean(IAnyEditConstants.IGNORE_BLANK_LINES_WHEN_TRIMMING, defaultStore
+                        .getBoolean(IAnyEditConstants.IGNORE_BLANK_LINES_WHEN_TRIMMING)),
+                        firstRow);
+
         saveAndAddLineCheck = AnyEditPreferencePage.createLabeledCheck(
                 Messages.pref_saveAndAddLine, Messages.pref_saveAndAddLineTip, prefs
                 .getBoolean(IAnyEditConstants.SAVE_AND_ADD_LINE, defaultStore
@@ -357,14 +374,14 @@ public class ProjectPreferencePage extends PropertyPage {
         layout.numColumns = 2;
 
         convertChoiceComposite.setLayout(layout);
-        gridData = new GridData();
+        gridData = new GridData(300, 50);
         gridData.horizontalIndent = 20;
         convertChoiceComposite.setLayoutData(gridData);
         convertChoiceComposite.setText(Messages.pref_convertChoiceIntro);
 
         boolean convertTabsAction = AbstractTextAction.ACTION_ID_CONVERT_TABS
-        .equals(prefs.get(IAnyEditConstants.CONVERT_ACTION_ON_SAVE, defaultStore
-                .getString(IAnyEditConstants.CONVERT_ACTION_ON_SAVE)));
+                .equals(prefs.get(IAnyEditConstants.CONVERT_ACTION_ON_SAVE, defaultStore
+                        .getString(IAnyEditConstants.CONVERT_ACTION_ON_SAVE)));
 
         convertTabsOnSaveRadio = AnyEditPreferencePage.createLabeledRadio(
                 Messages.pref_convertTabsOnSave, Messages.pref_convertTabsOnSaveTip,
@@ -393,6 +410,7 @@ public class ProjectPreferencePage extends PropertyPage {
         convertChoiceComposite.setEnabled(isSaveHookEnabled
                 && saveAndConvertCheck.getSelection());
         saveAndTrimCheck.setEnabled(isSaveHookEnabled);
+        ignoreBlankLinesCheck.setEnabled(isSaveHookEnabled);
         saveAndAddLineCheck.setEnabled(isSaveHookEnabled);
         saveAndConvertCheck.setEnabled(isSaveHookEnabled);
         saveComposite.setEnabled(isSaveHookEnabled);
@@ -408,6 +426,7 @@ public class ProjectPreferencePage extends PropertyPage {
         tabFolder.setEnabled(selection);
         saveComposite.setEnabled(selection);
         saveAndTrimCheck.setEnabled(selection);
+        ignoreBlankLinesCheck.setEnabled(selection);
         saveAndAddLineCheck.setEnabled(selection);
         saveAndConvertCheck.setEnabled(selection);
         saveComposite.setEnabled(selection);
@@ -423,6 +442,7 @@ public class ProjectPreferencePage extends PropertyPage {
         addNewLineCheck.setEnabled(selection);
         replaceAllTabsCheck.setEnabled(selection);
         replaceAllSpacesCheck.setEnabled(selection);
+        exclGroup.setEnabled(selection);
         setFilterButtonsEnabled(selection);
     }
 
@@ -436,7 +456,7 @@ public class ProjectPreferencePage extends PropertyPage {
         // GridData.GRAB_HORIZONTAL);
         // contentTypeArea.getControl().setLayoutData(data);
 
-        Group exclGroup = new Group(parent, SWT.SHADOW_ETCHED_IN);
+        exclGroup = new Group(parent, SWT.SHADOW_ETCHED_IN);
         exclGroup.setText(Messages.pref_group_exclude);
         exclGroup.setToolTipText(Messages.pref_group_excludeTip);
         GridLayout layout = new GridLayout();
@@ -598,7 +618,7 @@ public class ProjectPreferencePage extends PropertyPage {
 
     protected void removeFilters() {
         IStructuredSelection selection = (IStructuredSelection) fFilterViewer
-        .getSelection();
+                .getSelection();
         fStepFilterContentProvider.removeFilters(selection.toArray());
     }
 
@@ -692,6 +712,7 @@ public class ProjectPreferencePage extends PropertyPage {
     private void setEditorListeners(Text text) {
         // CR means commit the changes, ESC means abort and don't commit
         text.addKeyListener(new KeyAdapter() {
+            @Override
             public void keyReleased(KeyEvent event) {
                 if (event.character == SWT.CR) {
                     if (fInvalidEditorText != null) {
@@ -714,6 +735,7 @@ public class ProjectPreferencePage extends PropertyPage {
         });
         // Consider loss of focus on the editor to mean the same as CR
         text.addFocusListener(new FocusAdapter() {
+            @Override
             public void focusLost(FocusEvent event) {
                 if (fInvalidEditorText != null) {
                     String infoText = Messages.pref_Invalid_file_filter;
@@ -754,13 +776,13 @@ public class ProjectPreferencePage extends PropertyPage {
 
         private final CheckboxTableViewer fViewer;
 
-        private final List fFilters;
+        private final List<Filter> fFilters;
 
         public FilterContentProvider(CheckboxTableViewer viewer) {
             fViewer = viewer;
-            List active = createActiveStepFiltersList();
-            List inactive = createInactiveStepFiltersList();
-            fFilters = new ArrayList(active.size() + inactive.size());
+            List<String> active = createActiveStepFiltersList();
+            List<String> inactive = createInactiveStepFiltersList();
+            fFilters = new ArrayList<Filter>(active.size() + inactive.size());
             populateList(inactive, false);
             populateList(active, true);
             updateActions();
@@ -768,15 +790,15 @@ public class ProjectPreferencePage extends PropertyPage {
 
         public void setDefaults() {
             fViewer.remove(fFilters.toArray());
-            List defaultlist = createDefaultStepFiltersList();
+            List<String> defaultlist = createDefaultStepFiltersList();
             fFilters.clear();
             populateList(defaultlist, true);
         }
 
-        protected final void populateList(List list, boolean checked) {
-            Iterator iterator = list.iterator();
+        protected final void populateList(List<String> list, boolean checked) {
+            Iterator<String> iterator = list.iterator();
             while (iterator.hasNext()) {
-                String name = (String) iterator.next();
+                String name = iterator.next();
                 addFilter(name, checked);
             }
         }
@@ -786,9 +808,9 @@ public class ProjectPreferencePage extends PropertyPage {
          *
          * @return list
          */
-        protected final List createActiveStepFiltersList() {
+        protected final List<String> createActiveStepFiltersList() {
             IPreferenceStore defaultStore = AnyEditToolsPlugin.getDefault()
-            .getPreferenceStore();
+                    .getPreferenceStore();
             String[] strings = EclipseUtils.parseList(prefs.get(
                     IAnyEditConstants.PREF_ACTIVE_FILTERS_LIST, defaultStore
                     .getString(IAnyEditConstants.PREF_ACTIVE_FILTERS_LIST)));
@@ -800,9 +822,9 @@ public class ProjectPreferencePage extends PropertyPage {
          *
          * @return list
          */
-        protected List createDefaultStepFiltersList() {
+        protected List<String> createDefaultStepFiltersList() {
             IPreferenceStore defaultStore = AnyEditToolsPlugin.getDefault()
-            .getPreferenceStore();
+                    .getPreferenceStore();
             String[] strings = EclipseUtils.parseList(defaultStore
                     .getDefaultString(IAnyEditConstants.PREF_ACTIVE_FILTERS_LIST));
             return Arrays.asList(strings);
@@ -813,9 +835,9 @@ public class ProjectPreferencePage extends PropertyPage {
          *
          * @return list
          */
-        protected final List createInactiveStepFiltersList() {
+        protected final List<String> createInactiveStepFiltersList() {
             IPreferenceStore defaultStore = AnyEditToolsPlugin.getDefault()
-            .getPreferenceStore();
+                    .getPreferenceStore();
             String[] strings = EclipseUtils.parseList(prefs.get(
                     IAnyEditConstants.PREF_INACTIVE_FILTERS_LIST, defaultStore
                     .getString(IAnyEditConstants.PREF_INACTIVE_FILTERS_LIST)));
@@ -836,11 +858,11 @@ public class ProjectPreferencePage extends PropertyPage {
         public void saveFilters() {
 
             int filtersSize = fFilters.size();
-            List active = new ArrayList(filtersSize);
-            List inactive = new ArrayList(filtersSize);
-            Iterator iterator = fFilters.iterator();
+            List<String> active = new ArrayList<String>(filtersSize);
+            List<String> inactive = new ArrayList<String>(filtersSize);
+            Iterator<Filter> iterator = fFilters.iterator();
             while (iterator.hasNext()) {
-                Filter filter = (Filter) iterator.next();
+                Filter filter = iterator.next();
                 String name = filter.getName();
                 if (filter.isChecked()) {
                     active.add(name);
@@ -848,11 +870,11 @@ public class ProjectPreferencePage extends PropertyPage {
                     inactive.add(name);
                 }
             }
-            String pref = AnyEditPreferencePage.serializeList((String[]) active
+            String pref = AnyEditPreferencePage.serializeList(active
                     .toArray(new String[active.size()]));
 
             prefs.put(IAnyEditConstants.PREF_ACTIVE_FILTERS_LIST, pref);
-            pref = AnyEditPreferencePage.serializeList((String[]) inactive
+            pref = AnyEditPreferencePage.serializeList(inactive
                     .toArray(new String[inactive.size()]));
             prefs.put(IAnyEditConstants.PREF_INACTIVE_FILTERS_LIST, pref);
         }
@@ -906,7 +928,7 @@ public class ProjectPreferencePage extends PropertyPage {
         spacesComposite.setText(Messages.pref_spacesIntro);
 
         IPreferenceStore defaultStore = AnyEditToolsPlugin.getDefault()
-        .getPreferenceStore();
+                .getPreferenceStore();
 
         tabWidthText = AnyEditPreferencePage.createLabeledText(Messages.pref_tabWidth,
                 Messages.pref_tabWidthTip, prefs.get(IAnyEditConstants.EDITOR_TAB_WIDTH,
@@ -915,26 +937,26 @@ public class ProjectPreferencePage extends PropertyPage {
         tabWidthText.setTextLimit(2);
 
         useJavaTabsCheck = AnyEditPreferencePage
-        .createLabeledCheck(
-                Messages.pref_javaTabWidthForJava,
-                Messages.pref_javaTabWidthForJavaTip,
-                prefs
-                .getBoolean(
-                        IAnyEditConstants.USE_JAVA_TAB_WIDTH_FOR_JAVA,
-                        defaultStore
-                        .getBoolean(IAnyEditConstants.USE_JAVA_TAB_WIDTH_FOR_JAVA)),
-                        spacesComposite);
+                .createLabeledCheck(
+                        Messages.pref_javaTabWidthForJava,
+                        Messages.pref_javaTabWidthForJavaTip,
+                        prefs
+                        .getBoolean(
+                                IAnyEditConstants.USE_JAVA_TAB_WIDTH_FOR_JAVA,
+                                defaultStore
+                                .getBoolean(IAnyEditConstants.USE_JAVA_TAB_WIDTH_FOR_JAVA)),
+                                spacesComposite);
 
         useModulo4TabsCheck = AnyEditPreferencePage
-        .createLabeledCheck(
-                Messages.pref_useModulo4Tabs,
-                Messages.pref_useModulo4TabsTip,
-                prefs
-                .getBoolean(
-                        IAnyEditConstants.USE_MODULO_CALCULATION_FOR_TABS_REPLACE,
-                        defaultStore
-                        .getBoolean(IAnyEditConstants.USE_MODULO_CALCULATION_FOR_TABS_REPLACE)),
-                        spacesComposite);
+                .createLabeledCheck(
+                        Messages.pref_useModulo4Tabs,
+                        Messages.pref_useModulo4TabsTip,
+                        prefs
+                        .getBoolean(
+                                IAnyEditConstants.USE_MODULO_CALCULATION_FOR_TABS_REPLACE,
+                                defaultStore
+                                .getBoolean(IAnyEditConstants.USE_MODULO_CALCULATION_FOR_TABS_REPLACE)),
+                                spacesComposite);
 
         removeTrailingSpacesCheck = AnyEditPreferencePage.createLabeledCheck(
                 Messages.pref_removeTrailingSpaces,
@@ -951,25 +973,25 @@ public class ProjectPreferencePage extends PropertyPage {
                         spacesComposite);
 
         replaceAllTabsCheck = AnyEditPreferencePage
-        .createLabeledCheck(
-                Messages.pref_replaceAllTabs,
-                Messages.pref_replaceAllTabsTip,
-                prefs
-                .getBoolean(
-                        IAnyEditConstants.REPLACE_ALL_TABS_WITH_SPACES,
-                        defaultStore
-                        .getBoolean(IAnyEditConstants.REPLACE_ALL_TABS_WITH_SPACES)),
-                        spacesComposite);
+                .createLabeledCheck(
+                        Messages.pref_replaceAllTabs,
+                        Messages.pref_replaceAllTabsTip,
+                        prefs
+                        .getBoolean(
+                                IAnyEditConstants.REPLACE_ALL_TABS_WITH_SPACES,
+                                defaultStore
+                                .getBoolean(IAnyEditConstants.REPLACE_ALL_TABS_WITH_SPACES)),
+                                spacesComposite);
         replaceAllSpacesCheck = AnyEditPreferencePage
-        .createLabeledCheck(
-                Messages.pref_replaceAllSpaces,
-                Messages.pref_replaceAllSpacesTip,
-                prefs
-                .getBoolean(
-                        IAnyEditConstants.REPLACE_ALL_SPACES_WITH_TABS,
-                        defaultStore
-                        .getBoolean(IAnyEditConstants.REPLACE_ALL_SPACES_WITH_TABS)),
-                        spacesComposite);
+                .createLabeledCheck(
+                        Messages.pref_replaceAllSpaces,
+                        Messages.pref_replaceAllSpacesTip,
+                        prefs
+                        .getBoolean(
+                                IAnyEditConstants.REPLACE_ALL_SPACES_WITH_TABS,
+                                defaultStore
+                                .getBoolean(IAnyEditConstants.REPLACE_ALL_SPACES_WITH_TABS)),
+                                spacesComposite);
 
     }
 }
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/SupportPanel.java b/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/SupportPanel.java
index 962c122..d130a3e 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/SupportPanel.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/preferences/SupportPanel.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.ui.preferences;
@@ -29,7 +29,7 @@ import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
 import de.loskutov.anyedit.AnyEditToolsPlugin;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class SupportPanel {
 
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/ExportPage.java b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/ExportPage.java
index e367435..87d91b4 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/ExportPage.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/ExportPage.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.ui.wizards;
 
@@ -27,7 +27,7 @@ import de.loskutov.anyedit.AnyEditToolsPlugin;
 import de.loskutov.anyedit.IAnyEditConstants;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class ExportPage extends WSPage {
 
@@ -83,11 +83,7 @@ public class ExportPage extends WSPage {
         return storeSets();
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see de.loskutov.anyedit.ui.wizards.WSPage#createContentProvider()
-     */
+    @Override
     protected IStructuredContentProvider createContentProvider() {
         return new WorkingSetContentProvider();
     }
@@ -108,8 +104,8 @@ public class ExportPage extends WSPage {
 
         public Object[] getElements(Object inputElement) {
             IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager()
-            .getAllWorkingSets();
-            List sets = new ArrayList();
+                    .getAllWorkingSets();
+            List<IWorkingSet> sets = new ArrayList<IWorkingSet>();
             for (int i = 0; i < workingSets.length; i++) {
                 IWorkingSet workingSet = workingSets[i];
                 if (!workingSet.isAggregateWorkingSet()) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/IWSAction.java b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/IWSAction.java
index 630ad1e..f59f665 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/IWSAction.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/IWSAction.java
@@ -1,20 +1,22 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.ui.wizards;
 
 import java.util.List;
 
+import org.eclipse.ui.IWorkingSet;
+
 /**
- * @author Andrei
+ * @author Andrey
  *
  */
 public interface IWSAction {
-    void setWorkingSets(List/* <IWorkingSet> */workingSets);
+    void setWorkingSets(List/* <IWorkingSet> */<IWorkingSet> workingSets);
     void run();
 }
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/ImportPage.java b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/ImportPage.java
index 7f4934e..a7bbb0e 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/ImportPage.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/ImportPage.java
@@ -46,7 +46,7 @@ import de.loskutov.anyedit.IAnyEditConstants;
 import de.loskutov.anyedit.util.EclipseUtils;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class ImportPage extends WSPage {
 
@@ -61,6 +61,7 @@ public class ImportPage extends WSPage {
         isMerge = true;
     }
 
+    @Override
     public void createControl(Composite parent) {
         super.createControl(parent);
         final Button chooserBtn = new Button(comp, SWT.CHECK);
@@ -76,7 +77,7 @@ public class ImportPage extends WSPage {
             }
         });
     }
-    
+
     private String readSets() {
         String pathname = getFileString();
         if (pathname == null) {
@@ -107,7 +108,7 @@ public class ImportPage extends WSPage {
         }
 
         IMemento[] mementos = memento.getChildren("workingSet");
-        List sets = new ArrayList();
+        List<IWorkingSet> sets = new ArrayList<IWorkingSet>();
         for (int i = 0; i < mementos.length; i++) {
             IWorkingSet set = restoreWorkingSet(mementos[i]);
             if (set != null) {
@@ -172,7 +173,7 @@ public class ImportPage extends WSPage {
         }
         IWorkingSetManager workingSetManager = PlatformUI.getWorkbench()
                 .getWorkingSetManager();
-        List added = new ArrayList();
+        List<IWorkingSet> added = new ArrayList<IWorkingSet>();
         for (int i = 0; i < selected.length; i++) {
             IWorkingSet workingSet = (IWorkingSet) selected[i];
             IWorkingSet oldWorkingSet = workingSetManager.getWorkingSet(workingSet.getName());
@@ -192,7 +193,7 @@ public class ImportPage extends WSPage {
                  * thus current class would not be loaded at all with the direct reference
                  * to the action
                  */
-                Class actClass = Class.forName(
+                Class<?> actClass = Class.forName(
                         "de.loskutov.anyedit.jdt.SelectWorkingSetsAction", true,
                         getClass().getClassLoader());
                 IWSAction action = (IWSAction) actClass.newInstance();
@@ -211,14 +212,14 @@ public class ImportPage extends WSPage {
 
     private void removeNonExistingChildren(IWorkingSet workingSet) {
         IAdaptable[] elements = workingSet.getElements();
-        List existing = new ArrayList();
+        List<IResource> existing = new ArrayList<IResource>();
         for (int i = 0; i < elements.length; i++) {
             IResource resource = (IResource) elements[i].getAdapter(IResource.class);
             if (resource != null && resource.exists()) {
                 existing.add(resource);
             }
         }
-        workingSet.setElements((IAdaptable[]) existing.toArray(new IAdaptable[existing.size()]));
+        workingSet.setElements(existing.toArray(new IAdaptable[existing.size()]));
     }
 
     public static class WorkingSetContentProvider implements ITreeContentProvider {
@@ -238,7 +239,7 @@ public class ImportPage extends WSPage {
             if (workingSets == null) {
                 return new Object[0];
             }
-            List sets = new ArrayList();
+            List<IWorkingSet> sets = new ArrayList<IWorkingSet>();
             for (int i = 0; i < workingSets.length; i++) {
                 IWorkingSet workingSet = workingSets[i];
                 if (!workingSet.isAggregateWorkingSet()) {
@@ -261,10 +262,12 @@ public class ImportPage extends WSPage {
         }
     }
 
+    @Override
     protected IStructuredContentProvider createContentProvider() {
         return new WorkingSetContentProvider();
     }
 
+    @Override
     protected void selectionChanged() {
         String errorMessage = null;
         if (getSelectedWorkingSets().length == 0) {
@@ -274,6 +277,7 @@ public class ImportPage extends WSPage {
         setPageComplete(errorMessage == null);
     }
 
+    @Override
     protected boolean validateInput() {
         String errorMessage = null;
         String text = getFileString();
@@ -325,19 +329,19 @@ public class ImportPage extends WSPage {
         if(elementsNew == null || elementsOld == null || elementsNew.length == 0) {
             return;
         }
-        LinkedHashSet/*<IAdaptable>*/ set = new LinkedHashSet(Arrays.asList(elementsOld));
-        ArrayList newList = new ArrayList(Arrays.asList(elementsNew));
+        LinkedHashSet<IAdaptable> set = new LinkedHashSet<IAdaptable>(Arrays.asList(elementsOld));
+        ArrayList<IAdaptable> newList = new ArrayList<IAdaptable>(Arrays.asList(elementsNew));
         newList.removeAll(set);
         if(newList.size() == 0) {
             return;
         }
-        elementsNew = oldWorkingSet.adaptElements((IAdaptable[]) newList.toArray(new IAdaptable[newList.size()]));
-        newList = new ArrayList(Arrays.asList(elementsNew));
+        elementsNew = oldWorkingSet.adaptElements(newList.toArray(new IAdaptable[newList.size()]));
+        newList = new ArrayList<IAdaptable>(Arrays.asList(elementsNew));
         newList.removeAll(set);
         if(newList.size() == 0) {
             return;
         }
         set.addAll(newList);
-        oldWorkingSet.setElements((IAdaptable[]) set.toArray(new IAdaptable[set.size()]));
+        oldWorkingSet.setElements(set.toArray(new IAdaptable[set.size()]));
     }
 }
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WSPage.java b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WSPage.java
index 9dd56b8..7368648 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WSPage.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WSPage.java
@@ -36,13 +36,13 @@ import de.loskutov.anyedit.AnyEditToolsPlugin;
 import de.loskutov.anyedit.IAnyEditConstants;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public abstract class WSPage extends WizardPage {
 
     private CheckboxTableViewer tv;
     protected Composite comp;
-    protected List/* <String> */usedFiles;
+    protected List/* <String> */<String> usedFiles;
     private Combo dest;
 
     protected WSPage(String pageName, String title, String descr,
@@ -51,7 +51,7 @@ public abstract class WSPage extends WizardPage {
                 AbstractUIPlugin.imageDescriptorFromPlugin(AnyEditToolsPlugin.getId(),
                         imagePath));
         setDescription(descr);
-        usedFiles = new ArrayList();
+        usedFiles = new ArrayList<String>();
     }
 
     public void createControl(Composite parent) {
@@ -146,6 +146,7 @@ public abstract class WSPage extends WizardPage {
         return errorMessage == null;
     }
 
+    @Override
     public void dispose() {
         tv = null;
         comp.dispose();
@@ -185,7 +186,7 @@ public abstract class WSPage extends WizardPage {
     }
 
     protected String[] getLastUsedPaths() {
-        return (String[]) usedFiles.toArray(new String[usedFiles.size()]);
+        return usedFiles.toArray(new String[usedFiles.size()]);
     }
 
     protected void updateItems(String fileString) {
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WorkingSetExportWizard.java b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WorkingSetExportWizard.java
index 9ac60d0..49d7765 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WorkingSetExportWizard.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WorkingSetExportWizard.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.ui.wizards;
 
@@ -14,7 +14,7 @@ import org.eclipse.ui.IExportWizard;
 import org.eclipse.ui.IWorkbench;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class WorkingSetExportWizard extends Wizard implements IExportWizard {
 
@@ -24,20 +24,16 @@ public class WorkingSetExportWizard extends Wizard implements IExportWizard {
         super();
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.wizard.Wizard#performFinish()
-     */
+    @Override
     public boolean performFinish() {
         return mainPage.finish();
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-     */
     public void init(IWorkbench workbench, IStructuredSelection selection) {
         // noop
     }
 
+    @Override
     public void addPages() {
         super.addPages();
         mainPage = new ExportPage("Working Set Export");
diff --git a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WorkingSetImportWizard.java b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WorkingSetImportWizard.java
index 0708a93..bfa2116 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WorkingSetImportWizard.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/ui/wizards/WorkingSetImportWizard.java
@@ -22,6 +22,7 @@ public class WorkingSetImportWizard extends Wizard implements IImportWizard {
         super();
     }
 
+    @Override
     public boolean performFinish() {
         return mainPage != null? mainPage.finish() : false;
     }
@@ -30,6 +31,7 @@ public class WorkingSetImportWizard extends Wizard implements IImportWizard {
         this.selection = sel;
     }
 
+    @Override
     public void addPages() {
         super.addPages();
         mainPage = new ImportPage("Working Set Import");
diff --git a/AnyEditTools/src/de/loskutov/anyedit/util/Base64Preferences.java b/AnyEditTools/src/de/loskutov/anyedit/util/Base64Preferences.java
index 818fd71..02182d5 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/util/Base64Preferences.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/util/Base64Preferences.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 package de.loskutov.anyedit.util;
 
@@ -16,7 +16,7 @@ import java.util.prefs.BackingStoreException;
  * java.util.Base64 class. Unfortunately sun.misc.BASE64Encoder might be not available
  * on non-Sun JDK's too.
  *
- * @author Andrei
+ * @author Andrey
  */
 class Base64Preferences extends AbstractPreferences {
 
@@ -32,6 +32,7 @@ class Base64Preferences extends AbstractPreferences {
      * @see java.util.prefs.AbstractPreferences#put(java.lang.String,
      *      java.lang.String)
      */
+    @Override
     public void put(String key, String value1) {
         this.value = value1;
     }
@@ -42,42 +43,52 @@ class Base64Preferences extends AbstractPreferences {
      * @see java.util.prefs.AbstractPreferences#get(java.lang.String,
      *      java.lang.String)
      */
+    @Override
     public String get(String key, String def) {
         return value;
     }
 
+    @Override
     protected AbstractPreferences childSpi(String name) {
         return null;
     }
 
+    @Override
     protected String[] childrenNamesSpi() throws BackingStoreException {
         return new String[0];
     }
 
+    @Override
     protected void flushSpi() throws BackingStoreException {
         // noop
     }
 
+    @Override
     protected String getSpi(String key) {
         return null;
     }
 
+    @Override
     protected String[] keysSpi() throws BackingStoreException {
         return new String[0];
     }
 
+    @Override
     protected void putSpi(String key, String value1) {
         // noop
     }
 
+    @Override
     protected void removeNodeSpi() throws BackingStoreException {
         // noop
     }
 
+    @Override
     protected void removeSpi(String key) {
         // noop
     }
 
+    @Override
     protected void syncSpi() throws BackingStoreException {
         // noop
     }
diff --git a/AnyEditTools/src/de/loskutov/anyedit/util/EclipseUtils.java b/AnyEditTools/src/de/loskutov/anyedit/util/EclipseUtils.java
index cfaec65..7be7d0e 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/util/EclipseUtils.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/util/EclipseUtils.java
@@ -78,7 +78,7 @@ import de.loskutov.anyedit.jdt.JdtUtils;
 import de.loskutov.anyedit.ui.preferences.CombinedPreferences;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public final class EclipseUtils {
 
@@ -244,8 +244,8 @@ public final class EclipseUtils {
         /*
          * search througth current project and related projects
          */
-        List checkedProjects = new ArrayList();
-        List resultList = new ArrayList();
+        List<IProject> checkedProjects = new ArrayList<IProject>();
+        List<IResource> resultList = new ArrayList<IResource>();
         IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
         boolean useWorkspaceScope = AnyEditToolsPlugin.getDefault().getPreferenceStore()
                 .getBoolean(IAnyEditConstants.USE_WORKSPACE_SCOPE_FOR_SEARCH);
@@ -358,7 +358,7 @@ public final class EclipseUtils {
     }
 
     private static IFile findInProjects(IProject[] projects, String currentPath,
-            String selectedText, List checkedProjects, List resultList)
+            String selectedText, List<IProject> checkedProjects, List<IResource> resultList)
                     throws OperationCanceledException {
         for (int i = 0; i < projects.length; i++) {
             IFile resource = findInProject(currentPath, projects[i], selectedText,
@@ -377,7 +377,7 @@ public final class EclipseUtils {
     }
 
     private static IFile findInProject(String currentPath, IContainer project,
-            String selectedText, List resultList) throws OperationCanceledException {
+            String selectedText, List<IResource> resultList) throws OperationCanceledException {
         if (project == null || !project.isAccessible()) {
             return null;
         }
@@ -434,12 +434,12 @@ public final class EclipseUtils {
         IPath location = new Path(file.getAbsolutePath()); // Path.fromOSString();
         IFile[] files = workspace.getRoot().findFilesForLocationURI(
                 URIUtil.toURI(location.makeAbsolute()));
-        List filesList = filterNonExistentFiles(files);
+        List<IFile> filesList = filterNonExistentFiles(files);
         if (filesList == null || filesList.isEmpty()) {
             return null;
         }
         if (filesList.size() == 1) {
-            return (IFile) filesList.get(0);
+            return filesList.get(0);
         }
         return queryFile(file.getName(), workspace.getRoot());
     }
@@ -534,13 +534,13 @@ public final class EclipseUtils {
         }
     }
 
-    private static List filterNonExistentFiles(IFile[] files) {
+    private static List<IFile> filterNonExistentFiles(IFile[] files) {
         if (files == null) {
             return null;
         }
 
         int length = files.length;
-        ArrayList existentFiles = new ArrayList(length);
+        ArrayList<IFile> existentFiles = new ArrayList<IFile>(length);
         for (int i = 0; i < length; i++) {
             if (files[i].exists()) {
                 existentFiles.add(files[i]);
@@ -656,13 +656,13 @@ public final class EclipseUtils {
         if (listString == null || listString.length() == 0) {
             return new String[] {};
         }
-        List list = new ArrayList(10);
+        List<String> list = new ArrayList<String>(10);
         StringTokenizer tokenizer = new StringTokenizer(listString, ",");
         while (tokenizer.hasMoreTokens()) {
             String token = tokenizer.nextToken();
             list.add(token);
         }
-        return (String[]) list.toArray(new String[list.size()]);
+        return list.toArray(new String[list.size()]);
     }
 
     /**
@@ -670,7 +670,7 @@ public final class EclipseUtils {
      * will be added to resultList
      */
     public static void searchForPathFragment(IContainer container, String pathFragment,
-            List resultList, boolean searchInRoot) {
+            List<IResource> resultList, boolean searchInRoot) {
 
         // test directly under container root
         if (searchInRoot) {
@@ -780,13 +780,14 @@ public final class EclipseUtils {
     }
 
     static class DummyContainer extends Container {
-        List resources;
+        List<IResource> resources;
 
         protected DummyContainer(IResource[] resources) {
             super(new Path(""), (Workspace) ResourcesPlugin.getWorkspace());
             this.resources = Arrays.asList(resources);
         }
 
+        @Override
         public int getType() {
             return 0;
         }
@@ -795,10 +796,11 @@ public final class EclipseUtils {
             return null;
         }
 
+        @Override
         public void accept(IResourceProxyVisitor visitor, int memberFlags)
                 throws CoreException {
             for (int i = 0; i < resources.size(); i++) {
-                ((IResource) resources.get(i)).accept(visitor, memberFlags);
+                resources.get(i).accept(visitor, memberFlags);
             }
         }
 
@@ -825,6 +827,7 @@ public final class EclipseUtils {
          * Hook for creating dialog area to set text on protected "Text" field from
          * dialog.
          */
+        @Override
         public void create() {
             super.create();
             if (patternStr != null && myPattern != null) {
@@ -835,6 +838,7 @@ public final class EclipseUtils {
         /**
          * Hook for creating dialog area to fetch protected "Text" field from dialog.
          */
+        @Override
         protected Control createDialogArea(Composite parent) {
             Control c = super.createDialogArea(parent);
             Composite myDialogArea = (Composite) c;
diff --git a/AnyEditTools/src/de/loskutov/anyedit/util/LineReplaceResult.java b/AnyEditTools/src/de/loskutov/anyedit/util/LineReplaceResult.java
index 84d6235..2caed05 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/util/LineReplaceResult.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/util/LineReplaceResult.java
@@ -1,16 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.util;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class LineReplaceResult {
     /** relative to line start, changed results must have index >= 0 */
@@ -20,6 +20,7 @@ public class LineReplaceResult {
     /** changed results must have not-null text to replace */
     public String textToReplace;
 
+    @Override
     public String toString() {
         StringBuffer sb = new StringBuffer();
         sb.append("startIndex: ").append(startReplaceIndex);  //$NON-NLS-1$
diff --git a/AnyEditTools/src/de/loskutov/anyedit/util/TextReplaceResultSet.java b/AnyEditTools/src/de/loskutov/anyedit/util/TextReplaceResultSet.java
index f992b64..79c19e8 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/util/TextReplaceResultSet.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/util/TextReplaceResultSet.java
@@ -1,28 +1,29 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.util;
 
 import java.util.ArrayList;
+import java.util.List;
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public final class TextReplaceResultSet {
 
-    private ArrayList delegate;
+    private final List<LineReplaceResult> delegate;
     private int startLine = -1;
     private int stopLine = -1;
     private Exception exception;
 
     public TextReplaceResultSet(){
-        delegate = new ArrayList();
+        delegate = new ArrayList<LineReplaceResult>();
     }
 
     /**
@@ -34,12 +35,14 @@ public final class TextReplaceResultSet {
     }
 
     /**
-     *
-     * @param index
-     * @return if true, then the line at given index is not changed
+     * @param index line index in the document
+     * @return null if index is out of range
      */
     public LineReplaceResult get(int index) {
-        return (LineReplaceResult)delegate.get(index);
+        if(index >= delegate.size()) {
+            return null;
+        }
+        return delegate.get(index);
     }
 
     public boolean areResultsChanged(){
diff --git a/AnyEditTools/src/de/loskutov/anyedit/util/TextUtil.java b/AnyEditTools/src/de/loskutov/anyedit/util/TextUtil.java
index 7c920a1..5fb5933 100644
--- a/AnyEditTools/src/de/loskutov/anyedit/util/TextUtil.java
+++ b/AnyEditTools/src/de/loskutov/anyedit/util/TextUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
+ * Copyright (c) 2009 Andrey Loskutov.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * Contributor:  Andrei Loskutov - initial API and implementation
+ * Contributor:  Andrey Loskutov - initial API and implementation
  *******************************************************************************/
 
 package de.loskutov.anyedit.util;
@@ -26,7 +26,7 @@ import de.loskutov.anyedit.Messages;
 
 
 /**
- * @author Andrei
+ * @author Andrey
  */
 public class TextUtil {
 
@@ -715,11 +715,11 @@ public class TextUtil {
     }
 
     public static boolean convertTabsToSpaces(StringBuffer line, int tabWidth,
-            boolean removeTrailing, boolean replaceAllTabs, boolean useModulo4Tabs) {
+            boolean removeTrailing, boolean ignoreBlankLines, boolean replaceAllTabs, boolean useModulo4Tabs) {
         char lastChar;
         boolean changed = false;
         if (removeTrailing) {
-            changed = removeTrailingSpace(line);
+            changed = removeTrailingSpace(line, ignoreBlankLines);
         }
         int lineLength = line.length();
         int spacesCount = 0;
@@ -817,12 +817,27 @@ public class TextUtil {
         return changed;
     }
 
-    public static boolean removeTrailingSpace(StringBuffer line) {
+    public static boolean removeTrailingSpace(StringBuffer line, boolean ignoreBlankLine) {
         boolean changed = false;
         char lastChar;
         int lineLength = line.length();
         int lastCharsLength = getLineEnd(line).length;
         int lastIdx = lineLength - lastCharsLength - 1;
+
+        if (ignoreBlankLine) {
+            boolean nonWhitespaceFound = false;
+            for (int i = lastIdx; i >= 0; i--) {
+                lastChar = line.charAt(i);
+                if (lastChar != ' ' && lastChar != '\t') {
+                    nonWhitespaceFound = true;
+                    break;
+                }
+            }
+            if (nonWhitespaceFound == false) {
+                return false;
+            }
+        }
+
         while (lastIdx >= 0) {
             lastChar = line.charAt(lastIdx);
             if (lastChar != ' ' && lastChar != '\t') {
@@ -839,10 +854,10 @@ public class TextUtil {
     }
 
     public static boolean convertSpacesToTabs(StringBuffer line, int tabWidth,
-            boolean removeTrailing, boolean replaceAllSpaces) {
+            boolean removeTrailing, boolean ignoreBlankLines, boolean replaceAllSpaces) {
         boolean changed = false;
         if (removeTrailing) {
-            changed = removeTrailingSpace(line);
+            changed = removeTrailingSpace(line, ignoreBlankLines);
         }
         int lineLength = line.length();
         int spacesCount = 0;
@@ -964,62 +979,62 @@ public class TextUtil {
      * Characters used for escape operations
      */
     private static final String[][] HTML_ESCAPE_CHARS = { {
-        "<", "<" }, {
+            "<", "<" }, {
             ">", ">" }, {
-                "&", "&" }, {
-                    """, "\"" }, {
-                        "à", "\u00e0" }, {
-                            "À", "\u00c0" }, {
-                                "â", "\u00e2" }, {
-                                    "ä", "\u00e4" }, {
-                                        "Ä", "\u00c4" }, {
-                                            "Â", "\u00c2" }, {
-                                                "å", "\u00e5" }, {
-                                                    "Å", "\u00c5" }, {
-                                                        "æ", "\u00e6" }, {
-                                                            "Æ", "\u00c6" }, {
-                                                                "ç", "\u00e7" }, {
-                                                                    "Ç", "\u00c7" }, {
-                                                                        "é", "\u00e9" }, {
-                                                                            "É", "\u00c9" }, {
-                                                                                "á", "\u00e1" }, {
-                                                                                    "Á", "\u00c1" }, {
-                                                                                        "è", "\u00e8" }, {
-                                                                                            "È", "\u00c8" }, {
-                                                                                                "ê", "\u00ea" }, {
-                                                                                                    "Ê", "\u00ca" }, {
-                                                                                                        "ë", "\u00eb" }, {
-                                                                                                            "Ë", "\u00cb" }, {
-                                                                                                                "ï", "\u00ef" }, {
-                                                                                                                    "Ï", "\u00cf" }, {
-                                                                                                                        "í", "\u00ed" }, {
-                                                                                                                            "Í", "\u00cd" }, {
-                                                                                                                                "ã", "\u00e3" }, {
-                                                                                                                                    "Ã", "\u00c3" }, {
-                                                                                                                                        "õ", "\u00f5" }, {
-                                                                                                                                            "Õ", "\u00d5" }, {
-                                                                                                                                                "ó", "\u00f3" }, {
-                                                                                                                                                    "Ó", "\u00d3" }, {
-                                                                                                                                                        "ô", "\u00f4" }, {
-                                                                                                                                                            "Ô", "\u00d4" }, {
-                                                                                                                                                                "ö", "\u00f6" }, {
-                                                                                                                                                                    "Ö", "\u00d6" }, {
-                                                                                                                                                                        "ø", "\u00f8" }, {
-                                                                                                                                                                            "Ø", "\u00d8" }, {
-                                                                                                                                                                                "ß", "\u00df" }, {
-                                                                                                                                                                                    "ù", "\u00f9" }, {
-                                                                                                                                                                                        "Ù", "\u00d9" }, {
-                                                                                                                                                                                            "ú", "\u00fa" }, {
-                                                                                                                                                                                                "Ú", "\u00da" }, {
-                                                                                                                                                                                                    "û", "\u00fb" }, {
-                                                                                                                                                                                                        "Û", "\u00db" }, {
-                                                                                                                                                                                                            "ü", "\u00fc" }, {
-                                                                                                                                                                                                                "Ü", "\u00dc" }, {
-                                                                                                                                                                                                                    " ", " " }, {
-                                                                                                                                                                                                                        "®", "\u00AE" }, {
-                                                                                                                                                                                                                            "©", "\u00A9" }, {
-                                                                                                                                                                                                                                "€", "\u20A0" }, {
-                                                                                                                                                                                                                                    "€", "\u20AC" }
+            "&", "&" }, {
+            """, "\"" }, {
+            "à", "\u00e0" }, {
+            "À", "\u00c0" }, {
+            "â", "\u00e2" }, {
+            "ä", "\u00e4" }, {
+            "Ä", "\u00c4" }, {
+            "Â", "\u00c2" }, {
+            "å", "\u00e5" }, {
+            "Å", "\u00c5" }, {
+            "æ", "\u00e6" }, {
+            "Æ", "\u00c6" }, {
+            "ç", "\u00e7" }, {
+            "Ç", "\u00c7" }, {
+            "é", "\u00e9" }, {
+            "É", "\u00c9" }, {
+            "á", "\u00e1" }, {
+            "Á", "\u00c1" }, {
+            "è", "\u00e8" }, {
+            "È", "\u00c8" }, {
+            "ê", "\u00ea" }, {
+            "Ê", "\u00ca" }, {
+            "ë", "\u00eb" }, {
+            "Ë", "\u00cb" }, {
+            "ï", "\u00ef" }, {
+            "Ï", "\u00cf" }, {
+            "í", "\u00ed" }, {
+            "Í", "\u00cd" }, {
+            "ã", "\u00e3" }, {
+            "Ã", "\u00c3" }, {
+            "õ", "\u00f5" }, {
+            "Õ", "\u00d5" }, {
+            "ó", "\u00f3" }, {
+            "Ó", "\u00d3" }, {
+            "ô", "\u00f4" }, {
+            "Ô", "\u00d4" }, {
+            "ö", "\u00f6" }, {
+            "Ö", "\u00d6" }, {
+            "ø", "\u00f8" }, {
+            "Ø", "\u00d8" }, {
+            "ß", "\u00df" }, {
+            "ù", "\u00f9" }, {
+            "Ù", "\u00d9" }, {
+            "ú", "\u00fa" }, {
+            "Ú", "\u00da" }, {
+            "û", "\u00fb" }, {
+            "Û", "\u00db" }, {
+            "ü", "\u00fc" }, {
+            "Ü", "\u00dc" }, {
+            " ", " " }, {
+            "®", "\u00AE" }, {
+            "©", "\u00A9" }, {
+            "€", "\u20A0" }, {
+            "€", "\u20AC" }
 
     };
 
diff --git a/AnyEditTools/test/de/loskutov/anyedit/util/TestUtils.java b/AnyEditTools/test/de/loskutov/anyedit/util/TestUtils.java
index d542d7a..f8a8f48 100644
--- a/AnyEditTools/test/de/loskutov/anyedit/util/TestUtils.java
+++ b/AnyEditTools/test/de/loskutov/anyedit/util/TestUtils.java
@@ -139,7 +139,7 @@ public class TestUtils extends TestCase {
         String line = "   a  b cd \t \t \t";
         StringBuffer sb = new StringBuffer(line);
         String line2 = "   a  b cd \t \t \t";
-        TextUtil.convertSpacesToTabs(sb , 4, false, true);
+        TextUtil.convertSpacesToTabs(sb , 4, false, false, true);
     }
 
     public void testCount() {
@@ -159,8 +159,8 @@ public class TestUtils extends TestCase {
     }
 
     public void testCapitalize() {
-        String string = TextUtil.capitalize("abcdefghijklmnopqrstuvwxyz0123456789,.;:-_��<>|@*+~#'`�?�\\");
-        assertEquals(string, "Abcdefghijklmnopqrstuvwxyz0123456789,.;:-_��<>|@*+~#'`�?�\\");
+        String string = TextUtil.capitalize("abcdefghijklmnopqrstuvwxyz0123456789,.;:-_��<>|@*+~#'`�?�\\");
+        assertEquals(string, "Abcdefghijklmnopqrstuvwxyz0123456789,.;:-_��<>|@*+~#'`�?�\\");
     }
 
     public void testInvertCase() {

-- 
Alioth's hooks/post-receive on /srv/git.debian.org/git/pkg-java/eclipse-anyedit.git



More information about the pkg-java-commits mailing list