.. index:: pair: class; EE::UI::Doc::TextDocument .. _doxid-class_e_e_1_1_u_i_1_1_doc_1_1_text_document: class EE::UI::Doc::TextDocument =============================== .. toctree:: :hidden: enum_EE_UI_Doc_TextDocument_FindReplaceType.rst enum_EE_UI_Doc_TextDocument_IndentType.rst enum_EE_UI_Doc_TextDocument_LoadStatus.rst enum_EE_UI_Doc_TextDocument_MatchDirection.rst enum_EE_UI_Doc_TextDocument_UndoRedo.rst struct_EE_UI_Doc_TextDocument_SearchResult.rst class_EE_UI_Doc_TextDocument_Client.rst class_EE_UI_Doc_TextDocument_SearchResults.rst Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class TextDocument { public: // typedefs typedef std::function :target:`DocumentCommand`; typedef std::function`*)> :target:`DocumentRefCommand`; // enums enum :ref:`FindReplaceType`; enum :ref:`IndentType`; enum :ref:`LoadStatus`; enum :ref:`MatchDirection`; enum :ref:`UndoRedo`; // structs struct :ref:`SearchResult`; // classes class :ref:`Client`; class :ref:`SearchResults`; // construction :target:`TextDocument`(bool verbose = true); :target:`~TextDocument`(); // methods bool :target:`isNonWord`(:ref:`String::StringBaseType` ch) const; bool :target:`hasFilepath`() const; bool :target:`isEmpty`() const; bool :target:`isUntitledEmpty`() const; void :target:`reset`(); void :target:`resetCursor`(); :ref:`LoadStatus` :target:`loadFromStream`(:ref:`IOStream`& path); :ref:`LoadStatus` :target:`loadFromFile`(const std::string& path); bool :target:`loadAsyncFromFile`(const std::string& path, std::shared_ptr<:ref:`ThreadPool`> pool, std::function onLoaded = std::function()); :ref:`LoadStatus` :target:`loadFromMemory`(const :ref:`Uint8`* data, const :ref:`Uint32`& size); :ref:`LoadStatus` :target:`loadFromPack`(:ref:`Pack`* pack, std::string filePackPath); :ref:`LoadStatus` :ref:`loadFromURL`(const std::string& url, const :ref:`EE::Network::Http::Request::FieldTable`& headers = :ref:`Http::Request::FieldTable`()); bool :target:`loadAsyncFromURL`(const std::string& url, const :ref:`Http::Request::FieldTable`& headers = :ref:`Http::Request::FieldTable`(), std::function onLoaded = std::function(), const :ref:`Http::Request::ProgressCallback`& progressCallback = nullptr); :ref:`LoadStatus` :target:`reload`(); bool :target:`save`(); bool :target:`save`(const std::string& path); bool :target:`save`(:ref:`IOStream`& stream, bool keepUndoRedoStatus = false); std::string :target:`getFilename`() const; void :target:`setSelection`(const :ref:`TextPosition`& position); void :target:`setSelection`(const size_t& cursorIdx, :ref:`TextPosition` start, :ref:`TextPosition` end, bool swap = false); void :target:`setSelection`(:ref:`TextPosition` start, :ref:`TextPosition` end, bool swap = false); void :target:`setSelection`(const :ref:`TextRange`& range); :ref:`TextRange` :target:`getSelection`(bool sort) const; const :ref:`TextRanges`& :target:`getSelections`() const; const :ref:`TextRange`& :target:`getSelection`() const; const :ref:`TextRange`& :target:`getSelectionIndex`(const size_t& index) const; :ref:`TextDocumentLine`& :target:`line`(const size_t& index); const :ref:`TextDocumentLine`& :target:`line`(const size_t& index) const; size_t :target:`linesCount`() const; const :ref:`TextDocumentLine`& :target:`getCurrentLine`() const; std::vector<:ref:`TextDocumentLine`>& :target:`lines`(); bool :target:`hasSelection`() const; const std::array<:ref:`Uint8`, 16>& :target:`getHash`() const; std::string :target:`getHashHexString`() const; :ref:`String` :target:`getText`(const :ref:`TextRange`& range) const; :ref:`String` :target:`getText`() const; :ref:`String` :target:`getSelectedText`() const; :ref:`String::StringBaseType` :target:`getPrevChar`() const; :ref:`String::StringBaseType` :target:`getCurrentChar`() const; :ref:`String::StringBaseType` :target:`getChar`(const :ref:`TextPosition`& position) const; :ref:`TextPosition` :target:`insert`(const size_t& cursorIdx, const :ref:`TextPosition`& position, const :ref:`String`& text); size_t :target:`remove`(const size_t& cursorIdx, :ref:`TextRange` range); :ref:`TextPosition` :target:`positionOffset`(:ref:`TextPosition` position, int columnOffset) const; :ref:`TextPosition` :target:`positionOffset`(:ref:`TextPosition` position, :ref:`TextPosition` offset) const; bool :target:`replaceLine`(const :ref:`Int64`& lineNum, const :ref:`String`& text); bool :target:`replaceCurrentLine`(const :ref:`String`& text); void :target:`print`() const; :ref:`TextPosition` :target:`nextChar`(:ref:`TextPosition` position) const; :ref:`TextPosition` :target:`previousChar`(:ref:`TextPosition` position) const; :ref:`TextPosition` :target:`previousWordBoundary`(:ref:`TextPosition` position, bool ignoreFirstNonWord = true) const; :ref:`TextPosition` :target:`nextWordBoundary`(:ref:`TextPosition` position, bool ignoreFirstNonWord = true) const; :ref:`TextPosition` :target:`previousSpaceBoundaryInLine`(:ref:`TextPosition` position) const; :ref:`TextPosition` :target:`nextSpaceBoundaryInLine`(:ref:`TextPosition` position) const; :ref:`TextPosition` :target:`startOfWord`(:ref:`TextPosition` position) const; :ref:`TextPosition` :target:`endOfWord`(:ref:`TextPosition` position) const; :ref:`TextPosition` :target:`startOfLine`(:ref:`TextPosition` position) const; :ref:`TextPosition` :target:`endOfLine`(:ref:`TextPosition` position) const; :ref:`TextPosition` :target:`startOfContent`(:ref:`TextPosition` position); :ref:`TextPosition` :target:`startOfDoc`() const; :ref:`TextPosition` :target:`endOfDoc`() const; :ref:`TextRange` :target:`getDocRange`() const; void :target:`deleteTo`(const size_t& cursorIdx, :ref:`TextPosition` position); void :target:`deleteTo`(const size_t& cursorIdx, int offset); void :target:`deleteSelection`(); void :target:`selectTo`(:ref:`TextPosition` position); void :target:`selectTo`(int offset); void :target:`moveTo`(:ref:`TextPosition` offset); void :target:`moveTo`(int columnOffset); void :target:`textInput`(const :ref:`String`& text, bool mightBeInteresting = true); void :target:`imeTextEditing`(const :ref:`String`& text); void :target:`registerClient`(:ref:`Client`* client); void :target:`unregisterClient`(:ref:`Client`* client); void :target:`moveToPreviousChar`(); void :target:`moveToNextChar`(); void :target:`moveToPreviousWord`(); void :target:`moveToNextWord`(); void :target:`moveToPreviousLine`(); void :target:`moveToNextLine`(); void :target:`moveToPreviousPage`(:ref:`Int64` pageSize); void :target:`moveToNextPage`(:ref:`Int64` pageSize); void :target:`moveToStartOfDoc`(); void :target:`moveToEndOfDoc`(); void :target:`moveToStartOfLine`(); void :target:`moveToEndOfLine`(); void :target:`moveToStartOfContent`(); void :target:`deleteToPreviousChar`(); void :target:`deleteToNextChar`(); void :target:`deleteToPreviousWord`(); void :target:`deleteToNextWord`(); void :target:`deleteWord`(); void :target:`deleteCurrentLine`(); void :target:`selectToPreviousChar`(); void :target:`selectToNextChar`(); void :target:`selectToPreviousWord`(); void :target:`selectWord`(bool withMulticursor = true); void :target:`selectAllWords`(); void :target:`selectLine`(); void :target:`selectToNextWord`(); void :target:`selectToPreviousLine`(); void :target:`selectToNextLine`(); void :target:`selectToStartOfLine`(); void :target:`selectToEndOfLine`(); void :target:`selectToStartOfDoc`(); void :target:`selectToEndOfDoc`(); void :target:`selectToPreviousPage`(:ref:`Int64` pageSize); void :target:`selectToNextPage`(:ref:`Int64` pageSize); void :target:`selectToStartOfContent`(); void :target:`selectAll`(); void :target:`newLine`(); void :target:`newLineAbove`(); void :target:`indent`(); void :target:`unindent`(); void :target:`moveLinesUp`(); void :target:`moveLinesDown`(); bool :target:`hasUndo`() const; bool :target:`hasRedo`() const; void :target:`undo`(); void :target:`redo`(); void :target:`execute`(const std::string& command); void :target:`execute`(const std::string& command, :ref:`Client`* client); void :target:`setCommands`(const :ref:`UnorderedMap``>& cmds); void :target:`setCommand`(const std::string& command, const :ref:`DocumentCommand`& func); void :target:`setCommand`(const std::string& command, const :ref:`DocumentRefCommand`& func); bool :target:`hasCommand`(const std::string& command); bool :target:`removeCommand`(const std::string& command); :ref:`SearchResult` :target:`find`(const :ref:`String`& text, :ref:`TextPosition` from = { 0, 0 }, bool caseSensitive = true, bool wholeWord = false, :ref:`FindReplaceType` type = :ref:`FindReplaceType::Normal`, :ref:`TextRange` restrictRange = :ref:`TextRange`()); :ref:`SearchResult` :target:`findLast`(const :ref:`String`& text, :ref:`TextPosition` from = { 0, 0 }, bool caseSensitive = true, bool wholeWord = false, :ref:`FindReplaceType` type = :ref:`FindReplaceType::Normal`, :ref:`TextRange` restrictRange = :ref:`TextRange`()); :ref:`SearchResults` :target:`findAll`(const :ref:`String`& text, bool caseSensitive = true, bool wholeWord = false, :ref:`FindReplaceType` type = :ref:`FindReplaceType::Normal`, :ref:`TextRange` restrictRange = :ref:`TextRange`(), size_t maxResults = 0); int :target:`replaceAll`(const :ref:`String`& text, const :ref:`String`& replace, const bool& caseSensitive = true, const bool& wholeWord = false, :ref:`FindReplaceType` type = :ref:`FindReplaceType::Normal`, :ref:`TextRange` restrictRange = :ref:`TextRange`()); :ref:`TextPosition` :target:`replaceSelection`(const :ref:`String`& replace); :ref:`TextPosition` :target:`replace`( :ref:`String` search, const :ref:`String`& replace, :ref:`TextPosition` from = { 0, 0 }, const bool& caseSensitive = true, const bool& wholeWord = false, :ref:`FindReplaceType` type = :ref:`FindReplaceType::Normal`, :ref:`TextRange` restrictRange = :ref:`TextRange`() ); :ref:`String` :target:`getIndentString`(); const :ref:`Uint32`& :target:`getIndentWidth`() const; void :target:`setIndentWidth`(const :ref:`Uint32`& tabWidth); :ref:`TextPosition` :target:`sanitizePosition`(const :ref:`TextPosition`& position) const; const :ref:`IndentType`& :target:`getIndentType`() const; void :target:`setIndentType`(const :ref:`IndentType`& indentType); const :ref:`SyntaxDefinition`& :target:`getSyntaxDefinition`() const; void :target:`setSyntaxDefinition`(const :ref:`SyntaxDefinition`& definition); :ref:`Uint64` :target:`getCurrentChangeId`() const; const std::string& :target:`getDefaultFileName`() const; void :target:`setDefaultFileName`(const std::string& defaultFileName); const std::string& :target:`getFilePath`() const; const :ref:`URI`& :target:`getURI`() const; const :ref:`FileInfo`& :target:`getFileInfo`() const; bool :target:`isDirty`() const; const :ref:`Uint32`& :target:`getPageSize`() const; void :target:`setPageSize`(const :ref:`Uint32`& pageSize); const :ref:`String`& :target:`getNonWordChars`() const; void :target:`toggleLineComments`(); void :target:`setNonWordChars`(const :ref:`String`& nonWordChars); void :target:`resetSyntax`(); bool :target:`getAutoDetectIndentType`() const; void :target:`setAutoDetectIndentType`(bool autodetect); const :ref:`TextFormat::LineEnding`& :target:`getLineEnding`() const; void :target:`setLineEnding`(const :ref:`TextFormat::LineEnding`& lineEnding); bool :target:`getForceNewLineAtEndOfFile`() const; void :target:`setForceNewLineAtEndOfFile`(bool forceNewLineAtEndOfFile); bool :target:`getTrimTrailingWhitespaces`() const; void :target:`setTrimTrailingWhitespaces`(bool trimTrailingWhitespaces); :ref:`Client`* :target:`getActiveClient`() const; void :target:`setActiveClient`(:ref:`Client`* activeClient); void :target:`setBOM`(bool active); bool :target:`isBOM`() const; :ref:`TextRange` :target:`sanitizeRange`(const :ref:`TextRange`& range) const; :ref:`TextRanges` :target:`sanitizeRange`(const :ref:`TextRanges`& ranges) const; bool :target:`isValidPosition`(const :ref:`TextPosition`& position) const; bool :target:`isValidRange`(const :ref:`TextRange`& range) const; bool :target:`getAutoCloseBrackets`() const; void :target:`setAutoCloseBrackets`(bool autoCloseBrackets); const std::vector`, :ref:`String::StringBaseType`>>& :target:`getAutoCloseBracketsPairs`() const; void :target:`setAutoCloseBracketsPairs`(const std::vector`, :ref:`String::StringBaseType`>>& autoCloseBracketsPairs); bool :target:`isDirtyOnFileSystem`() const; void :target:`setDirtyOnFileSystem`(bool dirtyOnFileSystem); bool :target:`isSaving`() const; void :target:`sanitizeCurrentSelection`(); bool :target:`isLoading`() const; bool :target:`isDeleteOnClose`() const; void :target:`setDeleteOnClose`(bool deleteOnClose); bool :target:`hasSyntaxDefinition`() const; void :target:`notifyDocumentMoved`(const std::string& newPath); void :target:`toUpperSelection`(); void :target:`toLowerSelection`(); const std::string& :target:`getLoadingFilePath`() const; const :ref:`URI`& :target:`getLoadingFileURI`() const; void :target:`setSelection`(const :ref:`TextRanges`& selection); void :target:`resetSelection`(const :ref:`TextRanges`& selection); std::vector<:ref:`TextRange`> :target:`getSelectionsSorted`() const; void :target:`addCursorAbove`(); void :target:`addCursorBelow`(); :ref:`TextRange` :target:`getTopMostCursor`(); :ref:`TextRange` :target:`getBottomMostCursor`(); void :target:`moveTo`(const size_t& cursorIdx, :ref:`TextPosition` offset); void :target:`moveTo`(const size_t& cursorIdx, int columnOffset); void :target:`setSelection`(const size_t& cursorIdx, const :ref:`TextPosition`& position); void :target:`mergeSelection`(); void :target:`selectTo`(const size_t& cursorIdx, :ref:`TextPosition` position); void :target:`selectTo`(const size_t& cursorIdx, int offset); void :target:`setSelection`(const size_t& cursorIdx, const :ref:`TextRange`& range); :ref:`TextRange` :target:`addSelection`(:ref:`TextRange` selection); :ref:`TextRange` :target:`addSelection`(const :ref:`TextPosition`& selection); :ref:`TextRange` :target:`addSelections`(:ref:`TextRanges`&& selections); void :target:`popSelection`(); void :target:`deleteSelection`(const size_t& cursorIdx); :ref:`String` :target:`getSelectedText`(const size_t& cursorIdx) const; size_t :target:`getLastSelection`() const; bool :target:`selectionExists`(const :ref:`TextRange`& selection); bool :target:`selectionExists`(const :ref:`TextPosition`& selection); :ref:`TextPosition` :target:`replaceSelection`(const size_t& cursorIdx, const :ref:`String`& replace); void :target:`cursorUndo`(); void :target:`selectAllMatches`(); :ref:`String` :target:`getAllSelectedText`() const; std::vector :target:`getCommandList`() const; bool :target:`isRunningTransaction`() const; void :target:`setRunningTransaction`(const bool runningTransaction); :ref:`TextPosition` :target:`getMatchingBracket`(:ref:`TextPosition` startPosition, const :ref:`String::StringBaseType`& openBracket, const :ref:`String::StringBaseType`& closeBracket, :ref:`MatchDirection` dir, bool allowDepth = true); :ref:`TextRange` :target:`getMatchingBracket`(:ref:`TextPosition` startPosition, const :ref:`String`& openBracket, const :ref:`String`& closeBracket, :ref:`MatchDirection` dir, bool matchingXMLTags = false); :ref:`SyntaxHighlighter`* :target:`getHighlighter`() const; :ref:`TextRange` :target:`getWordRangeInPosition`(const :ref:`TextPosition`& pos, bool basedOnHighlighter = true); :ref:`TextRange` :target:`getWordRangeInPosition`(bool basedOnHighlighter = true); :ref:`String` :target:`getWordInPosition`(const :ref:`TextPosition`& pos, bool basedOnHighlighter = true); :ref:`String` :target:`getWordInPosition`(bool basedOnHighlighter = true); bool :target:`mightBeBinary`() const; void :target:`setMightBeBinary`(bool mightBeBinary); :ref:`TextRange` :target:`getActiveClientVisibleRange`() const; bool :target:`hAsCpp`() const; void :target:`setHAsCpp`(bool hAsCpp); const :ref:`Uint64`& :target:`getModificationId`() const; void :target:`stopActiveFindAll`(); bool :target:`isDoingTextInput`() const; bool :target:`isInsertingText`() const; void :target:`resetUndoRedo`(); :ref:`TextFormat::Encoding` :target:`getEncoding`() const; void :target:`setEncoding`(:ref:`TextFormat::Encoding` encoding); }; .. _details-class_e_e_1_1_u_i_1_1_doc_1_1_text_document: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Methods ------- .. index:: pair: function; loadFromURL .. _doxid-class_e_e_1_1_u_i_1_1_doc_1_1_text_document_1a1ca914fdb31ea0da76e9a27c4522ef79: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`LoadStatus` loadFromURL(const std::string& url, const :ref:`EE::Network::Http::Request::FieldTable`& headers = :ref:`Http::Request::FieldTable`()) loadFromURL .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - url - Resources URL. * - headers - Key value map of headers .. rubric:: Returns: