private ICommandResult Set(CommandContext context) { string indexText = context.GetParameterValue(ClipboardConstants.PARAMETER_INDEX); if (string.IsNullOrWhiteSpace(indexText)) { indexText = "0"; } if (!int.TryParse(indexText, out int index)) { return(new ErrorTextResult("Invalid index.")); } IClipboardItem item = service.SetClipboardFromHistory(service.HistoryCount - index); if (item == null) { return(new ErrorTextResult($"An item with index {index} hasn't been found.")); } MarkdownBuilder itemBuilder = new MarkdownBuilder(); itemBuilder.CodeBlock(string.Empty, item.Content); return(new ItemsResult(ViewItem.AsMarkdown(itemBuilder.ToString()))); }
private ICommandResult Configure(CommandContext context) { OptionContext simplify = context.GetOption(ClipboardConstants.OPTION_SIMPLIFY); if (simplify != null) { string value = simplify.GetParameterValue(ClipboardConstants.PARAMETER_FLAG); service.Configuration.SimplifyText = string.IsNullOrEmpty(value) ? !service.Configuration.SimplifyText : value.IsTrue(); } OptionContext path = context.GetOption(ClipboardConstants.OPTION_PATH); if (path != null) { string value = path.GetParameterValue(ClipboardConstants.PARAMETER_FLAG); service.Configuration.ConvertFilesToPaths = string.IsNullOrEmpty(value) ? !service.Configuration.ConvertFilesToPaths : value.IsTrue(); } MarkdownBuilder itemBuilder = new MarkdownBuilder(); itemBuilder.WriteLine($"- Text simplification is {EnabledOrDisabled(service.Configuration.SimplifyText)}."); itemBuilder.WriteLine($"- File-to-path transformation is {EnabledOrDisabled(service.Configuration.ConvertFilesToPaths)}."); return(new ItemsResult(ViewItem.AsMarkdown(itemBuilder.ToString()))); }
private ICommandResult History(CommandContext context) { if (context.HasOption(ClipboardConstants.OPTION_CLEAR)) { service.ClearHistory(); return(new TextResult("Clipboard history has been cleared.")); } var builder = ImmutableList <ViewItem> .Empty.ToBuilder(); foreach (string argStrIndex in context.GetParameterValues(ClipboardConstants.PARAMETER_INDEX)) { if (!int.TryParse(argStrIndex, out int argIndex)) { continue; } IClipboardItem item = service.GetHistoryItem(argIndex); if (item == null) { continue; } MarkdownBuilder itemBuilder = new MarkdownBuilder(); itemBuilder.Header(argIndex.ToString(), 3); itemBuilder.CodeBlock(string.Empty, item.Content); builder.Add(ViewItem.AsMarkdown(itemBuilder.ToString())); } if (builder.Count > 0) { return(new ItemsResult(builder.ToImmutable())); } int index = 0; foreach (IClipboardItem item in service.GetHistory()) { MarkdownBuilder itemBuilder = new MarkdownBuilder(); itemBuilder.Header((++index).ToString(), 3); itemBuilder.CodeBlock(string.Empty, item.Thumbnail); builder.Add(ViewItem.AsMarkdown(itemBuilder.ToString())); } if (builder.Count <= 0) { return(new TextResult("Clipboard history is empty.")); } return(new ItemsResult(builder.ToImmutable())); }