├── .gitignore ├── Build ├── Common.Build.CSharp.settings ├── Common.Build.settings └── VsChromiumKey.snk ├── HackingOnVsChromium.txt ├── LICENSE ├── NewReleaseChecklist.txt ├── VsixInstall ├── install_vs2013_community_debug.bat ├── install_vs2013_community_release.bat ├── install_vs2013_debug.bat ├── install_vs2013_release.bat ├── install_vs2015_community_debug.bat ├── install_vs2015_community_release.bat ├── install_vs2015_pro_debug.bat ├── install_vs2015_pro_release.bat ├── install_vs2017_community_debug.bat ├── install_vs2017_community_release.bat ├── install_vs2017_pro_debug.bat ├── install_vs2017_pro_release.bat ├── install_vs2019_community_debug.bat ├── install_vs2019_community_release.bat ├── install_vs2019_pro_debug.bat ├── install_vs2019_pro_release.bat └── install_vsix_helper.bat ├── build.root ├── new_feature_ideas.txt ├── readme.md ├── src ├── Core │ ├── Chromium │ │ ├── ChromiumDiscovery.cs │ │ ├── ChromiumDiscoveryWithCache.cs │ │ ├── ChromiumProcess.cs │ │ ├── DistributionType.cs │ │ ├── IChromiumDiscovery.cs │ │ ├── IChromiumDiscoveryWithCache.cs │ │ ├── InstallationData.cs │ │ ├── InstallationEnumerator.cs │ │ ├── InstallationLevel.cs │ │ └── ProcessCategory.cs │ ├── Collections │ │ ├── ArrayDiffsResult.cs │ │ ├── ArrayUtilities.cs │ │ ├── ArrayWrapper.cs │ │ ├── ConcurrentBitArray.cs │ │ ├── ConcurrentBufferQueue.cs │ │ ├── ConcurrentHashSet.cs │ │ ├── ExponentialGrowthPolicy.cs │ │ ├── IBitArray.cs │ │ ├── ICollectionGrowthPolicy.cs │ │ ├── IHeap.cs │ │ ├── ISlimHashTableParameters.cs │ │ ├── LeftRightItemPair.cs │ │ ├── LinearGrowthPolicy.cs │ │ ├── ListSegment.cs │ │ ├── MaxHeap.cs │ │ ├── MinHeap.cs │ │ ├── ObjectPool.cs │ │ ├── PartitionedBitArray.cs │ │ ├── ReferenceEqualityComparer.cs │ │ ├── ReverseComparer.cs │ │ ├── SlimDictionary.Entry.cs │ │ ├── SlimDictionary.ValueCollection.cs │ │ ├── SlimDictionary.cs │ │ ├── SlimHashTable.Entry.cs │ │ ├── SlimHashTable.KeyCollection.cs │ │ ├── SlimHashTable.ValueCollection.cs │ │ ├── SlimHashTable.cs │ │ ├── SortedArray.cs │ │ ├── SortedArrayHelpers.cs │ │ └── StringBuilderPool.cs │ ├── Configuration │ │ ├── ConfigurationDirectoryNames.cs │ │ ├── ConfigurationFileConfigurationSectionProvider.cs │ │ ├── ConfigurationFileLocator.cs │ │ ├── ConfigurationFilenames.cs │ │ ├── ConfigurationSectionContents.cs │ │ ├── ConfigurationSectionNames.cs │ │ ├── ConfigurationStyleFilenames.cs │ │ ├── FilePatternsPathMatcherProvider.cs │ │ ├── FileWithSectionConfigurationProvider.cs │ │ ├── FileWithSections.cs │ │ ├── IConfigurationFileLocator.cs │ │ ├── IConfigurationSectionContents.cs │ │ ├── IConfigurationSectionProvider.cs │ │ ├── IFilePatternsPathMatcherProvider.cs │ │ └── IFileWithSections.cs │ ├── Core.csproj │ ├── Debugger │ │ ├── DebuggerObject.cs │ │ └── DebuggerThread.cs │ ├── DkmShared │ │ ├── ChildDebuggingMode.cs │ │ ├── DebugProcessOptions.cs │ │ ├── PackageServices.cs │ │ ├── VsDebuggerMessage.cs │ │ └── VsPackageMessage.cs │ ├── Files │ │ ├── CustomPathComparer.cs │ │ ├── DirectoryChangeWatcher.DirectoryWatcherhEntry.cs │ │ ├── DirectoryChangeWatcher.DisposedState.cs │ │ ├── DirectoryChangeWatcher.ErrorState.cs │ │ ├── DirectoryChangeWatcher.PathChangeRecorder.cs │ │ ├── DirectoryChangeWatcher.PausedState.cs │ │ ├── DirectoryChangeWatcher.PollingDelayPolicy.cs │ │ ├── DirectoryChangeWatcher.RestartingState.cs │ │ ├── DirectoryChangeWatcher.RunningState.cs │ │ ├── DirectoryChangeWatcher.State.cs │ │ ├── DirectoryChangeWatcher.StateHost.cs │ │ ├── DirectoryChangeWatcher.cs │ │ ├── DirectoryChangeWatcherFactory.cs │ │ ├── FileInfoSnapshot.cs │ │ ├── FileSystem.cs │ │ ├── FileSystemExtensions.cs │ │ ├── FileSystemWatcherImpl.cs │ │ ├── FullPath.cs │ │ ├── FullPathDictionary.cs │ │ ├── IDirectoryChangeWatcher.cs │ │ ├── IDirectoryChangeWatcherFactory.cs │ │ ├── IFileInfoSnapshot.cs │ │ ├── IFileSystem.cs │ │ ├── IFileSystemWatcher.cs │ │ ├── IPathComparer.cs │ │ ├── PathChangeEntry.cs │ │ ├── PathChangeKind.cs │ │ ├── PathComparer.cs │ │ ├── PathComparerRegistry.cs │ │ ├── PathComparisonOption.cs │ │ ├── PathComponent.cs │ │ ├── PathComponentEnumerator.cs │ │ ├── PathComponentSplitter.cs │ │ ├── PathHelpers.cs │ │ ├── PatternMatching │ │ │ ├── AnyPathMatcher.cs │ │ │ ├── BaseOperator.cs │ │ │ ├── FileNameMatching.cs │ │ │ ├── IPathMatcher.cs │ │ │ ├── IPrePassWontMatch.cs │ │ │ ├── MatchKind.cs │ │ │ ├── OpAsterisk.cs │ │ │ ├── OpDirectorySeparator.cs │ │ │ ├── OpIsDirectoryOnly.cs │ │ │ ├── OpIsNoMatch.cs │ │ │ ├── OpIsRelativeDirectory.cs │ │ │ ├── OpRecursiveDir.cs │ │ │ ├── OpText.cs │ │ │ ├── PathMatcher.cs │ │ │ ├── PatternParser.cs │ │ │ └── PatternWrapper.cs │ │ ├── RelativePath.cs │ │ └── SystemPathComparer.cs │ ├── Ipc │ │ ├── ErrorResponse.cs │ │ ├── ErrorResponseException.cs │ │ ├── ErrorResponseHelper.cs │ │ ├── HelloWorldProtocol.cs │ │ ├── IIpcRequestIdFactory.cs │ │ ├── IIpcStream.cs │ │ ├── IpcEvent.cs │ │ ├── IpcMessage.cs │ │ ├── IpcMessageData.cs │ │ ├── IpcProtocols.cs │ │ ├── IpcRequest.cs │ │ ├── IpcRequestIdFactory.cs │ │ ├── IpcResponse.cs │ │ ├── IpcStreamOverNetworkStream.cs │ │ ├── IpcStringData.cs │ │ ├── ProtoBuf │ │ │ ├── IProtoBufSerializer.cs │ │ │ └── ProtoBufSerializer.cs │ │ ├── RecoverableErrorException.cs │ │ └── TypedMessages │ │ │ ├── DirectoryDetails.cs │ │ │ ├── DirectoryEntry.cs │ │ │ ├── DoneResponse.cs │ │ │ ├── FileByExtensionDetails.cs │ │ │ ├── FileEntry.cs │ │ │ ├── FileExtract.cs │ │ │ ├── FilePositionSpan.cs │ │ │ ├── FilePositionsData.cs │ │ │ ├── FileSystemEntry.cs │ │ │ ├── FileSystemEntryData.cs │ │ │ ├── FileSystemScanFinished.cs │ │ │ ├── FileSystemScanStarted.cs │ │ │ ├── FileSystemTree.cs │ │ │ ├── FileSystemTree_Obsolete.cs │ │ │ ├── GetDatabaseDetailsRequest.cs │ │ │ ├── GetDatabaseDetailsResponse.cs │ │ │ ├── GetDatabaseStatisticsRequest.cs │ │ │ ├── GetDatabaseStatisticsResponse.cs │ │ │ ├── GetDirectoryDetailsRequest.cs │ │ │ ├── GetDirectoryDetailsResponse.cs │ │ │ ├── GetDirectoryEntriesMultipleRequest.cs │ │ │ ├── GetDirectoryEntriesMultipleResponse.cs │ │ │ ├── GetDirectoryEntriesRequest.cs │ │ │ ├── GetDirectoryEntriesResponse.cs │ │ │ ├── GetDirectoryStatisticsRequest.cs │ │ │ ├── GetDirectoryStatisticsResponse.cs │ │ │ ├── GetFileExtractsRequest.cs │ │ │ ├── GetFileExtractsResponse.cs │ │ │ ├── GetFileSystemRequest.cs │ │ │ ├── GetFileSystemResponse.cs │ │ │ ├── GetFileSystemTreeRequest.cs │ │ │ ├── GetFileSystemTreeResponse.cs │ │ │ ├── GetFileSystemVersionRequest.cs │ │ │ ├── GetFileSystemVersionResponse.cs │ │ │ ├── GetProjectDetailsRequest.cs │ │ │ ├── GetProjectDetailsResponse.cs │ │ │ ├── IndexingServerStateChangedEvent.cs │ │ │ ├── LargeFileDetails.cs │ │ │ ├── OptionalDirectoryEntry.cs │ │ │ ├── PairedTypedEvent.cs │ │ │ ├── PauseIndexingRequest.cs │ │ │ ├── PauseResumeIndexingResponse.cs │ │ │ ├── ProgressReportEvent.cs │ │ │ ├── ProjectConfigurationDetails.cs │ │ │ ├── ProjectConfigurationSectionDetails.cs │ │ │ ├── ProjectDetails.cs │ │ │ ├── ProjectEntry.cs │ │ │ ├── RefreshFileSystemTreeRequest.cs │ │ │ ├── RefreshFileSystemTreeResponse.cs │ │ │ ├── RegisterFileRequest.cs │ │ │ ├── ResumeIndexingRequest.cs │ │ │ ├── SearchCoDeResponse.cs │ │ │ ├── SearchCodeRequest.cs │ │ │ ├── SearchEngineFilesLoaded.cs │ │ │ ├── SearchEngineFilesLoading.cs │ │ │ ├── SearchEngineFilesLoadingProgress.cs │ │ │ ├── SearchFilePathsRequest.cs │ │ │ ├── SearchFilePathsResponse.cs │ │ │ ├── SearchParams.cs │ │ │ ├── TypedEvent.cs │ │ │ ├── TypedMessage.cs │ │ │ ├── TypedRequest.cs │ │ │ ├── TypedResponse.cs │ │ │ └── UnregisterFileRequest.cs │ ├── JobObjects │ │ └── JobObject.cs │ ├── Linq │ │ ├── EnumerableExtensions.cs │ │ └── ParallelQueryExtensions.cs │ ├── Logging │ │ ├── AssertionFailedException.cs │ │ ├── DebugLogger.cs │ │ ├── ILogLevelLogger.cs │ │ ├── InfoLogger.cs │ │ ├── Invariants.cs │ │ ├── Logger.cs │ │ ├── NLogConfig.cs │ │ └── StackTraceException.cs │ ├── Processes │ │ ├── CreateProcessOptions.cs │ │ ├── CreateProcessResult.cs │ │ ├── ExtensionMethods.cs │ │ ├── IProcessCreator.cs │ │ ├── NtProcess.cs │ │ ├── ProcessCreator.cs │ │ ├── ProcessInformation.cs │ │ └── ProcessUtility.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Threads │ │ ├── CancellationTokenTracker.cs │ │ ├── DateTimeProvider.cs │ │ ├── IDateTimeProvider.cs │ │ ├── TaskCancellation.cs │ │ └── TaskExtensions.cs │ ├── Utility │ │ ├── BoundedOperationLimiter.cs │ │ ├── ChromeUtility.cs │ │ ├── ExceptionExtensions.cs │ │ ├── HashCode.cs │ │ ├── IOperationProgressTracker.cs │ │ ├── KeyValuePair.cs │ │ ├── MD5Hash.cs │ │ ├── MarshalUtility.cs │ │ ├── OperationProgressTracker.cs │ │ ├── ReflectionUtils.cs │ │ ├── TaskResultCounter.cs │ │ ├── TextTableGenerator.cs │ │ └── TimeElapsedLogger.cs │ ├── VsChromiumVersion.cs │ ├── Win32 │ │ ├── ComPtr.cs │ │ ├── Contants.cs │ │ ├── Debugging │ │ │ ├── CONTINUE_STATUS.cs │ │ │ ├── CREATE_PROCESS_DEBUG_INFO.cs │ │ │ ├── CREATE_THREAD_DEBUG_INFO.cs │ │ │ ├── DEBUG_EVENT.cs │ │ │ ├── DEBUG_EVENT_CODE.cs │ │ │ ├── EXCEPTION_DEBUG_INFO.cs │ │ │ ├── EXCEPTION_RECORD.cs │ │ │ ├── EXIT_PROCESS_DEBUG_INFO.cs │ │ │ ├── EXIT_THREAD_DEBUG_INFO.cs │ │ │ ├── LOAD_DLL_DEBUG_INFO.cs │ │ │ ├── NativeMethods.cs │ │ │ ├── OUTPUT_DEBUG_STRING_INFO.cs │ │ │ ├── PTHREAD_START_ROUTINE.cs │ │ │ ├── RIP_INFO.cs │ │ │ └── UNLOAD_DLL_DEBUG_INFO.cs │ │ ├── Files │ │ │ ├── DirectoryEntry.cs │ │ │ ├── NativeAccessFlags.cs │ │ │ ├── NativeFile.cs │ │ │ ├── NativeMethods.cs │ │ │ ├── SafeFindHandle.cs │ │ │ ├── SlimFileInfo.cs │ │ │ ├── WIN32_FILE_ATTRIBUTE_DATA.cs │ │ │ └── Win32FindData.cs │ │ ├── HResults.cs │ │ ├── Handles │ │ │ └── NativeMethods.cs │ │ ├── Interop │ │ │ └── SecurityAttributes.cs │ │ ├── Jobs │ │ │ ├── IO_COUNTERS.cs │ │ │ ├── JOBOBJECT_BASIC_LIMIT_INFORMATION.cs │ │ │ ├── JOBOBJECT_EXTENDED_LIMIT_INFORMATION.cs │ │ │ ├── JobObjectInfoType.cs │ │ │ ├── NativeMethods.cs │ │ │ └── SECURITY_ATTRIBUTES.cs │ │ ├── LastWin32ErrorException.cs │ │ ├── Memory │ │ │ ├── HeapAlloc.cs │ │ │ ├── HeapAllocStatic.cs │ │ │ ├── HeapFlags.cs │ │ │ ├── IHeapAlloc.cs │ │ │ ├── NativeMethods.cs │ │ │ ├── SafeHGlobalHandle.cs │ │ │ ├── SafeHeapBlockHandle.cs │ │ │ ├── SafeHeapHandle.cs │ │ │ ├── SafeLocalMemHandle.cs │ │ │ └── SafeProcessHeapHandle.cs │ │ ├── NamedPipes │ │ │ └── NativeMethods.cs │ │ ├── NtStatus.cs │ │ ├── Pointers.cs │ │ ├── Processes │ │ │ ├── NativeEnums.cs │ │ │ ├── NativeMethods.cs │ │ │ ├── NativeStructs.cs │ │ │ ├── PROCESS_INFORMATION.cs │ │ │ ├── ProcessCreationFlags.cs │ │ │ ├── SafeProcessHandle.cs │ │ │ ├── SafeThreadHandle.cs │ │ │ └── Startupinfo.cs │ │ ├── Shell │ │ │ ├── NativeMethods.cs │ │ │ ├── SHFileInfo.cs │ │ │ └── SafeIconHandle.cs │ │ ├── Strings │ │ │ └── Conversion.cs │ │ └── UnicodeString.cs │ └── packages.config ├── DkmIntegration │ ├── DkmIntegration.csproj │ ├── Guids │ │ ├── Component.cs │ │ ├── CustomVisualizer.cs │ │ ├── Language.cs │ │ ├── PortSupplier.cs │ │ ├── Source.cs │ │ └── Vendor.cs │ ├── IdeComponent │ │ ├── BasicVisualizer.cs │ │ ├── ChildEvaluator.cs │ │ ├── ChildFlags.cs │ │ ├── CppExpressionEvaluator.cs │ │ ├── EvaluationDataItem.cs │ │ ├── EvaluationException.cs │ │ ├── IVisualizerFactory.cs │ │ ├── IdeComponent.cs │ │ ├── IdeComponent.vsdconfigxml │ │ ├── Utility.cs │ │ └── VisualizerRegistrar.cs │ ├── Microsoft.Dia.Interop.dll │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ServerComponent │ │ ├── AutoAttachToChildHandler.cs │ │ ├── CpuRegister.cs │ │ ├── DiaUtil.cs │ │ ├── DkmProcessExtensions.cs │ │ ├── DkmRuntimeInstanceExtensions.cs │ │ ├── DkmStackWalkFrameExtensions.cs │ │ ├── FrameAnalyzers │ │ │ ├── CachedFrameAnalyzer.cs │ │ │ ├── StackFrameAnalyzer.cs │ │ │ ├── StdcallFrameAnalyzer.cs │ │ │ └── X64FrameAnalyzer.cs │ │ ├── FunctionParameter.cs │ │ ├── FunctionTraceDataItem.cs │ │ ├── FunctionTracer.cs │ │ ├── IFunctionTracer.cs │ │ ├── ProcessDebugOptionsDataItem.cs │ │ ├── RuntimeBreakpointHandler.cs │ │ ├── ServerComponent.cs │ │ └── ServerComponent.vsdconfigxml │ └── Visualizers │ │ ├── DateTimeVisualizer.cs │ │ ├── TimeDeltaVisualizer.cs │ │ └── Visualizers.natvis ├── Host │ ├── Host.csproj │ ├── Program.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── Local.testsettings ├── Native │ ├── Native.vcxproj │ ├── Native.vcxproj.filters │ ├── VsChromiumNative.cpp │ ├── dllmain.cpp │ ├── resource.h │ ├── search_base.cpp │ ├── search_base.h │ ├── search_bndm32.cpp │ ├── search_bndm32.h │ ├── search_bndm64.cpp │ ├── search_bndm64.h │ ├── search_boyer_moore.cpp │ ├── search_boyer_moore.h │ ├── search_re2.cpp │ ├── search_re2.h │ ├── search_regex.cpp │ ├── search_regex.h │ ├── search_strstr.cpp │ ├── search_strstr.h │ ├── stdafx.cpp │ ├── stdafx.h │ ├── targetver.h │ └── version.rc ├── ProjectBefore.settings ├── Server │ ├── Configuration │ │ ├── ChromiumCodingStyle.ignore │ │ ├── ChromiumEnlistmentDetection.patterns │ │ ├── ChromiumExplorer.ignore │ │ ├── ChromiumStyleCheckers.disabled │ │ ├── SearchableFiles.ignore │ │ └── SearchableFiles.include │ ├── FileSystem │ │ ├── Builder │ │ │ ├── FileRegistrationQueue.cs │ │ │ ├── FileSystemChangesValidator.cs │ │ │ ├── FileSystemSnapshotBuilder.cs │ │ │ ├── FileSystemSnapshotVisitor.cs │ │ │ ├── ProjectPathChanges.cs │ │ │ └── ProjectRootSnapshotBuilder.cs │ │ ├── DirectoryData.cs │ │ ├── DirectorySnapshot.cs │ │ ├── FileRegistrationTracker.cs │ │ ├── FileSystemNameFactoryExtensions.cs │ │ ├── FileSystemSnapshot.cs │ │ ├── FileSystemSnapshotManager.cs │ │ ├── FileSystemValidationResult.cs │ │ ├── FilesChangedEventArgs.cs │ │ ├── FullPathChanges.cs │ │ ├── IFileRegistrationTracker.cs │ │ ├── IFileSystemSnapshotBuilder.cs │ │ ├── IFileSystemSnapshotManager.cs │ │ ├── ProjectFileName.cs │ │ ├── ProjectRootSnapshot.cs │ │ ├── SnapshotComputedResult.cs │ │ └── SnapshotScanResult.cs │ ├── FileSystemContents │ │ ├── AsciiFileContents.cs │ │ ├── AsciiTextLineOffsets.cs │ │ ├── BinaryFileContents.cs │ │ ├── FileContents.cs │ │ ├── FileContentsFactory.cs │ │ ├── FileContentsMemory.cs │ │ ├── FileContentsPiece.cs │ │ ├── IFileContentsFactory.cs │ │ ├── ITextLineOffsets.cs │ │ ├── TextLineOffsetsImpl.cs │ │ ├── UTF16FileContents.cs │ │ └── Utf16TextLineOffsets.cs │ ├── FileSystemDatabase │ │ ├── Builder │ │ │ ├── FileDatabaseBuilder.cs │ │ │ ├── FileDatabaseDebugLogger.cs │ │ │ └── ProjectDiscoveryExtensions.cs │ │ ├── FileDatabaseSnapshot.cs │ │ ├── FileDatabaseSnapshotExtensions.cs │ │ ├── FileDatabaseSnapshotFactory.cs │ │ ├── FileWithContents.cs │ │ ├── IFileDatabaseSnapshot.cs │ │ └── IFileDatabaseSnapshotFactory.cs │ ├── FileSystemNames │ │ ├── AbsoluteDirectoryName.cs │ │ ├── DirectoryName.cs │ │ ├── DirectoryNameComparer.cs │ │ ├── FileName.cs │ │ ├── FileSystemNameFactory.cs │ │ ├── IFileSystemNameFactory.cs │ │ └── RelativeDirectoryName.cs │ ├── IIndexingServer.cs │ ├── IServer.cs │ ├── IndexingServer.cs │ ├── IndexingServerState.cs │ ├── IndexingServerStateUpdatedEventArgs.cs │ ├── Ipc │ │ ├── FileSystemSnapshotExtensions.cs │ │ ├── IIpcRequestDispatcher.cs │ │ ├── IIpcResponseQueue.cs │ │ ├── IpcRequestDispatcher.cs │ │ ├── IpcResponseQueue.cs │ │ ├── ProtocolHandlers │ │ │ ├── EchoProtocolHandler.cs │ │ │ ├── HelloProtocolHandler.cs │ │ │ ├── IProtocolHandler.cs │ │ │ ├── ProtocolHandler.cs │ │ │ └── TypedMessageProtocolHandler.cs │ │ ├── TypedEvents │ │ │ ├── ITypedEventForwarder.cs │ │ │ ├── ITypedEventSender.cs │ │ │ ├── TypedEventForwarder.cs │ │ │ └── TypedEventSender.cs │ │ └── TypedMessageHandlers │ │ │ ├── GetDatabaseDetailsRequestHandler.cs │ │ │ ├── GetDatabaseStatisticsRequestHandler.cs │ │ │ ├── GetDirectoryDetailsRequestHandler.cs │ │ │ ├── GetDirectoryEntriesMultipleRequestHandler.cs │ │ │ ├── GetDirectoryEntriesRequestHandler.cs │ │ │ ├── GetDirectoryStatisticsRequestHandler.cs │ │ │ ├── GetFileExtractsRequestHandler.cs │ │ │ ├── GetFileSystemRequestHandler.cs │ │ │ ├── GetFileSystemTreeRequestHandler.cs │ │ │ ├── GetFileSystemVersionRequestHandler.cs │ │ │ ├── GetProjectDetailsRequestHandler.cs │ │ │ ├── ITypedMessageRequestHandler.cs │ │ │ ├── PauseIndexingRequestHandler.cs │ │ │ ├── RefreshFileSystemTreeRequestHandler.cs │ │ │ ├── RegisterFileRequestHandler.cs │ │ │ ├── ResumeIndexingRequestHandler.cs │ │ │ ├── SearchCodeRequestHandler.cs │ │ │ ├── SearchFilePathsRequestHandler.cs │ │ │ ├── TypedMessageRequestHandler.cs │ │ │ └── UnregisterFileRequestHandler.cs │ ├── Key.snk │ ├── Operations │ │ ├── IOperationIdFactory.cs │ │ ├── IOperationProcessor.cs │ │ ├── OperationHandlers.cs │ │ ├── OperationIdFactory.cs │ │ ├── OperationInfo.cs │ │ └── OperationProcessor.cs │ ├── Program.cs │ ├── ProgressTracking │ │ ├── DisplayProgressCallback.cs │ │ ├── EnvironmentTickCountProvider.cs │ │ ├── IProgressTracker.cs │ │ ├── IProgressTrackerFactory.cs │ │ ├── ITickCountProvider.cs │ │ ├── IndeterminateProgressTracker.cs │ │ ├── PartialProgressReporter.cs │ │ ├── ProgressTracker.cs │ │ ├── ProgressTrackerBase.cs │ │ └── ProgressTrackerFactory.cs │ ├── Projects │ │ ├── Chromium │ │ │ └── ChromiumProjectDiscoveryProvider.cs │ │ ├── DirectoryFilter.cs │ │ ├── FileFilter.cs │ │ ├── IDirectoryFilter.cs │ │ ├── IFileFilter.cs │ │ ├── IProject.cs │ │ ├── IProjectDiscovery.cs │ │ ├── IProjectDiscoveryProvider.cs │ │ ├── ISearchableFilesFilter.cs │ │ ├── Project.cs │ │ ├── ProjectDiscovery.cs │ │ ├── ProjectFile │ │ │ └── ProjectFileDiscoveryProvider.cs │ │ ├── ProjectPathComparer.cs │ │ └── SearchableFilesFilter.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Search │ │ ├── CompiledTextSearchContainer.cs │ │ ├── CompiledTextSearchData.cs │ │ ├── CompiledTextSearchDataFactory.cs │ │ ├── CompiledTextSearchProviderFactory.cs │ │ ├── FileSearchResult.cs │ │ ├── FilesLoadedResult.cs │ │ ├── GetLineExtentCache.cs │ │ ├── ICompiledTextSearchContainer.cs │ │ ├── ICompiledTextSearchDataFactory.cs │ │ ├── ICompiledTextSearchProviderFactory.cs │ │ ├── ISearchEngine.cs │ │ ├── ISearchStringParser.cs │ │ ├── NullCompiledTextSearch.cs │ │ ├── ParsedSearchString.cs │ │ ├── PerThreadCompiledTextSearchContainer.cs │ │ ├── SearchCodeResult.cs │ │ ├── SearchEngine.cs │ │ ├── SearchFilePathsResult.cs │ │ ├── SearchStringParser.cs │ │ └── TextSourceTextSearch.cs │ ├── Server.cs │ ├── Server.csproj │ ├── ServerStub.cs │ ├── Threads │ │ ├── CustomThreadPool.cs │ │ ├── ICustomThreadPool.cs │ │ ├── ILongRunningFileSystemTaskQueue.cs │ │ ├── IReceiveRequestsThread.cs │ │ ├── ISendResponsesThread.cs │ │ ├── ITaskQueue.cs │ │ ├── ITaskQueueFactory.cs │ │ ├── LongRunningFileSystemTaskQueue.cs │ │ ├── ReceiveRequestsThread.cs │ │ ├── SendResponsesThread.cs │ │ ├── TaskQueue.cs │ │ ├── TaskQueueExtensions.cs │ │ └── TaskQueueFactory.cs │ └── packages.config ├── ServerNativeInterop │ ├── AsciiCompiledTextSearchBndm32.cs │ ├── AsciiCompiledTextSearchBndm64.cs │ ├── AsciiCompiledTextSearchBoyerMoore.cs │ ├── AsciiCompiledTextSearchNative.cs │ ├── AsciiCompiledTextSearchRe2.cs │ ├── AsciiCompiledTextSearchRegex.cs │ ├── AsciiCompiledTextSearchStrStr.cs │ ├── CompiledTextSearchBase.cs │ ├── ICompiledTextSearch.cs │ ├── Key.snk │ ├── NativeMethods.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── SafeSearchHandle.cs │ ├── ServerNativeInterop.csproj │ ├── TextFragment.cs │ ├── TextRange.cs │ └── Utf16CompiledTextSearchStdSearch.cs ├── Tests │ ├── Core │ │ ├── TestCollections.cs │ │ ├── TestConversion.cs │ │ ├── TestCustomPathComparer.cs │ │ ├── TestEnumerableExtensions.cs │ │ ├── TestFileNameMatching.cs │ │ ├── TestPathComponent.cs │ │ ├── TestPathComponentEnumerator.cs │ │ ├── TestPathHelpers.cs │ │ ├── TestProtoBufSerialization.cs │ │ ├── TestSlimHashTable.cs │ │ └── TestTcpSerialization.cs │ ├── Features │ │ ├── TestBuildOutputAnalyzer.cs │ │ └── TestFormatComments.cs │ ├── Key.snk │ ├── MefTestBase.cs │ ├── Mocks │ │ ├── FileSystemMock.cs │ │ ├── TextBufferMock.cs │ │ ├── TextEditMock.cs │ │ ├── TextSnapshotLineMock.cs │ │ └── TextSnapshotMock.cs │ ├── NativeInterop │ │ ├── TestAsciiSearch.cs │ │ ├── TestGetLineExtent.cs │ │ └── TestGetTextKind.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Server │ │ ├── TestChromiumDiscoveryProvider.cs │ │ ├── TestFileContentsGetFileExtracts.cs │ │ ├── TestFileContentsSearch.cs │ │ ├── TestFileSystemMock.cs │ │ ├── TestProjectFileDiscoveryProvider.cs │ │ ├── TestSearchCode.cs │ │ ├── TestSearchStringParser.cs │ │ └── Utils.cs │ ├── ServerProcess │ │ ├── TestEchoProtocol.cs │ │ ├── TestFileSystemTree.cs │ │ ├── TestRegisterFile.cs │ │ ├── TestSearchCode.cs │ │ ├── TestSearchFilePaths.cs │ │ ├── TestServerBase.cs │ │ ├── TestServerPerf.cs │ │ └── TestUnregisterFile.cs │ ├── TestData │ │ ├── CSharpProject │ │ │ ├── App.config │ │ │ ├── CSharpProject.csproj │ │ │ ├── CSharpProject.sln │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ │ └── AssemblyInfo.cs │ │ │ └── vs-chromium-project.txt │ │ ├── chromium │ │ │ └── src │ │ │ │ ├── PRESUBMIT.py │ │ │ │ ├── base │ │ │ │ └── file_present_three_times.txt │ │ │ │ ├── chrome │ │ │ │ └── test_directory │ │ │ │ │ └── marker.txt │ │ │ │ ├── content │ │ │ │ └── folder │ │ │ │ │ └── test_directory │ │ │ │ │ └── marker.txt │ │ │ │ ├── file_present_three_times.txt │ │ │ │ ├── folder │ │ │ │ └── folder2 │ │ │ │ │ └── file_present_three_times.txt │ │ │ │ ├── out │ │ │ │ ├── clang-temp.obj-2333 │ │ │ │ └── clang-temp.pch-2333 │ │ │ │ ├── readme.txt │ │ │ │ ├── readme2.txt │ │ │ │ └── test_directory │ │ │ │ └── marker.txt │ │ └── files │ │ │ └── bear.ac3 │ ├── Tests.csproj │ ├── VsChromium │ │ ├── ToolsOptions │ │ │ └── TestGlobalSettings.cs │ │ └── Wpf │ │ │ └── TestHiararchyObjectNavigator.cs │ └── packages.config ├── TraceAndTestImpact.testsettings ├── VsChromium │ ├── ChromiumEnlistment │ │ ├── ChromiumSourceFiles.cs │ │ └── IChromiumSourceFiles.cs │ ├── Commands │ │ ├── AggregateCommandTarget.cs │ │ ├── Guids.cs │ │ ├── ICommandTarget.cs │ │ ├── OleCommandTarget.cs │ │ ├── OleCommandTargetSpy.cs │ │ ├── PkgCmdID.cs │ │ └── SimpleCommandTarget.cs │ ├── Features │ │ ├── AttachToChrome │ │ │ ├── AttachDialog.cs │ │ │ ├── AttachDialog.designer.cs │ │ │ ├── AttachDialog.resx │ │ │ ├── AttachToAllChromesHandler.cs │ │ │ ├── AttachToChromeDescendantsHandler.cs │ │ │ ├── AttachToChromeDialogHandler.cs │ │ │ ├── ColumnSorter.cs │ │ │ ├── DebugAttach.cs │ │ │ ├── DkmComponentEventHandler.cs │ │ │ ├── DkmComponentMessageInitializer.cs │ │ │ ├── Guids.cs │ │ │ ├── NumericStringComparer.cs │ │ │ ├── PkgCmdID.cs │ │ │ ├── ProcessCategory.cs │ │ │ └── ProcessViewItem.cs │ │ ├── AutoUpdate │ │ │ ├── IPackageVersionProvider.cs │ │ │ ├── IUpdateInfoProvider.cs │ │ │ ├── IUpdateNotificationListener.cs │ │ │ ├── PackageVersionProvider.cs │ │ │ ├── UpdateChecker.cs │ │ │ ├── UpdateInfo.cs │ │ │ ├── UpdateInfoProvider.cs │ │ │ └── UpdateNotificationListener.cs │ │ ├── BuildOutputAnalyzer │ │ │ ├── BuildOutputClassificationDefinition.cs │ │ │ ├── BuildOutputClassificationType.cs │ │ │ ├── BuildOutputClassifier.cs │ │ │ ├── BuildOutputClassifierConstants.cs │ │ │ ├── BuildOutputClassifierProvider.cs │ │ │ ├── BuildOutputParser.cs │ │ │ ├── BuildOutputSpan.cs │ │ │ ├── IBuildOutputParser.cs │ │ │ ├── NugetConsoleConstants.cs │ │ │ └── NugetConsoleViewHandler.cs │ │ ├── ChromiumCodingStyleChecker │ │ │ ├── ChromiumSourceFilesExtensions.cs │ │ │ ├── ChromiumStyleClassificationDefinition.cs │ │ │ ├── ChromiumStyleClassificationType.cs │ │ │ ├── ChromiumStyleClassifier.cs │ │ │ ├── ChromiumStyleClassifierConstants.cs │ │ │ ├── ChromiumStyleClassifierProvider.cs │ │ │ ├── ITextLineChecker.cs │ │ │ ├── TextLineCheckerError.cs │ │ │ └── TextLineCheckers │ │ │ │ ├── AccessorIndentChecker.cs │ │ │ │ ├── ElseIfOnNewLineChecker.cs │ │ │ │ ├── EndOfLineChecker.cs │ │ │ │ ├── LongLineChecker.cs │ │ │ │ ├── OpenBraceAfterNewLineChecker.cs │ │ │ │ ├── SpaceAfterForKeywordChecker.cs │ │ │ │ ├── TabCharacterChecker.cs │ │ │ │ └── TrailingSpacesChecker.cs │ │ ├── FormatComment │ │ │ ├── CommentFormatter.cs │ │ │ ├── CommentType.cs │ │ │ ├── ExtendSpanResult.cs │ │ │ ├── FormatCommentHandler.cs │ │ │ ├── FormatLinesResult.cs │ │ │ └── ICommentFormatter.cs │ │ ├── IndexServerInfo │ │ │ ├── DirectoryDetailsControl.xaml │ │ │ ├── DirectoryDetailsControl.xaml.cs │ │ │ ├── DirectoryDetailsDialog.xaml │ │ │ ├── DirectoryDetailsDialog.xaml.cs │ │ │ ├── DirectoryDetailsViewModel.cs │ │ │ ├── IShowServerInfoService.cs │ │ │ ├── ProjectConfigurationDetailsDialog.xaml │ │ │ ├── ProjectConfigurationDetailsDialog.xaml.cs │ │ │ ├── ProjectConfigurationSectionDetailsControl.xaml │ │ │ ├── ProjectConfigurationSectionDetailsControl.xaml.cs │ │ │ ├── ProjectDetailsControl.xaml │ │ │ ├── ProjectDetailsControl.xaml.cs │ │ │ ├── ProjectDetailsDialog.xaml │ │ │ ├── ProjectDetailsDialog.xaml.cs │ │ │ ├── ProjectDetailsViewModel.cs │ │ │ ├── SectioNameValueConverter.cs │ │ │ ├── ServerDetailsDialog.xaml │ │ │ ├── ServerDetailsDialog.xaml.cs │ │ │ ├── ServerDetailsViewModel.cs │ │ │ ├── ServerStatusDialog.xaml │ │ │ ├── ServerStatusDialog.xaml.cs │ │ │ ├── ServerStatusViewModel.cs │ │ │ └── ShowServerInfoService.cs │ │ ├── QuickSearch │ │ │ ├── QuickSearchCodeHandler.cs │ │ │ ├── QuickSearchFilePathsHandler.cs │ │ │ └── SelectionHelpers.cs │ │ ├── SourceExplorerHierarchy │ │ │ ├── DirectoryNodeViewModel.cs │ │ │ ├── FileNodeViewModel.cs │ │ │ ├── FilePathEventArgs.cs │ │ │ ├── IIncrementalHierarchyBuilder.cs │ │ │ ├── INodeTemplateFactory.cs │ │ │ ├── INodeViewModelLoader.cs │ │ │ ├── ISourceExplorerHierarchyController.cs │ │ │ ├── ISourceExplorerHierarchyControllerFactory.cs │ │ │ ├── IVsGlyphService.cs │ │ │ ├── IVsHierarchyImpl.cs │ │ │ ├── IVsSolutionEventsHandler.cs │ │ │ ├── IncrementalBuildResult.cs │ │ │ ├── IncrementalHierarchyBuilder.cs │ │ │ ├── IncrementalHierarchyBuilderAggregate.cs │ │ │ ├── LoadChildrenResult.cs │ │ │ ├── NodeTemplateFactory.cs │ │ │ ├── NodeViewModel.cs │ │ │ ├── NodeViewModelLoader.cs │ │ │ ├── NodeViewModelTemplate.cs │ │ │ ├── RootNodeViewModel.cs │ │ │ ├── SolutionExplorerHierarchyInitializer.cs │ │ │ ├── SourceExplorerHierarchyController.cs │ │ │ ├── SourceExplorerHierarchyControllerFactory.cs │ │ │ ├── VsGlyphService.cs │ │ │ ├── VsHierarchy.cs │ │ │ ├── VsHierarchyAggregate.cs │ │ │ ├── VsHierarchyChanges.cs │ │ │ ├── VsHierarchyCommandHandler.cs │ │ │ ├── VsHierarchyLogger.cs │ │ │ ├── VsHierarchyNodes.cs │ │ │ ├── VsHierarchyUtilities.cs │ │ │ └── VsSolutionEventsHandler.cs │ │ └── ToolWindows │ │ │ ├── BuildExplorer │ │ │ ├── BuildExplorerControl.xaml │ │ │ ├── BuildExplorerControl.xaml.cs │ │ │ ├── BuildExplorerToolWindow.cs │ │ │ ├── BuildExplorerViewModel.cs │ │ │ ├── ChromeProcessViewModel.cs │ │ │ ├── DeveloperBuildViewModel.cs │ │ │ ├── InstalledBuildViewModel.cs │ │ │ └── ShowBuildExplorerCommandHandler.cs │ │ │ ├── ChromiumExplorerViewModelBase.cs │ │ │ ├── CodeSearch │ │ │ ├── CancelSearchCommandHandler.cs │ │ │ ├── CancelSearchToolWindowCommandHandler.cs │ │ │ ├── CodeSearchControl.xaml │ │ │ ├── CodeSearchControl.xaml.cs │ │ │ ├── CodeSearchController.FilePathSearchInfo.cs │ │ │ ├── CodeSearchController.SearchWorkerParams.cs │ │ │ ├── CodeSearchController.cs │ │ │ ├── CodeSearchItemViewModelBase.cs │ │ │ ├── CodeSearchToolWindow.cs │ │ │ ├── CodeSearchViewModel.cs │ │ │ ├── CommandDelegate.cs │ │ │ ├── DirectoryEntryViewModel.cs │ │ │ ├── DocumentChangeTrackingEntry.cs │ │ │ ├── FileEntryViewModel.cs │ │ │ ├── FilePositionViewModel.cs │ │ │ ├── FileSystemEntryDataViewModelFactory.cs │ │ │ ├── FileSystemEntryViewModel.cs │ │ │ ├── GlobalNextLocationCommandHandler.cs │ │ │ ├── GlobalPreviousLocationCommandHandler.cs │ │ │ ├── GotoNextLocationCommandHandler.cs │ │ │ ├── GotoPreviousLocationCommandHandler.cs │ │ │ ├── ICodeSearchController.cs │ │ │ ├── NextLocationCommandHandler.cs │ │ │ ├── PreviousLocationCommandHandler.cs │ │ │ ├── QuickSearchCodeCommandHandler.cs │ │ │ ├── QuickSearchFilePathsCommandHandler.cs │ │ │ ├── SearchCodeCommandHandler.cs │ │ │ ├── SearchFilePathsCommandHandler.cs │ │ │ ├── SearchResultsDocumentChangeTracker.cs │ │ │ ├── ShowSourceExplorerCommandHandler.cs │ │ │ └── VsWindowFrameNotifyHandler.cs │ │ │ ├── IToolWindowAccessor.cs │ │ │ ├── LazyItemViewModel.cs │ │ │ ├── RootTreeViewItemViewModel.cs │ │ │ ├── ShowToolWindowCommandHandler.cs │ │ │ ├── TextErrorItemViewModel.cs │ │ │ ├── TextItemViewModel.cs │ │ │ ├── TextWarningItemViewModel.cs │ │ │ ├── ToolWindowAccessor.cs │ │ │ ├── TreeViewItemViewModel.cs │ │ │ └── TreeViewRootNodes.cs │ ├── Key.snk │ ├── Package │ │ ├── CommandHandler │ │ │ ├── IPackageCommandHandler.cs │ │ │ ├── IPackagePriorityCommandHandler.cs │ │ │ ├── PackageCommandHandlerBase.cs │ │ │ ├── PackageCommandHandlerExtensions.cs │ │ │ ├── PackageCommandHandlerRegistration.cs │ │ │ ├── PackagePriorityCommandHandlerBase.cs │ │ │ ├── PackagePriorityCommandHandlerRegistration.cs │ │ │ └── SimplePackageCommandHandler.cs │ │ ├── DispatchThreadEventBus.cs │ │ ├── DisposeContainer.cs │ │ ├── IDispatchThreadEventBus.cs │ │ ├── IDisposeContainer.cs │ │ ├── IPackagePostDispose.cs │ │ ├── IPackagePostInitializer.cs │ │ ├── IPackagePreInitializer.cs │ │ ├── IShellHost.cs │ │ ├── IVisualStudioPackage.cs │ │ ├── IVisualStudioPackageProvider.cs │ │ ├── PackageInitializerViewHandler.cs │ │ ├── ReportServerProgress.cs │ │ ├── ShellHost.cs │ │ ├── VisualStudioPackageInitialize.cs │ │ ├── VisualStudioPackageProvider.cs │ │ └── VsSolutionEventsHandler.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── GlobalSuppressions.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Resources │ │ ├── .gitignore │ │ ├── ChromeDebugIcons.png │ │ ├── Images_32bit.bmp │ │ ├── VsChromium.ico │ │ ├── VsChromium.png │ │ └── VsChromiumIcon.png │ ├── ServerProxy │ │ ├── CallbackDictionary.cs │ │ ├── FileSystemTreeSource.cs │ │ ├── IFileSystemTreeSource.cs │ │ ├── IServerProcessLauncher.cs │ │ ├── IServerProcessProxy.cs │ │ ├── ITypedRequestProcessProxy.cs │ │ ├── ServerProcessLauncher.cs │ │ ├── ServerProcessProxy.cs │ │ └── TypedRequestProcessProxy.cs │ ├── Settings │ │ ├── GlobalSettings.cs │ │ ├── GlobalSettingsProvider.cs │ │ ├── HardCodedSettings.cs │ │ └── IGlobalSettingsProvider.cs │ ├── Threads │ │ ├── DelayedOperation.cs │ │ ├── DelayedOperationExecutor.cs │ │ ├── DispatchThread.cs │ │ ├── DispatchThreadDelayedOperationExecutor.cs │ │ ├── DispatchThreadServerRequest.cs │ │ ├── DispatchThreadServerRequestExecutor.cs │ │ ├── IDelayedOperationExecutor.cs │ │ ├── IDispatchThread.cs │ │ ├── IDispatchThreadDelayedOperationExecutor.cs │ │ ├── IDispatchThreadServerRequestExecutor.cs │ │ ├── IReceiveResponsesThread.cs │ │ ├── IRequestQueue.cs │ │ ├── ISendRequestsThread.cs │ │ ├── ISynchronizationContext.cs │ │ ├── ISynchronizationContextProvider.cs │ │ ├── IpcRequestException.cs │ │ ├── ReceiveResponsesThread.cs │ │ ├── RequestQueue.cs │ │ ├── SendRequestsThread.cs │ │ ├── SynchronizationContextDelegate.cs │ │ └── SynchronizationContextProvider.cs │ ├── ToolsOptions │ │ ├── CodingStyleOptions.cs │ │ ├── DebuggingOptions.cs │ │ ├── GeneralOptions.cs │ │ └── IToolsOptionsPageProvider.cs │ ├── Views │ │ ├── Clipboard.cs │ │ ├── FileRegistrationRequestService.cs │ │ ├── IClipboard.cs │ │ ├── IFileRegistrationRequestService.cs │ │ ├── IImageSourceFactory.cs │ │ ├── IOpenDocumentHelper.cs │ │ ├── IStandarImageSourceFactory.cs │ │ ├── IStatusBar.cs │ │ ├── ITextDocumentTable.cs │ │ ├── IViewHandler.cs │ │ ├── IWindowsExplorer.cs │ │ ├── ImageSourceFactory.cs │ │ ├── Images │ │ │ ├── ArrowLeft.png │ │ │ ├── ArrowRight.png │ │ │ ├── CancelSearch.png │ │ │ ├── ClearSearch.png │ │ │ ├── Error.png │ │ │ ├── FileEntry.png │ │ │ ├── FileGo.png │ │ │ ├── ProcessWorking.png │ │ │ ├── ProjectNodeIcon.png │ │ │ ├── RefreshFileSystemTree.png │ │ │ ├── SearchLens.png │ │ │ ├── SyncActiveDocument.png │ │ │ ├── TextDocument.png │ │ │ ├── TextEntry.png │ │ │ ├── VsChromiumIcon.png │ │ │ └── Warning.png │ │ ├── OpenDocumentHelper.cs │ │ ├── StandarImageSourceFactory.cs │ │ ├── StatusBar.cs │ │ ├── TextDocumentRegistrationManager.cs │ │ ├── TextDocumentTable.cs │ │ ├── TextLineFragment.cs │ │ ├── TextSnapshotLineExtensions.cs │ │ ├── ViewCreationListener.cs │ │ ├── VsResources.cs │ │ ├── VsRunningDocTableEvents.cs │ │ └── WindowsExplorer.cs │ ├── VsChromium.csproj │ ├── VsChromium.vsct │ ├── VsPackage.cs │ ├── VsPackage.resx │ ├── Wpf │ │ ├── EditableComboBox.cs │ │ ├── HierarchyObjectNavigator.cs │ │ ├── HumanReadableBytesValueConverter.cs │ │ ├── IHierarchyObject.cs │ │ ├── ILazyObservableCollection.cs │ │ ├── IProgressBarTracker.cs │ │ ├── LazyObservableCollection.cs │ │ ├── ListViewSorter.cs │ │ ├── NumberValueConverter.cs │ │ ├── ProgressBarTracker.cs │ │ ├── StringListViewModel.cs │ │ ├── ViewModelBase.cs │ │ └── WpfUtilities.cs │ ├── clear_vs2012Exp_mef_cache.bat │ ├── packages.config │ └── source.extension.vsixmanifest ├── packages │ ├── Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215 │ │ ├── Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215.nupkg │ │ ├── build │ │ │ ├── Microsoft.VisualStudio.Sdk.BuildTasks.14.0.props │ │ │ └── Microsoft.VisualStudio.Sdk.BuildTasks.14.0.targets │ │ └── tools │ │ │ └── vssdk │ │ │ ├── Microsoft.VisualStudio.Sdk.BuildTasks.14.0.dll │ │ │ ├── Microsoft.VisualStudio.Sdk.BuildTasks.dll │ │ │ ├── Microsoft.VisualStudio.Sdk.Common.props │ │ │ ├── Microsoft.VisualStudio.Sdk.Common.targets │ │ │ ├── Microsoft.VisualStudio.Setup.Common.dll │ │ │ ├── Microsoft.VsSDK.Cpp.Overrides.targets │ │ │ ├── Microsoft.VsSDK.Cpp.targets │ │ │ ├── Microsoft.VsSDK.targets │ │ │ ├── Newtonsoft.Json.dll │ │ │ ├── ProjectItemsSchema.xml │ │ │ ├── inc │ │ │ ├── AppIDCmdUsed.vsct │ │ │ ├── EmulatorCmdUsed.vsct │ │ │ ├── KnownImageIds.vsct │ │ │ ├── Menus.vsct │ │ │ ├── MnuHelpIds.h │ │ │ ├── RazorCmdId.h │ │ │ ├── RazorCmdUsed.vsct │ │ │ ├── RazorGuids.h │ │ │ ├── SharedCmdDef.vsct │ │ │ ├── SharedCmdPlace.vsct │ │ │ ├── ShellCmdDef.vsct │ │ │ ├── ShellCmdPlace.vsct │ │ │ ├── VsDbgCmd.h │ │ │ ├── VsDbgCmdPlace.vsct │ │ │ ├── VsDbgCmdUsed.vsct │ │ │ ├── editids.h │ │ │ ├── sccmnid.h │ │ │ ├── sharedids.h │ │ │ ├── stdidcmd.h │ │ │ ├── venusids.h │ │ │ ├── venusmenu.vsct │ │ │ ├── virtkeys.h │ │ │ ├── vsdebugguids.h │ │ │ ├── vsshlids.h │ │ │ └── wbids.h │ │ │ └── schemas │ │ │ ├── legacy │ │ │ ├── PackageLanguagePackManifestSchema.xsd │ │ │ ├── PackageManifestSchema.Assets.xsd │ │ │ ├── PackageManifestSchema.Dependencies.xsd │ │ │ ├── PackageManifestSchema.Installation.xsd │ │ │ ├── PackageManifestSchema.Metadata.xsd │ │ │ ├── PackageManifestSchema.xsd │ │ │ └── VSIXManifestSchema.xsd │ │ │ └── v3 │ │ │ ├── PackageLanguagePackManifestSchema.xsd │ │ │ ├── PackageManifestSchema.Assets.xsd │ │ │ ├── PackageManifestSchema.Dependencies.xsd │ │ │ ├── PackageManifestSchema.Installation.xsd │ │ │ ├── PackageManifestSchema.Installer.xsd │ │ │ ├── PackageManifestSchema.Metadata.xsd │ │ │ ├── PackageManifestSchema.Prerequisites.xsd │ │ │ ├── PackageManifestSchema.xsd │ │ │ └── VSIXManifestSchema.xsd │ ├── NLog.4.4.12 │ │ ├── NLog.4.4.12.nupkg │ │ └── lib │ │ │ ├── MonoAndroid10 │ │ │ ├── NLog.dll │ │ │ └── NLog.xml │ │ │ ├── Xamarin.iOS10 │ │ │ ├── NLog.dll │ │ │ └── NLog.xml │ │ │ ├── net35 │ │ │ ├── NLog.dll │ │ │ └── NLog.xml │ │ │ ├── net40 │ │ │ ├── NLog.dll │ │ │ └── NLog.xml │ │ │ ├── net45 │ │ │ ├── NLog.dll │ │ │ └── NLog.xml │ │ │ ├── sl4 │ │ │ ├── NLog.dll │ │ │ └── NLog.xml │ │ │ ├── sl5 │ │ │ ├── NLog.dll │ │ │ └── NLog.xml │ │ │ └── wp8 │ │ │ ├── NLog.dll │ │ │ └── NLog.xml │ ├── protobuf-net.2.0.0.640 │ │ ├── lib │ │ │ ├── net20-cf │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ ├── net20 │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ ├── net30 │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ ├── net35-cf │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ ├── net35 │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ ├── net40-cf │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ ├── net40 │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ ├── netcore45 │ │ │ │ ├── protobuf-net.XML │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.pri │ │ │ ├── portable-sl4+net40+wp7+windows8 │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ ├── sl3-wp │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ ├── sl4-windowsphone71 │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ ├── sl4 │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ │ └── windowsphone8 │ │ │ │ ├── protobuf-net.dll │ │ │ │ └── protobuf-net.xml │ │ ├── protobuf-net.2.0.0.640.nupkg │ │ └── protobuf-net.2.0.0.640.nuspec │ └── repositories.config ├── re2 │ ├── re2.vcxproj │ ├── re2.vcxproj.filters │ ├── re2_wrapper.cpp │ └── re2_wrapper.h ├── vs-chromium.sln ├── vs-chromium.sln.DotSettings └── vs-chromium.vsmdi ├── third_party ├── re2-2011-09-30-src-win32.readme.txt └── re2-2011-09-30-src-win32 │ └── re2 │ ├── .hgignore │ ├── AUTHORS │ ├── CONTRIBUTORS │ ├── LICENSE │ ├── Makefile │ ├── README │ ├── benchlog │ ├── benchlog.c2 │ ├── benchlog.mini │ ├── benchlog.r70 │ ├── benchlog.wreck │ └── mktable │ ├── doc │ ├── README.xkcd │ ├── mksyntaxhtml │ ├── mksyntaxwiki │ ├── syntax.html │ ├── syntax.txt │ └── xkcd.png │ ├── lib │ └── codereview │ │ ├── codereview.cfg │ │ └── codereview.py │ ├── libre2.symbols │ ├── libre2.symbols.darwin │ ├── mswin │ └── stdint.h │ ├── re2.vcproj │ ├── re2 │ ├── Makefile │ ├── bitstate.cc │ ├── compile.cc │ ├── dfa.cc │ ├── filtered_re2.cc │ ├── filtered_re2.h │ ├── make_perl_groups.pl │ ├── make_unicode_casefold.py │ ├── make_unicode_groups.py │ ├── mimics_pcre.cc │ ├── nfa.cc │ ├── onepass.cc │ ├── parse.cc │ ├── perl_groups.cc │ ├── prefilter.cc │ ├── prefilter.h │ ├── prefilter_tree.cc │ ├── prefilter_tree.h │ ├── prog.cc │ ├── prog.h │ ├── re2.cc │ ├── re2.h │ ├── regexp.cc │ ├── regexp.h │ ├── set.cc │ ├── set.h │ ├── simplify.cc │ ├── stringpiece.h │ ├── testing │ │ ├── backtrack.cc │ │ ├── charclass_test.cc │ │ ├── compile_test.cc │ │ ├── dfa_test.cc │ │ ├── dump.cc │ │ ├── exhaustive1_test.cc │ │ ├── exhaustive2_test.cc │ │ ├── exhaustive3_test.cc │ │ ├── exhaustive_test.cc │ │ ├── exhaustive_tester.cc │ │ ├── exhaustive_tester.h │ │ ├── filtered_re2_test.cc │ │ ├── mimics_pcre_test.cc │ │ ├── null_walker.cc │ │ ├── parse_test.cc │ │ ├── possible_match_test.cc │ │ ├── random_test.cc │ │ ├── re2_arg_test.cc │ │ ├── re2_test.cc │ │ ├── regexp_benchmark.cc │ │ ├── regexp_generator.cc │ │ ├── regexp_generator.h │ │ ├── regexp_test.cc │ │ ├── required_prefix_test.cc │ │ ├── search_test.cc │ │ ├── set_test.cc │ │ ├── simplify_test.cc │ │ ├── string_generator.cc │ │ ├── string_generator.h │ │ ├── string_generator_test.cc │ │ ├── tester.cc │ │ ├── tester.h │ │ └── unicode_test.py │ ├── tostring.cc │ ├── unicode.py │ ├── unicode_casefold.cc │ ├── unicode_casefold.h │ ├── unicode_groups.cc │ ├── unicode_groups.h │ ├── variadic_function.h │ └── walker-inl.h │ ├── runtests │ ├── testinstall.cc │ └── util │ ├── arena.cc │ ├── arena.h │ ├── atomicops.h │ ├── benchmark.cc │ ├── benchmark.h │ ├── flags.h │ ├── hash.cc │ ├── logging.h │ ├── mutex.h │ ├── pcre.cc │ ├── pcre.h │ ├── random.cc │ ├── random.h │ ├── rune.cc │ ├── sparse_array.h │ ├── sparse_array_test.cc │ ├── sparse_set.h │ ├── stringpiece.cc │ ├── stringprintf.cc │ ├── strutil.cc │ ├── test.cc │ ├── test.h │ ├── thread.cc │ ├── thread.h │ ├── utf.h │ ├── util.h │ ├── valgrind.cc │ └── valgrind.h └── vs-chromium-project.txt /Build/VsChromiumKey.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/Build/VsChromiumKey.snk -------------------------------------------------------------------------------- /VsixInstall/install_vs2013_community_debug.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2013 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Debug Community 12.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2013_community_release.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2013 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Release Community 12.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2013_debug.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2013 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Debug Pro 12.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2013_release.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2013 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Release Pro 12.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2015_community_debug.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2013 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Debug Community 14.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2015_community_release.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2015 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Release Community 14.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2015_pro_debug.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2013 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Debug Pro 14.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2015_pro_release.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2015 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Release Pro 14.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2017_community_debug.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2013 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Debug Community 15.9 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2017_community_release.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2015 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Release Community 15.9 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2017_pro_debug.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2013 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Debug Pro 15.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2017_pro_release.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2015 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Release Pro 15.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2019_community_debug.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2013 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Debug Community 16.6 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2019_community_release.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2015 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Release Community 16.6 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2019_pro_debug.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2013 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Debug Pro 16.0 6 | -------------------------------------------------------------------------------- /VsixInstall/install_vs2019_pro_release.bat: -------------------------------------------------------------------------------- 1 | REM Copyright 2015 The Chromium Authors. All rights reserved. 2 | REM Use of this source code is governed by a BSD-style license that can be 3 | REM found in the LICENSE file. 4 | 5 | call install_vsix_helper.bat Release Pro 16.0 6 | -------------------------------------------------------------------------------- /build.root: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/build.root -------------------------------------------------------------------------------- /new_feature_ideas.txt: -------------------------------------------------------------------------------- 1 | Search UI 2 | 3 | * Expand all 4 | * Hook up Next/Prev Find Ref 5 | * Support replace -------------------------------------------------------------------------------- /src/Core/Chromium/DistributionType.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Core.Chromium { 2 | public enum DistributionType { 3 | Chromium, 4 | Chrome, 5 | Canary, 6 | Unknown 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/Core/Chromium/IChromiumDiscovery.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Files; 6 | 7 | namespace VsChromium.Core.Chromium { 8 | public interface IChromiumDiscovery { 9 | FullPath? GetEnlistmentRootPath(FullPath path); 10 | void ValidateCache(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Core/Chromium/IChromiumDiscoveryWithCache.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using VsChromium.Core.Files; 7 | 8 | namespace VsChromium.Core.Chromium { 9 | public interface IChromiumDiscoveryWithCache { 10 | T GetEnlistmentRootFromRootpath(FullPath root, Func factory); 11 | T GetEnlistmentRootFromAnyPath(FullPath path, Func factory); 12 | void ValidateCache(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Core/Chromium/InstallationLevel.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Core.Chromium { 2 | public enum InstallationLevel { 3 | System, 4 | User, 5 | Developer 6 | } 7 | 8 | public static class InstallationLevelExtensions { 9 | public static string LevelString(this InstallationLevel level) { 10 | if (level == InstallationLevel.System) 11 | return "System-level"; 12 | else 13 | return "User-level"; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Core/Collections/IBitArray.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Collections { 6 | public interface IBitArray { 7 | long Count { get; } 8 | void Set(long index, bool value); 9 | bool Get(long index); 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Collections/ICollectionGrowthPolicy.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Collections { 6 | public interface ICollectionGrowthPolicy { 7 | int Grow(int currentSize); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Core/Collections/IHeap.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Collections { 6 | /// 7 | /// Common interface for a Max or Min heap implementation. 8 | /// 9 | /// 10 | public interface IHeap { 11 | int Count { get; } 12 | T Root { get; } 13 | 14 | void Clear(); 15 | 16 | void Add(T item); 17 | T Remove(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Core/Collections/ISlimHashTableParameters.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Core.Collections { 8 | public interface ISlimHashTableParameters { 9 | Func KeyGetter { get; } 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Collections/LeftRightItemPair.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Collections { 6 | public struct LeftRightItemPair { 7 | private readonly T _leftItem; 8 | private readonly T _rigthtItem; 9 | 10 | public LeftRightItemPair(T leftItem, T rigthtItem) { 11 | _leftItem = leftItem; 12 | _rigthtItem = rigthtItem; 13 | } 14 | 15 | public T LeftItem { 16 | get { return _leftItem; } 17 | } 18 | 19 | public T RigthtItem { 20 | get { return _rigthtItem; } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/Core/Collections/LinearGrowthPolicy.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Collections { 6 | public class LinearGrowthPolicy : ICollectionGrowthPolicy { 7 | private readonly int _step; 8 | 9 | public LinearGrowthPolicy(int step) { 10 | _step = step; 11 | } 12 | public int Grow(int currentSize) { 13 | return currentSize + _step; 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Core/Collections/SlimDictionary.Entry.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Collections { 6 | public partial class SlimDictionary { 7 | private struct Entry { 8 | internal readonly TKey Key; 9 | internal readonly TValue Value; 10 | 11 | public Entry(TKey key, TValue value) { 12 | Key = key; 13 | Value = value; 14 | } 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Core/Configuration/ConfigurationStyleFilenames.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Configuration { 6 | public static class ConfigurationStyleFilenames { 7 | public static readonly string ChromiumCodingStyleIgnore = "ChromiumCodingStyle.ignore"; 8 | public static readonly string ChromiumStyleCheckersDisabled = "ChromiumStyleCheckers.disabled"; 9 | } 10 | } -------------------------------------------------------------------------------- /src/Core/Configuration/IConfigurationSectionProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.Collections.Generic; 7 | 8 | namespace VsChromium.Core.Configuration { 9 | /// 10 | /// Abstraction over either file or project file implementation of configuration 11 | /// "sections", i.e. set of text lines grouped into a section with a given name. 12 | /// 13 | public interface IConfigurationSectionProvider { 14 | IConfigurationSectionContents GetSection(string sectionName, Func, IEnumerable> postProcessing); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Core/Configuration/IFileWithSections.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.Collections.Generic; 7 | using VsChromium.Core.Files; 8 | 9 | namespace VsChromium.Core.Configuration { 10 | public interface IFileWithSections { 11 | FullPath FilePath { get; } 12 | IEnumerable ReadSection(string name, Func, IEnumerable> postProcessing); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Core/DkmShared/ChildDebuggingMode.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.DkmShared { 6 | public enum ChildDebuggingMode { 7 | AlwaysAttach, 8 | UseDefault, 9 | NeverAttach 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Core/DkmShared/VsDebuggerMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.DkmShared { 6 | public enum VsDebuggerMessage { 7 | EnableChildProcessDebugging, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Core/DkmShared/VsPackageMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.DkmShared { 6 | public enum VsPackageMessage { 7 | AttachToChild, 8 | IsChildDebuggingEnabled, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Core/Files/IDirectoryChangeWatcherFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Core.Files { 8 | public interface IDirectoryChangeWatcherFactory { 9 | IDirectoryChangeWatcher CreateWatcher(TimeSpan? autoRestartDelay); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Core/Files/PathChangeKind.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Files { 6 | public enum PathChangeKind { 7 | None, 8 | Created, 9 | Deleted, 10 | Changed 11 | } 12 | } -------------------------------------------------------------------------------- /src/Core/Files/PathComparisonOption.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Files { 6 | public enum PathComparisonOption { 7 | CaseSensitive, 8 | CaseInsensitive, 9 | } 10 | } -------------------------------------------------------------------------------- /src/Core/Files/PatternMatching/IPathMatcher.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Files.PatternMatching { 6 | public interface IPathMatcher { 7 | bool MatchDirectoryName(RelativePath path, IPathComparer comparer); 8 | bool MatchFileName(RelativePath path, IPathComparer comparer); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Core/Files/PatternMatching/IPrePassWontMatch.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Files.PatternMatching { 6 | public interface IPrePassWontMatch { 7 | /// 8 | /// Returns "true" if this operator can globally say that "path" can't match the operator. 9 | /// 10 | bool PrePassWontMatch(MatchKind kind, string path, IPathComparer comparer); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Core/Files/PatternMatching/MatchKind.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Files.PatternMatching { 6 | public enum MatchKind { 7 | File = 0x01, 8 | Directory = 0x02 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Core/Files/PatternMatching/OpDirectorySeparator.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.IO; 3 | 4 | namespace VsChromium.Core.Files.PatternMatching { 5 | public class OpDirectorySeparator : BaseOperator { 6 | public override int MatchWorker(MatchKind kind, IPathComparer comparer, IList operators, int operatorIndex, string path, int pathIndex) { 7 | if (pathIndex < path.Length && path[pathIndex] == Path.DirectorySeparatorChar) 8 | return Match(kind, comparer, operators, operatorIndex + 1, path, pathIndex + 1); 9 | return -1; 10 | } 11 | 12 | public override string ToString() { 13 | return ""; 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Core/Ipc/ErrorResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc { 8 | [ProtoContract] 9 | public class ErrorResponse : IpcMessageData { 10 | [ProtoMember(1)] 11 | public string Message { get; set; } 12 | 13 | [ProtoMember(2)] 14 | public string FullTypeName { get; set; } 15 | 16 | [ProtoMember(3)] 17 | public string StackTrace { get; set; } 18 | 19 | [ProtoMember(4)] 20 | public ErrorResponse InnerError { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/Core/Ipc/ErrorResponseException.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Core.Ipc { 8 | public class ErrorResponseException : Exception { 9 | private readonly ErrorResponse _errorResponse; 10 | 11 | public ErrorResponseException(ErrorResponse errorResponse) 12 | : base(errorResponse.Message) { 13 | _errorResponse = errorResponse; 14 | } 15 | 16 | public ErrorResponse ErrorResponse { get { return _errorResponse; } } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Core/Ipc/IIpcRequestIdFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Ipc { 6 | public interface IIpcRequestIdFactory { 7 | long GetNextId(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Core/Ipc/IpcEvent.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc { 8 | [ProtoContract] 9 | public class IpcEvent : IpcResponse { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Core/Ipc/IpcMessageData.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | using VsChromium.Core.Ipc.TypedMessages; 7 | 8 | namespace VsChromium.Core.Ipc { 9 | [ProtoContract] 10 | [ProtoInclude(10, typeof(IpcStringData))] 11 | [ProtoInclude(11, typeof(TypedMessage))] 12 | [ProtoInclude(12, typeof(ErrorResponse))] 13 | public class IpcMessageData { 14 | 15 | public override string ToString() { 16 | return GetType().Name; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Core/Ipc/IpcProtocols.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Ipc { 6 | public static class IpcProtocols { 7 | public const string Hello = "hello"; 8 | public const string Echo = "echo"; 9 | public const string TypedMessage = "typed-message"; 10 | public const string Exception = "exception"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Core/Ipc/IpcRequestIdFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.ComponentModel.Composition; 6 | using System.Threading; 7 | 8 | namespace VsChromium.Core.Ipc { 9 | [Export(typeof(IIpcRequestIdFactory))] 10 | public class IpcRequestIdFactory : IIpcRequestIdFactory { 11 | private long _nextId = 1; 12 | 13 | public long GetNextId() { 14 | return Interlocked.Increment(ref _nextId); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Core/Ipc/IpcResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc { 8 | [ProtoContract] 9 | [ProtoInclude(10, typeof(IpcEvent))] 10 | public class IpcResponse : IpcMessage { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Core/Ipc/IpcStringData.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc { 8 | [ProtoContract] 9 | public class IpcStringData : IpcMessageData { 10 | [ProtoMember(1)] 11 | public string Text { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Core/Ipc/ProtoBuf/IProtoBufSerializer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.IO; 6 | 7 | namespace VsChromium.Core.Ipc.ProtoBuf { 8 | public interface IProtoBufSerializer { 9 | void Serialize(Stream stream, IpcMessage message); 10 | IpcMessage Deserialize(Stream stream); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/DoneResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class DoneResponse : TypedResponse { 10 | [ProtoMember(1)] 11 | public string Info { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/FileByExtensionDetails.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class FileByExtensionDetails { 10 | [ProtoMember(1)] 11 | public string FileExtension { get; set; } 12 | 13 | [ProtoMember(2)] 14 | public long FileCount { get; set; } 15 | 16 | [ProtoMember(3)] 17 | public long FilesByteLength { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/FileEntry.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class FileEntry : FileSystemEntry { 10 | public override string ToString() { 11 | return $"file: \"{Name}\""; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/FilePositionSpan.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class FilePositionSpan { 10 | /// 11 | /// The position, in character offset, of the first character of the span. 12 | /// 13 | [ProtoMember(1)] 14 | public int Position { get; set; } 15 | 16 | /// 17 | /// The length, in number of characters, of the span. 18 | /// 19 | [ProtoMember(2)] 20 | public int Length { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/FilePositionsData.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | using ProtoBuf; 7 | 8 | namespace VsChromium.Core.Ipc.TypedMessages { 9 | [ProtoContract] 10 | public class FilePositionsData : FileSystemEntryData { 11 | public FilePositionsData() { 12 | Positions = new List(); 13 | } 14 | 15 | [ProtoMember(1)] 16 | public List Positions { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/FileSystemEntryData.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | [ProtoInclude(10, typeof(FilePositionsData))] 10 | public class FileSystemEntryData { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/FileSystemScanFinished.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class FileSystemScanFinished : PairedTypedEvent { 10 | [ProtoMember(1)] 11 | public int OldVersion { get; set; } 12 | 13 | [ProtoMember(2)] 14 | public int NewVersion { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/FileSystemScanStarted.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class FileSystemScanStarted : PairedTypedEvent { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetDatabaseDetailsRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetDatabaseDetailsRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public int MaxFilesByExtensionDetailsCount { get; set; } 12 | 13 | [ProtoMember(2)] 14 | public int MaxLargeFilesDetailsCount { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetDatabaseDetailsResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | using ProtoBuf; 7 | 8 | namespace VsChromium.Core.Ipc.TypedMessages { 9 | [ProtoContract] 10 | public class GetDatabaseDetailsResponse : TypedResponse { 11 | public GetDatabaseDetailsResponse() { 12 | Projects = new List(); 13 | } 14 | 15 | [ProtoMember(1)] 16 | public List Projects { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetDatabaseStatisticsRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetDatabaseStatisticsRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public bool ForceGabageCollection { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetDirectoryDetailsRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetDirectoryDetailsRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public string Path { get; set; } 12 | 13 | [ProtoMember(2)] 14 | public int MaxFilesByExtensionDetailsCount { get; set; } 15 | 16 | [ProtoMember(3)] 17 | public int MaxLargeFilesDetailsCount { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetDirectoryDetailsResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetDirectoryDetailsResponse : TypedResponse { 10 | [ProtoMember(1)] 11 | public DirectoryDetails DirectoryDetails { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetDirectoryEntriesRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetDirectoryEntriesRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public string ProjectPath { get; set; } 12 | 13 | [ProtoMember(2)] 14 | public string DirectoryRelativePath { get; set; } 15 | 16 | public override string ToString() { 17 | return $"{base.ToString()} : Project=\"{ProjectPath}\" RelativePath=\"{DirectoryRelativePath}\""; 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetDirectoryEntriesResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetDirectoryEntriesResponse : TypedResponse { 10 | /// 11 | /// null if the requested directory is not found in the 12 | /// active file system snapshpt. 13 | /// 14 | [ProtoMember(1)] 15 | public DirectoryEntry DirectoryEntry { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetDirectoryStatisticsRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetDirectoryStatisticsRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public string DirectoryName { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetDirectoryStatisticsResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetDirectoryStatisticsResponse : TypedResponse { 10 | [ProtoMember(1)] 11 | public int DirectoryCount { get; set; } 12 | [ProtoMember(2)] 13 | public int FileCount { get; set; } 14 | [ProtoMember(3)] 15 | public int IndexedFileCount { get; set; } 16 | [ProtoMember(4)] 17 | public long TotalIndexedFileSize { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetFileExtractsResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | using ProtoBuf; 7 | 8 | namespace VsChromium.Core.Ipc.TypedMessages { 9 | [ProtoContract] 10 | public class GetFileExtractsResponse : TypedResponse { 11 | public GetFileExtractsResponse() { 12 | FileExtracts = new List(); 13 | } 14 | 15 | [ProtoMember(1)] 16 | public string FileName { get; set; } 17 | 18 | [ProtoMember(2)] 19 | public List FileExtracts { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetFileSystemRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetFileSystemRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public int KnownVersion { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetFileSystemResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetFileSystemResponse : TypedResponse { 10 | [ProtoMember(1)] 11 | public FileSystemTree_Obsolete Tree { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetFileSystemTreeRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetFileSystemTreeRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public int KnownVersion { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetFileSystemTreeResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetFileSystemTreeResponse : TypedResponse { 10 | [ProtoMember(1)] 11 | public FileSystemTree Tree { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetFileSystemVersionRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetFileSystemVersionRequest : TypedRequest { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetFileSystemVersionResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetFileSystemVersionResponse : TypedResponse { 10 | [ProtoMember(1)] 11 | public int Version { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetProjectDetailsRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetProjectDetailsRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public string ProjectPath { get; set; } 12 | 13 | [ProtoMember(2)] 14 | public int MaxFilesByExtensionDetailsCount { get; set; } 15 | 16 | [ProtoMember(3)] 17 | public int MaxLargeFilesDetailsCount { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/GetProjectDetailsResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class GetProjectDetailsResponse : TypedResponse { 10 | [ProtoMember(1)] 11 | public ProjectDetails ProjectDetails { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/IndexingServerStateChangedEvent.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using ProtoBuf; 7 | 8 | namespace VsChromium.Core.Ipc.TypedMessages { 9 | [ProtoContract] 10 | public class IndexingServerStateChangedEvent : TypedEvent { 11 | [ProtoMember(1)] 12 | public IndexingServerStatus ServerStatus { get; set; } 13 | [ProtoMember(2)] 14 | public DateTime LastIndexUpdatedUtc { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/LargeFileDetails.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class LargeFileDetails { 10 | [ProtoMember(1)] 11 | public string RelativePath { get; set; } 12 | 13 | [ProtoMember(2)] 14 | public long ByteLength { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/PauseIndexingRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class PauseIndexingRequest : TypedRequest { 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/PauseResumeIndexingResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class PauseResumeIndexingResponse : TypedResponse { 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/ProjectConfigurationDetails.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class ProjectConfigurationDetails { 10 | [ProtoMember(1)] 11 | public ProjectConfigurationSectionDetails IgnorePathsSection { get; set; } 12 | 13 | [ProtoMember(2)] 14 | public ProjectConfigurationSectionDetails IgnoreSearchableFilesSection { get; set; } 15 | 16 | [ProtoMember(3)] 17 | public ProjectConfigurationSectionDetails IncludeSearchableFilesSection { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/ProjectConfigurationSectionDetails.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class ProjectConfigurationSectionDetails { 10 | [ProtoMember(1)] 11 | public string ContainingFilePath { get; set; } 12 | 13 | [ProtoMember(2)] 14 | public string Name { get; set; } 15 | 16 | [ProtoMember(3)] 17 | public string Contents { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/ProjectEntry.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class ProjectEntry { 10 | [ProtoMember(1)] 11 | public string RootPath { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/RefreshFileSystemTreeRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class RefreshFileSystemTreeRequest : TypedRequest { 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/RefreshFileSystemTreeResponse.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class RefreshFileSystemTreeResponse : TypedResponse { 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/RegisterFileRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class RegisterFileRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public string FileName { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/ResumeIndexingRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class ResumeIndexingRequest : TypedRequest { 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/SearchCodeRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class SearchCodeRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public SearchParams SearchParams { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/SearchEngineFilesLoaded.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class SearchEngineFilesLoaded : PairedTypedEvent { 10 | /// 11 | /// The version of the file system tree for which files have been loaded. 12 | /// 13 | public long TreeVersion { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/SearchEngineFilesLoading.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class SearchEngineFilesLoading : PairedTypedEvent { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/SearchEngineFilesLoadingProgress.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages 8 | { 9 | [ProtoContract] 10 | public class SearchEngineFilesLoadingProgress : PairedTypedEvent { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/SearchFilePathsRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class SearchFilePathsRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public SearchParams SearchParams { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/TypedEvent.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | [ProtoInclude(10, typeof(PairedTypedEvent))] 10 | [ProtoInclude(11, typeof(ProgressReportEvent))] 11 | [ProtoInclude(21, typeof(IndexingServerStateChangedEvent))] 12 | public class TypedEvent : TypedMessage { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/TypedMessage.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | [ProtoInclude(10, typeof(TypedRequest))] 10 | [ProtoInclude(11, typeof(TypedResponse))] 11 | [ProtoInclude(12, typeof(TypedEvent))] 12 | public class TypedMessage : IpcMessageData { 13 | public TypedMessage() { 14 | ClassName = GetType().Name; 15 | } 16 | 17 | [ProtoMember(1)] 18 | public string ClassName { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Core/Ipc/TypedMessages/UnregisterFileRequest.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using ProtoBuf; 6 | 7 | namespace VsChromium.Core.Ipc.TypedMessages { 8 | [ProtoContract] 9 | public class UnregisterFileRequest : TypedRequest { 10 | [ProtoMember(1)] 11 | public string FileName { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Core/Logging/AssertionFailedException.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Core.Logging { 8 | public class AssertionFailedException : Exception { 9 | private readonly string _stackTrace; 10 | 11 | public AssertionFailedException(string message) : base(message) { 12 | } 13 | 14 | public AssertionFailedException(string message, string stackTrace) : base(message) { 15 | _stackTrace = stackTrace; 16 | } 17 | 18 | public override string StackTrace => _stackTrace ?? base.StackTrace; 19 | } 20 | } -------------------------------------------------------------------------------- /src/Core/Logging/DebugLogger.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Logging { 6 | public class DebugLogger : ILogLevelLogger { 7 | public static readonly DebugLogger Instance = new DebugLogger(); 8 | 9 | public bool Enabled => Logger.IsDebugEnabled; 10 | 11 | public void Log(string message) { 12 | Logger.LogDebug(message); 13 | } 14 | 15 | public void Log(string format, params object[] args) { 16 | Logger.LogDebug(format, args); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Core/Logging/ILogLevelLogger.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Logging { 6 | public interface ILogLevelLogger { 7 | bool Enabled { get; } 8 | void Log(string message); 9 | void Log(string format, params object[] args); 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Logging/InfoLogger.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Logging { 6 | public class InfoLogger : ILogLevelLogger { 7 | public static readonly InfoLogger Instance = new InfoLogger(); 8 | 9 | public bool Enabled => Logger.IsInfoEnabled; 10 | 11 | public void Log(string message) { 12 | Logger.LogInfo(message); 13 | } 14 | 15 | public void Log(string format, params object[] args) { 16 | Logger.LogInfo(format, args); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Core/Logging/StackTraceException.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Core.Logging { 8 | public class StackTraceException : Exception { 9 | private readonly string _stackTrace; 10 | 11 | public StackTraceException(string message, string stackTrace, Exception inner) : base(message, inner) { 12 | _stackTrace = stackTrace; 13 | } 14 | 15 | public override string StackTrace => _stackTrace; 16 | } 17 | } -------------------------------------------------------------------------------- /src/Core/Processes/CreateProcessOptions.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Core.Processes { 8 | [Flags] 9 | public enum CreateProcessOptions { 10 | Default = 0, 11 | AttachDebugger = 1 << 2, 12 | BreakAwayFromJob = 1 << 3, 13 | } 14 | } -------------------------------------------------------------------------------- /src/Core/Processes/IProcessCreator.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Processes { 6 | public interface IProcessCreator { 7 | CreateProcessResult CreateProcess(string filename, string arguments, CreateProcessOptions options); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Core/Processes/ProcessInformation.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using VsChromium.Core.Win32.Processes; 7 | 8 | namespace VsChromium.Core.Processes { 9 | public class ProcessInformation : IDisposable { 10 | public SafeProcessHandle ProcessHandle { get; set; } 11 | public int ProcessId { get; set; } 12 | 13 | public void Dispose() { 14 | if (ProcessHandle != null) 15 | ProcessHandle.Dispose(); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Core/Threads/DateTimeProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.ComponentModel.Composition; 7 | 8 | namespace VsChromium.Core.Threads { 9 | [Export(typeof(IDateTimeProvider))] 10 | public class DateTimeProvider : IDateTimeProvider { 11 | public DateTime UtcNow { get { return DateTime.UtcNow; } } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Core/Threads/IDateTimeProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Core.Threads { 8 | public interface IDateTimeProvider { 9 | DateTime UtcNow { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Core/Utility/ExceptionExtensions.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.Linq; 7 | 8 | namespace VsChromium.Core.Utility { 9 | public static class ExceptionExtensions { 10 | public static bool IsCanceled(this Exception e) { 11 | if (e.GetBaseException() is OperationCanceledException) { 12 | return true; 13 | } 14 | var aggregateException = e as AggregateException; 15 | if (aggregateException != null) { 16 | return aggregateException.InnerExceptions.Any(IsCanceled); 17 | } 18 | return false; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Core/Utility/IOperationProgressTracker.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Utility { 6 | public interface IOperationProgressTracker { 7 | bool ShouldEndProcessing { get; } 8 | int ResultCount { get; } 9 | 10 | void AddResults(int count); 11 | } 12 | } -------------------------------------------------------------------------------- /src/Core/Utility/KeyValuePair.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace VsChromium.Core.Utility { 4 | public class KeyValuePair { 5 | public static KeyValuePair Create(TKey key, TValue value) { 6 | return new KeyValuePair(key, value); 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /src/Core/VsChromiumVersion.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core { 6 | public static class VsChromiumVersion { 7 | public const string Product = "0.9.37"; 8 | public const string File = Product + ".0"; 9 | public const string Copyright = "Copyright © 2018 The Chromium Authors.All rights reserved."; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Core/Win32/Contants.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Core.Win32 { 2 | public static class Contants { 3 | public const uint INFINITE = 0xFFFFFFFF; 4 | } 5 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/CONTINUE_STATUS.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Core.Win32.Debugging { 2 | public enum CONTINUE_STATUS : uint { 3 | DBG_CONTINUE = 0x00010002, 4 | DBG_EXCEPTION_NOT_HANDLED = 0x80010001, 5 | } 6 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/CREATE_PROCESS_DEBUG_INFO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace VsChromium.Core.Win32.Debugging { 5 | [StructLayout(LayoutKind.Sequential)] 6 | public struct CREATE_PROCESS_DEBUG_INFO { 7 | public IntPtr hFile; 8 | public IntPtr hProcess; 9 | public IntPtr hThread; 10 | public IntPtr lpBaseOfImage; 11 | public uint dwDebugInfoFileOffset; 12 | public uint nDebugInfoSize; 13 | public IntPtr lpThreadLocalBase; 14 | public PTHREAD_START_ROUTINE lpStartAddress; 15 | public IntPtr lpImageName; 16 | public ushort fUnicode; 17 | } 18 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/CREATE_THREAD_DEBUG_INFO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace VsChromium.Core.Win32.Debugging { 5 | [StructLayout(LayoutKind.Sequential)] 6 | public struct CREATE_THREAD_DEBUG_INFO { 7 | public IntPtr hThread; 8 | public IntPtr lpThreadLocalBase; 9 | public PTHREAD_START_ROUTINE lpStartAddress; 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/DEBUG_EVENT_CODE.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Core.Win32.Debugging { 2 | public enum DEBUG_EVENT_CODE : uint { 3 | EXCEPTION_DEBUG_EVENT = 1, 4 | CREATE_THREAD_DEBUG_EVENT = 2, 5 | CREATE_PROCESS_DEBUG_EVENT = 3, 6 | EXIT_THREAD_DEBUG_EVENT = 4, 7 | EXIT_PROCESS_DEBUG_EVENT = 5, 8 | LOAD_DLL_DEBUG_EVENT = 6, 9 | UNLOAD_DLL_DEBUG_EVENT = 7, 10 | OUTPUT_DEBUG_STRING_EVENT = 8, 11 | RIP_EVENT = 9, 12 | } 13 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/EXCEPTION_DEBUG_INFO.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | 3 | namespace VsChromium.Core.Win32.Debugging { 4 | [StructLayout(LayoutKind.Sequential)] 5 | public struct EXCEPTION_DEBUG_INFO { 6 | public EXCEPTION_RECORD ExceptionRecord; 7 | public uint dwFirstChance; 8 | } 9 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/EXCEPTION_RECORD.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace VsChromium.Core.Win32.Debugging { 5 | [StructLayout(LayoutKind.Sequential)] 6 | public struct EXCEPTION_RECORD { 7 | public uint ExceptionCode; 8 | public uint ExceptionFlags; 9 | public IntPtr ExceptionRecord; 10 | public IntPtr ExceptionAddress; 11 | public uint NumberParameters; 12 | [MarshalAs(UnmanagedType.ByValArray, SizeConst = 15, ArraySubType = UnmanagedType.U4)] 13 | public uint[] ExceptionInformation; 14 | } 15 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/EXIT_PROCESS_DEBUG_INFO.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | 3 | namespace VsChromium.Core.Win32.Debugging { 4 | [StructLayout(LayoutKind.Sequential)] 5 | public struct EXIT_PROCESS_DEBUG_INFO { 6 | public uint dwExitCode; 7 | } 8 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/EXIT_THREAD_DEBUG_INFO.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | 3 | namespace VsChromium.Core.Win32.Debugging { 4 | [StructLayout(LayoutKind.Sequential)] 5 | public struct EXIT_THREAD_DEBUG_INFO { 6 | public uint dwExitCode; 7 | } 8 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/LOAD_DLL_DEBUG_INFO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace VsChromium.Core.Win32.Debugging { 5 | [StructLayout(LayoutKind.Sequential)] 6 | public struct LOAD_DLL_DEBUG_INFO { 7 | public IntPtr hFile; 8 | public IntPtr lpBaseOfDll; 9 | public uint dwDebugInfoFileOffset; 10 | public uint nDebugInfoSize; 11 | public IntPtr lpImageName; 12 | public ushort fUnicode; 13 | } 14 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/PTHREAD_START_ROUTINE.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Core.Win32.Debugging { 8 | public delegate uint PTHREAD_START_ROUTINE(IntPtr lpThreadParameter); 9 | } 10 | -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/RIP_INFO.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | 3 | namespace VsChromium.Core.Win32.Debugging { 4 | [StructLayout(LayoutKind.Sequential)] 5 | public struct RIP_INFO { 6 | public uint dwError; 7 | public uint dwType; 8 | } 9 | } -------------------------------------------------------------------------------- /src/Core/Win32/Debugging/UNLOAD_DLL_DEBUG_INFO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace VsChromium.Core.Win32.Debugging { 5 | [StructLayout(LayoutKind.Sequential)] 6 | public struct UNLOAD_DLL_DEBUG_INFO { 7 | public IntPtr lpBaseOfDll; 8 | } 9 | } -------------------------------------------------------------------------------- /src/Core/Win32/Files/NativeAccessFlags.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Core.Win32.Files { 8 | [Flags] 9 | public enum NativeAccessFlags : uint { 10 | FILE_LIST_DIRECTORY = 1, 11 | GenericWrite = 0x40000000, 12 | GenericRead = 0x80000000 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Core/Win32/Files/SafeFindHandle.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using Microsoft.Win32.SafeHandles; 6 | 7 | namespace VsChromium.Core.Win32.Files { 8 | public sealed class SafeFindHandle : SafeHandleZeroOrMinusOneIsInvalid { 9 | internal SafeFindHandle() 10 | : base(true) { 11 | } 12 | 13 | protected override bool ReleaseHandle() { 14 | return NativeMethods.FindClose(handle); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Core/Win32/HResults.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Core.Win32 { 2 | public static class HResults { 3 | public const int HR_ERROR_SEM_TIMEOUT = unchecked((int)0x80070079); 4 | public const int HR_ERROR_NOT_SUPPORTED = unchecked((int)0x80070032); 5 | } 6 | } -------------------------------------------------------------------------------- /src/Core/Win32/Interop/SecurityAttributes.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.Runtime.InteropServices; 7 | using VsChromium.Core.Win32.Memory; 8 | 9 | namespace VsChromium.Core.Win32.Interop { 10 | [StructLayout(LayoutKind.Sequential)] 11 | class SecurityAttributes { 12 | public int nLength = 12; 13 | public SafeLocalMemHandle lpSecurityDescriptor = new SafeLocalMemHandle(IntPtr.Zero, false); 14 | [MarshalAs(UnmanagedType.Bool)] 15 | public bool bInheritHandle; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Core/Win32/Jobs/IO_COUNTERS.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace VsChromium.Core.Win32.Jobs { 5 | [StructLayout(LayoutKind.Sequential)] 6 | struct IO_COUNTERS { 7 | public UInt64 ReadOperationCount; 8 | public UInt64 WriteOperationCount; 9 | public UInt64 OtherOperationCount; 10 | public UInt64 ReadTransferCount; 11 | public UInt64 WriteTransferCount; 12 | public UInt64 OtherTransferCount; 13 | } 14 | } -------------------------------------------------------------------------------- /src/Core/Win32/Jobs/JOBOBJECT_BASIC_LIMIT_INFORMATION.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace VsChromium.Core.Win32.Jobs { 5 | [StructLayout(LayoutKind.Sequential)] 6 | struct JOBOBJECT_BASIC_LIMIT_INFORMATION { 7 | public Int64 PerProcessUserTimeLimit; 8 | public Int64 PerJobUserTimeLimit; 9 | public Int16 LimitFlags; 10 | public UInt32 MinimumWorkingSetSize; 11 | public UInt32 MaximumWorkingSetSize; 12 | public Int16 ActiveProcessLimit; 13 | public Int64 Affinity; 14 | public Int16 PriorityClass; 15 | public Int16 SchedulingClass; 16 | } 17 | } -------------------------------------------------------------------------------- /src/Core/Win32/Jobs/JOBOBJECT_EXTENDED_LIMIT_INFORMATION.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace VsChromium.Core.Win32.Jobs { 5 | [StructLayout(LayoutKind.Sequential)] 6 | struct JOBOBJECT_EXTENDED_LIMIT_INFORMATION { 7 | public JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; 8 | public IO_COUNTERS IoInfo; 9 | public UInt32 ProcessMemoryLimit; 10 | public UInt32 JobMemoryLimit; 11 | public UInt32 PeakProcessMemoryUsed; 12 | public UInt32 PeakJobMemoryUsed; 13 | } 14 | } -------------------------------------------------------------------------------- /src/Core/Win32/Jobs/JobObjectInfoType.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Core.Win32.Jobs { 2 | public enum JobObjectInfoType { 3 | AssociateCompletionPortInformation = 7, 4 | BasicLimitInformation = 2, 5 | BasicUIRestrictions = 4, 6 | EndOfJobTimeInformation = 6, 7 | ExtendedLimitInformation = 9, 8 | SecurityLimitInformation = 5, 9 | GroupInformation = 11 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Win32/Jobs/SECURITY_ATTRIBUTES.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace VsChromium.Core.Win32.Jobs { 5 | [StructLayout(LayoutKind.Sequential)] 6 | public struct SECURITY_ATTRIBUTES { 7 | public int nLength; 8 | public IntPtr lpSecurityDescriptor; 9 | public int bInheritHandle; 10 | } 11 | } -------------------------------------------------------------------------------- /src/Core/Win32/Memory/HeapAlloc.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.ComponentModel.Composition; 6 | 7 | namespace VsChromium.Core.Win32.Memory { 8 | [Export(typeof(IHeapAlloc))] 9 | public class HeapAlloc : IHeapAlloc { 10 | public SafeHeapBlockHandle Alloc(int size) { 11 | return HeapAllocStatic.Alloc(size); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Core/Win32/Memory/HeapFlags.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Win32.Memory { 6 | public enum HeapFlags : uint { 7 | Default, 8 | HeapZeroMemory = 0x00000008, 9 | HeapGenerateExceptions = 0x00000004, 10 | HeapNoSerialize = 0x00000001, 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Core/Win32/Memory/IHeapAlloc.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Win32.Memory { 6 | public interface IHeapAlloc { 7 | SafeHeapBlockHandle Alloc(int size); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Core/Win32/Memory/SafeHeapHandle.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using Microsoft.Win32.SafeHandles; 6 | 7 | namespace VsChromium.Core.Win32.Memory { 8 | public class SafeHeapHandle : SafeHandleZeroOrMinusOneIsInvalid { 9 | public SafeHeapHandle() 10 | : base(true) { 11 | } 12 | 13 | protected override bool ReleaseHandle() { 14 | return NativeMethods.HeapDestroy(handle); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Core/Win32/Memory/SafeProcessHeapHandle.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Win32.Memory { 6 | public class SafeProcessHeapHandle : SafeHeapHandle { 7 | protected override bool ReleaseHandle() { 8 | // Don't free the process heap handle! 9 | return true; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Core/Win32/NtStatus.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Core.Win32 { 6 | public static class NtStatus { 7 | public const int Success = 0; 8 | } 9 | } -------------------------------------------------------------------------------- /src/Core/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/DkmIntegration/Guids/Component.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.DkmIntegration.Guids { 8 | public static class Component { 9 | public static readonly Guid IdeComponent = new Guid("5D83386D-8A02-475F-8582-E93296A88DF6"); 10 | public static readonly Guid ServerComponent = new Guid("F1FD56F0-F6CB-4A9E-9773-BF6F47F64248"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/DkmIntegration/Guids/CustomVisualizer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.DkmIntegration.Guids { 8 | public static class CustomVisualizer { 9 | public static readonly Guid BaseTime = new Guid("6A9197EE-22BD-433A-BF1B-9D8863D87058"); 10 | public static readonly Guid BaseTimeDelta = new Guid("D606FA28-9D68-4E2F-B423-F69E73C31C16"); 11 | public static readonly Guid ForceDefault = new Guid("8E832A91-B810-4229-BC71-D17B5D5283C6"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/DkmIntegration/Guids/Language.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.DkmIntegration.Guids { 8 | public static class Language { 9 | public static readonly Guid Cpp = new Guid("3A12D0B7-C26C-11D0-B442-00A0244A1DD2"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/DkmIntegration/Guids/PortSupplier.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.DkmIntegration.Guids { 8 | public static class PortSupplier { 9 | public static readonly Guid Default = new Guid("708C1ECA-FF48-11D2-904F-00C04FA302A1"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/DkmIntegration/Guids/Source.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.DkmIntegration.Guids { 8 | public static class Source { 9 | public static readonly Guid FunctionTraceEnter = new Guid("2A48C8D1-6D61-4360-A105-6244F3C7B303"); 10 | public static readonly Guid FunctionTraceExit = new Guid("0B6A3423-7861-46F7-B96F-14AFD344820F"); 11 | public static readonly Guid CreateProcessEnter = new Guid("F1721021-3227-4345-AF50-D2E8D2BE996C"); 12 | public static readonly Guid CreateProcessReturn = new Guid("5D1634CC-0EDB-46E3-8AEC-E227C477C562"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/DkmIntegration/Guids/Vendor.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.DkmIntegration.Guids { 8 | public static class Vendor { 9 | public static readonly Guid Microsoft = new Guid("994B45C4-E6E9-11D2-903F-00C04FA302A1"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/DkmIntegration/IdeComponent/ChildFlags.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.DkmIntegration.IdeComponent 8 | { 9 | [Flags] 10 | public enum ChildDisplayFlags 11 | { 12 | HasCustomFields = 0x1, 13 | HasDefaultFields = 0x2, 14 | DefaultFieldsInline = 0x4 15 | } 16 | 17 | public enum ChildDisplayMode 18 | { 19 | Nested, 20 | Inline 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/DkmIntegration/IdeComponent/EvaluationException.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using Microsoft.VisualStudio.Debugger.Evaluation; 7 | 8 | namespace VsChromium.DkmIntegration.IdeComponent 9 | { 10 | class EvaluationException : Exception 11 | { 12 | DkmEvaluationResult result_ = null; 13 | 14 | public EvaluationException(DkmEvaluationResult result) 15 | { 16 | result_ = result; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/DkmIntegration/IdeComponent/IVisualizerFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using Microsoft.VisualStudio.Debugger.Evaluation; 6 | 7 | namespace VsChromium.DkmIntegration.IdeComponent 8 | { 9 | public interface IVisualizerFactory 10 | { 11 | BasicVisualizer CreateVisualizer(DkmVisualizedExpression expression); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/DkmIntegration/Microsoft.Dia.Interop.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/DkmIntegration/Microsoft.Dia.Interop.dll -------------------------------------------------------------------------------- /src/DkmIntegration/ServerComponent/CpuRegister.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.DkmIntegration.ServerComponent { 6 | // Values from the CV_HREG_e enumeration in cvconst.h 7 | enum CpuRegister { 8 | Eax = 17, 9 | Ecx = 18, 10 | Edx = 19, 11 | Ebx = 20, 12 | Esp = 21, 13 | Ebp = 22, 14 | Esi = 23, 15 | Edi = 24, 16 | Eip = 33, 17 | Rcx = 330, 18 | Rdx = 331, 19 | Rbp = 334, 20 | Rsp = 335, 21 | R8 = 336, 22 | R9 = 337, 23 | R10 = 338, 24 | R11 = 339 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/DkmIntegration/ServerComponent/FunctionTraceDataItem.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using Microsoft.VisualStudio.Debugger; 6 | 7 | namespace VsChromium.DkmIntegration.ServerComponent { 8 | class FunctionTraceDataItem : DkmDataItem { 9 | public IFunctionTracer Tracer { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/DkmIntegration/ServerComponent/IFunctionTracer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using Microsoft.VisualStudio.Debugger; 6 | using Microsoft.VisualStudio.Debugger.Breakpoints; 7 | 8 | namespace VsChromium.DkmIntegration { 9 | interface IFunctionTracer { 10 | void OnEntryBreakpointHit(DkmRuntimeBreakpoint bp, DkmThread thread, bool hasException); 11 | void OnExitBreakpointHit(DkmRuntimeBreakpoint bp, DkmThread thread, bool hasException); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/DkmIntegration/ServerComponent/ProcessDebugOptionsDataItem.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using Microsoft.VisualStudio.Debugger; 6 | using VsChromium.Core.DkmShared; 7 | 8 | namespace VsChromium.DkmIntegration.ServerComponent { 9 | class ProcessDebugOptionsDataItem : DkmDataItem { 10 | private DebugProcessOptions _options; 11 | 12 | public ProcessDebugOptionsDataItem(DebugProcessOptions options) { 13 | this._options = options; 14 | } 15 | 16 | public DebugProcessOptions Options { get { return _options; } } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/DkmIntegration/Visualizers/Visualizers.natvis: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Local.testsettings: -------------------------------------------------------------------------------- 1 |  2 | 3 | These are default test settings for a local test run. 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/Native/dllmain.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | // dllmain.cpp : Defines the entry point for the DLL application. 6 | #include "stdafx.h" 7 | 8 | BOOL APIENTRY DllMain(HMODULE hModule, 9 | DWORD ul_reason_for_call, 10 | LPVOID lpReserved) { 11 | switch (ul_reason_for_call) { 12 | case DLL_PROCESS_ATTACH: 13 | case DLL_THREAD_ATTACH: 14 | case DLL_THREAD_DETACH: 15 | case DLL_PROCESS_DETACH: 16 | break; 17 | } 18 | return TRUE; 19 | } 20 | -------------------------------------------------------------------------------- /src/Native/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by version.rc 4 | // 5 | 6 | // Next default values for new objects 7 | // 8 | #ifdef APSTUDIO_INVOKED 9 | #ifndef APSTUDIO_READONLY_SYMBOLS 10 | #define _APS_NEXT_RESOURCE_VALUE 101 11 | #define _APS_NEXT_COMMAND_VALUE 40001 12 | #define _APS_NEXT_CONTROL_VALUE 1001 13 | #define _APS_NEXT_SYMED_VALUE 101 14 | #endif 15 | #endif 16 | -------------------------------------------------------------------------------- /src/Native/search_bndm32.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #include "stdafx.h" 6 | 7 | #include "search_bndm32.h" 8 | -------------------------------------------------------------------------------- /src/Native/search_bndm64.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #include "stdafx.h" 6 | 7 | #include "search_bndm64.h" 8 | -------------------------------------------------------------------------------- /src/Native/search_strstr.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #pragma once 6 | 7 | #include "search_base.h" 8 | 9 | class StrStrSearch : public AsciiSearchBase { 10 | public: 11 | StrStrSearch(); 12 | 13 | protected: 14 | virtual void StartSearchWorker(const char *pattern, int patternLen, SearchOptions options, SearchCreateResult& result) OVERRIDE; 15 | virtual void FindNextWorker(SearchParams* searchParams) OVERRIDE; 16 | 17 | private: 18 | const char *pattern_; 19 | int patternLen_; 20 | }; 21 | -------------------------------------------------------------------------------- /src/Native/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | // stdafx.cpp : source file that includes just the standard includes 6 | // VsChromiumNative.pch will be the pre-compiled header 7 | // stdafx.obj will contain the pre-compiled type information 8 | 9 | #include "stdafx.h" 10 | 11 | // TODO: reference any additional headers you need in STDAFX.H 12 | // and not in this file 13 | -------------------------------------------------------------------------------- /src/Native/stdafx.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | // stdafx.h : include file for standard system include files, 6 | // or project specific include files that are used frequently, but 7 | // are changed infrequently 8 | // 9 | 10 | #pragma once 11 | 12 | #include "targetver.h" 13 | 14 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 15 | // Windows Header Files: 16 | #include 17 | 18 | // TODO: reference additional headers your program requires here 19 | #define OVERRIDE override 20 | -------------------------------------------------------------------------------- /src/Native/targetver.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #pragma once 6 | 7 | // Including SDKDDKVer.h defines the highest available Windows platform. 8 | 9 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 10 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 11 | 12 | #include 13 | -------------------------------------------------------------------------------- /src/ProjectBefore.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), build.root))\ 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/Server/Configuration/ChromiumEnlistmentDetection.patterns: -------------------------------------------------------------------------------- 1 | # 2 | # List of directory/file names used to determine if a directory is a local chromium enlistment. 3 | # 4 | # Note that we only allow simple names (i.e. we don't allow sub-path such as "foo/bar/test.cs"). 5 | # 6 | 7 | base/ 8 | chrome/ 9 | content/ 10 | PRESUBMIT.py 11 | -------------------------------------------------------------------------------- /src/Server/Configuration/ChromiumStyleCheckers.disabled: -------------------------------------------------------------------------------- 1 | # 2 | # List of style checkers that are disabled 3 | # 4 | 5 | #AccessorIndentChecker 6 | #ElseIfOnNewLineChecker 7 | #EndOfLineChecker 8 | #LongLineChecker 9 | OpenBraceAfterNewLineChecker 10 | #SpaceAfterForKeywordChecker 11 | #TabCharacterChecker 12 | #TrailingSpacesChecker 13 | -------------------------------------------------------------------------------- /src/Server/FileSystem/FilesChangedEventArgs.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.Collections.ObjectModel; 7 | 8 | namespace VsChromium.Server.FileSystem { 9 | public class FilesChangedEventArgs : EventArgs { 10 | /// 11 | /// The file system snapshot active at the time the event was fired. 12 | /// 13 | public FileSystemSnapshot FileSystemSnapshot { get; set; } 14 | 15 | /// 16 | /// The list of changed files. 17 | /// 18 | public ReadOnlyCollection ChangedFiles { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Server/FileSystem/ProjectRootSnapshot.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Server.Projects; 6 | 7 | namespace VsChromium.Server.FileSystem { 8 | public class ProjectRootSnapshot { 9 | private readonly IProject _project; 10 | private readonly DirectorySnapshot _directory; 11 | 12 | public ProjectRootSnapshot(IProject project, DirectorySnapshot directory) { 13 | _project = project; 14 | _directory = directory; 15 | } 16 | 17 | public IProject Project { get { return _project; } } 18 | public DirectorySnapshot Directory { get { return _directory; } } 19 | } 20 | } -------------------------------------------------------------------------------- /src/Server/FileSystemContents/IFileContentsFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Files; 6 | 7 | namespace VsChromium.Server.FileSystemContents { 8 | public interface IFileContentsFactory { 9 | FileContents ReadFileContents(FullPath path); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Server/FileSystemContents/ITextLineOffsets.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc.TypedMessages; 6 | 7 | namespace VsChromium.Server.FileSystemContents { 8 | public interface ITextLineOffsets { 9 | FileExtract FilePositionSpanToFileExtract(FilePositionSpan filePositionSpan, int maxTextExtent); 10 | } 11 | } -------------------------------------------------------------------------------- /src/Server/FileSystemDatabase/Builder/ProjectDiscoveryExtensions.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Server.FileSystemNames; 6 | using VsChromium.Server.Projects; 7 | 8 | namespace VsChromium.Server.FileSystemDatabase.Builder { 9 | public static class ProjectDiscoveryExtensions { 10 | public static bool IsFileSearchable(this IProject project, FileName filename) { 11 | return project.SearchableFilesFilter.Include(filename.RelativePath); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Server/FileSystemDatabase/FileDatabaseSnapshotExtensions.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Server.FileSystemNames; 6 | 7 | namespace VsChromium.Server.FileSystemDatabase { 8 | public static class FileDatabaseSnapshotExtensions { 9 | public static bool IsContainedInSymLink(this IFileDatabaseSnapshot snapshot, FileName name) { 10 | return snapshot.IsContainedInSymLink(name.Parent); 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Server/IIndexingServer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Server { 8 | public interface IIndexingServer { 9 | IndexingServerState CurrentState { get; } 10 | 11 | void Pause(); 12 | void Resume(); 13 | void Refresh(); 14 | 15 | event EventHandler StateUpdated; 16 | } 17 | } -------------------------------------------------------------------------------- /src/Server/IServer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server { 6 | public interface IServer { 7 | void Run(int port); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Server/IndexingServerState.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using VsChromium.Core.Ipc.TypedMessages; 7 | 8 | namespace VsChromium.Server { 9 | public class IndexingServerState { 10 | public IndexingServerStatus Status { get; set; } 11 | public DateTime LastIndexUpdateUtc { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Server/IndexingServerStateUpdatedEventArgs.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Server { 8 | public class IndexingServerStateUpdatedEventArgs : EventArgs { 9 | public IndexingServerState State { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /src/Server/Ipc/IIpcRequestDispatcher.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc; 6 | 7 | namespace VsChromium.Server.Ipc { 8 | public interface IIpcRequestDispatcher { 9 | void ProcessRequestAsync(IpcRequest request); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Server/Ipc/IIpcResponseQueue.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc; 6 | 7 | namespace VsChromium.Server.Ipc { 8 | public interface IIpcResponseQueue { 9 | void Enqueue(IpcResponse response); 10 | IpcResponse Dequeue(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Server/Ipc/ProtocolHandlers/HelloProtocolHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.ComponentModel.Composition; 6 | using VsChromium.Core.Ipc; 7 | 8 | namespace VsChromium.Server.Ipc.ProtocolHandlers { 9 | [Export(typeof(IProtocolHandler))] 10 | public class HelloProtocolHandler : ProtocolHandler { 11 | public HelloProtocolHandler() 12 | : base(IpcProtocols.Hello) { 13 | } 14 | 15 | public override IpcResponse Process(IpcRequest request) { 16 | return HelloWorldProtocol.Response; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Server/Ipc/ProtocolHandlers/IProtocolHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc; 6 | 7 | namespace VsChromium.Server.Ipc.ProtocolHandlers { 8 | public interface IProtocolHandler { 9 | bool CanProcess(IpcRequest request); 10 | IpcResponse Process(IpcRequest request); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Server/Ipc/ProtocolHandlers/ProtocolHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc; 6 | 7 | namespace VsChromium.Server.Ipc.ProtocolHandlers { 8 | public abstract class ProtocolHandler : IProtocolHandler { 9 | private readonly string _protocol; 10 | 11 | protected ProtocolHandler(string protocol) { 12 | _protocol = protocol; 13 | } 14 | 15 | public bool CanProcess(IpcRequest request) { 16 | return request.Protocol == _protocol; 17 | } 18 | 19 | public abstract IpcResponse Process(IpcRequest request); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Server/Ipc/TypedEvents/ITypedEventForwarder.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.Ipc.TypedEvents { 6 | public interface ITypedEventForwarder { 7 | void RegisterEventHandlers(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Server/Ipc/TypedEvents/ITypedEventSender.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc.TypedMessages; 6 | 7 | namespace VsChromium.Server.Ipc.TypedEvents { 8 | /// 9 | /// Allows sending events from any thread asynchronously. 10 | /// 11 | public interface ITypedEventSender { 12 | void SendEventAsync(TypedEvent typedEvent); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Server/Ipc/TypedMessageHandlers/ITypedMessageRequestHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc.TypedMessages; 6 | 7 | namespace VsChromium.Server.Ipc.TypedMessageHandlers { 8 | public interface ITypedMessageRequestHandler { 9 | bool CanProcess(TypedRequest request); 10 | TypedResponse Process(TypedRequest typedRequest); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Server/Ipc/TypedMessageHandlers/TypedMessageRequestHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc.TypedMessages; 6 | 7 | namespace VsChromium.Server.Ipc.TypedMessageHandlers { 8 | public abstract class TypedMessageRequestHandler : ITypedMessageRequestHandler { 9 | public bool CanProcess(TypedRequest request) { 10 | var name = GetType().Name; 11 | return (request.GetType().Name + "Handler") == name; 12 | } 13 | 14 | public abstract TypedResponse Process(TypedRequest typedRequest); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Server/Key.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/Server/Key.snk -------------------------------------------------------------------------------- /src/Server/Operations/IOperationIdFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.Operations { 6 | public interface IOperationIdFactory { 7 | long GetNextId(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Server/Operations/IOperationProcessor.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.Operations { 6 | public interface IOperationProcessor { 7 | void Execute(OperationHandlers operationHandlers); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Server/Operations/OperationHandlers.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Server.Operations { 8 | public class OperationHandlers { 9 | public Action OnBeforeExecute { get; set; } 10 | public Action Execute { get; set; } 11 | public Action OnError { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Server/Operations/OperationIdFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2020 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.ComponentModel.Composition; 6 | using System.Threading; 7 | 8 | namespace VsChromium.Server.Operations { 9 | [Export(typeof(IOperationIdFactory))] 10 | public class OperationIdFactory : IOperationIdFactory { 11 | private long _nextId = 1; 12 | 13 | public long GetNextId() { 14 | return Interlocked.Increment(ref _nextId); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Server/Operations/OperationInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.Operations { 6 | public class OperationInfo { 7 | public long OperationId { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /src/Server/ProgressTracking/DisplayProgressCallback.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.ProgressTracking { 6 | public delegate string DisplayProgressCallback(int completed, int total); 7 | } 8 | -------------------------------------------------------------------------------- /src/Server/ProgressTracking/EnvironmentTickCountProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2020 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.ProgressTracking { 6 | public class EnvironmentTickCountProvider : ITickCountProvider { 7 | public long TickCount { 8 | get { 9 | // TODO(rpaquay): Implement some logic to increment an internal counter 10 | // if the value rounds up. 11 | return System.Environment.TickCount; 12 | } 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Server/ProgressTracking/IProgressTrackerFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.ProgressTracking { 6 | public interface IProgressTrackerFactory { 7 | IProgressTracker CreateTracker(int totalStepCount); 8 | IProgressTracker CreateIndeterminateTracker(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Server/ProgressTracking/ITickCountProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2020 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.ProgressTracking { 6 | public interface ITickCountProvider { 7 | /// 8 | /// Returns a integer value containing the amount of time in milliseconds that has passed since some arbitrary initial moment. 9 | /// 10 | long TickCount { get; } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Server/ProgressTracking/IndeterminateProgressTracker.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Server.Ipc.TypedEvents; 6 | 7 | namespace VsChromium.Server.ProgressTracking { 8 | public class IndeterminateProgressTracker : ProgressTrackerBase { 9 | public IndeterminateProgressTracker(ITypedEventSender typedEventSender) 10 | : base(typedEventSender) { 11 | } 12 | 13 | public override int TotalStepCount { get { return int.MaxValue; } } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Server/ProgressTracking/ProgressTracker.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Server.Ipc.TypedEvents; 6 | 7 | namespace VsChromium.Server.ProgressTracking { 8 | public class ProgressTracker : ProgressTrackerBase { 9 | private readonly int _totalStepCount; 10 | 11 | public ProgressTracker(ITypedEventSender typedEventSender, int totalStepCount) 12 | : base(typedEventSender) { 13 | _totalStepCount = totalStepCount; 14 | } 15 | 16 | public override int TotalStepCount { get { return _totalStepCount; } } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Server/Projects/IDirectoryFilter.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Files; 6 | 7 | namespace VsChromium.Server.Projects { 8 | public interface IDirectoryFilter { 9 | bool Include(RelativePath relativePath); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Server/Projects/IFileFilter.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Files; 6 | 7 | namespace VsChromium.Server.Projects { 8 | public interface IFileFilter { 9 | bool Include(RelativePath relativePath); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Server/Projects/ISearchableFilesFilter.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Files; 6 | 7 | namespace VsChromium.Server.Projects { 8 | public interface ISearchableFilesFilter { 9 | bool Include(RelativePath fileName); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Server/Projects/ProjectPathComparer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | using VsChromium.Core.Files; 7 | 8 | namespace VsChromium.Server.Projects { 9 | public class ProjectPathComparer : IEqualityComparer { 10 | public bool Equals(IProject x, IProject y) { 11 | return SystemPathComparer.Instance.StringComparer.Equals(x.RootPath, y.RootPath); 12 | } 13 | 14 | public int GetHashCode(IProject obj) { 15 | return SystemPathComparer.Instance.StringComparer.GetHashCode(obj.RootPath); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Server/Search/FileSearchResult.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | using VsChromium.Core.Ipc.TypedMessages; 7 | using VsChromium.Server.FileSystemNames; 8 | 9 | namespace VsChromium.Server.Search { 10 | public class FileSearchResult { 11 | public FileSearchResult() { 12 | Spans = new List(); 13 | } 14 | 15 | public FileName FileName { get; set; } 16 | public List Spans { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Server/Search/ICompiledTextSearchContainer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using VsChromium.Server.NativeInterop; 7 | 8 | namespace VsChromium.Server.Search { 9 | /// 10 | /// Gives access to the native text search engine for supported encodings. 11 | /// 12 | public interface ICompiledTextSearchContainer : IDisposable { 13 | ICompiledTextSearch GetAsciiSearch(); 14 | ICompiledTextSearch GetUtf16Search(); 15 | } 16 | } -------------------------------------------------------------------------------- /src/Server/Search/ICompiledTextSearchProviderFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.Search { 6 | public interface ICompiledTextSearchProviderFactory { 7 | ICompiledTextSearchContainer CreateProvider(string pattern, SearchProviderOptions searchOptions); 8 | } 9 | 10 | public class SearchProviderOptions { 11 | public bool MatchCase { get; set; } 12 | public bool MatchWholeWord { get; set; } 13 | public bool UseRegex { get; set; } 14 | public bool UseRe2Engine { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Server/Search/SearchCodeResult.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2020 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | 7 | namespace VsChromium.Server.Search { 8 | public class SearchCodeResult { 9 | public static SearchCodeResult Empty { 10 | get { 11 | return new SearchCodeResult { Entries = new List() }; 12 | } 13 | } 14 | 15 | public IList Entries { get; set; } 16 | public long HitCount { get; set; } 17 | public long SearchedFileCount { get; set; } 18 | public long TotalFileCount { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /src/Server/Search/SearchFilePathsResult.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | using VsChromium.Server.FileSystemNames; 7 | 8 | namespace VsChromium.Server.Search { 9 | public class SearchFilePathsResult { 10 | public static SearchFilePathsResult Empty { get { return new SearchFilePathsResult { FileNames = new List() }; } } 11 | 12 | public IList FileNames { get; set; } 13 | public long TotalCount { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Server/Threads/ICustomThreadPool.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Server.Threads { 8 | /// 9 | /// We use a custom thread pool because 1) we want a reasonable amount of thread available for some 10 | /// tasks and 2) we use System.Threading.Task extensively, which tends to make the .NET thread pool 11 | /// unavailable for periods of time. 12 | /// 13 | public interface ICustomThreadPool { 14 | void RunAsync(Action task); 15 | 16 | void RunAsync(Action task, TimeSpan delay); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Server/Threads/ILongRunningFileSystemTaskQueue.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.Threads { 6 | public interface ILongRunningFileSystemTaskQueue : ITaskQueue { 7 | } 8 | } -------------------------------------------------------------------------------- /src/Server/Threads/IReceiveRequestsThread.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc; 6 | 7 | namespace VsChromium.Server.Threads { 8 | /// 9 | /// Abstraction of a thread receiving requests from an instance of IIpcStream. 10 | /// 11 | public interface IReceiveRequestsThread { 12 | void Start(IIpcStream ipcStream); 13 | void WaitOne(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Server/Threads/ISendResponsesThread.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc; 6 | 7 | namespace VsChromium.Server.Threads { 8 | /// 9 | /// Abstraction of a thread sending responses to an instance of IIpcStream. 10 | /// 11 | public interface ISendResponsesThread { 12 | void Start(IIpcStream ipcStream); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Server/Threads/ITaskQueueFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.Threads { 6 | public interface ITaskQueueFactory { 7 | ITaskQueue CreateQueue(string description); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Server/Threads/TaskQueueExtensions.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.Threading; 7 | 8 | namespace VsChromium.Server.Threads { 9 | public static class TaskQueueExtensions { 10 | public static void ExecuteAsync(this ITaskQueue queue, Action task) { 11 | queue.Enqueue(new TaskId("Unique"), task); 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /src/Server/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /src/ServerNativeInterop/AsciiCompiledTextSearchBndm32.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Server.NativeInterop { 8 | public class AsciiCompiledTextSearchBndm32 : AsciiCompiledTextSearchNative 9 | { 10 | public AsciiCompiledTextSearchBndm32(string pattern, NativeMethods.SearchOptions searchOptions) 11 | : base(NativeMethods.SearchAlgorithmKind.kBndm32, pattern, searchOptions) { 12 | if (pattern.Length > 32) 13 | throw new ArgumentException("Bndm32 algorithm is limited to patterns of 32 characters maximum.", "pattern"); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/ServerNativeInterop/AsciiCompiledTextSearchBndm64.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Server.NativeInterop { 8 | public class AsciiCompiledTextSearchBndm64 : AsciiCompiledTextSearchNative { 9 | public AsciiCompiledTextSearchBndm64(string pattern, NativeMethods.SearchOptions searchOptions) 10 | : base(NativeMethods.SearchAlgorithmKind.kBndm64, pattern, searchOptions) { 11 | if (pattern.Length > 64) 12 | throw new ArgumentException("Bndm64 algorithm is limited to patterns of 64 characters maximum.", "pattern"); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/ServerNativeInterop/AsciiCompiledTextSearchBoyerMoore.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.NativeInterop { 6 | public class AsciiCompiledTextSearchBoyerMoore : AsciiCompiledTextSearchNative { 7 | public AsciiCompiledTextSearchBoyerMoore(string pattern, NativeMethods.SearchOptions searchOptions) 8 | : base(NativeMethods.SearchAlgorithmKind.kBoyerMoore, pattern, searchOptions) { 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/ServerNativeInterop/AsciiCompiledTextSearchRe2.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.NativeInterop { 6 | public class AsciiCompiledTextSearchRe2 : AsciiCompiledTextSearchNative { 7 | public AsciiCompiledTextSearchRe2(string pattern, NativeMethods.SearchOptions searchOptions) 8 | : base(NativeMethods.SearchAlgorithmKind.kRe2, pattern, searchOptions) { 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /src/ServerNativeInterop/AsciiCompiledTextSearchRegex.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.NativeInterop { 6 | public class AsciiCompiledTextSearchRegex : AsciiCompiledTextSearchNative { 7 | public AsciiCompiledTextSearchRegex(string pattern, NativeMethods.SearchOptions searchOptions) 8 | : base(NativeMethods.SearchAlgorithmKind.kRegex, pattern, searchOptions) { 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /src/ServerNativeInterop/AsciiCompiledTextSearchStrStr.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Server.NativeInterop { 6 | public class AsciiCompiledTextSearchStrStr : AsciiCompiledTextSearchNative { 7 | public AsciiCompiledTextSearchStrStr(string pattern, NativeMethods.SearchOptions searchOptions) 8 | : base(NativeMethods.SearchAlgorithmKind.kStrStr, pattern, searchOptions) { 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/ServerNativeInterop/Key.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/ServerNativeInterop/Key.snk -------------------------------------------------------------------------------- /src/ServerNativeInterop/SafeSearchHandle.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using Microsoft.Win32.SafeHandles; 6 | 7 | namespace VsChromium.Server.NativeInterop { 8 | public sealed class SafeSearchHandle : SafeHandleZeroOrMinusOneIsInvalid { 9 | internal SafeSearchHandle() 10 | : base(true) { 11 | } 12 | 13 | protected override bool ReleaseHandle() { 14 | NativeMethods.AsciiSearchAlgorithm_Delete(handle); 15 | return true; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Tests/Core/TestTcpSerialization.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using Microsoft.VisualStudio.TestTools.UnitTesting; 6 | 7 | namespace VsChromium.Tests.Core { 8 | [TestClass] 9 | public class TestTcpSerialization : MefTestBase { 10 | [TestMethod] 11 | public void TcpSerializationWorks() { 12 | // TODO(rpaquay): Not implemented yet... 13 | using (var container = SetupMefContainer()) { 14 | } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Tests/Key.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/Tests/Key.snk -------------------------------------------------------------------------------- /src/Tests/TestData/CSharpProject/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Tests/TestData/CSharpProject/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CSharpProject 8 | { 9 | class Program 10 | { 11 | static void Main(string[] args) 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Tests/TestData/CSharpProject/vs-chromium-project.txt: -------------------------------------------------------------------------------- 1 | [SourceExplorer.ignore] 2 | 3 | [SearchableFiles.include] 4 | * 5 | 6 | [SearchableFiles.ignore] 7 | -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/PRESUBMIT.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | # Use of this source code is governed by a BSD-style license that can be 3 | # found in the LICENSE file. 4 | -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/base/file_present_three_times.txt: -------------------------------------------------------------------------------- 1 | This is a test search string. 2 | This is another test search string. 3 | -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/chrome/test_directory/marker.txt: -------------------------------------------------------------------------------- 1 | Nothing here. Just making sure the directory exists. -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/content/folder/test_directory/marker.txt: -------------------------------------------------------------------------------- 1 | Nothing here. Just making sure the directory exists. -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/file_present_three_times.txt: -------------------------------------------------------------------------------- 1 | This is a test search string. 2 | This is another test search string. 3 | -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/folder/folder2/file_present_three_times.txt: -------------------------------------------------------------------------------- 1 | This is a test search string. 2 | This is another test search string. 3 | -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/out/clang-temp.obj-2333: -------------------------------------------------------------------------------- 1 | Test directory looking like a local Chromium enlistment. -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/out/clang-temp.pch-2333: -------------------------------------------------------------------------------- 1 | Test directory looking like a local Chromium enlistment. -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/readme.txt: -------------------------------------------------------------------------------- 1 | Test directory looking like a local Chromium enlistment. -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/readme2.txt: -------------------------------------------------------------------------------- 1 | struct foo* bar; 2 | struct baz** blah; 3 | // foo*\bar 4 | -------------------------------------------------------------------------------- /src/Tests/TestData/chromium/src/test_directory/marker.txt: -------------------------------------------------------------------------------- 1 | Nothing here. Just making sure the directory exists. -------------------------------------------------------------------------------- /src/Tests/TestData/files/bear.ac3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/Tests/TestData/files/bear.ac3 -------------------------------------------------------------------------------- /src/Tests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /src/TraceAndTestImpact.testsettings: -------------------------------------------------------------------------------- 1 |  2 | 3 | These are test settings for Trace and Test Impact. 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/VsChromium/ChromiumEnlistment/IChromiumSourceFiles.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.ChromiumEnlistment { 6 | public interface IChromiumSourceFiles { 7 | /// 8 | /// Returns true if |filename| is a file that should abide to the Chromium Coding Style. 9 | /// 10 | bool ApplyCodingStyle(string filename); 11 | 12 | /// 13 | /// Reset internal cache, usually when something drastic happened on the file system. 14 | /// 15 | void ValidateCache(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/VsChromium/Features/AttachToChrome/Guids.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Features.AttachToChrome { 8 | static class GuidList { 9 | public const string GuidAttachToChromeCmdSetString = "6608d840-ce6c-45ab-b856-eb0a0b471ff1"; 10 | 11 | public static readonly Guid GuidAttachToChromeCmdSet = new Guid(GuidAttachToChromeCmdSetString); 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /src/VsChromium/Features/AttachToChrome/NumericStringComparer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections; 6 | 7 | namespace VsChromium.Features.AttachToChrome { 8 | class NumericStringComparer : IComparer { 9 | public int Compare(object x, object y) { 10 | string sx = (string)x; 11 | string sy = (string)y; 12 | int nx, ny; 13 | if (!int.TryParse(sx, out nx)) 14 | return 0; 15 | if (!int.TryParse(sy, out ny)) 16 | return 0; 17 | 18 | return nx.CompareTo(ny); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/VsChromium/Features/AttachToChrome/PkgCmdID.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.AttachToChrome { 6 | static class PkgCmdIDList { 7 | public const uint CmdidAttachToAllChromes = 0x200; 8 | public const uint CmdidAttachToDescendants = 0x201; 9 | public const uint CmdidAttachToChromeDialog = 0x202; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /src/VsChromium/Features/AttachToChrome/ProcessViewItem.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Windows.Forms; 6 | using VsChromium.Core.Chromium; 7 | 8 | namespace VsChromium.Features.AttachToChrome { 9 | class ProcessViewItem : ListViewItem { 10 | public string Exe; 11 | public int SessionId; 12 | public string Title; 13 | public string DisplayCmdLine; 14 | public ChromiumProcess Process; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/VsChromium/Features/AutoUpdate/IPackageVersionProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace VsChromium.Features.AutoUpdate { 4 | /// 5 | /// Provides the version of the VsChromium package instance. 6 | /// 7 | public interface IPackageVersionProvider { 8 | Version GetVersion(); 9 | } 10 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/AutoUpdate/IUpdateInfoProvider.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Features.AutoUpdate { 2 | /// 3 | /// Abstraction over a component responsible for fetching the lastest version 4 | /// info of the VsChromium package. 5 | /// 6 | public interface IUpdateInfoProvider { 7 | UpdateInfo GetUpdateInfo(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/VsChromium/Features/AutoUpdate/IUpdateNotificationListener.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2020 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.AutoUpdate { 6 | /// 7 | /// Components listening to "there is a new VsChromium package version 8 | /// available" event. 9 | /// 10 | public interface IUpdateNotificationListener { 11 | /// 12 | /// Method invoked when there is a new update available. The method is called 13 | /// on a background thread. 14 | /// 15 | void NotifyUpdate(UpdateInfo updateInfo); 16 | } 17 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/AutoUpdate/PackageVersionProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.Composition; 3 | using System.Reflection; 4 | 5 | namespace VsChromium.Features.AutoUpdate { 6 | /// 7 | /// Return the VsChromium package version by looking up the assembly version. 8 | /// 9 | [Export(typeof(IPackageVersionProvider))] 10 | public class PackageVersionProvider : IPackageVersionProvider { 11 | public Version GetVersion() { 12 | return Assembly.GetExecutingAssembly().GetName().Version; 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/AutoUpdate/UpdateInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace VsChromium.Features.AutoUpdate { 4 | public class UpdateInfo { 5 | /// 6 | /// Version # of the VsChromium package. 7 | /// 8 | public Version Version { get; set; } 9 | /// 10 | /// Url where the VsChromium package installation can be found. 11 | /// 12 | public Uri Url { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/BuildOutputAnalyzer/BuildOutputClassifierConstants.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Windows; 6 | using System.Windows.Media; 7 | 8 | namespace VsChromium.Features.BuildOutputAnalyzer { 9 | public static class BuildOutputClassifierConstants { 10 | public const string Name = "VsChromium-BuildOutput"; 11 | public const string DisplayName = "VsChromium: Build Output"; 12 | public static Color ForegroundColor = Colors.Blue; 13 | public static TextDecorationCollection TextDecorations = System.Windows.TextDecorations.Underline; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/VsChromium/Features/BuildOutputAnalyzer/BuildOutputSpan.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.BuildOutputAnalyzer { 6 | public class BuildOutputSpan { 7 | public string Text { get; set; } 8 | public int Index { get; set; } 9 | public int Length { get; set; } 10 | public string FileName { get; set; } 11 | public int LineNumber { get; set; } 12 | public int ColumnNumber { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/BuildOutputAnalyzer/IBuildOutputParser.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.BuildOutputAnalyzer { 6 | public interface IBuildOutputParser { 7 | BuildOutputSpan ParseFullPath(string text); 8 | BuildOutputSpan ParseFullOrRelativePath(string text); 9 | } 10 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/BuildOutputAnalyzer/NugetConsoleConstants.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.BuildOutputAnalyzer { 6 | public static class NugetConsoleViewConstants { 7 | public const string ContentType = "PackageConsole"; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/VsChromium/Features/ChromiumCodingStyleChecker/ITextLineChecker.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | using Microsoft.VisualStudio.Text; 7 | using Microsoft.VisualStudio.Utilities; 8 | 9 | namespace VsChromium.Features.ChromiumCodingStyleChecker { 10 | public interface ITextLineChecker { 11 | bool AppliesToContentType(IContentType contentType); 12 | 13 | /// 14 | /// Classify a line if there is something to report about that line. 15 | /// 16 | IEnumerable CheckLine(ITextSnapshotLine line); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/VsChromium/Features/ChromiumCodingStyleChecker/TextLineCheckerError.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using Microsoft.VisualStudio.Text; 6 | 7 | namespace VsChromium.Features.ChromiumCodingStyleChecker { 8 | public class TextLineCheckerError { 9 | public SnapshotSpan Span { get; set; } 10 | public string Message { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/VsChromium/Features/FormatComment/CommentType.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Features.FormatComment { 2 | public class CommentType { 3 | private readonly string _token; 4 | 5 | public CommentType(string token) { 6 | _token = token; 7 | } 8 | 9 | public string Token { get { return _token; } } 10 | public string TextPrefix { get { return Token + " "; } } 11 | } 12 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/FormatComment/ExtendSpanResult.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.VisualStudio.Text; 2 | 3 | namespace VsChromium.Features.FormatComment { 4 | public class ExtendSpanResult { 5 | public CommentType CommentType { get; set; } 6 | public ITextSnapshotLine StartLine { get; set; } 7 | public ITextSnapshotLine EndLine { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/FormatComment/FormatLinesResult.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Microsoft.VisualStudio.Text; 3 | 4 | namespace VsChromium.Features.FormatComment { 5 | public class FormatLinesResult { 6 | public CommentType CommentType { get; set; } 7 | public SnapshotSpan SnapshotSpan { get; set; } 8 | public int Indent { get; set; } 9 | public IList Lines { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/FormatComment/ICommentFormatter.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.VisualStudio.Text; 2 | 3 | namespace VsChromium.Features.FormatComment { 4 | public interface ICommentFormatter { 5 | ExtendSpanResult ExtendSpan(SnapshotSpan span); 6 | FormatLinesResult FormatLines(ExtendSpanResult span); 7 | bool ApplyChanges(ITextEdit textEdit, FormatLinesResult result); 8 | } 9 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/IndexServerInfo/DirectoryDetailsDialog.xaml.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.IndexServerInfo { 6 | public partial class DirectoryDetailsDialog { 7 | public DirectoryDetailsDialog() { 8 | InitializeComponent(); 9 | DataContext = new DirectoryDetailsViewModel(); 10 | } 11 | 12 | public DirectoryDetailsViewModel ViewModel => (DirectoryDetailsViewModel) DataContext; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/VsChromium/Features/IndexServerInfo/ProjectConfigurationDetailsDialog.xaml.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc.TypedMessages; 6 | 7 | namespace VsChromium.Features.IndexServerInfo { 8 | public partial class ProjectConfigurationDetailsDialog { 9 | public ProjectConfigurationDetailsDialog() { 10 | InitializeComponent(); 11 | DataContext = new ProjectDetails(); 12 | } 13 | 14 | public ProjectDetails ViewModel { 15 | get { return (ProjectDetails) DataContext; } 16 | set { DataContext = value; } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/VsChromium/Features/IndexServerInfo/ProjectConfigurationSectionDetailsControl.xaml.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc.TypedMessages; 6 | 7 | namespace VsChromium.Features.IndexServerInfo { 8 | public partial class ProjectConfigurationSectionDetailsControl { 9 | 10 | public ProjectConfigurationSectionDetailsControl() { 11 | InitializeComponent(); 12 | DataContext = new ProjectConfigurationSectionDetails(); 13 | } 14 | 15 | public ProjectConfigurationSectionDetails ViewModel => (ProjectConfigurationSectionDetails)DataContext; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/VsChromium/Features/IndexServerInfo/ProjectDetailsControl.xaml.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | 6 | namespace VsChromium.Features.IndexServerInfo { 7 | public partial class ProjectDetailsControl { 8 | 9 | public ProjectDetailsControl() { 10 | InitializeComponent(); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/VsChromium/Features/IndexServerInfo/ProjectDetailsDialog.xaml.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.IndexServerInfo { 6 | public partial class ProjectDetailsDialog { 7 | public ProjectDetailsDialog() { 8 | InitializeComponent(); 9 | DataContext = new ProjectDetailsViewModel(); 10 | } 11 | 12 | public ProjectDetailsViewModel ViewModel => (ProjectDetailsViewModel) DataContext; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/VsChromium/Features/IndexServerInfo/ServerDetailsDialog.xaml.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.IndexServerInfo { 6 | public partial class ServerDetailsDialog { 7 | public ServerDetailsDialog() { 8 | InitializeComponent(); 9 | DataContext = new ServerDetailsViewModel(); 10 | } 11 | 12 | public ServerDetailsViewModel ViewModel => (ServerDetailsViewModel)DataContext; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/VsChromium/Features/IndexServerInfo/ServerStatusDialog.xaml.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.IndexServerInfo { 6 | public partial class ServerStatusDialog { 7 | public ServerStatusDialog() { 8 | InitializeComponent(); 9 | } 10 | 11 | public ServerStatusViewModel ViewModel => (ServerStatusViewModel)DataContext; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/FilePathEventArgs.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Features.SourceExplorerHierarchy { 8 | public class FilePathEventArgs : EventArgs { 9 | public string FilePath { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/IIncrementalHierarchyBuilder.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Features.SourceExplorerHierarchy { 8 | public interface IIncrementalHierarchyBuilder { 9 | Func ComputeChangeApplier(); 10 | } 11 | 12 | public enum ApplyChangesResult { 13 | Bail, 14 | Retry, 15 | Done 16 | }; 17 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/INodeTemplateFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.SourceExplorerHierarchy { 6 | public interface INodeTemplateFactory { 7 | NodeViewModelTemplate RootNodeTemplate { get; } 8 | NodeViewModelTemplate ProjectTemplate { get; } 9 | NodeViewModelTemplate DirectoryTemplate { get; } 10 | NodeViewModelTemplate GetFileTemplate(string fileExtensions); 11 | } 12 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/ISourceExplorerHierarchyController.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.SourceExplorerHierarchy { 6 | public interface ISourceExplorerHierarchyController { 7 | void Activate(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/ISourceExplorerHierarchyControllerFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.SourceExplorerHierarchy { 6 | public interface ISourceExplorerHierarchyControllerFactory { 7 | ISourceExplorerHierarchyController CreateController(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/IVsGlyphService.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using Microsoft.VisualStudio.Language.Intellisense; 7 | 8 | namespace VsChromium.Features.SourceExplorerHierarchy { 9 | public interface IVsGlyphService { 10 | IntPtr ImageListPtr { get; } 11 | int GetImageIndex(StandardGlyphGroup standardGlyphGroup, StandardGlyphItem standardGlyphItem); 12 | } 13 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/IVsHierarchyImpl.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Features.SourceExplorerHierarchy { 6 | public interface IVsHierarchyImpl { 7 | int Version { get; } 8 | bool IsEmpty { get; } 9 | 10 | void AddCommandHandler(VsHierarchyCommandHandler handler); 11 | void Reconnect(); 12 | void Disconnect(); 13 | void Disable(); 14 | void SelectNodeByFilePath(string filePath); 15 | } 16 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/IVsSolutionEventsHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Features.SourceExplorerHierarchy { 8 | public interface IVsSolutionEventsHandler { 9 | event Action AfterOpenSolution; 10 | event Action BeforeCloseSolution; 11 | } 12 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/IncrementalBuildResult.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | 7 | namespace VsChromium.Features.SourceExplorerHierarchy { 8 | public class IncrementalBuildResult { 9 | public VsHierarchyNodes OldNodes { get; set; } 10 | public VsHierarchyNodes NewNodes { get; set; } 11 | public VsHierarchyChanges Changes { get; set; } 12 | public Dictionary FileTemplatesToInitialize { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/LoadChildrenResult.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc.TypedMessages; 6 | 7 | namespace VsChromium.Features.SourceExplorerHierarchy { 8 | public struct LoadChildrenResult { 9 | public LoadChildrenResult(DirectoryNodeViewModel node, DirectoryEntry entry) { 10 | Node = node; 11 | Entry = entry; 12 | } 13 | 14 | public DirectoryNodeViewModel Node { get; } 15 | public DirectoryEntry Entry { get; } 16 | } 17 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/SourceExplorerHierarchy/RootNodeViewModel.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | 7 | namespace VsChromium.Features.SourceExplorerHierarchy { 8 | public class RootNodeViewModel : DirectoryNodeViewModel { 9 | public RootNodeViewModel() : base(null) { 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/ToolWindows/BuildExplorer/DeveloperBuildViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Features.ToolWindows.BuildExplorer { 2 | public class DeveloperBuildViewModel { 3 | } 4 | } 5 | -------------------------------------------------------------------------------- /src/VsChromium/Features/ToolWindows/CodeSearch/CodeSearchController.FilePathSearchInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Diagnostics.CodeAnalysis; 6 | 7 | namespace VsChromium.Features.ToolWindows.CodeSearch { 8 | public partial class CodeSearchController { 9 | private class FilePathSearchInfo { 10 | [SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Local")] 11 | public string RawSearchPattern { get; set; } 12 | public string SearchPattern { get; set; } 13 | public int LineNumber { get; set; } 14 | public int ColumnNumber { get; set; } 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/ToolWindows/IToolWindowAccessor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.VisualStudio.Shell.Interop; 3 | using VsChromium.Features.ToolWindows.BuildExplorer; 4 | using VsChromium.Features.ToolWindows.CodeSearch; 5 | 6 | namespace VsChromium.Features.ToolWindows { 7 | public interface IToolWindowAccessor { 8 | CodeSearchToolWindow CodeSearch { get; } 9 | BuildExplorerToolWindow BuildExplorer { get; } 10 | 11 | IVsWindowFrame FindToolWindow(Guid guid); 12 | } 13 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/ToolWindows/TextWarningItemViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Media; 2 | using VsChromium.Views; 3 | 4 | namespace VsChromium.Features.ToolWindows { 5 | public class TextWarningItemViewModel : TreeViewItemViewModel { 6 | private readonly string _text; 7 | 8 | public TextWarningItemViewModel(IStandarImageSourceFactory imageSourceFactory, TreeViewItemViewModel parent, string text) 9 | : base(imageSourceFactory, parent, false) { 10 | _text = text; 11 | } 12 | 13 | public string Text { get { return _text; } } 14 | 15 | public override ImageSource ImageSourcePath { get { return StandarImageSourceFactory.GetImage("Warning"); } } 16 | } 17 | } -------------------------------------------------------------------------------- /src/VsChromium/Features/ToolWindows/TreeViewRootNodes.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.ObjectModel; 6 | 7 | namespace VsChromium.Features.ToolWindows { 8 | public class TreeViewRootNodes : ObservableCollection { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/VsChromium/Key.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Key.snk -------------------------------------------------------------------------------- /src/VsChromium/Package/CommandHandler/IPackageCommandHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.ComponentModel.Design; 7 | 8 | namespace VsChromium.Package.CommandHandler { 9 | /// 10 | /// A global command handler. 11 | /// 12 | public interface IPackageCommandHandler { 13 | CommandID CommandId { get; } 14 | bool Supported { get; } 15 | bool Enabled { get; } 16 | bool Visible { get; } 17 | bool Checked { get; } 18 | void Execute(object sender, EventArgs e); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/VsChromium/Package/CommandHandler/IPackagePriorityCommandHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Package.CommandHandler { 6 | public interface IPackagePriorityCommandHandler : IPackageCommandHandler { 7 | } 8 | } -------------------------------------------------------------------------------- /src/VsChromium/Package/CommandHandler/PackagePriorityCommandHandlerBase.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Package.CommandHandler { 6 | public abstract class PackagePriorityCommandHandlerBase : PackageCommandHandlerBase, IPackagePriorityCommandHandler { 7 | } 8 | } -------------------------------------------------------------------------------- /src/VsChromium/Package/IDisposeContainer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Package { 8 | public interface IDisposeContainer { 9 | void Add(Action disposer); 10 | void RunAll(); 11 | } 12 | } -------------------------------------------------------------------------------- /src/VsChromium/Package/IPackagePostDispose.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Package { 6 | public interface IPackagePostDispose { 7 | int Priority { get; } 8 | void Run(IVisualStudioPackage package); 9 | } 10 | } -------------------------------------------------------------------------------- /src/VsChromium/Package/IPackagePostInitializer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Package { 6 | public interface IPackagePostInitializer { 7 | int Priority { get; } 8 | void Run(IVisualStudioPackage package); 9 | } 10 | } -------------------------------------------------------------------------------- /src/VsChromium/Package/IPackagePreInitializer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Package { 6 | public interface IPackagePreInitializer { 7 | int Priority { get; } 8 | void Run(IVisualStudioPackage package); 9 | } 10 | } -------------------------------------------------------------------------------- /src/VsChromium/Package/IShellHost.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using VsChromium.Core.Ipc; 6 | 7 | namespace VsChromium.Package { 8 | public interface IShellHost { 9 | void ShowInfoMessageBox(string title, string message); 10 | void ShowErrorMessageBox(string title, ErrorResponse error); 11 | } 12 | } -------------------------------------------------------------------------------- /src/VsChromium/Package/IVisualStudioPackageProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Package { 6 | public interface IVisualStudioPackageProvider { 7 | void SetPackage(IVisualStudioPackage package); 8 | IVisualStudioPackage Package { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/VsChromium/Properties/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1017:MarkAssembliesWithComVisible")] 6 | -------------------------------------------------------------------------------- /src/VsChromium/Resources/.gitignore: -------------------------------------------------------------------------------- 1 | Thumbs.db 2 | -------------------------------------------------------------------------------- /src/VsChromium/Resources/ChromeDebugIcons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Resources/ChromeDebugIcons.png -------------------------------------------------------------------------------- /src/VsChromium/Resources/Images_32bit.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Resources/Images_32bit.bmp -------------------------------------------------------------------------------- /src/VsChromium/Resources/VsChromium.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Resources/VsChromium.ico -------------------------------------------------------------------------------- /src/VsChromium/Resources/VsChromium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Resources/VsChromium.png -------------------------------------------------------------------------------- /src/VsChromium/Resources/VsChromiumIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Resources/VsChromiumIcon.png -------------------------------------------------------------------------------- /src/VsChromium/ServerProxy/IFileSystemTreeSource.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using VsChromium.Core.Ipc; 7 | using VsChromium.Core.Ipc.TypedMessages; 8 | 9 | namespace VsChromium.ServerProxy { 10 | public interface IFileSystemTreeSource { 11 | void Fetch(); 12 | 13 | event Action TreeReceived; 14 | event Action ErrorReceived; 15 | } 16 | } -------------------------------------------------------------------------------- /src/VsChromium/Settings/HardCodedSettings.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Settings { 6 | public static class HardCodedSettings { 7 | public static int SearchCodeExpandMaxResults = 30; 8 | public static int MaxExpandedTreeViewItemCount = 100; 9 | public static int LowHitCountWarrantingAdditionalSearch = 100; 10 | } 11 | } -------------------------------------------------------------------------------- /src/VsChromium/Settings/IGlobalSettingsProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Reflection; 6 | 7 | namespace VsChromium.Settings { 8 | public interface IGlobalSettingsProvider { 9 | GlobalSettings GlobalSettings { get; } 10 | } 11 | } -------------------------------------------------------------------------------- /src/VsChromium/Threads/DispatchThread.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.ComponentModel.Composition; 6 | 7 | namespace VsChromium.Threads { 8 | [Export(typeof(IDispatchThread))] 9 | public class DispatchThread : IDispatchThread { 10 | [ImportingConstructor] 11 | public DispatchThread() { 12 | ManagedThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId; 13 | } 14 | 15 | public int ManagedThreadId { get; private set; } 16 | } 17 | } -------------------------------------------------------------------------------- /src/VsChromium/Threads/IDispatchThread.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Threads { 6 | public interface IDispatchThread { 7 | int ManagedThreadId { get; } 8 | } 9 | } -------------------------------------------------------------------------------- /src/VsChromium/Threads/IDispatchThreadDelayedOperationExecutor.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Threads { 6 | /// 7 | /// Allows asynchronous execution of actions on the UIthread after a 8 | /// specified delay. 9 | /// 10 | public interface IDispatchThreadDelayedOperationExecutor { 11 | void Post(DelayedOperation operation); 12 | } 13 | } -------------------------------------------------------------------------------- /src/VsChromium/Threads/IDispatchThreadServerRequestExecutor.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.IO; 7 | 8 | namespace VsChromium.Threads { 9 | /// 10 | /// Post and delay requests from Dispatch thread to the server. 11 | /// 12 | public interface IDispatchThreadServerRequestExecutor { 13 | void Post(DispatchThreadServerRequest request); 14 | 15 | event EventHandler ProcessStarted; 16 | event EventHandler ProcessFatalError; 17 | 18 | bool IsServerRunning { get; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/VsChromium/Threads/IReceiveResponsesThread.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.IO; 7 | using VsChromium.Core.Ipc; 8 | 9 | namespace VsChromium.Threads { 10 | /// 11 | /// Abstraction of a thread receiving responses from an instance of IIpcStream. 12 | /// 13 | public interface IReceiveResponsesThread { 14 | void Start(IIpcStream ipcStream); 15 | 16 | event Action ResponseReceived; 17 | event Action EventReceived; 18 | event EventHandler FatalError; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/VsChromium/Threads/IRequestQueue.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using VsChromium.Core.Ipc; 7 | 8 | namespace VsChromium.Threads { 9 | public interface IRequestQueue : IDisposable { 10 | /// 11 | /// Enqueue a request. Non blocking. 12 | /// 13 | /// 14 | void Enqueue(IpcRequest request); 15 | 16 | /// 17 | /// Return the first request from the queue. Blocks until a request is available in the queue. 18 | /// 19 | IpcRequest Dequeue(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/VsChromium/Threads/ISendRequestsThread.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using VsChromium.Core.Ipc; 7 | 8 | namespace VsChromium.Threads { 9 | /// 10 | /// Abstraction of a thread sending responses to an instance of IIpcStream. 11 | /// 12 | public interface ISendRequestsThread { 13 | void Start(IIpcStream ipcStream, IRequestQueue requestQueue); 14 | 15 | /// 16 | /// Fire when there is an error sending a request to the server. 17 | /// 18 | event Action SendRequestError; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/VsChromium/Threads/ISynchronizationContext.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | 7 | namespace VsChromium.Threads { 8 | public interface ISynchronizationContext { 9 | void Post(Action action); 10 | } 11 | } -------------------------------------------------------------------------------- /src/VsChromium/Threads/ISynchronizationContextProvider.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Threads { 6 | public interface ISynchronizationContextProvider { 7 | ISynchronizationContext DispatchThreadContext { get; } 8 | } 9 | } -------------------------------------------------------------------------------- /src/VsChromium/Threads/IpcRequestException.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using VsChromium.Core.Ipc; 7 | 8 | namespace VsChromium.Threads { 9 | class IpcRequestException : Exception { 10 | private readonly IpcRequest _request; 11 | 12 | public IpcRequestException(IpcRequest request, Exception inner) 13 | : base(string.Format("Error sending request {0} of type {1} to server", request.RequestId, request.Data.GetType().FullName), inner) { 14 | _request = request; 15 | } 16 | 17 | public IpcRequest Request { get { return _request; } } 18 | } 19 | } -------------------------------------------------------------------------------- /src/VsChromium/Threads/SynchronizationContextDelegate.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.Threading; 7 | using VsChromium.Core.Logging; 8 | 9 | namespace VsChromium.Threads { 10 | public class SynchronizationContextDelegate : ISynchronizationContext { 11 | private readonly SynchronizationContext _context; 12 | 13 | public SynchronizationContextDelegate(SynchronizationContext context) { 14 | _context = context; 15 | } 16 | 17 | public void Post(Action action) { 18 | _context.Post(_ => Logger.WrapActionInvocation(action), null); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/VsChromium/Views/Clipboard.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.ComponentModel.Composition; 6 | using VsChromium.Wpf; 7 | 8 | namespace VsChromium.Views { 9 | [Export(typeof(IClipboard))] 10 | public class Clipboard : IClipboard { 11 | public void SetText(string text) { 12 | System.Windows.Clipboard.SetText(text); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/VsChromium/Views/IClipboard.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Views { 6 | public interface IClipboard { 7 | void SetText(string text); 8 | } 9 | } -------------------------------------------------------------------------------- /src/VsChromium/Views/IImageSourceFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Drawing; 6 | using System.Windows.Media; 7 | 8 | namespace VsChromium.Views { 9 | public interface IImageSourceFactory { 10 | ImageSource GetImageSource(string resourceName); 11 | Icon GetIcon(string resourceName); 12 | ImageSource GetFileExtensionImageSource(string fileExtension); 13 | Icon GetFileExtensionIcon(string fileExtension); 14 | } 15 | } -------------------------------------------------------------------------------- /src/VsChromium/Views/IOpenDocumentHelper.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using Microsoft.VisualStudio.Shell.Interop; 7 | using Microsoft.VisualStudio.Text; 8 | using Microsoft.VisualStudio.TextManager.Interop; 9 | 10 | namespace VsChromium.Views { 11 | public interface IOpenDocumentHelper { 12 | bool OpenDocument(string path, Func spanProvider); 13 | bool OpenDocumentWith(string path, IVsUIHierarchy hierarchy, uint itemid, Func spanProvider); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/VsChromium/Views/IStandarImageSourceFactory.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Windows.Media; 6 | 7 | namespace VsChromium.Views { 8 | public interface IStandarImageSourceFactory { 9 | ImageSource OpenFolder { get; } 10 | ImageSource ClosedFolder { get; } 11 | ImageSource GetImageForDocument(string path); 12 | ImageSource GetImage(string resourceName); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/VsChromium/Views/IStatusBar.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Views { 6 | public interface IStatusBar { 7 | void ReportProgress(string displayText, int completed, int total); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/VsChromium/Views/IViewHandler.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using Microsoft.VisualStudio.TextManager.Interop; 6 | 7 | namespace VsChromium.Views { 8 | public interface IViewHandler { 9 | int Priority { get; } 10 | void Attach(IVsTextView textViewAdapter); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/VsChromium/Views/IWindowsExplorer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Views { 6 | public interface IWindowsExplorer { 7 | void OpenFolder(string path); 8 | void OpenContainingFolder(string path); 9 | } 10 | } -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/ArrowLeft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/ArrowLeft.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/ArrowRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/ArrowRight.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/CancelSearch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/CancelSearch.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/ClearSearch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/ClearSearch.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/Error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/Error.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/FileEntry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/FileEntry.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/FileGo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/FileGo.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/ProcessWorking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/ProcessWorking.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/ProjectNodeIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/ProjectNodeIcon.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/RefreshFileSystemTree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/RefreshFileSystemTree.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/SearchLens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/SearchLens.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/SyncActiveDocument.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/SyncActiveDocument.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/TextDocument.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/TextDocument.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/TextEntry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/TextEntry.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/VsChromiumIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/VsChromiumIcon.png -------------------------------------------------------------------------------- /src/VsChromium/Views/Images/Warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/VsChromium/Views/Images/Warning.png -------------------------------------------------------------------------------- /src/VsChromium/Views/WindowsExplorer.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.ComponentModel.Composition; 6 | using System.Diagnostics; 7 | 8 | namespace VsChromium.Views { 9 | [Export(typeof(IWindowsExplorer))] 10 | public class WindowsExplorer : IWindowsExplorer { 11 | public void OpenFolder(string path) { 12 | Process.Start("explorer.exe", string.Format("\"{0}\"", path)); 13 | } 14 | 15 | public void OpenContainingFolder(string path) { 16 | Process.Start("explorer.exe", string.Format("/select,\"{0}\"", path)); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/VsChromium/Wpf/IHierarchyObject.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System.Collections.Generic; 6 | 7 | namespace VsChromium.Wpf { 8 | /// 9 | /// Abstraction over a tree of Visual objects, where nodes have one parent and 10 | /// many children. 11 | /// 12 | public interface IHierarchyObject { 13 | bool IsVisual { get; } 14 | IHierarchyObject GetParent(); 15 | IList GetAllChildren(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/VsChromium/Wpf/ILazyObservableCollection.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | namespace VsChromium.Wpf { 6 | public interface ILazyObservableCollection where T : class { 7 | T ExpandLazyNode(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/VsChromium/Wpf/IProgressBarTracker.cs: -------------------------------------------------------------------------------- 1 | namespace VsChromium.Wpf { 2 | public interface IProgressBarTracker { 3 | /// 4 | /// Enqueue a progress bar request for the given operation id. 5 | /// The progress bar will be shown only after a short delay (.5 sec). 6 | /// 7 | void Start(string operationId, string toolTipText); 8 | 9 | void Stop(string operationId); 10 | } 11 | } -------------------------------------------------------------------------------- /src/VsChromium/Wpf/NumberValueConverter.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | using System; 6 | using System.Globalization; 7 | using System.Windows.Data; 8 | 9 | namespace VsChromium.Wpf { 10 | public class NumberValueConverter : IValueConverter { 11 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { 12 | return $"{value:n0}"; 13 | } 14 | 15 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { 16 | throw new NotImplementedException(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/VsChromium/clear_vs2012Exp_mef_cache.bat: -------------------------------------------------------------------------------- 1 | echo Deleting MEF Cache for VS 2012 Exprimental Hive 2 | set CACHE_FILE=C:\Users\rpaquay\AppData\Local\Microsoft\VisualStudio\11.0Exp\ComponentModelCache\Microsoft.VisualStudio.Default.cache 3 | if EXIST %CACHE_FILE% del %CACHE_FILE% -------------------------------------------------------------------------------- /src/VsChromium/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215.nupkg -------------------------------------------------------------------------------- /src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/build/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | $(MSBuildThisFileDirectory)..\ 4 | $(ThisPackageDirectory)\tools 5 | $(VSToolsPath)\VSSDK 6 | $(VsSDKInstall)\inc 7 | $(VsSDKInstall)\bin 8 | 9 | -------------------------------------------------------------------------------- /src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/tools/vssdk/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/tools/vssdk/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.dll -------------------------------------------------------------------------------- /src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/tools/vssdk/Microsoft.VisualStudio.Sdk.BuildTasks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/tools/vssdk/Microsoft.VisualStudio.Sdk.BuildTasks.dll -------------------------------------------------------------------------------- /src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/tools/vssdk/Microsoft.VisualStudio.Setup.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/tools/vssdk/Microsoft.VisualStudio.Setup.Common.dll -------------------------------------------------------------------------------- /src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/tools/vssdk/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/tools/vssdk/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /src/packages/Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.215/tools/vssdk/inc/editids.h: -------------------------------------------------------------------------------- 1 | // 2 | // editids.h 3 | // NOTE this file is superseded and defines moved to vsshlids.h 4 | // 5 | #ifndef _EDITIDS_H_ 6 | #define _EDITIDS_H_ 7 | 8 | 9 | #include "virtkeys.h" 10 | #include "stdidcmd.h" 11 | #include "vsshlids.h" 12 | #include "sharedids.h" 13 | #endif //_EDITIDS_H_ -------------------------------------------------------------------------------- /src/packages/NLog.4.4.12/NLog.4.4.12.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/NLog.4.4.12/NLog.4.4.12.nupkg -------------------------------------------------------------------------------- /src/packages/NLog.4.4.12/lib/MonoAndroid10/NLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/NLog.4.4.12/lib/MonoAndroid10/NLog.dll -------------------------------------------------------------------------------- /src/packages/NLog.4.4.12/lib/Xamarin.iOS10/NLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/NLog.4.4.12/lib/Xamarin.iOS10/NLog.dll -------------------------------------------------------------------------------- /src/packages/NLog.4.4.12/lib/net35/NLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/NLog.4.4.12/lib/net35/NLog.dll -------------------------------------------------------------------------------- /src/packages/NLog.4.4.12/lib/net40/NLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/NLog.4.4.12/lib/net40/NLog.dll -------------------------------------------------------------------------------- /src/packages/NLog.4.4.12/lib/net45/NLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/NLog.4.4.12/lib/net45/NLog.dll -------------------------------------------------------------------------------- /src/packages/NLog.4.4.12/lib/sl4/NLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/NLog.4.4.12/lib/sl4/NLog.dll -------------------------------------------------------------------------------- /src/packages/NLog.4.4.12/lib/sl5/NLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/NLog.4.4.12/lib/sl5/NLog.dll -------------------------------------------------------------------------------- /src/packages/NLog.4.4.12/lib/wp8/NLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/NLog.4.4.12/lib/wp8/NLog.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/net20-cf/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/net20-cf/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/net20/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/net20/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/net30/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/net30/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/net35-cf/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/net35-cf/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/net35/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/net35/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/net40-cf/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/net40-cf/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/net40/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/net40/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/netcore45/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/netcore45/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/netcore45/protobuf-net.pri: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/netcore45/protobuf-net.pri -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/sl3-wp/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/sl3-wp/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/sl4-windowsphone71/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/sl4-windowsphone71/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/sl4/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/sl4/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/lib/windowsphone8/protobuf-net.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/lib/windowsphone8/protobuf-net.dll -------------------------------------------------------------------------------- /src/packages/protobuf-net.2.0.0.640/protobuf-net.2.0.0.640.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/src/packages/protobuf-net.2.0.0.640/protobuf-net.2.0.0.640.nupkg -------------------------------------------------------------------------------- /src/packages/repositories.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/re2/re2_wrapper.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | class RE2WrapperImpl; 10 | 11 | class RE2Wrapper { 12 | public: 13 | RE2Wrapper(); 14 | ~RE2Wrapper(); 15 | 16 | void Compile(const char *pattern, int patternLen, bool caseSensitive, std::string* error); 17 | void Match(const char* textStart, int textLength, const char** matchStart, int* matchLength); 18 | 19 | private: 20 | const char *pattern_; 21 | int patternLen_; 22 | RE2WrapperImpl* impl_; 23 | }; 24 | -------------------------------------------------------------------------------- /src/vs-chromium.vsmdi: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32.readme.txt: -------------------------------------------------------------------------------- 1 | Source code downloaded from 2 | https://code.google.com/p/re2win/ 3 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/.hgignore: -------------------------------------------------------------------------------- 1 | syntax:glob 2 | *.pyc 3 | *.orig 4 | core 5 | 6 | syntax:regexp 7 | ^obj/ 8 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/AUTHORS: -------------------------------------------------------------------------------- 1 | # This is the official list of RE2 authors for copyright purposes. 2 | # This file is distinct from the CONTRIBUTORS files. 3 | # See the latter for an explanation. 4 | 5 | # Names should be added to this file as 6 | # Name or Organization 7 | # The email address is not required for organizations. 8 | 9 | # Please keep the list sorted. 10 | 11 | Brian Gunlogson 12 | Google Inc. 13 | Stefano Rivera 14 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/README: -------------------------------------------------------------------------------- 1 | This is the source code repository for RE2, a regular expression library. 2 | 3 | For documentation about how to install and use RE2, 4 | visit http://code.google.com/p/re2/. 5 | 6 | The short version is: 7 | 8 | make 9 | make test 10 | make install 11 | make testinstall 12 | 13 | Unless otherwise noted, the RE2 source files are distributed 14 | under the BSD-style license found in the LICENSE file. 15 | 16 | RE2's native language is C++. 17 | An Inferno wrapper is at http://code.google.com/p/inferno-re2/. 18 | A Python wrapper is at http://github.com/facebook/pyre2/. 19 | A Ruby wrapper is at http://github.com/axic/rre2/. 20 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/doc/README.xkcd: -------------------------------------------------------------------------------- 1 | xkcd.png is a cropped version of http://xkcd.com/208/ 2 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/doc/xkcd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chromium/vs-chromium/079c4e0bb5f7a2cb2c519f9ca5a7f5d5c001a646/third_party/re2-2011-09-30-src-win32/re2/doc/xkcd.png -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/lib/codereview/codereview.cfg: -------------------------------------------------------------------------------- 1 | defaultcc: re2-dev@googlegroups.com 2 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/libre2.symbols: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | # re2::RE2* 4 | _ZN3re23RE2*; 5 | _ZNK3re23RE2*; 6 | # re2::StringPiece* 7 | _ZN3re211StringPiece*; 8 | _ZNK3re211StringPiece*; 9 | # operator<<(std::ostream&, re2::StringPiece const&) 10 | _ZlsRSoRKN3re211StringPieceE; 11 | local: 12 | *; 13 | }; 14 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/libre2.symbols.darwin: -------------------------------------------------------------------------------- 1 | # Linker doesn't like these unmangled: 2 | # re2::RE2* 3 | __ZN3re23RE2* 4 | __ZNK3re23RE2* 5 | # re2::StringPiece* 6 | __ZN3re211StringPiece* 7 | __ZNK3re211StringPiece* 8 | # operator<<(std::ostream&, re2::StringPiece const&) 9 | __ZlsRSoRKN3re211StringPieceE 10 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/re2/Makefile: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/runtests: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | success=true 4 | for i 5 | do 6 | printf "%-40s" $i 7 | if sh -c "$i >$i.log 2>&1" 2>/dev/null 8 | then 9 | echo PASS 10 | else 11 | echo FAIL';' output in $i.log 12 | success=false 13 | fi 14 | done 15 | 16 | if $success; then 17 | echo 'ALL TESTS PASSED.' 18 | exit 0 19 | fi 20 | echo 'TESTS FAILED.' 21 | exit 1 22 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/testinstall.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace re2; 5 | 6 | int main(void) { 7 | if(RE2::FullMatch("axbyc", "a.*b.*c")) { 8 | printf("PASS\n"); 9 | return 0; 10 | } 11 | printf("FAIL\n"); 12 | return 2; 13 | } 14 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/util/thread.h: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The RE2 Authors. All Rights Reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | #ifndef RE2_UTIL_THREAD_H__ 6 | #define RE2_UTIL_THREAD_H__ 7 | 8 | #include 9 | 10 | class Thread { 11 | public: 12 | Thread(); 13 | virtual ~Thread(); 14 | void Start(); 15 | void Join(); 16 | void SetJoinable(bool); 17 | virtual void Run() = 0; 18 | 19 | private: 20 | pthread_t pid_; 21 | bool running_; 22 | bool joinable_; 23 | }; 24 | 25 | #endif // RE2_UTIL_THREAD_H__ 26 | 27 | -------------------------------------------------------------------------------- /third_party/re2-2011-09-30-src-win32/re2/util/valgrind.cc: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The RE2 Authors. All Rights Reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | #include "util/util.h" 6 | #include "util/valgrind.h" 7 | 8 | namespace re2 { 9 | 10 | static bool checkValgrind() { 11 | #ifdef RUNNING_ON_VALGRIND 12 | return RUNNING_ON_VALGRIND; 13 | #else 14 | return false; 15 | #endif 16 | } 17 | 18 | static const int valgrind = checkValgrind(); 19 | 20 | int RunningOnValgrind() { 21 | return valgrind; 22 | } 23 | 24 | } // namespace re2 25 | -------------------------------------------------------------------------------- /vs-chromium-project.txt: -------------------------------------------------------------------------------- 1 | [SourceExplorer.ignore] 2 | .git/ 3 | *.sdf 4 | *.opensdf 5 | *.suo 6 | *.csproj 7 | *.vcxproj 8 | 9 | 10 | [SearchableFiles.ignore] 11 | Binaries/ 12 | obj/ 13 | Debug/ 14 | x64/ 15 | *.png 16 | *.ico 17 | *.ipch 18 | *.pch 19 | *.dll 20 | *.pdb 21 | *.user 22 | 23 | [SearchableFiles.include] 24 | * 25 | --------------------------------------------------------------------------------