forked from qt-creator/qt-creator
QmlJS indenter: Only auto-reindent if indent was unchanged.
This change in how electric characters are handled has gone into the C++ indenter a while ago and works well there. It means Creator is less likely to annoyingly change the indent on lines where the indentation whas changed manually. It is still possible to trigger a reindent manually. Reviewed-by: Erik Verbruggen
This commit is contained in:
@@ -471,6 +471,18 @@ int CodeFormatter::indentFor(const QTextBlock &block)
|
||||
return m_indentDepth;
|
||||
}
|
||||
|
||||
int CodeFormatter::indentForNewLineAfter(const QTextBlock &block)
|
||||
{
|
||||
restoreCurrentState(block);
|
||||
|
||||
int lexerState = loadLexerState(block);
|
||||
m_tokens.clear();
|
||||
m_currentLine.clear();
|
||||
adjustIndent(m_tokens, lexerState, &m_indentDepth);
|
||||
|
||||
return m_indentDepth;
|
||||
}
|
||||
|
||||
void CodeFormatter::updateStateUntil(const QTextBlock &endBlock)
|
||||
{
|
||||
QStack<State> previousState = initialState();
|
||||
|
||||
@@ -66,6 +66,7 @@ public:
|
||||
void updateLineStateChange(const QTextBlock &block);
|
||||
|
||||
int indentFor(const QTextBlock &block);
|
||||
int indentForNewLineAfter(const QTextBlock &block);
|
||||
|
||||
void setTabSize(int tabSize);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user