KSyntaxHighlighting

state.h
1 /*
2  SPDX-FileCopyrightText: 2016 Volker Krause <[email protected]>
3 
4  SPDX-License-Identifier: MIT
5 */
6 
7 #ifndef KSYNTAXHIGHLIGHTING_STATE_H
8 #define KSYNTAXHIGHLIGHTING_STATE_H
9 
10 #include "ksyntaxhighlighting_export.h"
11 
12 #include <QExplicitlySharedDataPointer>
13 
14 namespace KSyntaxHighlighting
15 {
16 class StateData;
17 
18 /** Opaque handle to the state of the highlighting engine.
19  * This needs to be fed into AbstractHighlighter for every line of text
20  * and allows concrete highlighter implementations to store state per
21  * line for fast re-highlighting of specific lines (e.g. during editing).
22  *
23  * @since 5.28
24  */
25 class KSYNTAXHIGHLIGHTING_EXPORT State
26 {
27 public:
28  /** Creates an initial state, ie. what should be used for the first line
29  * in a document.
30  */
31  State();
32  State(const State &other);
33  ~State();
34  State &operator=(const State &rhs);
35 
36  /** Compares two states for equality.
37  * For two equal states and identical text input, AbstractHighlighter
38  * guarantees to produce equal results. This can be used to only
39  * re-highlight as many lines as necessary during editing.
40  */
41  bool operator==(const State &other) const;
42  /** Compares two states for inequality.
43  * This is the opposite of operator==().
44  */
45  bool operator!=(const State &other) const;
46 
47  /**
48  * Returns whether or not indentation-based folding is enabled in this state.
49  * When using a Definition with indentation-based folding, use
50  * this method to check if indentation-based folding has been
51  * suspended in the current line.
52  *
53  * @see Definition::indentationBasedFoldingEnabled()
54  */
55  bool indentationBasedFoldingEnabled() const;
56 
57 private:
58  friend class StateData;
60 };
61 
62 }
63 
64 QT_BEGIN_NAMESPACE
65 Q_DECLARE_TYPEINFO(KSyntaxHighlighting::State, Q_MOVABLE_TYPE);
66 QT_END_NAMESPACE
67 
68 #endif // KSYNTAXHIGHLIGHTING_STATE_H
Opaque handle to the state of the highlighting engine.
Definition: state.h:25
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Mar 26 2023 04:09:17 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.