diff --git a/extras/Introjucer/Builds/CodeBlocks/The Introjucer.cbp b/extras/Introjucer/Builds/CodeBlocks/The Introjucer.cbp
index 7ae8d4e55d..658e26fd5a 100644
--- a/extras/Introjucer/Builds/CodeBlocks/The Introjucer.cbp
+++ b/extras/Introjucer/Builds/CodeBlocks/The Introjucer.cbp
@@ -3030,6 +3030,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj b/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
index 5f20672a3e..52ba287fcb 100644
--- a/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
+++ b/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
@@ -166,6 +166,7 @@
1F28C0018228A0F749E5658E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
1F36217CE7A5B1D63D41EA6C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; };
1F421199C40092BFEE0658C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_RelativePath.h"; path = "../../Source/Utility/jucer_RelativePath.h"; sourceTree = "SOURCE_ROOT"; };
+ 1F73C3482D9ABB95A454B1B7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; };
1F7F2864FE54D79A0C42BE93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; };
1F9BBDFA52513AD34D906D2A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_HyperlinkButtonHandler.h"; path = "../../Source/ComponentEditor/components/jucer_HyperlinkButtonHandler.h"; sourceTree = "SOURCE_ROOT"; };
1FA92F8F2B26C6CEC8B1D737 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ButtonDocument.h"; path = "../../Source/ComponentEditor/documents/jucer_ButtonDocument.h"; sourceTree = "SOURCE_ROOT"; };
@@ -400,6 +401,7 @@
66A67F1C25A59167AA729C9C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; };
66B49F08C5EC3E4974825FF8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_PaintRoutine.h"; path = "../../Source/ComponentEditor/jucer_PaintRoutine.h"; sourceTree = "SOURCE_ROOT"; };
6736FDF36413E6445C526C86 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 67DDFE829CDFDF93E712F9A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; };
68351D69C94230D1DCDB8345 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; };
684D88D936EDF46A76EC0538 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; };
68B2A7661E219540E9ADB945 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LiveConstantEditor.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -418,6 +420,7 @@
6BAA8DF455FA84AE62E9DADC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; };
6CB2CFC7615B804CE7514A24 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; };
6CD1E57C60BC2917A46BF4AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 6CE8BC3B2D8B5EA0F4C793AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
6D3FB966CF0EBF70802B3575 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
6D596D17B6A79C2E6C4CFBD1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; };
6DFAF945FC3A7D0689C5CEC8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; };
@@ -758,9 +761,7 @@
D7A7F1AA9F313B0CCAAA73A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; };
D800DE818BEDBF4579D15B1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; };
D926E13AB5AD647A7A00F486 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; };
- D9342535EA61901A1AD816C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
D9B077E2ECDDA94961E134D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; };
- D9E59DE07A815AB303A297D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; };
DAF84A553D264705FA6EB6FF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_TreeViewHandler.h"; path = "../../Source/ComponentEditor/components/jucer_TreeViewHandler.h"; sourceTree = "SOURCE_ROOT"; };
DB876F7873F42DC685A58CA7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; };
DBE0CDE1B017190ABBFF557C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_CodeBlocks.h"; path = "../../Source/Project Saving/jucer_ProjectExport_CodeBlocks.h"; sourceTree = "SOURCE_ROOT"; };
@@ -777,7 +778,9 @@
D4444EC6342A2A7BC4F7BC46 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ComponentTextProperty.h"; path = "../../Source/ComponentEditor/properties/jucer_ComponentTextProperty.h"; sourceTree = "SOURCE_ROOT"; };
D87FC8F6834E9DC9C8E88B94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_JustificationProperty.h"; path = "../../Source/ComponentEditor/properties/jucer_JustificationProperty.h"; sourceTree = "SOURCE_ROOT"; };
D92A6E9404A30EED32DCE4ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_RelativePositionedRectangle.h"; path = "../../Source/ComponentEditor/ui/jucer_RelativePositionedRectangle.h"; sourceTree = "SOURCE_ROOT"; };
+ D9342535EA61901A1AD816C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
D95D7B49EC6C6BDCB5A1B988 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; };
+ D9E59DE07A815AB303A297D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; };
DA345D5B9DABD049F90DC96F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_GeneratedCode.h"; path = "../../Source/ComponentEditor/jucer_GeneratedCode.h"; sourceTree = "SOURCE_ROOT"; };
DB20268A566DABEAE3F2CBEE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; };
DC922C6A65D260C18E888E49 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ComponentTemplate.cpp"; path = "../../Source/BinaryData/jucer_ComponentTemplate.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -849,6 +852,7 @@
F18AE75F1831D13FF53A8CCC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_PaintElementRectangle.h"; path = "../../Source/ComponentEditor/paintelements/jucer_PaintElementRectangle.h"; sourceTree = "SOURCE_ROOT"; };
F1974B6EDBA502BC36671D7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; };
F1BEFCAF20EA392DE762B876 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; };
+ F2403808C453833EB6F5BA9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
F2499004037A1C1D8FEE1FD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
F2759373EAAC820F17409939 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; };
F2C7DE572E29A3D62EFB40F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -1791,7 +1795,11 @@
318F4AB64A5D4068CC1C4F29,
09349C0C8300CA414AAE93A0,
6F8A53EDF09094C83DE4D111,
- 4076F14FE0016A4DA9087771 ); name = "code_editor"; sourceTree = ""; };
+ 4076F14FE0016A4DA9087771,
+ 67DDFE829CDFDF93E712F9A3,
+ F2403808C453833EB6F5BA9F,
+ 1F73C3482D9ABB95A454B1B7,
+ 6CE8BC3B2D8B5EA0F4C793AF ); name = "code_editor"; sourceTree = ""; };
1D09D8A2B803860D8927C366 = { isa = PBXGroup; children = (
3419904525A3F1FF0CC50687,
BA95268EEE80F9509EC1F76F ); name = documents; sourceTree = ""; };
diff --git a/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj b/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj
index 1503927a71..62cc0cd8b4 100644
--- a/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj
+++ b/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj
@@ -3596,6 +3596,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj b/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj
index e15b43af66..23d6a4fee3 100644
--- a/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj
+++ b/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj
@@ -3596,6 +3596,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj
index f883ef166d..73e1ca50e2 100644
--- a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj
+++ b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj
@@ -961,6 +961,12 @@
true
+
+ true
+
+
+ true
+
true
@@ -1452,6 +1458,8 @@
+
+
diff --git a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters
index 8f7cb49d36..86b6762f9f 100644
--- a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters
+++ b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters
@@ -1210,6 +1210,12 @@
Juce Modules\juce_gui_extra\code_editor
+
+ Juce Modules\juce_gui_extra\code_editor
+
+
+ Juce Modules\juce_gui_extra\code_editor
+
Juce Modules\juce_gui_extra\documents
@@ -2595,6 +2601,12 @@
Juce Modules\juce_gui_extra\code_editor
+
+ Juce Modules\juce_gui_extra\code_editor
+
+
+ Juce Modules\juce_gui_extra\code_editor
+
Juce Modules\juce_gui_extra\documents
diff --git a/extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj b/extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj
index 858ed9834a..b453d11d02 100644
--- a/extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj
+++ b/extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj
@@ -967,6 +967,12 @@
true
+
+ true
+
+
+ true
+
true
@@ -1458,6 +1464,8 @@
+
+
diff --git a/extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj.filters b/extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj.filters
index 8f7cb49d36..86b6762f9f 100644
--- a/extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj.filters
+++ b/extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj.filters
@@ -1210,6 +1210,12 @@
Juce Modules\juce_gui_extra\code_editor
+
+ Juce Modules\juce_gui_extra\code_editor
+
+
+ Juce Modules\juce_gui_extra\code_editor
+
Juce Modules\juce_gui_extra\documents
@@ -2595,6 +2601,12 @@
Juce Modules\juce_gui_extra\code_editor
+
+ Juce Modules\juce_gui_extra\code_editor
+
+
+ Juce Modules\juce_gui_extra\code_editor
+
Juce Modules\juce_gui_extra\documents
diff --git a/extras/Introjucer/Builds/VisualStudio2013/The Introjucer.vcxproj b/extras/Introjucer/Builds/VisualStudio2013/The Introjucer.vcxproj
index 54ccdb0fff..0bd769f0de 100644
--- a/extras/Introjucer/Builds/VisualStudio2013/The Introjucer.vcxproj
+++ b/extras/Introjucer/Builds/VisualStudio2013/The Introjucer.vcxproj
@@ -967,6 +967,12 @@
true
+
+ true
+
+
+ true
+
true
@@ -1458,6 +1464,8 @@
+
+
diff --git a/extras/Introjucer/Builds/VisualStudio2013/The Introjucer.vcxproj.filters b/extras/Introjucer/Builds/VisualStudio2013/The Introjucer.vcxproj.filters
index 9fba265306..c70f2e045b 100644
--- a/extras/Introjucer/Builds/VisualStudio2013/The Introjucer.vcxproj.filters
+++ b/extras/Introjucer/Builds/VisualStudio2013/The Introjucer.vcxproj.filters
@@ -1210,6 +1210,12 @@
Juce Modules\juce_gui_extra\code_editor
+
+ Juce Modules\juce_gui_extra\code_editor
+
+
+ Juce Modules\juce_gui_extra\code_editor
+
Juce Modules\juce_gui_extra\documents
@@ -2595,6 +2601,12 @@
Juce Modules\juce_gui_extra\code_editor
+
+ Juce Modules\juce_gui_extra\code_editor
+
+
+ Juce Modules\juce_gui_extra\code_editor
+
Juce Modules\juce_gui_extra\documents
diff --git a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp
index a96c4fd451..5eb474a92c 100644
--- a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp
+++ b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp
@@ -117,10 +117,33 @@ void SourceCodeDocument::applyLastState (CodeEditorComponent& editor) const
SourceCodeEditor::SourceCodeEditor (OpenDocumentManager::Document* doc, CodeDocument& codeDocument)
: DocumentEditorComponent (doc)
{
- if (document->getFile().hasFileExtension (sourceOrHeaderFileExtensions))
- setEditor (new CppCodeEditorComponent (document->getFile(), codeDocument));
+ GenericCodeEditorComponent* ed = nullptr;
+ const File file (document->getFile());
+
+ if (file.hasFileExtension (sourceOrHeaderFileExtensions))
+ {
+ ed = new CppCodeEditorComponent (file, codeDocument);
+ }
else
- setEditor (new GenericCodeEditorComponent (document->getFile(), codeDocument, nullptr));
+ {
+ CodeTokeniser* tokeniser = nullptr;
+
+ if (file.hasFileExtension ("xml;svg"))
+ {
+ static XmlTokeniser xmlTokeniser;
+ tokeniser = &xmlTokeniser;
+ }
+
+ if (file.hasFileExtension ("lua"))
+ {
+ static LuaTokeniser luaTokeniser;
+ tokeniser = &luaTokeniser;
+ }
+
+ ed = new GenericCodeEditorComponent (file, codeDocument, tokeniser);
+ }
+
+ setEditor (ed);
}
SourceCodeEditor::SourceCodeEditor (OpenDocumentManager::Document* doc, CodeEditorComponent* ed)
diff --git a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h
index aa8d1b524b..dee679ddb8 100644
--- a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h
+++ b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h
@@ -211,7 +211,7 @@ private:
class CppCodeEditorComponent : public GenericCodeEditorComponent
{
public:
- CppCodeEditorComponent (const File& file, CodeDocument&);
+ CppCodeEditorComponent (const File&, CodeDocument&);
~CppCodeEditorComponent();
void addPopupMenuItems (PopupMenu&, const MouseEvent*) override;
diff --git a/extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj b/extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj
index cb5d126006..e1e7e70f00 100644
--- a/extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj
+++ b/extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj
@@ -435,6 +435,7 @@
6A2DA68C812379D32A014951 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; };
6A3C840E1B6CD34CA8C8DB4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; };
6A593B7ADFAC09D547EA809D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewBase.cpp; sourceTree = "DEVELOPER_DIR"; };
+ 6A7D750E4C8BF2580F262F76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; };
6AAAA6BD093B9CCD11BC26EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
6B5564F5E6A5B70B890C146D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
6C4AD1B0CA254C16E38609DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; };
@@ -617,6 +618,7 @@
9C920EACAC7281B584F2F09A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; };
9C9DEB7FB75C42C4F47AF999 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RTAS_DigiCode1.cpp"; path = "../../../../modules/juce_audio_plugin_client/RTAS/juce_RTAS_DigiCode1.cpp"; sourceTree = "SOURCE_ROOT"; };
9DDEAA3563BE5304457DBE4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 9E4E6003EBB2B55E8D94C35A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
9E6559DEE37E348F13A65CBC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; };
9E9B102253DEDFE00673F715 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; };
9EA3C2BA09FEBDA65F4495D3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; };
@@ -655,6 +657,7 @@
AAA122282581E6425F5D9405 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
AB0E8347C9AC7E4A861C0252 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
AB7726FF34DB2E7FA75ECC19 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
+ AB7BCFBC4B2CB784F57A0FBC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUInputFormatConverter.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUInputFormatConverter.h; sourceTree = "DEVELOPER_DIR"; };
AB87317D90A518C8A886EE9D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceSelectorComponent.h"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.h"; sourceTree = "SOURCE_ROOT"; };
ABC394D5E03B690404E80E1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; };
ABCB715245090A15092108D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; };
@@ -680,7 +683,6 @@
AA012A21BE3049C205D4A44A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; };
AAEC41BFA57E45EBF94ED3C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; };
AB10327C69AAE4AACCFC81EB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; };
- AB7BCFBC4B2CB784F57A0FBC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUInputFormatConverter.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUInputFormatConverter.h; sourceTree = "DEVELOPER_DIR"; };
AB9AD07EF899B75AC4CF01DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAMutex.h; path = Extras/CoreAudio/PublicUtility/CAMutex.h; sourceTree = "DEVELOPER_DIR"; };
ACC4E765AD4BF1D025FB4E83 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; };
ACD46CD092A8EC640448BD70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -909,6 +911,7 @@
F3102DB72C0E15DD22D05E8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; };
F452F979D93A99CF6476B50A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; };
F476BAB4502F22EA32E6F92F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; };
+ F4CF3DF6C79D1E7C269F7B25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; };
F4CF735CF65D41BF28D3030A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; };
F50B19A063B232595410FBB5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; };
F596A54E653F32C4C3A41F5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -948,6 +951,7 @@
FCEC950D217FEEF2948508C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceSelectorComponent.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
FD7B547577F66BA2F48FF3DA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; };
FE0B9D0C5E9B31DF6B7E3616 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; };
+ FE2F4EB06C194B80ADF38D32 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
FE3BB21C1A01E682BE4157F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; };
FE7BF03E997B68345D812C18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; };
FEDF58985DBA59E34FC99B20 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V3.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -1889,7 +1893,11 @@
92EC4C0A72F7312F1FE85B2D,
EA339FA929EF8AE42A8CE5BF,
39AD51EB5E59758E6FC4F313,
- 0C4BA1D16AD18E7FD8D242EE ); name = "code_editor"; sourceTree = ""; };
+ 0C4BA1D16AD18E7FD8D242EE,
+ F4CF3DF6C79D1E7C269F7B25,
+ FE2F4EB06C194B80ADF38D32,
+ 6A7D750E4C8BF2580F262F76,
+ 9E4E6003EBB2B55E8D94C35A ); name = "code_editor"; sourceTree = ""; };
F430D956469E7E4528571CD8 = { isa = PBXGroup; children = (
D6EB2F9DDC938830D6CA84CB,
2168ED9FD91B4475612D7785 ); name = documents; sourceTree = ""; };
diff --git a/extras/audio plugin demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj b/extras/audio plugin demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj
index 8d2c918a3f..966aecd3ac 100644
--- a/extras/audio plugin demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj
+++ b/extras/audio plugin demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj
@@ -4119,6 +4119,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extras/audio plugin demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj b/extras/audio plugin demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj
index 6fb250a46f..07819428a5 100644
--- a/extras/audio plugin demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj
+++ b/extras/audio plugin demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj
@@ -4119,6 +4119,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj b/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj
index 3ca2c6cc5e..7d258e2c4e 100644
--- a/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj
+++ b/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj
@@ -340,6 +340,7 @@
52A6B25C0C36615B02DFC21B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IPAddress.h"; path = "../../../../modules/juce_core/network/juce_IPAddress.h"; sourceTree = "SOURCE_ROOT"; };
52DB8DAF68DE34E91764489E = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
536EA9AE6C2F76FE0AEB5958 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 53B52EB203A8998155FA7D8F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
54737D917B4E0D544E7E652C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; };
5504DAC58359F306457FAE4F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; };
559A2F8A7A121471D8026D81 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; };
@@ -433,6 +434,7 @@
71B15FFEFFD5B84155C239B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; };
71CBC1D0C969794AF761074A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; };
7212B20D3521AA3B9C1F544F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../../../modules/juce_core/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 723E49F4AD3A98B385B05D7D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; };
72DD0054E547FFCC4D9F4700 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; };
72FA5B162110FF64A6A0C3C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../modules/juce_audio_devices/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; };
7340BFA6BC995EDB51DB070D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; };
@@ -445,6 +447,7 @@
75F290D7B7C53C03DC653FC5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; };
75FCAA8D3DF24813844D6552 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; };
7646DD91B282525F32FB8518 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 76B5967943C389C01379E87F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
76E4D8FCD61BCB53103C63C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; };
76EFECDC45A0440B27ACF79F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
7719E4B288F72A9B103DBA04 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -860,6 +863,7 @@
EB0AAC967E485ED8F3397E4F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; };
EB483815A529FAF11907FC6F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; };
EB7A04549EB9E1B5BF31647D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V1.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h"; sourceTree = "SOURCE_ROOT"; };
+ EC36AAB9D50CF15ACA50AB3B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; };
EC8A477FEDA0FEDA62A7E0C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; };
ECF521248AFFE80858112E0B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; };
ED1CF17303ACA9101DBF7D18 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
@@ -1847,7 +1851,11 @@
F38F7E5ADE3BB633A529778A,
3E3FCE89FD34F370753351B7,
FC99246683913F59070B7966,
- E43B7009E2DF76E52C806EFA ); name = "code_editor"; sourceTree = ""; };
+ E43B7009E2DF76E52C806EFA,
+ EC36AAB9D50CF15ACA50AB3B,
+ 76B5967943C389C01379E87F,
+ 723E49F4AD3A98B385B05D7D,
+ 53B52EB203A8998155FA7D8F ); name = "code_editor"; sourceTree = ""; };
1585F98304BC113EA3FBA591 = { isa = PBXGroup; children = (
C322BCF5FF89EDA223FD1F9F,
1959937B4B2FC11B9AC53566 ); name = documents; sourceTree = ""; };
diff --git a/extras/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj b/extras/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj
index a709adc219..a4671a8a37 100644
--- a/extras/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj
+++ b/extras/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj
@@ -1129,6 +1129,12 @@
true
+
+ true
+
+
+ true
+
true
@@ -1630,6 +1636,8 @@
+
+
diff --git a/extras/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj.filters b/extras/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj.filters
index 17d8abebcf..2916bdf535 100644
--- a/extras/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj.filters
+++ b/extras/audio plugin host/Builds/VisualStudio2010/Plugin Host.vcxproj.filters
@@ -1372,6 +1372,12 @@
Juce Modules\juce_gui_extra\code_editor
+
+ Juce Modules\juce_gui_extra\code_editor
+
+
+ Juce Modules\juce_gui_extra\code_editor
+
Juce Modules\juce_gui_extra\documents
@@ -2721,6 +2727,12 @@
Juce Modules\juce_gui_extra\code_editor
+
+ Juce Modules\juce_gui_extra\code_editor
+
+
+ Juce Modules\juce_gui_extra\code_editor
+
Juce Modules\juce_gui_extra\documents
diff --git a/extras/example projects/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj b/extras/example projects/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj
index 9ef0a8295c..c6cd006654 100644
--- a/extras/example projects/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj
+++ b/extras/example projects/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj
@@ -44,6 +44,7 @@
07B9E81DB1A4F13B7FF54FD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; };
07D2814B9A8E25F3269B675D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; };
081B7C7D1B9CB7F72A193DEF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; };
+ 08603D6A5C7D8DDDA1AE4DA3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; };
08C449B44C89E728A89013F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; };
08C730BD0BD4755B55E99BAC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; };
09A3E1630BFC67C63AFEDE3A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; };
@@ -200,6 +201,7 @@
46393FE4FE6D8683444CD1A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; };
46A2A110922BAD26FB4298C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; };
46BD0A7BCF4C608DB94285EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 47051A94D9B45B21017A867F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
47B6D5118C5FE2D6A452A487 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; };
47BB119E08A7A1A468564B9D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; };
47D12441679F0062EB7C96AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; };
@@ -484,6 +486,7 @@
B86F88CBFF4E577BCCF8D620 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; };
B8E7EC57DAC2DE65CFEC21E0 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
B909BE26785040CF82533E80 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; };
+ B93ACCE3F29334143039311C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; };
B9BC9B5BC286D2C9356DDF47 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; };
BA4ECA72D6EADF487141684A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; };
BA5EF35337DDE160BCA69BE2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; };
@@ -557,6 +560,7 @@
D624E1F31ADE1C718E97A3C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; };
D6BC0BD9CD8133D8634FFAB7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
D711FA513F8E9F696570DBB5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; };
+ D735FA88C8465C02D4217A39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
D882D6E64CEFE8FFE435EF40 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; };
DA64460418AFD14930104FEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; };
DA8CFA399CD27524DB69AD78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -1353,7 +1357,11 @@
C7D88B24A0DC64FDD1EE28FD,
937C0CF5DC3FFF6161D7776D,
7BB92A7F312D9DA6AA53FAC3,
- 744475CFFBA91FDA03DDF659 ); name = "code_editor"; sourceTree = ""; };
+ 744475CFFBA91FDA03DDF659,
+ 08603D6A5C7D8DDDA1AE4DA3,
+ 47051A94D9B45B21017A867F,
+ B93ACCE3F29334143039311C,
+ D735FA88C8465C02D4217A39 ); name = "code_editor"; sourceTree = ""; };
7A7F0DF75E9B01FE9A9470B2 = { isa = PBXGroup; children = (
1667021AB391F5D9B82B186D,
2CBD98BBA9322461A3ED0D05 ); name = documents; sourceTree = ""; };
diff --git a/extras/example projects/Builds/VisualStudio2005/HelloWorld.vcproj b/extras/example projects/Builds/VisualStudio2005/HelloWorld.vcproj
index a715d9d22a..8dd9e31009 100644
--- a/extras/example projects/Builds/VisualStudio2005/HelloWorld.vcproj
+++ b/extras/example projects/Builds/VisualStudio2005/HelloWorld.vcproj
@@ -3134,6 +3134,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extras/example projects/Builds/VisualStudio2008/HelloWorld.vcproj b/extras/example projects/Builds/VisualStudio2008/HelloWorld.vcproj
index 6154e7b31f..885414210b 100644
--- a/extras/example projects/Builds/VisualStudio2008/HelloWorld.vcproj
+++ b/extras/example projects/Builds/VisualStudio2008/HelloWorld.vcproj
@@ -3134,6 +3134,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extras/example projects/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj b/extras/example projects/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj
index 3aafc90b2e..91d012d602 100644
--- a/extras/example projects/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj
+++ b/extras/example projects/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj
@@ -44,6 +44,7 @@
07D2814B9A8E25F3269B675D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; };
07D50D8347ED27B84F822D6C = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
081B7C7D1B9CB7F72A193DEF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; };
+ 08603D6A5C7D8DDDA1AE4DA3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; };
08C449B44C89E728A89013F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; };
08C730BD0BD4755B55E99BAC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; };
09A3E1630BFC67C63AFEDE3A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; };
@@ -198,6 +199,7 @@
46393FE4FE6D8683444CD1A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; };
46A2A110922BAD26FB4298C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; };
46BD0A7BCF4C608DB94285EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; };
+ 47051A94D9B45B21017A867F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
47B6D5118C5FE2D6A452A487 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; };
47BB119E08A7A1A468564B9D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; };
47D12441679F0062EB7C96AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; };
@@ -481,6 +483,7 @@
B86F88CBFF4E577BCCF8D620 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; };
B8E7EC57DAC2DE65CFEC21E0 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
B909BE26785040CF82533E80 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; };
+ B93ACCE3F29334143039311C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; };
B9BC9B5BC286D2C9356DDF47 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; };
BA4ECA72D6EADF487141684A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; };
BA5EF35337DDE160BCA69BE2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; };
@@ -553,6 +556,7 @@
D624E1F31ADE1C718E97A3C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; };
D6BC0BD9CD8133D8634FFAB7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
D711FA513F8E9F696570DBB5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; };
+ D735FA88C8465C02D4217A39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; };
D882D6E64CEFE8FFE435EF40 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; };
DA64460418AFD14930104FEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; };
DA8CFA399CD27524DB69AD78 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -1351,7 +1355,11 @@
C7D88B24A0DC64FDD1EE28FD,
937C0CF5DC3FFF6161D7776D,
7BB92A7F312D9DA6AA53FAC3,
- 744475CFFBA91FDA03DDF659 ); name = "code_editor"; sourceTree = ""; };
+ 744475CFFBA91FDA03DDF659,
+ 08603D6A5C7D8DDDA1AE4DA3,
+ 47051A94D9B45B21017A867F,
+ B93ACCE3F29334143039311C,
+ D735FA88C8465C02D4217A39 ); name = "code_editor"; sourceTree = ""; };
7A7F0DF75E9B01FE9A9470B2 = { isa = PBXGroup; children = (
1667021AB391F5D9B82B186D,
2CBD98BBA9322461A3ED0D05 ); name = documents; sourceTree = ""; };
diff --git a/extras/windows dll/Builds/VisualStudio2008/juce_dll.vcproj b/extras/windows dll/Builds/VisualStudio2008/juce_dll.vcproj
index 2f90983091..56ef916f35 100644
--- a/extras/windows dll/Builds/VisualStudio2008/juce_dll.vcproj
+++ b/extras/windows dll/Builds/VisualStudio2008/juce_dll.vcproj
@@ -4124,6 +4124,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp
index fbd0e8a28f..987c42f763 100644
--- a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp
+++ b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp
@@ -2065,7 +2065,7 @@ private:
int numInputAudioBusses, numOutputAudioBusses;
//==============================================================================
- template
+ template
static void appendStateFrom (XmlElement& head, ComSmartPtr& object, const String& identifier)
{
if (object != nullptr)
diff --git a/modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h b/modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h
index 29605122cd..3c4f1d23f5 100644
--- a/modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h
+++ b/modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h
@@ -100,7 +100,7 @@ struct CppTokeniserFunctions
return false;
}
- template
+ template
static int parseIdentifier (Iterator& source) noexcept
{
int tokenLength = 0;
@@ -128,7 +128,7 @@ struct CppTokeniserFunctions
return CPlusPlusCodeTokeniser::tokenType_identifier;
}
- template
+ template
static bool skipNumberSuffix (Iterator& source)
{
const juce_wchar c = source.peekNextChar();
@@ -148,7 +148,7 @@ struct CppTokeniserFunctions
|| (c >= 'A' && c <= 'F');
}
- template
+ template
static bool parseHexLiteral (Iterator& source) noexcept
{
if (source.peekNextChar() == '-')
@@ -179,7 +179,7 @@ struct CppTokeniserFunctions
return c >= '0' && c <= '7';
}
- template
+ template
static bool parseOctalLiteral (Iterator& source) noexcept
{
if (source.peekNextChar() == '-')
@@ -202,7 +202,7 @@ struct CppTokeniserFunctions
return c >= '0' && c <= '9';
}
- template
+ template
static bool parseDecimalLiteral (Iterator& source) noexcept
{
if (source.peekNextChar() == '-')
@@ -221,7 +221,7 @@ struct CppTokeniserFunctions
return skipNumberSuffix (source);
}
- template
+ template
static bool parseFloatLiteral (Iterator& source) noexcept
{
if (source.peekNextChar() == '-')
@@ -282,7 +282,7 @@ struct CppTokeniserFunctions
return true;
}
- template
+ template
static int parseNumber (Iterator& source)
{
const Iterator original (source);
@@ -302,7 +302,7 @@ struct CppTokeniserFunctions
return CPlusPlusCodeTokeniser::tokenType_error;
}
- template
+ template
static void skipQuotedString (Iterator& source) noexcept
{
const juce_wchar quote = source.nextChar();
@@ -319,7 +319,7 @@ struct CppTokeniserFunctions
}
}
- template
+ template
static void skipComment (Iterator& source) noexcept
{
bool lastWasStar = false;
@@ -335,7 +335,7 @@ struct CppTokeniserFunctions
}
}
- template
+ template
static void skipPreprocessorLine (Iterator& source) noexcept
{
bool lastWasBackslash = false;
@@ -378,14 +378,14 @@ struct CppTokeniserFunctions
}
}
- template
+ template
static void skipIfNextCharMatches (Iterator& source, const juce_wchar c) noexcept
{
if (source.peekNextChar() == c)
source.skip();
}
- template
+ template
static void skipIfNextCharMatches (Iterator& source, const juce_wchar c1, const juce_wchar c2) noexcept
{
const juce_wchar c = source.peekNextChar();
@@ -394,10 +394,9 @@ struct CppTokeniserFunctions
source.skip();
}
- template
+ template
static int readNextToken (Iterator& source)
{
- int result = CPlusPlusCodeTokeniser::tokenType_error;
source.skipWhitespace();
const juce_wchar firstChar = source.peekNextChar();
@@ -405,135 +404,116 @@ struct CppTokeniserFunctions
switch (firstChar)
{
case 0:
- source.skip();
break;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
case '.':
- result = parseNumber (source);
+ {
+ int result = parseNumber (source);
if (result == CPlusPlusCodeTokeniser::tokenType_error)
{
source.skip();
if (firstChar == '.')
- result = CPlusPlusCodeTokeniser::tokenType_punctuation;
+ return CPlusPlusCodeTokeniser::tokenType_punctuation;
}
- break;
+ return result;
+ }
case ',':
case ';':
case ':':
source.skip();
- result = CPlusPlusCodeTokeniser::tokenType_punctuation;
- break;
+ return CPlusPlusCodeTokeniser::tokenType_punctuation;
- case '(':
- case ')':
- case '{':
- case '}':
- case '[':
- case ']':
+ case '(': case ')':
+ case '{': case '}':
+ case '[': case ']':
source.skip();
- result = CPlusPlusCodeTokeniser::tokenType_bracket;
- break;
+ return CPlusPlusCodeTokeniser::tokenType_bracket;
case '"':
case '\'':
skipQuotedString (source);
- result = CPlusPlusCodeTokeniser::tokenType_string;
- break;
+ return CPlusPlusCodeTokeniser::tokenType_string;
case '+':
- result = CPlusPlusCodeTokeniser::tokenType_operator;
source.skip();
skipIfNextCharMatches (source, '+', '=');
- break;
+ return CPlusPlusCodeTokeniser::tokenType_operator;
case '-':
+ {
source.skip();
- result = parseNumber (source);
+ int result = parseNumber (source);
if (result == CPlusPlusCodeTokeniser::tokenType_error)
{
- result = CPlusPlusCodeTokeniser::tokenType_operator;
skipIfNextCharMatches (source, '-', '=');
+ return CPlusPlusCodeTokeniser::tokenType_operator;
}
- break;
- case '*':
- case '%':
- case '=':
- case '!':
- result = CPlusPlusCodeTokeniser::tokenType_operator;
+ return result;
+ }
+
+ case '*': case '%':
+ case '=': case '!':
source.skip();
skipIfNextCharMatches (source, '=');
- break;
+ return CPlusPlusCodeTokeniser::tokenType_operator;
case '/':
- result = CPlusPlusCodeTokeniser::tokenType_operator;
+ {
source.skip();
+ juce_wchar nextChar = source.peekNextChar();
- if (source.peekNextChar() == '=')
+ if (nextChar == '/')
{
- source.skip();
- }
- else if (source.peekNextChar() == '/')
- {
- result = CPlusPlusCodeTokeniser::tokenType_comment;
source.skipToEndOfLine();
+ return CPlusPlusCodeTokeniser::tokenType_comment;
}
- else if (source.peekNextChar() == '*')
+
+ if (nextChar == '*')
{
source.skip();
- result = CPlusPlusCodeTokeniser::tokenType_comment;
skipComment (source);
+ return CPlusPlusCodeTokeniser::tokenType_comment;
}
- break;
+ if (nextChar == '=')
+ source.skip();
+
+ return CPlusPlusCodeTokeniser::tokenType_operator;
+ }
case '?':
case '~':
source.skip();
- result = CPlusPlusCodeTokeniser::tokenType_operator;
- break;
+ return CPlusPlusCodeTokeniser::tokenType_operator;
- case '<':
- case '>':
- case '|':
- case '&':
- case '^':
+ case '<': case '>':
+ case '|': case '&': case '^':
source.skip();
- result = CPlusPlusCodeTokeniser::tokenType_operator;
skipIfNextCharMatches (source, firstChar);
skipIfNextCharMatches (source, '=');
- break;
+ return CPlusPlusCodeTokeniser::tokenType_operator;
case '#':
- result = CPlusPlusCodeTokeniser::tokenType_preprocessor;
skipPreprocessorLine (source);
- break;
+ return CPlusPlusCodeTokeniser::tokenType_preprocessor;
default:
if (isIdentifierStart (firstChar))
- result = parseIdentifier (source);
- else
- source.skip();
+ return parseIdentifier (source);
+ source.skip();
break;
}
- return result;
+ return CPlusPlusCodeTokeniser::tokenType_error;
}
/** A class that can be passed to the CppTokeniserFunctions functions in order to
diff --git a/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp b/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp
new file mode 100644
index 0000000000..a58b2bdfd9
--- /dev/null
+++ b/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp
@@ -0,0 +1,233 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE library.
+ Copyright (c) 2013 - Raw Material Software Ltd.
+
+ Permission is granted to use this software under the terms of either:
+ a) the GPL v2 (or any later version)
+ b) the Affero GPL v3
+
+ Details of these licenses can be found at: www.gnu.org/licenses
+
+ JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ ------------------------------------------------------------------------------
+
+ To release a closed-source product which uses JUCE, commercial licenses are
+ available: visit www.juce.com for more information.
+
+ ==============================================================================
+*/
+
+struct LuaTokeniserFunctions
+{
+ static bool isReservedKeyword (String::CharPointerType token, const int tokenLength) noexcept
+ {
+ static const char* const keywords2Char[] =
+ { "if", "or", "in", "do", nullptr };
+
+ static const char* const keywords3Char[] =
+ { "and", "end", "for", "nil", "not", nullptr };
+
+ static const char* const keywords4Char[] =
+ { "then", "true", "else", nullptr };
+
+ static const char* const keywords5Char[] =
+ { "false", "local", "until", "while", "break", nullptr };
+
+ static const char* const keywords6Char[] =
+ { "repeat", "return", "elseif", nullptr};
+
+ static const char* const keywordsOther[] =
+ { "function", "@interface", "@end", "@synthesize", "@dynamic", "@public",
+ "@private", "@property", "@protected", "@class", nullptr };
+
+ const char* const* k;
+
+ switch (tokenLength)
+ {
+ case 2: k = keywords2Char; break;
+ case 3: k = keywords3Char; break;
+ case 4: k = keywords4Char; break;
+ case 5: k = keywords5Char; break;
+ case 6: k = keywords6Char; break;
+
+ default:
+ if (tokenLength < 2 || tokenLength > 16)
+ return false;
+
+ k = keywordsOther;
+ break;
+ }
+
+ for (int i = 0; k[i] != 0; ++i)
+ if (token.compare (CharPointer_ASCII (k[i])) == 0)
+ return true;
+
+ return false;
+ }
+
+ template
+ static int parseIdentifier (Iterator& source) noexcept
+ {
+ int tokenLength = 0;
+ String::CharPointerType::CharType possibleIdentifier [100];
+ String::CharPointerType possible (possibleIdentifier);
+
+ while (CppTokeniserFunctions::isIdentifierBody (source.peekNextChar()))
+ {
+ const juce_wchar c = source.nextChar();
+
+ if (tokenLength < 20)
+ possible.write (c);
+
+ ++tokenLength;
+ }
+
+ if (tokenLength > 1 && tokenLength <= 16)
+ {
+ possible.writeNull();
+
+ if (isReservedKeyword (String::CharPointerType (possibleIdentifier), tokenLength))
+ return LuaTokeniser::tokenType_keyword;
+ }
+
+ return LuaTokeniser::tokenType_identifier;
+ }
+
+ template
+ static int readNextToken (Iterator& source)
+ {
+ source.skipWhitespace();
+
+ const juce_wchar firstChar = source.peekNextChar();
+
+ switch (firstChar)
+ {
+ case 0:
+ break;
+
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case '.':
+ {
+ int result = CppTokeniserFunctions::parseNumber (source);
+
+ if (result == LuaTokeniser::tokenType_error)
+ {
+ source.skip();
+
+ if (firstChar == '.')
+ return LuaTokeniser::tokenType_punctuation;
+ }
+
+ return result;
+ }
+
+ case ',':
+ case ';':
+ case ':':
+ source.skip();
+ return LuaTokeniser::tokenType_punctuation;
+
+ case '(': case ')':
+ case '{': case '}':
+ case '[': case ']':
+ source.skip();
+ return LuaTokeniser::tokenType_bracket;
+
+ case '"':
+ case '\'':
+ CppTokeniserFunctions::skipQuotedString (source);
+ return LuaTokeniser::tokenType_string;
+
+ case '+':
+ source.skip();
+ CppTokeniserFunctions::skipIfNextCharMatches (source, '+', '=');
+ return LuaTokeniser::tokenType_operator;
+
+ case '-':
+ {
+ source.skip();
+ int result = CppTokeniserFunctions::parseNumber (source);
+
+ if (source.peekNextChar() == '-')
+ {
+ source.skipToEndOfLine();
+ return LuaTokeniser::tokenType_comment;
+ }
+
+ if (result == LuaTokeniser::tokenType_error)
+ {
+ CppTokeniserFunctions::skipIfNextCharMatches (source, '-', '=');
+ return LuaTokeniser::tokenType_operator;
+ }
+
+ return result;
+ }
+
+ case '*': case '%':
+ case '=': case '!':
+ source.skip();
+ CppTokeniserFunctions::skipIfNextCharMatches (source, '=');
+ return LuaTokeniser::tokenType_operator;
+
+ case '?':
+ case '~':
+ source.skip();
+ return LuaTokeniser::tokenType_operator;
+
+ case '<': case '>':
+ case '|': case '&': case '^':
+ source.skip();
+ CppTokeniserFunctions::skipIfNextCharMatches (source, firstChar);
+ CppTokeniserFunctions::skipIfNextCharMatches (source, '=');
+ return LuaTokeniser::tokenType_operator;
+
+ default:
+ if (CppTokeniserFunctions::isIdentifierStart (firstChar))
+ return parseIdentifier (source);
+
+ source.skip();
+ break;
+ }
+
+ return LuaTokeniser::tokenType_error;
+ }
+};
+
+//==============================================================================
+LuaTokeniser::LuaTokeniser() {}
+LuaTokeniser::~LuaTokeniser() {}
+
+int LuaTokeniser::readNextToken (CodeDocument::Iterator& source)
+{
+ return LuaTokeniserFunctions::readNextToken (source);
+}
+
+CodeEditorComponent::ColourScheme LuaTokeniser::getDefaultColourScheme()
+{
+ static const CodeEditorComponent::ColourScheme::TokenType types[] =
+ {
+ { "Error", Colour (0xffcc0000) },
+ { "Comment", Colour (0xff3c3c3c) },
+ { "Keyword", Colour (0xff0000cc) },
+ { "Operator", Colour (0xff225500) },
+ { "Identifier", Colour (0xff000000) },
+ { "Integer", Colour (0xff880000) },
+ { "Float", Colour (0xff885500) },
+ { "String", Colour (0xff990099) },
+ { "Bracket", Colour (0xff000055) },
+ { "Punctuation", Colour (0xff004400) }
+ };
+
+ CodeEditorComponent::ColourScheme cs;
+
+ for (unsigned int i = 0; i < sizeof (types) / sizeof (types[0]); ++i) // (NB: numElementsInArray doesn't work here in GCC4.2)
+ cs.set (types[i].name, types[i].colour);
+
+ return cs;
+}
diff --git a/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h b/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h
new file mode 100644
index 0000000000..0cee34b8e1
--- /dev/null
+++ b/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h
@@ -0,0 +1,63 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE library.
+ Copyright (c) 2013 - Raw Material Software Ltd.
+
+ Permission is granted to use this software under the terms of either:
+ a) the GPL v2 (or any later version)
+ b) the Affero GPL v3
+
+ Details of these licenses can be found at: www.gnu.org/licenses
+
+ JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ ------------------------------------------------------------------------------
+
+ To release a closed-source product which uses JUCE, commercial licenses are
+ available: visit www.juce.com for more information.
+
+ ==============================================================================
+*/
+
+#ifndef JUCE_LUACODETOKENISER_H_INCLUDED
+#define JUCE_LUACODETOKENISER_H_INCLUDED
+
+
+//==============================================================================
+/**
+*/
+class JUCE_API LuaTokeniser : public CodeTokeniser
+{
+public:
+ //==============================================================================
+ LuaTokeniser();
+ ~LuaTokeniser();
+
+ //==============================================================================
+ int readNextToken (CodeDocument::Iterator&) override;
+ CodeEditorComponent::ColourScheme getDefaultColourScheme() override;
+
+ /** The token values returned by this tokeniser. */
+ enum TokenType
+ {
+ tokenType_error = 0,
+ tokenType_comment,
+ tokenType_keyword,
+ tokenType_operator,
+ tokenType_identifier,
+ tokenType_integer,
+ tokenType_float,
+ tokenType_string,
+ tokenType_bracket,
+ tokenType_punctuation
+ };
+
+private:
+ //==============================================================================
+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LuaTokeniser)
+};
+
+#endif // JUCE_LUACODETOKENISER_H_INCLUDED
diff --git a/modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp b/modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp
new file mode 100644
index 0000000000..ecaba96c1b
--- /dev/null
+++ b/modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp
@@ -0,0 +1,166 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE library.
+ Copyright (c) 2013 - Raw Material Software Ltd.
+
+ Permission is granted to use this software under the terms of either:
+ a) the GPL v2 (or any later version)
+ b) the Affero GPL v3
+
+ Details of these licenses can be found at: www.gnu.org/licenses
+
+ JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ ------------------------------------------------------------------------------
+
+ To release a closed-source product which uses JUCE, commercial licenses are
+ available: visit www.juce.com for more information.
+
+ ==============================================================================
+*/
+
+XmlTokeniser::XmlTokeniser() {}
+XmlTokeniser::~XmlTokeniser() {}
+
+CodeEditorComponent::ColourScheme XmlTokeniser::getDefaultColourScheme()
+{
+ struct Type
+ {
+ const char* name;
+ uint32 colour;
+ };
+
+ const Type types[] =
+ {
+ { "Error", 0xffcc0000 },
+ { "Comment", 0xff00aa00 },
+ { "Keyword", 0xff0000cc },
+ { "Operator", 0xff225500 },
+ { "Identifier", 0xff000000 },
+ { "String", 0xff990099 },
+ { "Bracket", 0xff000055 },
+ { "Punctuation", 0xff004400 },
+ { "Preprocessor Text", 0xff660000 }
+ };
+
+ CodeEditorComponent::ColourScheme cs;
+
+ for (unsigned int i = 0; i < sizeof (types) / sizeof (types[0]); ++i) // (NB: numElementsInArray doesn't work here in GCC4.2)
+ cs.set (types[i].name, Colour (types[i].colour));
+
+ return cs;
+};
+
+template
+static void skipToEndOfXmlDTD (Iterator& source) noexcept
+{
+ bool lastWasQuestionMark = false;
+
+ for (;;)
+ {
+ const juce_wchar c = source.nextChar();
+
+ if (c == 0 || (c == '>' && lastWasQuestionMark))
+ break;
+
+ lastWasQuestionMark = (c == '?');
+ }
+}
+
+template
+static void skipToEndOfXmlComment (Iterator& source) noexcept
+{
+ juce_wchar last[2] = { 0 };
+
+ for (;;)
+ {
+ const juce_wchar c = source.nextChar();
+
+ if (c == 0 || (c == '>' && last[0] == '-' && last[1] == '-'))
+ break;
+
+ last[1] = last[0];
+ last[0] = c;
+ }
+}
+
+int XmlTokeniser::readNextToken (CodeDocument::Iterator& source)
+{
+ source.skipWhitespace();
+ const juce_wchar firstChar = source.peekNextChar();
+
+ switch (firstChar)
+ {
+ case 0: break;
+
+ case '"':
+ case '\'':
+ CppTokeniserFunctions::skipQuotedString (source);
+ return tokenType_string;
+
+ case '<':
+ {
+ source.skip();
+ source.skipWhitespace();
+ const juce_wchar nextChar = source.peekNextChar();
+
+ if (nextChar == '?')
+ {
+ source.skip();
+ skipToEndOfXmlDTD (source);
+ return tokenType_preprocessor;
+ }
+
+ if (nextChar == '!')
+ {
+ source.skip();
+
+ if (source.peekNextChar() == '-')
+ {
+ source.skip();
+
+ if (source.peekNextChar() == '-')
+ {
+ skipToEndOfXmlComment (source);
+ return tokenType_comment;
+ }
+ }
+ }
+
+ CppTokeniserFunctions::skipIfNextCharMatches (source, '/');
+ CppTokeniserFunctions::parseIdentifier (source);
+ source.skipWhitespace();
+ CppTokeniserFunctions::skipIfNextCharMatches (source, '/');
+ source.skipWhitespace();
+ CppTokeniserFunctions::skipIfNextCharMatches (source, '>');
+ return tokenType_keyword;
+ }
+
+ case '>':
+ source.skip();
+ return tokenType_keyword;
+
+ case '/':
+ source.skip();
+ source.skipWhitespace();
+ CppTokeniserFunctions::skipIfNextCharMatches (source, '>');
+ return tokenType_keyword;
+
+ case '=':
+ case ':':
+ source.skip();
+ return tokenType_operator;
+
+ default:
+ if (CppTokeniserFunctions::isIdentifierStart (firstChar))
+ CppTokeniserFunctions::parseIdentifier (source);
+
+ source.skip();
+ break;
+ };
+
+ return tokenType_identifier;
+}
diff --git a/modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h b/modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h
new file mode 100644
index 0000000000..3bf58608cf
--- /dev/null
+++ b/modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h
@@ -0,0 +1,62 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE library.
+ Copyright (c) 2013 - Raw Material Software Ltd.
+
+ Permission is granted to use this software under the terms of either:
+ a) the GPL v2 (or any later version)
+ b) the Affero GPL v3
+
+ Details of these licenses can be found at: www.gnu.org/licenses
+
+ JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ ------------------------------------------------------------------------------
+
+ To release a closed-source product which uses JUCE, commercial licenses are
+ available: visit www.juce.com for more information.
+
+ ==============================================================================
+*/
+
+#ifndef JUCE_XMLCODETOKENISER_H_INCLUDED
+#define JUCE_XMLCODETOKENISER_H_INCLUDED
+
+
+//==============================================================================
+/**
+*/
+class JUCE_API XmlTokeniser : public CodeTokeniser
+{
+public:
+ //==============================================================================
+ XmlTokeniser();
+ ~XmlTokeniser();
+
+ //==============================================================================
+ int readNextToken (CodeDocument::Iterator&) override;
+ CodeEditorComponent::ColourScheme getDefaultColourScheme() override;
+
+ /** The token values returned by this tokeniser. */
+ enum TokenType
+ {
+ tokenType_error = 0,
+ tokenType_comment,
+ tokenType_keyword,
+ tokenType_operator,
+ tokenType_identifier,
+ tokenType_string,
+ tokenType_bracket,
+ tokenType_punctuation,
+ tokenType_preprocessor
+ };
+
+private:
+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (XmlTokeniser)
+};
+
+
+#endif // JUCE_XMLCODETOKENISER_H_INCLUDED
diff --git a/modules/juce_gui_extra/juce_gui_extra.cpp b/modules/juce_gui_extra/juce_gui_extra.cpp
index 23fbdcfe8a..a9fab236f8 100644
--- a/modules/juce_gui_extra/juce_gui_extra.cpp
+++ b/modules/juce_gui_extra/juce_gui_extra.cpp
@@ -86,6 +86,8 @@ namespace juce
#include "code_editor/juce_CodeDocument.cpp"
#include "code_editor/juce_CodeEditorComponent.cpp"
#include "code_editor/juce_CPlusPlusCodeTokeniser.cpp"
+#include "code_editor/juce_XMLCodeTokeniser.cpp"
+#include "code_editor/juce_LuaCodeTokeniser.cpp"
#include "misc/juce_BubbleMessageComponent.cpp"
#include "misc/juce_ColourSelector.cpp"
#include "misc/juce_KeyMappingEditorComponent.cpp"
diff --git a/modules/juce_gui_extra/juce_gui_extra.h b/modules/juce_gui_extra/juce_gui_extra.h
index cef3cee3d3..36532f1a8f 100644
--- a/modules/juce_gui_extra/juce_gui_extra.h
+++ b/modules/juce_gui_extra/juce_gui_extra.h
@@ -57,6 +57,8 @@ namespace juce
#include "code_editor/juce_CodeTokeniser.h"
#include "code_editor/juce_CPlusPlusCodeTokeniser.h"
#include "code_editor/juce_CPlusPlusCodeTokeniserFunctions.h"
+#include "code_editor/juce_XMLCodeTokeniser.h"
+#include "code_editor/juce_LuaCodeTokeniser.h"
#include "embedding/juce_ActiveXControlComponent.h"
#include "embedding/juce_NSViewComponent.h"
#include "embedding/juce_UIViewComponent.h"
diff --git a/modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp b/modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp
index 7f41ed7c68..8a80785993 100644
--- a/modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp
+++ b/modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp
@@ -463,4 +463,4 @@ Component* createFloatSlider (LivePropertyEditorBase& editor) { return new Sli
}
-#endif
\ No newline at end of file
+#endif
diff --git a/modules/juce_gui_extra/misc/juce_LiveConstantEditor.h b/modules/juce_gui_extra/misc/juce_LiveConstantEditor.h
index f4714fe109..db0e728e73 100644
--- a/modules/juce_gui_extra/misc/juce_LiveConstantEditor.h
+++ b/modules/juce_gui_extra/misc/juce_LiveConstantEditor.h
@@ -145,7 +145,7 @@ namespace LiveConstantEditor
template<> struct CustomEditor { static Component* create (LivePropertyEditorBase& e) { return createFloatSlider (e); } };
template<> struct CustomEditor { static Component* create (LivePropertyEditorBase& e) { return createColourEditor (e); } };
- template
+ template
struct LivePropertyEditor : public LivePropertyEditorBase
{
template
@@ -156,7 +156,7 @@ namespace LiveConstantEditor
};
//==============================================================================
- template
+ template
struct LiveValue : public LiveValueBase
{
LiveValue (const char* file, int line, const Type& initialValue)
@@ -191,7 +191,7 @@ namespace LiveConstantEditor
static ValueList& getInstance();
- template
+ template
LiveValue& getValue (const char* file, int line, const Type& initialValue)
{
const ScopedLock sl (lock);
@@ -225,7 +225,7 @@ namespace LiveConstantEditor
void handleAsyncUpdate() override;
};
- template
+ template
inline LiveValue& getValue (const char* file, int line, const Type& initialValue)
{
return ValueList::getInstance().getValue (file, line, initialValue);