File: astyle_formatter.h

package info (click to toggle)
kdevelop 4%3A4.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 18,064 kB
  • ctags: 8,825
  • sloc: cpp: 76,399; python: 920; lex: 422; ruby: 120; sh: 85; makefile: 49; xml: 42
file content (97 lines) | stat: -rw-r--r-- 3,582 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/* This file is part of KDevelop
*  Copyright (C) 2008 Cédric Pasteur <cedric.pasteur@free.fr>
Copyright (C) 2001 Matthias Hölzer-Klüpfel <mhk@caldera.de>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.  If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.

*/

#ifndef ASTYLEFORMATTER_H
#define ASTYLEFORMATTER_H

#include <QMap>
#include <QVariant>
#include <QString>
#include <QStringList>

#include "astyle.h"

class KSharedConfig;
template<class T> class KSharedPtr;

class AStyleFormatter : public astyle::ASFormatter
{
    public:
        /** Creates an empty AStyleFormatter with C style by default.
        */
        AStyleFormatter();
//         AStyleFormatter(const QMap<QString, QVariant> &options);
       
        QString formatSource(const QString& text, const QString& leftContext = QString(), const QString& rightContext = QString());
        
        QVariant option(const QString &name);
        void setOption(const QString &key, const QVariant &value);
//         void setOptions(const QMap<QString, QVariant> &options);
        QString indentString();

        bool predefinedStyle(const QString &name);
        void loadStyle(const QString &content);
        QString saveStyle();
//         void loadConfig(const KSharedPtr<KSharedConfig> &config);
//         void loadStyle(const KSharedPtr<KSharedConfig> &config, const QString &name = "Custom");
//         void saveStyle(const KSharedPtr<KSharedConfig> &config, const QString &name = "Custom");
        
        // indent
        void setTabIndentation(int length, bool forceTabs);
        void setSpaceIndentation(int length);
        void setTabSpaceConversionMode(bool mode);
        void setFillEmptyLines(bool on);
        void setBlockIndent(bool on);
        void setBracketIndent(bool on);
        void setCaseIndent(bool on);
        void setClassIndent(bool on);
        void setLabelIndent(bool on);
        void setNamespaceIndent(bool on);
        void setPreprocessorIndent(bool on);
        void setSwitchIndent(bool on);
        void setMaxInStatementIndentLength(int max);
        void setMinConditionalIndentLength(int min);
        //brackets
        void setBracketFormatMode(astyle::BracketMode mode);
        void setBreakClosingHeaderBracketsMode(bool state);
        //blocks
        void setBreakBlocksMode(bool state);
        void setBreakElseIfsMode(bool state);
        void setBreakClosingHeaderBlocksMode(bool state);
        //padding
        void setOperatorPaddingMode(bool mode);
        void setParensOutsidePaddingMode(bool mode);
        void setParensInsidePaddingMode(bool mode);
        void setParensUnPaddingMode(bool state);
        //oneliners
        void setBreakOneLineBlocksMode(bool state);
        void setSingleStatementsMode(bool state);

    protected:
        void updateFormatter();
        void resetStyle();
        
    private:
        QString m_indentString;
        QMap<QString, QVariant> m_options;
};

#endif // ASTYLEFORMATTER_H