in TeamCity.CSharpInteractive/Info.cs [50:86]
public void ShowReplHelp()
{
var lines = new List<Text>
{
new("Keyboard shortcuts:", Color.Header), Text.NewLine,
Text.Tab, new("Enter ", Color.Header), new("If the current submission appears to be complete, evaluate it. Otherwise, insert a new line."), Text.NewLine,
Text.Tab, new("Escape ", Color.Header), new("Clear the current submission."), Text.NewLine,
Text.Tab, new("UpArrow ", Color.Header), new("Replace the current submission with a previous submission."), Text.NewLine,
Text.Tab, new("DownArrow ", Color.Header), new("Replace the current submission with a subsequent submission (after having previously navigated backwards)."), Text.NewLine,
Text.Tab, new("Ctrl-C ", Color.Header), new("Exit the REPL."), Text.NewLine,
new("REPL commands:", Color.Header), Text.NewLine,
Text.Tab, new("#help ", Color.Header), new("Display help on available commands and key bindings."), Text.NewLine
};
var settingLines =
from setting in _settingDescriptions
where setting.IsVisible
select new[]
{
Text.Tab, new Text($"#{setting.Key,-12}", Color.Header),
new Text($"{setting.Description} {string.Join(", ", Enum.GetValues(setting.SettingType).OfType<Enum>().Select(i => i.ToString()))}, e.g. "),
new Text($"#{setting.Key} {Enum.GetValues(setting.SettingType).OfType<Enum>().LastOrDefault()}", Color.Highlighted),
new Text("."),
Text.NewLine
};
lines.AddRange(settingLines.SelectMany(i => i));
lines.AddRange(new[]
{
new Text("Script directives:", Color.Header), Text.NewLine,
Text.Tab, new Text("#r ", Color.Header), new Text("Add a reference to a NuGet package or specified assembly and all its dependencies, e.g., "), new Text("#r \"nuget:MyPackage, 1.2.3\"", Color.Highlighted), new Text(" or "), new Text("#r \"nuget:MyPackage\"", Color.Highlighted), new Text(" or "), new Text("#r \"MyLib.dll\"", Color.Highlighted), new Text("."), Text.NewLine,
Text.Tab, new Text("#load ", Color.Header), new Text("Load specified script file and execute it, e.g. "), new Text("#load \"script-file.csx\"", Color.Highlighted), new Text(".")
});
_stdOut.WriteLine(lines.ToArray());
}