/*
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();
}
}