diff -r 35bd7c766760 web.indent/nbproject/project.xml
--- a/web.indent/nbproject/project.xml Thu Jul 10 10:45:30 2014 +0200
+++ b/web.indent/nbproject/project.xml Thu Jul 10 12:34:37 2014 +0200
@@ -24,6 +24,15 @@
+ org.netbeans.modules.editor.settings
+
+
+
+ 1
+ 1.53
+
+
+
org.netbeans.modules.editor.util
diff -r 35bd7c766760 web.indent/src/org/netbeans/modules/web/indent/api/support/AbstractIndenter.java
--- a/web.indent/src/org/netbeans/modules/web/indent/api/support/AbstractIndenter.java Thu Jul 10 10:45:30 2014 +0200
+++ b/web.indent/src/org/netbeans/modules/web/indent/api/support/AbstractIndenter.java Thu Jul 10 12:34:37 2014 +0200
@@ -55,7 +55,10 @@
import java.util.TreeSet;
import java.util.logging.Level;
import java.util.logging.Logger;
+import java.util.prefs.Preferences;
import javax.swing.text.BadLocationException;
+import javax.swing.text.Document;
+import org.netbeans.api.editor.settings.SimpleValueNames;
import org.netbeans.api.lexer.Language;
import org.netbeans.api.lexer.Token;
import org.netbeans.api.lexer.TokenId;
@@ -66,6 +69,7 @@
import org.netbeans.modules.web.indent.api.embedding.JoinedTokenSequence;
import org.netbeans.modules.web.indent.api.embedding.VirtualSource;
import org.netbeans.modules.editor.indent.api.IndentUtils;
+import org.netbeans.modules.editor.indent.spi.CodeStylePreferences;
import org.netbeans.modules.editor.indent.spi.Context;
import org.netbeans.modules.web.indent.api.LexUtilities;
import org.openide.util.Exceptions;
@@ -97,9 +101,29 @@
public AbstractIndenter(Language language, Context context) {
this.language = language;
this.context = context;
- indentationSize = IndentUtils.indentLevelSize(getDocument());
+ indentationSize = indentLevelSize(getDocument(), language.mimeType());
formattingContext = new IndenterFormattingContext(getDocument());
}
+
+ //copied from org.netbeans.modules.editor.indent.api.IndentUtils as we need
+ //to pass a second parameter to the CodeStylePreferences.get(doc) method.
+ private static int indentLevelSize(Document doc, String mimeType) {
+ Preferences prefs = CodeStylePreferences.get(doc, mimeType).getPreferences();
+ int indentLevel = prefs.getInt(SimpleValueNames.INDENT_SHIFT_WIDTH, -1);
+
+ if (indentLevel < 0) {
+ boolean expandTabs = prefs.getBoolean(SimpleValueNames.EXPAND_TABS, true);
+ if (expandTabs) {
+ indentLevel = prefs.getInt(SimpleValueNames.SPACES_PER_TAB, 4);
+ } else {
+ indentLevel = prefs.getInt(SimpleValueNames.TAB_SIZE, 8);
+ }
+ }
+
+ assert indentLevel >= 0 : "Invalid indentLevelSize " + indentLevel + " for " + doc; //NOI18N
+ return indentLevel;
+ }
+
public final IndenterFormattingContext createFormattingContext() {
return formattingContext;