5#ifndef QQMLFORMATOPTIONS_P_H
6#define QQMLFORMATOPTIONS_P_H
19#include <QtCore/qstring.h>
20#include <QtQmlDom/private/qqmldomoutwriter_p.h>
21#include <QtQmlDom/private/qqmldomlinewriter_p.h>
22#include <QtQmlToolingSettings/private/qqmltoolingsettings_p.h>
29enum QQmlFormatOptionLineEndings {
50 return detectLineEndings(code);
52 return LineEndings::OldMacOs;
54 return LineEndings::Windows;
56 return LineEndings::Unix;
58 Q_UNREACHABLE_RETURN(LineEndings::Unix);
61 bool tabsEnabled()
const {
return m_options.formatOptions.useTabs; }
65 return m_options.attributesSequence == AttributesSequence::Normalize;
69 m_options.attributesSequence =
70 (normalize ? AttributesSequence::Normalize : AttributesSequence::Preserve);
80 m_options.groupAttributesTogether = keep;
82 m_options.attributesSequence = AttributesSequence::Normalize;
91 int indentWidth()
const {
return m_options.formatOptions.indentSize; }
92 void setIndentWidth(
int width) { m_options.formatOptions.indentSize = width; }
100 m_options.semicolonRule = rule;
105 return m_options.semicolonRule;
110 QQmlJS::Dom::LineWriterOptions result = m_options;
111 result.lineEndings = lineEndings(m_newline, code);
115 static QQmlFormatOptionLineEndings
parseEndings(
const QString &endings);
117 QQmlFormatOptionLineEndings
newline()
const {
return m_newline; }
118 void setNewline(
const QQmlFormatOptionLineEndings &endings) { m_newline = endings; }
121 void setFiles(
const QStringList &newFiles) { m_files = newFiles; }
123 void setArguments(
const QStringList &newArguments) { m_arguments = newArguments; }
126 bool isValid()
const {
return m_errors.isEmpty(); }
136 m_writeDefaultSettings = newWriteDefaultSettings;
144 void setDryRun(
bool newDryRun) { m_dryRun = newDryRun; }
146 void setSettingsFile(
const QString &newSettingsFile) { m_settingsFile = newSettingsFile; }
148 void addError(
const QString &newError) { m_errors.append(newError); };
176 void mark(
Settings setting) { m_settingBits.set(setting,
true); }
177 bool isMarked(
Settings setting)
const {
return m_settingBits.test(setting); }
180 QQmlJS::Dom::LineWriterOptions m_options;
182 QQmlFormatOptionLineEndings m_newline = Native;
185 QStringList m_arguments;
186 QStringList m_errors;
188 bool m_verbose =
false;
189 bool m_inplace =
false;
190 bool m_force =
false;
191 bool m_ignoreSettings =
false;
192 bool m_writeDefaultSettings =
false;
193 bool m_outputOptions =
false;
194 bool m_indentWidthSet =
false;
196 bool m_dryRun =
false;
197 QString m_settingsFile;