Skip to content

isti115/agda.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

agda.nvim

NeoVim plugin for interacting with Agda written in Lua

(Note: Sorry for the lack of updates lately, currently I'm waiting for the following issue: agda/agda#5665 to be addressed, but in the meantime I might switch to the Lisp backend, which could be a bit painful in terms of parsing, but at least would enable the further development of this plugin.)

Dependencies

Installation

Plug

  Plug 'nvim-lua/plenary.nvim'
  Plug 'isti115/agda.nvim'

Usage

By default the usual agda actions are mapped to the conventional keys, preceded by <LocalLeader> (\ by default in NeoVim), such as:

  • \l - Load
  • \f - Next goal (Forward)
  • \c - Case split

and so on. See the source for all available actions!

Options

Option Possible Values (Defaults in bold)
g:agda_theme dark, light
g:agda_keymap vim, emacs, none

Features

Done*

  • Goal types
  • Version info
  • Case splitting
  • Context information
  • Syntax highlighting
  • Refinement
  • Auto
  • Infer type of goal contents
  • Jumping between goals
  • Expression normalization and type inference
  • Give contents to goals

*: (more like is sort of working, but everything is still experimental...)

In Progress

  • Code quality improvements

Planned

  • Inline case split
  • Go to definition

Note: Unicode input is not yet implemented, use digraphs! Some examples for special characters that you can enter by default:

  • ∀ = ^KFA ("For All")
  • ∃ = ^KTE ("There Exists")
  • → = ^K->
  • λ = ^Kl*
  • ≡ = ^K=3
  • ¬ = ^KNO

Thanks to

  • u/algebrartist for help with the development on reddit and testing
  • banacorn for agda-mode-vscode and the description of the communication protocol
  • jliptrap for doing initial testing and reporting issues

About

NeoVim plugin for interacting with Agda written in Lua

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published