Bug 66094 IAE / Some copy operations don't pick up all of the collapsed regions
New feature to collapse regions of Java source - very nice. The way I copy between files is to position the cursor to the start of the file, use Ctrl+Shift+End to select all of the text between cursor and EOF, or sometimes Shift+Arrow keys to highlight a selected region. After this use Ctrl+C to copy into the clipboard. The collapsed regions are not included. Using Edit>Select All to select the file's contents does work, but holding down the shift key and using the keyboard arrows or Ctrl+End to traverse the selection cursor over collapsed regions doesn't pick up the collapsed bits.
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;