garyhurtz / coq.thirdparty

Module lua sources for `coq.nvim`, first & third party

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

coq.nvim (first & third) party sources

PR welcome


First party lua sources & third party integration for coq.nvim

See :COQhelp custom_sources

How to use

Install the repo the normal way, and then:

require("coq_3p") {
  { src = "nvimlua", short_name = "nLUA" },
  { src = "vimtex", short_name = "vTEX" },
  { src = "copilot", short_name = "COP", tmp_accept_key = "<c-r>" },
  ...
  { src = "demo" },
}

require("coq_3p") takes a list of { src = ..., short_name = ..., ... } objects.

src is required

If short_name is not specified, it is uppercase src.

The rest of object are specific to each individual source.

First party

Shell REPL

{
  src = "repl",
  sh = "zsh",
  shell = { p = "perl", n = "node", ... },
  max_lines = 99,
  deadline = 500,
  unsafe = { "rm", "poweroff", "mv", ... }
}

Evaluates ...:

`<ctrl chars>!...`

Where <ctrl chars> can be a combination of zero or more of:

  • # :: comment output

  • - :: prevent indent

Note: coq.nvim has very short deadlines by default for auto completions, manual <c-space> might be required if $SHELL is slow.

repl.img

  • sh :: Maybe str :: default repl shell, default to $SHELL fallback to cmd.exe under NT and sh under POSIX

  • shell :: Maybe Map 'str, 'str :: For the first word w after "`!", if w ∈ key of shell, set sh = shell[w]

  • max_lines :: int :: max lines to return

  • deadline :: int :: max ms to wait for execution

  • unsafe :: Seq 'str :: do not start repl with these executables, ie. rm, sudo, mv, etc

Nvim Lua API

{ src = "nvimlua", short_name = "nLUA", conf_only = true }

lua.img

  • conf_only :: Maybe bool :: only return results if current document is relative to $NVIM_HOME, default yes

Scientific calculator

{ src = "bc", short_name = "MATH", precision = 6 }

bc.img

  • precision :: Maybe int

requires - bc

Comment Banner

{ src = "figlet", short_name = "BIG" }

figlet.img

requires - figlet

Moo

{ src = "cow" }

cowsay.img

requires - cowsay

Third parties

{ src = "copilot", short_name = "COP", tmp_accept_key = "<c-r>" }

Hitting tmp_accept_key will accept the suggestions once they are shown.

This is just a quick workaround, if its at all possible i'd like to remove tmp_accept_key, and include copilot suggestions right in the completion popup.

{ src = "vimtex", short_name = "vTEX" }

{ src = "orgmode", short_name = "ORG" }

{ src = "dap" }

Thanks @davidatbu <3


FYI

None of the code under require('coq_3p') is public API.

From the users' prespective, any change I make should be transparent, ie. I will try to not break their stuff.

For other plugin developers, if you want to re-use my code. Make a COPY, do not just require "blah" from this repo.

I want to reserve the ability to fearlessly re-factor.

About

Module lua sources for `coq.nvim`, first & third party


Languages

Language:Lua 99.9%Language:Vim Script 0.1%