rktjmp/paperplanes.nvim

github github
utility
star 60
stars
alert-circle 0
open issues
users 1
subscribers
git-branch 2
forks
CREATED

2021-08-05

UPDATED

last month


paperplanes.nvim

paperplanes Logo

Post selections or buffers to online paste bins. Save the URL to a register, or dont.

Requirements

  • Neovim 0.5+
  • A curl executable in your $PATH

Install

Use your package manager.

Configuration & Use

Setup

-- options shown with default values
require("paperplanes").setup({
  register = "+",
  provider = "0x0.st",
  provider_options = {},
  notifier = vim.notify or print,
})
  • register - any valid register name or false
  • provider - See provider list.
  • provider_options - passed to selected provider, check provider code for accepted options.
  • notifier - any function that accepts a string, should show that string in some way.

Commands

Post selection or buffer to configured provider, sets configured register and print's the result.

  • :PP -> Post current buffer.

  • :[range]PP -> Post range.

    • Vim does not support column aware ranges when using commands. Use post_selection via a map for that behaviour.

Functions

See :h paperplanes for more complete documentation.

Functions are provided in snake_case and kebab-case (post_string and post-string).

All functions accept a callback argument which is called with url, nil or nil, errors.

provider-name and provider-options are optional and the default provider will be used if not given.

Functions to not automatically print the url or set any registers.

  • post_string(content, metadata, callback, provider-name, provider-options)
  • post_range(buffer, start_pos, end_pos, callback, provider-name, provider-options)
  • post_selection(callback, provider-name, provider-options)
  • post_buffer(buffer, callback, provider-name, provider-options)

Providers

paperplanes supports the following providers, see sites for TOS and features.

To create a new provider, see :h paperplanes and fnl/paperplanes/providers/*.fnl.

paperplanes is not affiliated with any provider in any manner.

Building

paperplanes includes a basic build system. It requires hotpot.nvim to run.

  1. Run :Fnlfile build.fnl when your cwd is paperplanes.nvim.

or

  1. Remove rm -rf lua/ and Hotpot will automatically compile when you reload neovim.

Note: lua/ is .gitignore'd for my own QOL (so those files dont appear in file pickers), so you must git add --force ... your lua files when submitting a PR.

Changelog

See CHANGELOG.md.