Source:
<code>public SpellcheckableMessageArea(Composite parent, String initialText, boolean readOnly, int styles) { super(parent, styles); setLayout(new FillLayout()); AnnotationModel annotationModel = new AnnotationModel(); sourceViewer = new SourceViewer(this, null, null, true, SWT.MULTI | SWT.V_SCROLL | SWT.WRAP); getTextWidget().setFont(UIUtils .getFont(UIPreferences.THEME_CommitMessageEditorFont)); int endSpacing = 2; int textWidth = getCharWidth() * MAX_LINE_WIDTH + endSpacing; int textHeight = getLineHeight() * 7; Point size = getTextWidget().computeSize(textWidth, textHeight); getTextWidget().setSize(size); getTextWidget().setEditable(!readOnly); createMarginPainter(); configureHardWrap(); final SourceViewerDecorationSupport support = configureAnnotationPreferences(); final IHandlerActivation handlerActivation = installQuickFixActionHandler(); configureContextMenu(); Document document = new Document(initialText); sourceViewer.configure(new TextSourceViewerConfiguration(EditorsUI .getPreferenceStore()) { protected Map getHyperlinkDetectorTargets(ISourceViewer targetViewer) { return getHyperlinkTargets(); } @Override public int getHyperlinkStateMask(ISourceViewer viewer) { return SWT.NONE; } @Override public IReconciler getReconciler(ISourceViewer viewer) { if (!isEditable(viewer)) { return null; <START> } <END> return super.getReconciler(sourceViewer); } }); sourceViewer.setDocument(document, annotationModel); getTextWidget().addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent disposeEvent) { support.uninstall(); getHandlerService().deactivateHandler(handlerActivation); } }); }</code><technical_language>Curlies needed here</technical_language>

Target:
public SpellcheckableMessageArea(Composite parent, String initialText, boolean readOnly, int styles) { super(parent, styles); setLayout(new FillLayout()); AnnotationModel annotationModel = new AnnotationModel(); sourceViewer = new SourceViewer(this, null, null, true, SWT.MULTI | SWT.V_SCROLL | SWT.WRAP); getTextWidget().setFont(UIUtils .getFont(UIPreferences.THEME_CommitMessageEditorFont)); int endSpacing = 2; int textWidth = getCharWidth() * MAX_LINE_WIDTH + endSpacing; int textHeight = getLineHeight() * 7; Point size = getTextWidget().computeSize(textWidth, textHeight); getTextWidget().setSize(size); getTextWidget().setEditable(!readOnly); createMarginPainter(); configureHardWrap(); final SourceViewerDecorationSupport support = configureAnnotationPreferences(); final IHandlerActivation handlerActivation = installQuickFixActionHandler(); configureContextMenu(); Document document = new Document(initialText); sourceViewer.configure(new TextSourceViewerConfiguration(EditorsUI .getPreferenceStore()) { protected Map getHyperlinkDetectorTargets(ISourceViewer targetViewer) { return getHyperlinkTargets(); } @Override public int getHyperlinkStateMask(ISourceViewer viewer) { return SWT.NONE; } @Override public IReconciler getReconciler(ISourceViewer viewer) { if (!isEditable(viewer)) return null; return super.getReconciler(sourceViewer); } }); sourceViewer.setDocument(document, annotationModel); getTextWidget().addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent disposeEvent) { support.uninstall(); getHandlerService().deactivateHandler(handlerActivation); } }); }