| 
									
										
										
										
											2016-11-23 13:31:47 +01:00
										 |  |  | /****************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Copyright (C) 2016 The Qt Company Ltd. | 
					
						
							|  |  |  | ** Contact: https://www.qt.io/licensing/
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** This file is part of Qt Creator. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Commercial License Usage | 
					
						
							|  |  |  | ** Licensees holding valid commercial Qt licenses may use this file in | 
					
						
							|  |  |  | ** accordance with the commercial license agreement provided with the | 
					
						
							|  |  |  | ** Software or, alternatively, in accordance with the terms contained in | 
					
						
							|  |  |  | ** a written agreement between you and The Qt Company. For licensing terms | 
					
						
							|  |  |  | ** and conditions see https://www.qt.io/terms-conditions. For further
 | 
					
						
							|  |  |  | ** information use the contact form at https://www.qt.io/contact-us.
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** GNU General Public License Usage | 
					
						
							|  |  |  | ** Alternatively, this file may be used under the terms of the GNU | 
					
						
							|  |  |  | ** General Public License version 3 as published by the Free Software | 
					
						
							|  |  |  | ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT | 
					
						
							|  |  |  | ** included in the packaging of this file. Please review the following | 
					
						
							|  |  |  | ** information to ensure the GNU General Public License requirements will | 
					
						
							|  |  |  | ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ****************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "gtest-creator-printing.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-18 13:38:58 +02:00
										 |  |  | #include "gtest-qt-printing.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-23 13:31:47 +01:00
										 |  |  | #include <gtest/gtest-printers.h>
 | 
					
						
							| 
									
										
										
										
											2018-08-21 11:54:51 +02:00
										 |  |  | #include <gmock/gmock-matchers.h>
 | 
					
						
							| 
									
										
										
										
											2016-11-23 13:31:47 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | #include <sourcelocations.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-25 11:08:39 +02:00
										 |  |  | #include <builddependency.h>
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | #include <clangcodemodelclientmessages.h>
 | 
					
						
							|  |  |  | #include <clangcodemodelservermessages.h>
 | 
					
						
							| 
									
										
										
										
											2018-08-21 11:54:51 +02:00
										 |  |  | #include <clangdocumentsuspenderresumer.h>
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | #include <clangpathwatcher.h>
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | #include <clangrefactoringmessages.h>
 | 
					
						
							| 
									
										
										
										
											2018-08-21 11:54:51 +02:00
										 |  |  | #include <clangreferencescollector.h>
 | 
					
						
							| 
									
										
										
										
											2018-02-01 18:29:45 +01:00
										 |  |  | #include <filestatus.h>
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | #include <filepath.h>
 | 
					
						
							| 
									
										
										
										
											2018-02-06 15:48:24 +01:00
										 |  |  | #include <fulltokeninfo.h>
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | #include <nativefilepath.h>
 | 
					
						
							| 
									
										
										
										
											2018-10-18 11:27:49 +02:00
										 |  |  | #include <pchcreator.h>
 | 
					
						
							| 
									
										
										
										
											2018-10-24 16:46:41 +02:00
										 |  |  | #include <pchtask.h>
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | #include <precompiledheadersupdatedmessage.h>
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:11:28 +01:00
										 |  |  | #include <projectpartartefact.h>
 | 
					
						
							| 
									
										
										
										
											2018-01-31 13:53:57 +01:00
										 |  |  | #include <sourcedependency.h>
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | #include <sourcelocationentry.h>
 | 
					
						
							|  |  |  | #include <sourcelocationscontainer.h>
 | 
					
						
							| 
									
										
										
										
											2018-02-06 15:48:24 +01:00
										 |  |  | #include <tokenprocessor.h>
 | 
					
						
							| 
									
										
										
										
											2017-12-27 20:44:34 +01:00
										 |  |  | #include <filepathview.h>
 | 
					
						
							| 
									
										
										
										
											2018-03-22 17:46:43 +01:00
										 |  |  | #include <symbolentry.h>
 | 
					
						
							| 
									
										
										
										
											2018-08-22 17:20:08 +02:00
										 |  |  | #include <symbolindexertaskqueue.h>
 | 
					
						
							| 
									
										
										
										
											2018-04-09 13:30:30 +02:00
										 |  |  | #include <symbol.h>
 | 
					
						
							| 
									
										
										
										
											2018-01-12 12:29:43 +01:00
										 |  |  | #include <tooltipinfo.h>
 | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  | #include <projectpartentry.h>
 | 
					
						
							| 
									
										
										
										
											2018-01-25 15:20:47 +01:00
										 |  |  | #include <usedmacro.h>
 | 
					
						
							| 
									
										
										
										
											2016-11-23 13:31:47 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-18 13:38:58 +02:00
										 |  |  | #include <cpptools/usages.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-07 15:00:38 +01:00
										 |  |  | #include <projectexplorer/projectmacro.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | #include <coreplugin/find/searchresultitem.h>
 | 
					
						
							| 
									
										
										
										
											2018-04-09 13:30:30 +02:00
										 |  |  | #include <coreplugin/locator/ilocatorfilter.h>
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-12 19:27:51 +01:00
										 |  |  | namespace { | 
					
						
							|  |  |  | ClangBackEnd::FilePathCaching *filePathCache = nullptr; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-28 22:07:28 +01:00
										 |  |  | void PrintTo(const Utf8String &text, ::std::ostream *os) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     *os << text; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-23 13:31:47 +01:00
										 |  |  | namespace Core { | 
					
						
							| 
									
										
										
										
											2018-04-09 13:30:30 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const LocatorFilterEntry &entry) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							|  |  |  |         << entry.displayName << ", "; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (entry.internalData.canConvert<ClangRefactoring::Symbol>()) | 
					
						
							|  |  |  |         out << entry.internalData.value<ClangRefactoring::Symbol>(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     out << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-23 13:31:47 +01:00
										 |  |  | namespace Search { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | using testing::PrintToString; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TextPosition; | 
					
						
							|  |  |  | class TextRange; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void PrintTo(const TextPosition &position, ::std::ostream *os) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     *os << "(" | 
					
						
							|  |  |  |         << position.line << ", " | 
					
						
							|  |  |  |         << position.column << ", " | 
					
						
							|  |  |  |         << position.offset << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void PrintTo(const TextRange &range, ::std::ostream *os) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     *os << "(" | 
					
						
							|  |  |  |         << PrintToString(range.begin) << ", " | 
					
						
							|  |  |  |         << PrintToString(range.end) << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | } // namespace Search
 | 
					
						
							|  |  |  | } // namespace Core
 | 
					
						
							| 
									
										
										
										
											2017-02-07 15:00:38 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace ProjectExplorer { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static const char *typeToString(const MacroType &type) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     switch (type) { | 
					
						
							|  |  |  |         case MacroType::Invalid: return "MacroType::Invalid"; | 
					
						
							|  |  |  |         case MacroType::Define: return "MacroType::Define"; | 
					
						
							|  |  |  |         case MacroType::Undefine: return  "MacroType::Undefine"; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const MacroType &type) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << typeToString(type); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const Macro ¯o) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							|  |  |  |         << macro.key.data() << ", " | 
					
						
							|  |  |  |         << macro.value.data() << ", " | 
					
						
							|  |  |  |         << macro.type << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | } // namespace ProjectExplorer
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Utils { | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const LineColumn &lineColumn) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << lineColumn.line << ", " << lineColumn.column << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-07 19:01:01 +02:00
										 |  |  | void PrintTo(Utils::SmallStringView text, ::std::ostream *os) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-09-03 14:38:01 +02:00
										 |  |  |     *os << "\"" << text << "\""; | 
					
						
							| 
									
										
										
										
											2018-08-07 19:01:01 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | void PrintTo(const Utils::SmallString &text, ::std::ostream *os) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-09-03 14:38:01 +02:00
										 |  |  |     *os << "\"" << text << "\""; | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-28 22:07:28 +01:00
										 |  |  | void PrintTo(const Utils::PathString &text, ::std::ostream *os) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-09-03 14:38:01 +02:00
										 |  |  |     *os << "\"" << text << "\""; | 
					
						
							| 
									
										
										
										
											2017-12-28 22:07:28 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | } // namespace Utils
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace ClangBackEnd { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const FilePathId &id) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-11-12 19:27:51 +01:00
										 |  |  |     if (filePathCache) | 
					
						
							|  |  |  |         return out << "(" << id.filePathId << ", " << filePathCache->filePath(id) << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return out << id.filePathId; | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-27 20:44:34 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const FilePathView &filePathView) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << filePathView.toStringView() << ", " << filePathView.slashIndex() << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const NativeFilePathView &nativeFilePathView) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << nativeFilePathView.toStringView() << ", " << nativeFilePathView.slashIndex() << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const IdPaths &idPaths) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							|  |  |  |         << idPaths.id << ", " | 
					
						
							|  |  |  |         << idPaths.filePathIds << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-09 13:30:30 +02:00
										 |  |  | #define RETURN_TEXT_FOR_CASE(enumValue) case SourceLocationKind::enumValue: return #enumValue
 | 
					
						
							|  |  |  | static const char *symbolTypeToCStringLiteral(ClangBackEnd::SourceLocationKind kind) | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-04-09 13:30:30 +02:00
										 |  |  |     switch (kind) { | 
					
						
							|  |  |  |     RETURN_TEXT_FOR_CASE(None); | 
					
						
							|  |  |  |     RETURN_TEXT_FOR_CASE(Declaration); | 
					
						
							|  |  |  |     RETURN_TEXT_FOR_CASE(DeclarationReference); | 
					
						
							|  |  |  |     RETURN_TEXT_FOR_CASE(Definition); | 
					
						
							|  |  |  |     RETURN_TEXT_FOR_CASE(MacroDefinition); | 
					
						
							|  |  |  |     RETURN_TEXT_FOR_CASE(MacroUsage); | 
					
						
							|  |  |  |     RETURN_TEXT_FOR_CASE(MacroUndefinition); | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #undef RETURN_TEXT_FOR_CASE
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const SourceLocationEntry &entry) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  |         << entry.symbolId << ", " | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  |         << entry.filePathId << ", " | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  |         << entry.lineColumn << ", " | 
					
						
							| 
									
										
										
										
											2018-04-09 13:30:30 +02:00
										 |  |  |         << symbolTypeToCStringLiteral(entry.kind) << ")"; | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const WatcherEntry &entry) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							|  |  |  |         << entry.id << ", " | 
					
						
							|  |  |  |         << entry.pathId | 
					
						
							|  |  |  |         << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const SourceLocationsContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							|  |  |  |        << container.sourceLocationContainers() | 
					
						
							|  |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-01 10:46:20 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const FollowSymbolResult &result) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							|  |  |  |        << result.range | 
					
						
							| 
									
										
										
										
											2018-06-07 14:23:07 +02:00
										 |  |  |        << ", " << result.isResultOnlyForFallBack | 
					
						
							| 
									
										
										
										
											2018-06-01 10:46:20 +02:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const FollowSymbolMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |       os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |          << message.fileContainer << ", " | 
					
						
							|  |  |  |          << message.ticketNumber << ", " | 
					
						
							| 
									
										
										
										
											2018-06-01 10:46:20 +02:00
										 |  |  |          << message.result << ", " | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |          << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const RequestCompletionsMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.filePath << ", " | 
					
						
							|  |  |  |        << message.line << ", " | 
					
						
							|  |  |  |        << message.column << ", " | 
					
						
							|  |  |  |        << message.projectPartId << ", " | 
					
						
							|  |  |  |        << message.ticketNumber << ", " | 
					
						
							|  |  |  |        << message.funcNameStartLine << ", " | 
					
						
							|  |  |  |        << message.funcNameStartColumn | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const DocumentsOpenedMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  |     os << "DocumentsOpenedMessage(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.fileContainers << ", " | 
					
						
							|  |  |  |        << message.currentEditorFilePath << ", " | 
					
						
							|  |  |  |        << message.visibleEditorFilePaths << ")"; | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const EndMessage &/*message*/) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return os << "()"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const CancelMessage &/*message*/) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return os << "()"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const AliveMessage &/*message*/) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return os << "()"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const CompletionsMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.codeCompletions << ", " | 
					
						
							|  |  |  |        << message.ticketNumber | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const AnnotationsMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  |     os << "AnnotationsMessage(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.fileContainer | 
					
						
							|  |  |  |        << "," << message.diagnostics.size() | 
					
						
							|  |  |  |        << "," << !message.firstHeaderErrorDiagnostic.text.isEmpty() | 
					
						
							|  |  |  |        << "," << message.tokenInfos.size() | 
					
						
							|  |  |  |        << "," << message.skippedPreprocessorRanges.size() | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const ReferencesMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |       os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |          << message.fileContainer << ", " | 
					
						
							|  |  |  |          << message.ticketNumber << ", " | 
					
						
							|  |  |  |          << message.isLocalVariable << ", " | 
					
						
							|  |  |  |          << message.references << ", " | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |          << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-12 12:29:43 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const ToolTipMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |       os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |          << message.fileContainer << ", " | 
					
						
							|  |  |  |          << message.ticketNumber << ", " | 
					
						
							|  |  |  |          << message.toolTipInfo << ", " | 
					
						
							| 
									
										
										
										
											2018-01-12 12:29:43 +01:00
										 |  |  |          << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const EchoMessage &/*message*/) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |      return os << "()"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const DocumentsClosedMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.fileContainers | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const CodeCompletion &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.text << ", " | 
					
						
							|  |  |  |        << message.priority << ", " | 
					
						
							|  |  |  |        << message.completionKind << ", " | 
					
						
							|  |  |  |        << message.availability << ", " | 
					
						
							|  |  |  |        << message.hasParameters | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const CodeCompletionChunk &chunk) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << chunk.kind << ", " | 
					
						
							|  |  |  |        << chunk.text; | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |     if (chunk.isOptional) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         os << ", optional"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     os << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static const char *severityToText(DiagnosticSeverity severity) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     switch (severity) { | 
					
						
							|  |  |  |         case DiagnosticSeverity::Ignored: return "Ignored"; | 
					
						
							|  |  |  |         case DiagnosticSeverity::Note: return "Note"; | 
					
						
							|  |  |  |         case DiagnosticSeverity::Warning: return "Warning"; | 
					
						
							|  |  |  |         case DiagnosticSeverity::Error: return "Error"; | 
					
						
							|  |  |  |         case DiagnosticSeverity::Fatal: return "Fatal"; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Q_UNREACHABLE(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const DiagnosticContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << severityToText(container.severity) << ": " | 
					
						
							|  |  |  |        << container.text << ", " | 
					
						
							|  |  |  |        << container.category << ", " | 
					
						
							|  |  |  |        << container.enableOption << ", " | 
					
						
							|  |  |  |        << container.location << ", " | 
					
						
							|  |  |  |        << container.ranges << ", " | 
					
						
							|  |  |  |        << container.fixIts << ", " | 
					
						
							|  |  |  |        << container.children << ")"; | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const DynamicASTMatcherDiagnosticContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        <<  container.messages << ", " | 
					
						
							|  |  |  |         << container.contexts | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const DynamicASTMatcherDiagnosticContextContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							|  |  |  |        << container.contextTypeText() << ", " | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << container.sourceRange << ", " | 
					
						
							|  |  |  |        << container.arguments | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const DynamicASTMatcherDiagnosticMessageContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							|  |  |  |        << container.errorTypeText() << ", " | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << container.sourceRange << ", " | 
					
						
							|  |  |  |        << container.arguments | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const FileContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << container.filePath << ", " | 
					
						
							| 
									
										
										
										
											2018-09-25 09:41:32 +02:00
										 |  |  |         << container.compilationArguments << ", " | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << container.documentRevision << ", " | 
					
						
							|  |  |  |         << container.textCodecName; | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |     if (container.hasUnsavedFileContent) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         os << ", " | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |            << container.unsavedFileContent; | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     os << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const FixItContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << container.text << ", " | 
					
						
							|  |  |  |        << container.range | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define RETURN_TEXT_FOR_CASE(enumValue) case HighlightingType::enumValue: return #enumValue
 | 
					
						
							|  |  |  | static const char *highlightingTypeToCStringLiteral(HighlightingType type) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     switch (type) { | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Invalid); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Comment); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Keyword); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(StringLiteral); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(NumberLiteral); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Function); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(VirtualFunction); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Type); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(LocalVariable); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(GlobalVariable); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Field); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Enumeration); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Operator); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Preprocessor); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Label); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(FunctionDefinition); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(OutputArgument); | 
					
						
							| 
									
										
										
										
											2018-05-08 11:21:42 +02:00
										 |  |  |         RETURN_TEXT_FOR_CASE(OverloadedOperator); | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         RETURN_TEXT_FOR_CASE(PreprocessorDefinition); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(PreprocessorExpansion); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(PrimitiveType); | 
					
						
							| 
									
										
										
										
											2018-08-22 17:25:12 +02:00
										 |  |  |         RETURN_TEXT_FOR_CASE(Punctuation); | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         RETURN_TEXT_FOR_CASE(Declaration); | 
					
						
							| 
									
										
										
										
											2018-01-12 09:44:05 +01:00
										 |  |  |         RETURN_TEXT_FOR_CASE(Namespace); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Class); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Struct); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Enum); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Union); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(TypeAlias); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(Typedef); | 
					
						
							| 
									
										
										
										
											2018-01-26 15:12:38 +01:00
										 |  |  |         RETURN_TEXT_FOR_CASE(QtProperty); | 
					
						
							| 
									
										
										
										
											2018-02-14 12:24:21 +01:00
										 |  |  |         RETURN_TEXT_FOR_CASE(ObjectiveCClass); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(ObjectiveCCategory); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(ObjectiveCProtocol); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(ObjectiveCInterface); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(ObjectiveCImplementation); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(ObjectiveCProperty); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(ObjectiveCMethod); | 
					
						
							| 
									
										
										
										
											2018-07-19 00:01:20 +03:00
										 |  |  |         RETURN_TEXT_FOR_CASE(TemplateTypeParameter); | 
					
						
							|  |  |  |         RETURN_TEXT_FOR_CASE(TemplateTemplateParameter); | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #undef RETURN_TEXT_FOR_CASE
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, HighlightingType highlightingType) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return os << highlightingTypeToCStringLiteral(highlightingType); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, HighlightingTypes types) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							|  |  |  |        << types.mainHighlightingType; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (!types.mixinHighlightingTypes.empty()) | 
					
						
							|  |  |  |        os << ", "<< types.mixinHighlightingTypes; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     os << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-19 09:18:57 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const ExtraInfo &extraInfo) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							|  |  |  |        << extraInfo.token << ", " | 
					
						
							|  |  |  |        << extraInfo.typeSpelling << ", " | 
					
						
							|  |  |  |        << extraInfo.semanticParentTypeSpelling << ", " | 
					
						
							|  |  |  |        << static_cast<uint>(extraInfo.accessSpecifier) << ", " | 
					
						
							|  |  |  |        << static_cast<uint>(extraInfo.storageClass) << ", " | 
					
						
							|  |  |  |        << extraInfo.identifier << ", " | 
					
						
							|  |  |  |        << extraInfo.includeDirectivePath << ", " | 
					
						
							|  |  |  |        << extraInfo.declaration << ", " | 
					
						
							|  |  |  |        << extraInfo.definition << ", " | 
					
						
							|  |  |  |        << extraInfo.signal << ", " | 
					
						
							| 
									
										
										
										
											2018-01-26 15:12:38 +01:00
										 |  |  |        << extraInfo.slot | 
					
						
							| 
									
										
										
										
											2018-01-19 09:18:57 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const TokenInfoContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << container.line << ", " | 
					
						
							|  |  |  |        << container.column << ", " | 
					
						
							|  |  |  |        << container.length << ", " | 
					
						
							|  |  |  |        << container.types << ", " | 
					
						
							|  |  |  |        << container.extraInfo << ", " | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const NativeFilePath &filePath) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << filePath.path() << ", " << filePath.slashIndex() << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const PrecompiledHeadersUpdatedMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << message.projectPartPchs | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const ProjectPartPch &projectPartPch) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							| 
									
										
										
										
											2018-02-15 14:29:20 +01:00
										 |  |  |         << projectPartPch.projectPartId << ", " | 
					
						
							| 
									
										
										
										
											2018-09-11 17:02:45 +02:00
										 |  |  |         << projectPartPch.pchPath << ", " | 
					
						
							|  |  |  |         << projectPartPch.lastModified << ")"; | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const UnsavedFilesUpdatedMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.fileContainers | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const RequestAnnotationsMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.fileContainer.filePath << "," | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-20 12:43:05 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const RemoveProjectPartsMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |     return out << "(" << message.projectsPartIds << ")"; | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const RequestFollowSymbolMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.fileContainer << ", " | 
					
						
							|  |  |  |        << message.ticketNumber << ", " | 
					
						
							|  |  |  |        << message.line << ", " | 
					
						
							|  |  |  |        << message.column << ", " | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const RequestReferencesMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.fileContainer << ", " | 
					
						
							|  |  |  |        << message.ticketNumber << ", " | 
					
						
							|  |  |  |        << message.line << ", " | 
					
						
							|  |  |  |        << message.column << ", " | 
					
						
							|  |  |  |        << message.local << ", " | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-12 12:29:43 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const RequestToolTipMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << message.fileContainer << ", " | 
					
						
							|  |  |  |         << message.ticketNumber << ", " | 
					
						
							|  |  |  |         << message.line << ", " | 
					
						
							|  |  |  |         << message.column << ", " | 
					
						
							| 
									
										
										
										
											2018-01-12 12:29:43 +01:00
										 |  |  |         << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const ToolTipInfo::QdocCategory category) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return os << qdocCategoryToString(category); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const ToolTipInfo &info) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << info.text << ", " | 
					
						
							|  |  |  |        << info.briefComment << ", " | 
					
						
							|  |  |  |        << info.qdocIdCandidates << ", " | 
					
						
							|  |  |  |        << info.qdocMark << ", " | 
					
						
							|  |  |  |        << info.qdocCategory | 
					
						
							|  |  |  |        << info.sizeInBytes << ", " | 
					
						
							| 
									
										
										
										
											2018-01-12 12:29:43 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const RequestSourceLocationsForRenamingMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.filePath << ", " | 
					
						
							|  |  |  |        << message.line << ", " | 
					
						
							|  |  |  |        << message.column << ", " | 
					
						
							|  |  |  |        << message.unsavedContent << ", " | 
					
						
							|  |  |  |        << message.commandLine | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const RequestSourceRangesAndDiagnosticsForQueryMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.query << ", " | 
					
						
							|  |  |  |        << message.source | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const RequestSourceRangesForQueryMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.query | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const SourceLocationContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << container.filePath << ", " | 
					
						
							|  |  |  |        << container.line << ", " | 
					
						
							|  |  |  |        << container.column | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const SourceLocationsForRenamingMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << message.symbolName << ", " | 
					
						
							|  |  |  |         << message.textDocumentRevision << ", " | 
					
						
							|  |  |  |         << message.sourceLocations | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const SourceRangeContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << container.start << ", " | 
					
						
							|  |  |  |        << container.end | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const SourceRangesAndDiagnosticsForQueryMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << message.sourceRanges << ", " | 
					
						
							|  |  |  |         << message.diagnostics | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const SourceRangesContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << container.sourceRangeWithTextContainers | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const SourceRangesForQueryMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << message.sourceRanges | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const SourceRangeWithTextContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << container.start << ", " | 
					
						
							|  |  |  |         << container.end << ", " | 
					
						
							|  |  |  |         << container.text | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const UnsavedFilesRemovedMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << message.fileContainers | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-20 12:43:05 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const UpdateProjectPartsMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     return out << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |                << message.projectsParts | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |                << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const DocumentsChangedMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  |     os << "DocumentsChangedMessage(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.fileContainers | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-31 15:21:53 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const DocumentVisibilityChangedMessage &message) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << message.currentEditorFilePath  << ", " | 
					
						
							|  |  |  |        << message.visibleEditorFilePaths | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &os, const TokenInfo &tokenInfo) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     os << "(type: " << tokenInfo.types() << ", " | 
					
						
							|  |  |  |        << " line: " << tokenInfo.line() << ", " | 
					
						
							|  |  |  |        << " column: " << tokenInfo.column() << ", " | 
					
						
							|  |  |  |        << " length: " << tokenInfo.length() | 
					
						
							|  |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return  os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-06 15:48:24 +01:00
										 |  |  | template<class T> | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const TokenProcessor<T> &tokenInfos) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     out << "["; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-06 15:48:24 +01:00
										 |  |  |     for (const T &entry : tokenInfos) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         out << entry; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     out << "]"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-06 15:48:24 +01:00
										 |  |  | template | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const TokenProcessor<TokenInfo> &tokenInfos); | 
					
						
							|  |  |  | template | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const TokenProcessor<FullTokenInfo> &tokenInfos); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const FilePath &filePath) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << filePath.path() << ", " << filePath.slashIndex() << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const ProjectPartEntry &projectPartEntry) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" | 
					
						
							|  |  |  |                << projectPartEntry.projectPathName | 
					
						
							|  |  |  |                << ", " | 
					
						
							|  |  |  |                << projectPartEntry.filePathIds | 
					
						
							|  |  |  |                << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-25 15:20:47 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const UsedMacro &usedMacro) | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     return out << "(" | 
					
						
							| 
									
										
										
										
											2018-01-25 15:20:47 +01:00
										 |  |  |                << usedMacro.filePathId | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  |                << ", " | 
					
						
							| 
									
										
										
										
											2018-01-25 15:20:47 +01:00
										 |  |  |                << usedMacro.macroName | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  |                << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-01 18:29:45 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const FileStatus &fileStatus) | 
					
						
							| 
									
										
										
										
											2018-01-29 15:47:53 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     return out << "(" | 
					
						
							| 
									
										
										
										
											2018-02-01 18:29:45 +01:00
										 |  |  |                << fileStatus.filePathId | 
					
						
							| 
									
										
										
										
											2018-01-29 15:47:53 +01:00
										 |  |  |                << ", " | 
					
						
							| 
									
										
										
										
											2018-02-01 18:29:45 +01:00
										 |  |  |                << fileStatus.size | 
					
						
							| 
									
										
										
										
											2018-01-29 15:47:53 +01:00
										 |  |  |                << ", " | 
					
						
							| 
									
										
										
										
											2018-02-01 18:29:45 +01:00
										 |  |  |                << fileStatus.lastModified | 
					
						
							| 
									
										
										
										
											2018-01-29 15:47:53 +01:00
										 |  |  |                << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-31 13:53:57 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const SourceDependency &sourceDependency) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" | 
					
						
							|  |  |  |                << sourceDependency.filePathId | 
					
						
							|  |  |  |                << ", " | 
					
						
							|  |  |  |                << sourceDependency.dependencyFilePathId | 
					
						
							|  |  |  |                << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-06 11:16:29 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const ProjectPartArtefact &projectPartArtefact) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" | 
					
						
							|  |  |  |                << projectPartArtefact.compilerArguments << ", " | 
					
						
							| 
									
										
										
										
											2018-02-06 19:03:14 +01:00
										 |  |  |                << projectPartArtefact.compilerMacros | 
					
						
							| 
									
										
										
										
											2018-02-06 11:16:29 +01:00
										 |  |  |                <<")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-06 19:03:14 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const CompilerMacro &compilerMacro) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" | 
					
						
							|  |  |  |                << compilerMacro.key << ", " | 
					
						
							|  |  |  |                << compilerMacro.value | 
					
						
							|  |  |  |                << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-22 17:46:43 +01:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const SymbolEntry &entry) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							|  |  |  |         << entry.symbolName << ", " | 
					
						
							|  |  |  |         << entry.usr << ", " | 
					
						
							|  |  |  |         << entry.symbolKind <<")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const char *symbolKindString(SymbolKind symbolKind) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     using ClangBackEnd::SymbolKind; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     switch (symbolKind) { | 
					
						
							| 
									
										
										
										
											2018-04-04 16:58:47 +02:00
										 |  |  |     case SymbolKind::None: return "None"; | 
					
						
							|  |  |  |     case SymbolKind::Enumeration: return "Enumeration"; | 
					
						
							|  |  |  |     case SymbolKind::Record: return "Record"; | 
					
						
							|  |  |  |     case SymbolKind::Function: return "Function"; | 
					
						
							|  |  |  |     case SymbolKind::Variable: return "Variable"; | 
					
						
							|  |  |  |     case SymbolKind::Macro: return "Macro"; | 
					
						
							| 
									
										
										
										
											2018-03-22 17:46:43 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, SymbolKind symbolKind) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << symbolKindString(symbolKind); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const char *symbolTagString(SymbolTag symbolTag) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     using ClangBackEnd::SymbolTag; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     switch (symbolTag) { | 
					
						
							| 
									
										
										
										
											2018-04-04 16:58:47 +02:00
										 |  |  |     case SymbolTag::None: return "None"; | 
					
						
							| 
									
										
										
										
											2018-03-22 17:46:43 +01:00
										 |  |  |     case SymbolTag::Class: return "Class"; | 
					
						
							|  |  |  |     case SymbolTag::Struct: return "Struct"; | 
					
						
							| 
									
										
										
										
											2018-04-04 16:58:47 +02:00
										 |  |  |     case SymbolTag::Union: return "Union"; | 
					
						
							| 
									
										
										
										
											2018-03-22 17:46:43 +01:00
										 |  |  |     case SymbolTag::MsvcInterface: return "MsvcInterface"; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, SymbolTag symbolTag) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << symbolTagString(symbolTag); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, SymbolTags symbolTags) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     std::copy(symbolTags.cbegin(), symbolTags.cend(), std::ostream_iterator<SymbolTag>(out, ", ")); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-07 19:01:01 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const UpdateGeneratedFilesMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << message.generatedFiles << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const RemoveGeneratedFilesMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << message.generatedFiles << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-21 11:54:51 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const SuspendResumeJobsEntry &entry) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" | 
					
						
							|  |  |  |                << entry.document.filePath() << ", " | 
					
						
							|  |  |  |                << entry.jobRequestType << ", " | 
					
						
							|  |  |  |                << entry.preferredTranslationUnit | 
					
						
							|  |  |  |                << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const ReferencesResult &value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "ReferencesResult("; | 
					
						
							|  |  |  |     os << value.isLocalVariable << ", {"; | 
					
						
							|  |  |  |     for (const SourceRangeContainer &r : value.references) { | 
					
						
							|  |  |  |         os << r.start.line << ","; | 
					
						
							|  |  |  |         os << r.start.column << ","; | 
					
						
							|  |  |  |         EXPECT_THAT(r.start.line, testing::Eq(r.end.line)); | 
					
						
							|  |  |  |         os << r.end.column - r.start.column << ","; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     os << "})"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-22 17:20:08 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const SymbolIndexerTask &task) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << task.filePathId << ", " << task.projectPartId << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-27 17:52:44 +02:00
										 |  |  | const char* progressTypeToString(ClangBackEnd::ProgressType type) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     switch (type) { | 
					
						
							|  |  |  |         case ProgressType::Invalid: return "Invalid"; | 
					
						
							|  |  |  |         case ProgressType::PrecompiledHeader: return "PrecompiledHeader"; | 
					
						
							|  |  |  |         case ProgressType::Indexing: return "Indexing"; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return nullptr; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const ProgressMessage &message) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << progressTypeToString(message.progressType) << ", " | 
					
						
							|  |  |  |                << message.progress << ", " | 
					
						
							|  |  |  |                << message.total << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-18 11:27:49 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const PchCreatorIncludes &includes) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << includes.includeIds << ", " << includes.topIncludeIds << ", " << includes.topSystemIncludeIds << ")"; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2018-10-24 16:46:41 +02:00
										 |  |  | std::ostream &operator<<(std::ostream &out, const PchTask &task) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << task.ids << ", " << task.buildDependency << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const BuildDependency &dependency) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-11-12 19:27:51 +01:00
										 |  |  |     return out << "(\n" | 
					
						
							|  |  |  |                << "includes: " << dependency.includes << ",\n" | 
					
						
							|  |  |  |                << "usedMacros: " << dependency.usedMacros  << ",\n" | 
					
						
							|  |  |  |                << "fileStatuses: " << dependency.fileStatuses  << ",\n" | 
					
						
							|  |  |  |                << "sourceFiles: " << dependency.sourceFiles  << ",\n" | 
					
						
							|  |  |  |                << "sourceDependencies: " << dependency.sourceDependencies  << ",\n" | 
					
						
							|  |  |  |                << ")"; | 
					
						
							| 
									
										
										
										
											2018-10-24 16:46:41 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2018-10-18 11:27:49 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-25 11:08:39 +02:00
										 |  |  | const char *sourceTypeString(SourceType sourceType) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     using ClangBackEnd::SymbolTag; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     switch (sourceType) { | 
					
						
							| 
									
										
										
										
											2018-11-21 20:11:07 +01:00
										 |  |  |         case SourceType::TopProjectInclude: | 
					
						
							|  |  |  |             return "TopProjectInclude"; | 
					
						
							| 
									
										
										
										
											2018-11-12 19:27:51 +01:00
										 |  |  |         case SourceType::TopSystemInclude: | 
					
						
							|  |  |  |             return "TopSystemInclude"; | 
					
						
							|  |  |  |         case SourceType::SystemInclude: | 
					
						
							|  |  |  |             return "SystemInclude"; | 
					
						
							| 
									
										
										
										
											2018-11-21 20:11:07 +01:00
										 |  |  |         case SourceType::ProjectInclude: | 
					
						
							|  |  |  |             return "ProjectInclude"; | 
					
						
							| 
									
										
										
										
											2018-11-12 19:27:51 +01:00
										 |  |  |         case SourceType::UserInclude: | 
					
						
							|  |  |  |             return "UserInclude"; | 
					
						
							| 
									
										
										
										
											2018-10-25 11:08:39 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ""; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const SourceEntry &entry) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out  << "(" << entry.sourceId << ", " << sourceTypeString(entry.sourceType) << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-28 22:07:28 +01:00
										 |  |  | void PrintTo(const FilePath &filePath, ::std::ostream *os) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     *os << filePath; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void PrintTo(const FilePathView &filePathView, ::std::ostream *os) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     *os << filePathView; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-22 14:21:01 +01:00
										 |  |  | void PrintTo(const FilePathId &filePathId, ::std::ostream *os) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     *os << filePathId; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | namespace V2 { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const FileContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << container.filePath << ", " | 
					
						
							|  |  |  |         << container.commandLineArguments << ", " | 
					
						
							|  |  |  |         << container.documentRevision; | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |     if (container.unsavedFileContent.hasContent()) | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |         os << ", \"" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |             << container.unsavedFileContent; | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     os << "\")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const ProjectPartContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     out << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << container.projectPartId << ", " | 
					
						
							|  |  |  |         << container.arguments << ", " | 
					
						
							|  |  |  |         << container.headerPathIds << ", " | 
					
						
							| 
									
										
										
										
											2018-08-07 19:01:01 +02:00
										 |  |  |         << container.sourcePathIds << ", " | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         << container.compilerMacros << ", " | 
					
						
							|  |  |  |         << container.includeSearchPaths << ")"; | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return out; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const SourceLocationContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-11-06 19:02:00 +01:00
										 |  |  |     os << "(" | 
					
						
							|  |  |  |        << container.filePathId.filePathId << ", " | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << container.line << ", " | 
					
						
							|  |  |  |        << container.column << ", " | 
					
						
							|  |  |  |        << container.offset | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &os, const SourceRangeContainer &container) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     os << "(" | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |        << container.start << ", " | 
					
						
							|  |  |  |        << container.end | 
					
						
							| 
									
										
										
										
											2017-11-30 16:11:40 +01:00
										 |  |  |        << ")"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return os; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace V2
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-21 11:43:59 +02:00
										 |  |  | } // namespace ClangBackEnd
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace ClangRefactoring { | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const SourceLocation &location) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-04-09 13:30:30 +02:00
										 |  |  |     return out << "(" << location.filePathId << ", " << location.lineColumn << ")"; | 
					
						
							| 
									
										
										
										
											2017-02-07 15:00:38 +01:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2018-04-09 13:30:30 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const Symbol &symbol) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << symbol.name << ", " << symbol.symbolId << ", " << symbol.signature << ")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | } // namespace ClangRefactoring
 | 
					
						
							| 
									
										
										
										
											2017-10-18 13:38:58 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace CppTools { | 
					
						
							|  |  |  | class Usage; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | std::ostream &operator<<(std::ostream &out, const Usage &usage) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return out << "(" << usage.path << ", " << usage.line << ", " << usage.column <<")"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | } // namespace CppTools
 | 
					
						
							| 
									
										
										
										
											2018-11-12 19:27:51 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | void setFilePathCache(ClangBackEnd::FilePathCaching *cache) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     filePathCache = cache; | 
					
						
							|  |  |  | } |