jbyuki/nabla.nvim

github github
note-taking
stars 686
issues 21
subscribers 7
forks 25
CREATED

2020-12-07

UPDATED

8 days ago


nabla.nvim

Take your scentific notes in Neovim.

The colorscheme used here is tokyonight.

An ASCII math generator from LaTeX equations.

Requirements

  • Neovim nightly
  • A colorscheme which supports treesitter see here (*)
  • Tree-sitter : nvim-treesitter/nvim-treesitter (*) (Not a dependency, but recommended to install parsers).
  • Latex parser : Install with TSInstall latex (*)

(*): Skip when using LazyVim

Install

Plug 'jbyuki/nabla.nvim'
use 'jbyuki/nabla.nvim'
  {
      "williamboman/mason.nvim",
      opts = { ensure_installed = { "tree-sitter-cli" } },
  },

  {
      "jbyuki/nabla.nvim",
      dependencies = {
          "nvim-neo-tree/neo-tree.nvim",
          "williamboman/mason.nvim",
      },
      lazy = true,

      config = function()
          require("nvim-treesitter.configs").setup({
              ensure_installed = { "latex" },
              auto_install = true,
              sync_install = false,
          })
      end,

      keys = function()
          return {
              {
                  "<leader>p",
                  ':lua require("nabla").popup()<cr>',
                  desc = "NablaPopUp",
              },
          }
      end,
  },
  • Create a folder pack/<a folder name of your choosing>/start

  • Inside the start folder git clone nabla.nvim

    • git clone https://github.com/jbyuki/nabla.nvim
  • In your init.lua, add the pack folder to packpath (see :help packpath)

    vim.o.packpath = vim.o.packpath .. ",<path to where pack/ is located>"
    
  • git pull in the plugin folder to update it. You want something more viable though, that's why package managers are useful.

Configuration

(Default keymap to nabla-render in LazyVim is <leader>p)

Bind the following command:

nnoremap <leader>p :lua require("nabla").popup()<CR> " Customize with popup({border = ...})  : `single` (default), `double`, `rounded`

See here for virt_lines support.

Usage

  • Press leader + p while the cursor is on a math expression to open floating menu

Reference

See test/input.txt for examples.

Note: If the notation you need is not present or there is a misaligned expression, feel free to open an Issue.

Credits

  • Thanks to jetrosut for his helpful feedback and bug troubleshoot.
  • Thanks to nbCloud91 for pointing me to VIM conceals.
  • Thanks to clstb for giving suggestions on how to enhance the interaction.
  • Thanks to aspeddro for adding preview popups.
  • Thanks to Areustle for adding more than 500 new symbols.
  • Thanks to kkharji for pointing out virt_lines.
  • Thanks to max397574 for a proper treesitter implementation.

Contribute

See here.