Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kurtakov2018-03-27 06:48:20 +0000
committerAlexander Kurtakov2018-03-27 06:48:20 +0000
commitfdbbd9fbc06bba9b3857000cc651f9385ddf2371 (patch)
treeab9c6e2e442b74717f557951fb703ac8f70bf7d3 /org.eclipse.ui.genericeditor
parent6c1a7743a2310dbe729f94b8b5e0e5956210010a (diff)
downloadeclipse.platform.text-fdbbd9fbc06bba9b3857000cc651f9385ddf2371.tar.gz
eclipse.platform.text-fdbbd9fbc06bba9b3857000cc651f9385ddf2371.tar.xz
eclipse.platform.text-fdbbd9fbc06bba9b3857000cc651f9385ddf2371.zip
Bug 532928 - Show proper occurance marker label in Generic EditorI20180327-0630
Instead of the current "Line N" show "Occurrences of 'word'" which is way more informative. Also enable save actions to speed up development. Change-Id: I8dde587bcedcb8294c4dea5dcf621b9731b3bafa Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
Diffstat (limited to 'org.eclipse.ui.genericeditor')
-rw-r--r--org.eclipse.ui.genericeditor/.settings/org.eclipse.jdt.ui.prefs59
-rw-r--r--org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/DefaultWordHighlightStrategy.java48
-rw-r--r--org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/Messages.java25
-rw-r--r--org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/messages.properties11
4 files changed, 122 insertions, 21 deletions
diff --git a/org.eclipse.ui.genericeditor/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.ui.genericeditor/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..1cbfac22d4a
--- /dev/null
+++ b/org.eclipse.ui.genericeditor/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,59 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+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=true
+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_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+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=false
+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=true
+sp_cleanup.remove_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=false
+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=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+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/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/DefaultWordHighlightStrategy.java b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/DefaultWordHighlightStrategy.java
index 4f4ce28b03b..e5822ac12ca 100644
--- a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/DefaultWordHighlightStrategy.java
+++ b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/DefaultWordHighlightStrategy.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2017 Red Hat Inc. and others.
+ * Copyright (c) 2017, 2018 Red Hat Inc. and others.
* 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
@@ -35,21 +35,24 @@ import org.eclipse.jface.text.source.Annotation;
import org.eclipse.jface.text.source.IAnnotationModel;
import org.eclipse.jface.text.source.IAnnotationModelExtension;
import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.custom.CaretEvent;
import org.eclipse.swt.custom.CaretListener;
/**
-*
-* This Reconciler Strategy is a default stategy which will be present if
-* no other highlightReconcilers are registered for a given content-type. It splits
-* the text into 'words' (which are defined as anything in-between
-* non-alphanumeric characters) and searches the document highlighting all like words.
-*
-* E.g. if your file contains "t^he dog in the bog" and you leave your caret at
-* ^ you will get both instances of 'the' highlighted.
-*
-*/
-public class DefaultWordHighlightStrategy implements IReconcilingStrategy, IReconcilingStrategyExtension, CaretListener, IPreferenceChangeListener {
+ *
+ * This Reconciler Strategy is a default stategy which will be present if no
+ * other highlightReconcilers are registered for a given content-type. It splits
+ * the text into 'words' (which are defined as anything in-between
+ * non-alphanumeric characters) and searches the document highlighting all like
+ * words.
+ *
+ * E.g. if your file contains "t^he dog in the bog" and you leave your caret at
+ * ^ you will get both instances of 'the' highlighted.
+ *
+ */
+public class DefaultWordHighlightStrategy
+ implements IReconcilingStrategy, IReconcilingStrategyExtension, CaretListener, IPreferenceChangeListener {
private static final String ANNOTATION_TYPE = "org.eclipse.ui.genericeditor.text"; //$NON-NLS-1$
@@ -59,7 +62,8 @@ public class DefaultWordHighlightStrategy implements IReconcilingStrategy, IReco
private static final String WORD_REGEXP = "\\w+"; //$NON-NLS-1$
private static final Pattern WORD_PATTERN = Pattern.compile(WORD_REGEXP, Pattern.UNICODE_CHARACTER_CLASS);
- private static final Pattern CURRENT_WORD_START_PATTERN = Pattern.compile(WORD_REGEXP + "$", Pattern.UNICODE_CHARACTER_CLASS); //$NON-NLS-1$
+ private static final Pattern CURRENT_WORD_START_PATTERN = Pattern.compile(WORD_REGEXP + "$", //$NON-NLS-1$
+ Pattern.UNICODE_CHARACTER_CLASS);
private Annotation[] fOccurrenceAnnotations = null;
@@ -70,24 +74,26 @@ public class DefaultWordHighlightStrategy implements IReconcilingStrategy, IReco
}
String text = document.get();
- offset = ((ITextViewerExtension5)sourceViewer).widgetOffset2ModelOffset(offset);
+ offset = ((ITextViewerExtension5) sourceViewer).widgetOffset2ModelOffset(offset);
String word = findCurrentWord(text, offset);
- if(word == null) {
+ if (word == null) {
removeOccurrenceAnnotations();
return;
}
Matcher m = WORD_PATTERN.matcher(text);
Map<Annotation, Position> annotationMap = new HashMap<>();
- while(m.find()) {
- if(m.group().equals(word)) {
- annotationMap.put(new Annotation(ANNOTATION_TYPE, false, null),
+ while (m.find()) {
+ if (m.group().equals(word)) {
+ annotationMap.put(
+ new Annotation(ANNOTATION_TYPE, false,
+ NLS.bind(Messages.DefaultWordHighlightStrategy_OccurrencesOf, word)),
new Position(m.start(), m.end() - m.start()));
}
}
- if(annotationMap.size() < 2) {
+ if (annotationMap.size() < 2) {
removeOccurrenceAnnotations();
return;
}
@@ -111,11 +117,11 @@ public class DefaultWordHighlightStrategy implements IReconcilingStrategy, IReco
private static String findCurrentWord(String text, int offset) {
String wordStart = null;
String wordEnd = null;
-
+
String substring = text.substring(0, offset);
Matcher m = CURRENT_WORD_START_PATTERN.matcher(substring);
if (m.find()) {
- wordStart=m.group();
+ wordStart = m.group();
}
substring = text.substring(offset);
m = WORD_PATTERN.matcher(substring);
diff --git a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/Messages.java b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/Messages.java
new file mode 100644
index 00000000000..b7d90311695
--- /dev/null
+++ b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/Messages.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Red Hat Inc. and others.
+ * 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:
+ * Alexander Kurtakov (Red Hat Inc.) - initial version
+ *******************************************************************************/
+package org.eclipse.ui.internal.genericeditor;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.ui.internal.genericeditor.messages"; //$NON-NLS-1$
+ public static String DefaultWordHighlightStrategy_OccurrencesOf;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/messages.properties b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/messages.properties
new file mode 100644
index 00000000000..620d32c74aa
--- /dev/null
+++ b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/messages.properties
@@ -0,0 +1,11 @@
+###############################################################################
+# Copyright (c) 2018 Red Hat Inc. and others.
+# 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:
+# Alexander Kurtakov (Red Hat Inc.) - initial API and implementation
+###############################################################################
+DefaultWordHighlightStrategy_OccurrencesOf=Occurrence of ''{0}''

Back to the top