diff --git a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp index e94f61fae3..b169fb115e 100644 --- a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp +++ b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp @@ -62,7 +62,7 @@ void SourceCodeDocument::reloadInternal() { jassert (codeDoc != nullptr); modDetector.updateHash(); - codeDoc->replaceAllContent (modDetector.getFile().loadFileAsString()); + codeDoc->applyChanges (modDetector.getFile().loadFileAsString()); codeDoc->setSavePoint(); } diff --git a/modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp b/modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp index 8ca410f780..60d22858dd 100644 --- a/modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp +++ b/modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp @@ -574,7 +574,7 @@ void CodeDocument::replaceSection (const int start, const int end, const String& deleteSection (start + newTextLen, end + newTextLen); } -void CodeDocument::replaceAllContent (const String& newContent) +void CodeDocument::applyChanges (const String& newContent) { TextDiff diff (getAllContent(), newContent); @@ -589,6 +589,12 @@ void CodeDocument::replaceAllContent (const String& newContent) } } +void CodeDocument::replaceAllContent (const String& newContent) +{ + remove (0, getNumCharacters(), true); + insert (newContent, 0, true); +} + bool CodeDocument::loadFromStream (InputStream& stream) { remove (0, getNumCharacters(), false); diff --git a/modules/juce_gui_extra/code_editor/juce_CodeDocument.h b/modules/juce_gui_extra/code_editor/juce_CodeDocument.h index a1e73e4542..68d371b538 100644 --- a/modules/juce_gui_extra/code_editor/juce_CodeDocument.h +++ b/modules/juce_gui_extra/code_editor/juce_CodeDocument.h @@ -234,6 +234,11 @@ public: */ void replaceAllContent (const String& newContent); + /** Analyses the changes between the current content and some new text, and applies + those changes. + */ + void applyChanges (const String& newContent); + /** Replaces the editor's contents with the contents of a stream. This will also reset the undo history and save point marker. */