* Licence details can be found in the file COPYING.
*
* \author unknown
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
* \author John Levon
*
* Full author contact details are available in file CREDITS.
class Buffer;
class BufferParams;
class BufferView;
+class CompletionList;
class CursorSlice;
class DocIterator;
class ErrorList;
/// FIXME: replace Cursor with DocIterator.
docstring getStringToIndex(Cursor const & cur);
+ /// Convert the paragraphs to a string.
+ /// \param AsStringParameter options. This can contain any combination of
+ /// asStringParameter values. Valid examples:
+ /// asString(AS_STR_LABEL)
+ /// asString(AS_STR_LABEL | AS_STR_INSETS)
+ /// asString(AS_STR_INSETS)
+ docstring asString(int options = AS_STR_NONE) const;
+ ///
+ docstring asString(pit_type beg, pit_type end,
+ int options = AS_STR_NONE) const;
+
/// insert a character at cursor position
/// FIXME: replace Cursor with DocIterator.
void insertChar(Cursor & cur, char_type c);
Paragraph & getPar(pit_type pit) { return pars_[pit]; }
// Returns the current font and depth as a message.
/// FIXME: replace Cursor with DocIterator.
- docstring currentState(Cursor & cur);
+ docstring currentState(Cursor const & cur) const;
/** Find the word under \c from in the relative location
* defined by \c word_location.
void getWord(CursorSlice & from, CursorSlice & to, word_location const) const;
/// just selects the word the cursor is in
void selectWord(Cursor & cur, word_location loc);
-
+ /// select all text
+ void selectAll(Cursor & cur);
+ /// convenience function get the previous word or an empty string
+ docstring previousWord(CursorSlice const & sl) const;
+
/// what type of change operation to make
enum ChangeOp {
ACCEPT,
bool cursorBackwardOneWord(Cursor & cur);
///
bool cursorForwardOneWord(Cursor & cur);
+ ///
+ bool cursorVisLeftOneWord(Cursor & cur);
+ ///
+ bool cursorVisRightOneWord(Cursor & cur);
/// Delete from cursor up to the end of the current or next word.
void deleteWordForward(Cursor & cur);
/// Delete from cursor to start of current or prior word.
double spacing(Buffer const & buffer, Paragraph const & par) const;
/// make a suggestion for a label
/// FIXME: replace Cursor with DocIterator.
- docstring getPossibleLabel(Cursor & cur) const;
+ docstring getPossibleLabel(Cursor const & cur) const;
/// is this paragraph right-to-left?
bool isRTL(Buffer const &, Paragraph const & par) const;
///
void write(Buffer const & buf, std::ostream & os) const;
- /// returns whether we've seen our usual 'end' marker
+ /// returns true if \end_document has not been read
/// insetPtr is the containing Inset
bool read(Buffer const & buf, Lexer & lex, ErrorList & errorList,
InsetText * insetPtr);
///
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;
+
public:
///
ParagraphList pars_;
bool backspacePos0(Cursor & cur);
/// handle the case where bibitems were deleted
bool handleBibitems(Cursor & cur);
+ /// are we in a list item (description etc.)?
+ bool inDescriptionItem(Cursor & cur) const;
///
void charInserted(Cursor & cur);
/// set 'number' font property