Bug 50386 Autoindent/Smart Tab in case statement
1: case SWT.TRAVERSE_ESCAPE : 2: fTableViewer.cancelEditing(); 3: e.doit= true; Pressing Tab at beginning of line 3 removes one tab character from line 3. It shouldn't. Same indentation error for Smart Return, Correct Indentation, ... for all lines which are 2+ lines after the case keyword.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/JavaIndenter.java
fLine= fDocument.getLineOfOffset(fPosition);
		} catch (BadLocationException e) {
			fLine= -1;
		}
	}
	
	/**
	 * Returns <code>true</code> if the current tokens look like a method
	 * declaration header (i.e. only the return type and method name). The
	 * heuristic calls <code>nextToken</code> and expects an identifier
	 * (method name) and a type declaration (an identifier with optional 
	 * brackets) which also covers the visibility modifier of constructors; it
	 * does not recognize package visible constructors. 
	 * 
	 * @return <code>true</code> if the current position looks like a method
	 *         declaration header.
	 */
	private boolean looksLikeMethodDecl() {
		/*
		 * TODO This heuristic does not recognize package private constructors
		 * since those do have neither type nor visibility keywords.
		 * One option would be to go over the parameter list, but that might
		 * be empty as well - hard to do without an AST...
		 */
		
		nextToken();
		if (fToken == Symbols.TokenIDENT) { 
			do nextToken();
			while (skipBrackets()); 
			return fToken == Symbols.TokenIDENT;