ddu.vim icon indicating copy to clipboard operation
ddu.vim copied to clipboard

ddu screenshots

Open Shougo opened this issue 2 years ago • 17 comments

I want to add the screenshots link in README. If you have good screenshots for ddu.vim, can you add it in this issue?

Shougo avatar Feb 19 '22 02:02 Shougo

スクリーンショット_2022-02-19_12-00-01

Shougo avatar Feb 19 '22 03:02 Shougo

ddu + colorscheme source image

Comamoca avatar Feb 20 '22 11:02 Comamoca

Thank you!

Shougo avatar Feb 21 '22 02:02 Shougo

with ddu-source-buffer 2022-05-09 16_15_51

Dzzt avatar May 09 '22 07:05 Dzzt

with mr.vim + ddu-source-mr 2022-05-09 16_31_31

Dzzt avatar May 09 '22 07:05 Dzzt

ddu-source-rg with 'autoAction': {'name': 'preview'} ui-ff's uiParams.

ddu_auto_preview

matsui54 avatar May 11 '22 04:05 matsui54

ddu-vim-ui-select, which replaces Neovim's vim.ui.select with ddu.

ddu-vim-ui-select

matsui54 avatar Jun 01 '22 03:06 matsui54

It is good.

Note: I think ddu-ui topic should be added instead of ddu-source.

Well, it uses other ddu ui instead?

Shougo avatar Jun 01 '22 04:06 Shougo

Yes, it does not implement new ui. It's intended to use with ui-ff.

matsui54 avatar Jun 01 '22 04:06 matsui54

Oh, OK.

Shougo avatar Jun 01 '22 07:06 Shougo

Screenshot_20230618-152627 ddu-ui-ff ddu-source-lsp Code Action with Preview

kuuote avatar Jun 19 '23 09:06 kuuote

Built a ddu setup with several UIs and sources.

https://github.com/Shougo/ddu.vim/assets/74786563/f56692f8-ad1b-4fa3-877a-8fdbe2ef3ce7

ddu-ui-filer ddu-source-file ddu-ui-ff ddu-source-rg ddu-source-git_status

ddu-filter-converter_hl_dir ddu-filter-converter_devicon

sample code

type DduUiSize = {
  winRow: number;
  winCol: number;
  winWidth: number;
  winHeight: number;
  previewFloating: boolean;
  previewSplit: "vertical" | "horizontal";
  previewRow: number;
  previewCol: number;
  previewHeight: number;
  previewWidth: number;
};

async function uiSize(
  args: ConfigArguments,
  splitRaitio: number,
  previewSplit: "horizontal" | "vertical",
): Promise<DduUiSize> {
  const denops = args.denops;
  const FRAME_SIZE = 2;
  const columns = await opt.columns.get(denops);
  const lines = await opt.lines.get(denops);
  const winRow = -1;
  const winCol = 0;

  let winHeight!: number;
  let winWidth!: number;
  let previewRow!: number;
  let previewCol!: number;
  let previewHeight!: number;
  let previewWidth!: number;

  if (previewSplit === "horizontal") {
    winHeight = Math.floor(lines / splitRaitio);
    winWidth = columns - FRAME_SIZE - 1;
    previewRow = lines - FRAME_SIZE;
    previewCol = 0;
    previewHeight = (lines - winHeight) - (FRAME_SIZE * 3);
    previewWidth = winWidth;
  } else if (previewSplit === "vertical") {
    winHeight = lines - FRAME_SIZE - 1;
    winWidth = Math.floor(columns / splitRaitio);
    previewRow = 0;
    previewCol = columns - FRAME_SIZE;
    previewHeight = winHeight;
    previewWidth = columns - winWidth - (FRAME_SIZE * 3);
  }

  return {
    winRow: winRow,
    winCol: winCol,
    winWidth: winWidth,
    winHeight: winHeight,
    previewFloating: true,
    previewSplit: previewSplit,
    previewRow: previewRow,
    previewCol: previewCol,
    previewHeight: previewHeight,
    previewWidth: previewWidth,
  };
}

// examples
export class Config extends BaseConfig {
  override async config(args: ConfigArguments): Promise<void> {

    args.contextBuilder.patchGlobal({
      uiParams: {
        filer: {
          ...{
            split: "floating",
            splitDirection: "topleft",
            floatingBorder: "single",
            sort: "filename",
            sortTreesFirst: true,
            displayRoot: false,
            previewFloatingBorder: "single",
            previewWindowOptions: [
              ["&signcolumn", "no"],
              ["&foldcolumn", 0],
              ["&foldenable", 0],
              ["&number", 0],
              ["&relativenumber", 0],
              ["&wrap", 0],
            ],
          },
          ...await uiSize(args, 5, "vertical"),
        },
      },
    })

    args.contextBuilder.patchLocal("ripgrep-ff", {
      ui: "ff",
      uiParams: {
        ff: {
          ...{
            startAutoAction: true,
            autoAction: {
              delay: 0,
              name: "preview",
            },
            autoResize: false,
            startFilter: true,
            filterFloatingPosition: "top",
          },
          ...await uiSize(args, 3, "horizontal"),
        }
      },
      sources: [
        {
          name: "rg",
          options: {
            matchers: [],
            volatile: true,
          },
        },
      ],
    });

    args.contextBuilder.patchLocal("git_status-ff", {
      ui: "ff",
      uiParams: {
        ff: {
          ...{
            startAutoAction: true,
            autoAction: {
              delay: 0,
              name: "preview",
            },
            autoResize: false,
            filterFloatingPosition: "bottom",
          },
          ...await uiSize(args, 2, "vertical"),
        },
      },
      sources: [
        {
          name: "git_status",
        },
      ],
    });

    return Promise.resolve();
  }
}

yasunori0418 avatar Jul 25 '23 14:07 yasunori0418

Fuzzy Finder: ff UI

File searching: file_external Source (with fd)

CleanShot 2023-08-12 at 09 08 10

LSP Workspace Symbols: lsp Source

CleanShot 2023-08-12 at 09 25 54

Filer: filer UI

Filer for current dir: file Source

CleanShot 2023-08-12 at 08 52 16

peacock0803sz avatar Aug 12 '23 00:08 peacock0803sz