/* Copyright (C) 2014-2019 de4dot@gmail.com This file is part of dnSpy dnSpy is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. dnSpy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with dnSpy. If not, see . */ using System.Collections.Generic; using dnSpy.Contracts.Decompiler; using dnSpy.Contracts.Themes; namespace dnSpy.Contracts.App { /// /// Application command line arguments /// public interface IAppCommandLineArgs { /// Settings filename string? SettingsFilename { get; } /// Filenames to load IEnumerable Filenames { get; } /// true if single-instance bool SingleInstance { get; } /// true to activate the window bool Activate { get; } /// Language, either human readable or a language guid /// ( or ) string Language { get; } /// Culture string Culture { get; } /// Member to select, either an MD token or an XML doc name string SelectMember { get; } /// Show the file in a new tab bool NewTab { get; } /// Search string or null if none string? SearchText { get; } /// Search type string SearchFor { get; } /// Search location string SearchIn { get; } /// Theme name ( or ) string Theme { get; } /// true to load all saved files at startup bool LoadFiles { get; } /// Full screen bool? FullScreen { get; } /// Tool windows to show string ShowToolWindow { get; } /// Tool windows to hide string HideToolWindow { get; } /// Show start up time bool ShowStartupTime { get; } /// Attach to this process, unless it's 0 int DebugAttachPid { get; } /// Event handle duplicated into the postmortem debugger process uint DebugEvent { get; } /// Address of a JIT_DEBUG_INFO structure allocated in the target process' address space (https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/-jdinfo--use-jit-debug-info-) ulong JitDebugInfo { get; } /// Attach to this process name, unless it's empty. Can contain wildcards. string DebugAttachProcess { get; } /// Additional directory to check for extensions. string ExtraExtensionDirectory { get; } /// /// Returns true if the argument is present /// /// Argument name, eg. --my-arg /// bool HasArgument(string argName); /// /// Gets the argument value or null if the argument isn't present /// /// Argument name, eg. --my-arg /// string? GetArgumentValue(string argName); /// /// Gets all user arguments and values /// /// IEnumerable<(string argument, string value)> GetArguments(); } }