// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "qmljsqtstylecodeformatter.h" #include using namespace QmlJS; using namespace QmlJSTools; using namespace TextEditor; CreatorCodeFormatter::CreatorCodeFormatter() = default; CreatorCodeFormatter::CreatorCodeFormatter(const TabSettings &tabSettings) { setTabSize(tabSettings.m_tabSize); setIndentSize(tabSettings.m_indentSize); } void CreatorCodeFormatter::saveBlockData(QTextBlock *block, const BlockData &data) const { TextBlockUserData *userData = TextDocumentLayout::userData(*block); auto cppData = static_cast(userData->codeFormatterData()); if (!cppData) { cppData = new QmlJSCodeFormatterData; userData->setCodeFormatterData(cppData); } cppData->m_data = data; } bool CreatorCodeFormatter::loadBlockData(const QTextBlock &block, BlockData *data) const { TextBlockUserData *userData = TextDocumentLayout::textUserData(block); if (!userData) return false; auto cppData = static_cast(userData->codeFormatterData()); if (!cppData) return false; *data = cppData->m_data; return true; } void CreatorCodeFormatter::saveLexerState(QTextBlock *block, int state) const { TextDocumentLayout::setLexerState(*block, state); } int CreatorCodeFormatter::loadLexerState(const QTextBlock &block) const { return TextDocumentLayout::lexerState(block); }