Skip to content

Files

Latest commit

 

History

History
74 lines (60 loc) · 1.95 KB

README.md

File metadata and controls

74 lines (60 loc) · 1.95 KB

fall-source-chronicle

This is the chronicle.vim source of fall.vim

Requirement

Sample configuration

  • FallCustom
import * as builtin from "jsr:@vim-fall/std/builtin";
import type { Entrypoint } from "jsr:@vim-fall/custom";
import { chronicle } from "jsr:@yukimemi/fall-source-chronicle";
import { composeRenderers, refineSource } from "jsr:@vim-fall/std";

const myPathActions = {
  ...builtin.action.defaultOpenActions,
  ...builtin.action.defaultSystemopenActions,
  ...builtin.action.defaultCdActions,
};
const myMiscActions = {
  ...builtin.action.defaultEchoActions,
  ...builtin.action.defaultYankActions,
  ...builtin.action.defaultSubmatchActions,
};

export const main: Entrypoint = (
  {
    definePickerFromSource,
    refineSetting,
  },
) => {
  refineSetting({
    coordinator: builtin.coordinator.modern,
    theme: builtin.theme.MODERN_THEME,
  });

  const defineChroniclePicker = (mode: "read" | "write") => {
    definePickerFromSource(
      `chronicle:${mode}`,
      refineSource(
        chronicle({ mode }),
        builtin.refiner.exists,
        builtin.refiner.relativePath,
      ),
      {
        matchers: [builtin.matcher.fzf],
        sorters: [builtin.sorter.noop],
        renderers: [
          composeRenderers(builtin.renderer.smartPath, builtin.renderer.nerdfont),
          builtin.renderer.noop,
        ],
        previewers: [builtin.previewer.file],
        actions: { ...myPathActions, ...myMiscActions },
        defaultAction: "open",
      },
    );
  };

  defineChroniclePicker("read");
  defineChroniclePicker("write");
};

License

Licensed under MIT License.

Copyright (c) 2024 yukimemi