- /// the index of the cursor slice of the macro, or -1 if it is not edited
- int cursorIdx(Cursor const & cur) const;
- ///
- bool editMode(Cursor const & cur) const;
-
- /// name of macro
- docstring name_;
- /// current display mode
- DisplayMode displayMode_;
- /// display mode before change
- InsetMathSqrt expanded_;
- /// number of arguments that were really attached
- size_t attachedArgsNum_;
- /// cursor position during last draw
- mutable std::map<BufferView const *, idx_type> previousCurIdx_;
- /// optional argument attached? (only in DISPLAY_NORMAL mode)
- size_t optionals_;
- /// fold mode to be set in next metrics call?
- bool nextFoldMode_;
- /// if macro_ == true, then here is a copy of the macro
- /// don't use it for locking
- MacroData macroBackup_;
- /// if macroNotFound_ == false, then here is a reference to the macro
- /// this might invalidate after metrics was called
- MacroData const * macro_;
- ///
- mutable std::map<BufferView const *, bool> editing_;
- ///
- std::string requires_;
- /// update macro representation
- bool needsUpdate_;
+ ///
+ bool editMode(BufferView const * bv) const;
+
+ ///
+ class Private;
+ ///
+ Private * d;
+ /// update lock to avoid loops
+ class UpdateLocker;
+ friend class UpdateLocker;
+
+public:
+ ///
+ bool completionSupported(Cursor const &) const;
+ ///
+ bool inlineCompletionSupported(Cursor const & cur) const;
+ ///
+ bool automaticInlineCompletion() const;
+ ///
+ bool automaticPopupCompletion() const;
+ ///
+ CompletionList const * createCompletionList(Cursor const & cur) const;
+ ///
+ docstring completionPrefix(Cursor const & cur) const;
+ ///
+ bool insertCompletion(Cursor & cur, docstring const & s, bool finished);
+ ///
+ void completionPosAndDim(Cursor const &, int & x, int & y, Dimension & dim) const;