Bug 66501 [typing] In smart mode: Delete Next/Previous Word delete selection
200406092000 In the java editor, Delete Next Word (Ctrl+Delete) and Delete Previous Word (Ctrl+Backspace) behave unexpected. They should always just delete the selection iff it is not zero-length. That's the behavior we're used to with unmodified Delete and Backspace, and it's also what the Text Editor already does. void foo() { System.out.println(123); } Set cursor to before "out.", then press 2x Ctrl+Shift+Right to select "out." with the caret after the selection. Expected: Ctrl+Delete deletes selection. Was: Ctrl+Delete then deletes "println", leaving the selection alone. Similar problems with Ctrl+Backspace and when caret is at the start of the selection.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditor.java
/*
	 * @see AbstractTextEditor#createSourceViewer(Composite, IVerticalRuler, int)
	 */
	protected ISourceViewer createJavaSourceViewer(Composite parent, IVerticalRuler verticalRuler, IOverviewRuler overviewRuler, boolean isOverviewRulerVisible, int styles, IPreferenceStore store) {
		return new JavaSourceViewer(parent, verticalRuler, getOverviewRuler(), isOverviewRulerVisible(), styles, store);
	}
	
	/*
	 * @see AbstractTextEditor#affectsTextPresentation(PropertyChangeEvent)
	 */
	protected boolean affectsTextPresentation(PropertyChangeEvent event) {
		return ((JavaSourceViewerConfiguration)getSourceViewerConfiguration()).affectsTextPresentation(event) || super.affectsTextPresentation(event);
	}
		
	/**
	 * Creates and returns the preference store for this Java editor with the given input.
	 *
	 * @param input The editor input for which to create the preference store
	 * @return the preference store for this editor
	 *
	 * @since 3.0
	 */
	private IPreferenceStore createCombinedPreferenceStore(IEditorInput input) {
		List stores= new ArrayList(3);
		IJavaProject project= EditorUtility.getJavaProject(input);
		if (project != null)
			stores.add(new OptionsAdapter(project.getOptions(false), JavaPlugin.getDefault().getMockupPreferenceStore(), new OptionsAdapter.IPropertyChangeEventFilter() {
				public boolean isFiltered(PropertyChangeEvent event) {
					IJavaElement inputJavaElement= getInputJavaElement();
					IJavaProject javaProject= inputJavaElement != null ? inputJavaElement.getJavaProject() : null;