blob: 18bc27cd522d074c2f39f7beea868e201562ac2d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 xored software, Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* xored software, Inc. - initial API and Implementation (Alex Panchenko)
*******************************************************************************/
package org.eclipse.dltk.ui.text;
import org.eclipse.dltk.ui.CodeFormatterConstants;
import org.eclipse.dltk.ui.text.util.AutoEditUtils;
import org.eclipse.dltk.ui.text.util.TabStyle;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.DefaultIndentLineAutoEditStrategy;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.TextUtilities;
public class ScriptDefaultIndentLineAutoEditStrategy extends DefaultIndentLineAutoEditStrategy {
protected final IPreferenceStore fPreferenceStore;
public ScriptDefaultIndentLineAutoEditStrategy(IPreferenceStore fPreferenceStore) {
this.fPreferenceStore = fPreferenceStore;
}
protected int getIndentSize() {
return fPreferenceStore.getInt(CodeFormatterConstants.FORMATTER_INDENTATION_SIZE);
}
protected TabStyle getTabStyle() {
return TabStyle.forName(fPreferenceStore.getString(CodeFormatterConstants.FORMATTER_TAB_CHAR), TabStyle.TAB);
}
protected String getIndent() {
if (getTabStyle() == TabStyle.SPACES) {
return AutoEditUtils.getNSpaces(getIndentSize());
} else
return "\t"; //$NON-NLS-1$
}
protected boolean isLineDelimiter(IDocument document, String text) {
String[] delimiters = document.getLegalLineDelimiters();
return delimiters != null && TextUtilities.equals(delimiters, text) > -1;
}
}