示例#1
0
        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())));
        }
示例#2
0
        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())));
        }
示例#3
0
        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()));
        }