+ /// delete double spaces, leading spaces, and empty paragraphs
+ /// from \first to \last paragraph and \first_pos to \last_pos
+ /// Does NOT handle undo (responsibility of the caller)
+ void deleteEmptyParagraphMechanism(pit_type first, pit_type last,
+ pos_type first_pos, pos_type last_pos,
+ bool trackChanges);
+
+ /// To resolve macros properly the texts get their DocIterator.
+ /// Every macro definition is stored with its DocIterator
+ /// as well. Only those macros with a smaller iterator become
+ /// visible in a paragraph.
+ DocIterator macrocontextPosition() const;
+ ///
+ void setMacrocontextPosition(DocIterator const & pos);
+
+ ///
+ bool completionSupported(Cursor const & cur) const;
+ ///
+ CompletionList const * createCompletionList(Cursor const & cur) const;
+ ///
+ bool insertCompletion(Cursor & cur, docstring const & s, bool /*finished*/);
+ ///
+ docstring completionPrefix(Cursor const & cur) const;
+ /// find a paragraph before \p par with the given \p depth, if such
+ /// a paragraph cannot be found, \p par is returned
+ pit_type depthHook(pit_type pit, depth_type depth) const;
+ /// find a paragraph before \p par with depth less than the
+ /// depth of \p par. If such paragraph cannot be found because
+ /// \p par already has depth 0, lastpar + 1 is returned. If
+ /// such paragraph cannot be found because there isn't a par
+ /// with less depth before this one, \p par is returned.
+ pit_type outerHook(pit_type pit) const;
+ /// Is it the first par with same depth and layout?
+ bool isFirstInSequence(pit_type pit) const;
+ /// Return the last paragraph with same depth and layout, or a strictly
+ /// greater depth
+ pit_type lastInSequence(pit_type pit) const;
+ /// Is this paragraph in the table of contents?
+ int getTocLevel(pit_type pit) const;
+ /// Get the font of the "environment" of paragraph \p par_offset in \p pars.
+ /// All font changes of the paragraph are relative to this font.
+ Font const outerFont(pit_type pit_offset) const;
+ /// Return the label type at the end of paragraph \c pit.
+ int getEndLabel(pit_type pit) const;