Bug 43032 Autoindent/Smart Tab in case statement
... case label: { <press Enter here> I <new cursor position> Indentation level should be one less.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/JavaIndenter.java
StringBuffer indent= new StringBuffer(fDocument.get(offset, nonWS - offset));
			
			
			indent.append(createIndent(fIndent));
			if (unindent)
				unindent(indent);
				
			return indent.toString();
			
		} catch (BadLocationException e) {
		}
		
		return null; 
	}
	/**
	 * Reduces indentation in <code>indent</code> by one.
	 * 
	 * @param indent the indentation to be modified
	 */
	private void unindent(StringBuffer indent) {
		String oneIndent= createIndent(1);
		int i= indent.lastIndexOf(oneIndent); 
		if (i != -1) {
			indent.deleteCharAt(i);
		}			
	}
	/**
	 * Creates an indentation string of the length indent - start + 1, consisting of the content 
	 * in <code>fDocument</code> in the range [start, indent), with every character replaced by
	 * a space except for tabs, which are kept as such.