All Projects → Olical → Aniseed

Olical / Aniseed

Licence: unlicense
Neovim configuration and plugins in Fennel (Lisp compiled to Lua)

Programming Languages

shell
77523 projects
lua
6591 projects
lisp
113 projects

Labels

Projects that are alternatives of or similar to Aniseed

Aerojump.nvim
Aerojump is a fuzzy-match searcher/jumper for Neovim with the goal of quick keyboard navigation
Stars: ✭ 184 (-8.91%)
Mutual labels:  neovim
Visual Split.vim
Vim plugin to control splits with visual selections or text objects
Stars: ✭ 190 (-5.94%)
Mutual labels:  neovim
Neovide
No Nonsense Neovim Client in Rust
Stars: ✭ 5,678 (+2710.89%)
Mutual labels:  neovim
Dotfiles
My dotfiles: Experimental, ongoing configuration files, development environment and scripts for various Unix-like systems, text-based command-line applications and interfaces.
Stars: ✭ 185 (-8.42%)
Mutual labels:  neovim
Coc Pairs
Basic auto pairs extension of coc.nvim
Stars: ✭ 186 (-7.92%)
Mutual labels:  neovim
Init.nvim
An Opinionated Neovim Config for the Minimalists
Stars: ✭ 194 (-3.96%)
Mutual labels:  neovim
Fast Ide
🕺Fast Integrated Development Environment 😻
Stars: ✭ 181 (-10.4%)
Mutual labels:  neovim
Neovim Ruby
Ruby support for Neovim
Stars: ✭ 202 (+0%)
Mutual labels:  neovim
Vim Sneak
The missing motion for Vim 👟
Stars: ✭ 2,467 (+1121.29%)
Mutual labels:  neovim
Vim Mix Format
Vim integration for the Elixir formatter.
Stars: ✭ 196 (-2.97%)
Mutual labels:  neovim
Deoplete Clang
deoplete.nvim source for C/C++/Obj-C/Obj-C++ with clang-python3
Stars: ✭ 186 (-7.92%)
Mutual labels:  neovim
Diagnostic Languageserver
diagnostic language server integrate with linters
Stars: ✭ 186 (-7.92%)
Mutual labels:  neovim
Twf
Standalone tree view file explorer, inspired by fzf.
Stars: ✭ 196 (-2.97%)
Mutual labels:  neovim
Alacritty Colorscheme
Change colorscheme of alacritty with ease.
Stars: ✭ 184 (-8.91%)
Mutual labels:  neovim
Vim Hug Neovim Rpc
EXPERIMENTAL
Stars: ✭ 199 (-1.49%)
Mutual labels:  neovim
Markdown Preview.nvim
markdown preview plugin for (neo)vim
Stars: ✭ 2,858 (+1314.85%)
Mutual labels:  neovim
Vim Signify
➕ Show a diff using Vim its sign column.
Stars: ✭ 2,390 (+1083.17%)
Mutual labels:  neovim
Lualine.nvim
A blazing fast and easy to configure neovim statusline written in pure lua.
Stars: ✭ 198 (-1.98%)
Mutual labels:  neovim
Bullets.vim
🔫 Bullets.vim is a Vim/NeoVim plugin for automated bullet lists.
Stars: ✭ 199 (-1.49%)
Mutual labels:  neovim
Vim Packager
Vim plugin manager that utilizes "jobs" and "pack" features.
Stars: ✭ 197 (-2.48%)
Mutual labels:  neovim

= Aniseed https://conjure.fun/discord[image:https://img.shields.io/discord/732957595249410108.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2[Discord]]

Aniseed bridges the gap between https://fennel-lang.org/[Fennel] (a Lisp that compiles to Lua) and https://neovim.io/[Neovim]. Allowing you to easily write plugins or configuration in a https://clojure.org/[Clojure]-like Lisp with great runtime performance.

https://asciinema.org/a/326401[image:https://asciinema.org/a/326401.svg[asciicast]]

Further documentation can be found in link:doc/aniseed.txt[:help aniseed]. There you can learn about the scripts, macros, functions and use cases of Aniseed.

== Installation

Use your favourite plugin manager, I recommend https://github.com/junegunn/vim-plug[vim-plug] if you don't have one already.

[source,viml]

Plug 'Olical/aniseed', { 'tag': 'v3.16.0' } Plug 'bakpakin/fennel.vim'

For interactive evaluation you need to install https://github.com/Olical/conjure[Conjure]. It'll allow you to send portions of your code off for evaluation as well as see the results in an interactive log buffer.

You may also be interested in https://github.com/Olical/nvim-local-fennel[nvim-local-fennel] which is essentially a Fennel based version of https://github.com/embear/vim-localvimrc[localvimrc].

== Loading Fennel Neovim configuration

Aniseed has a module called aniseed.env which will automatically compile and load Fennel code from your Neovim configuration directory as if it were natively supported by the editor, like Lua and VimL.

See https://github.com/Olical/dotfiles/tree/a950167446c656a6ba10ddf7400072cd0107c24c/stowed/.config/nvim/fnl[Olical/dotfiles] for a detailed example configuration. To enable this same automatic loading of your Fennel configuration you need to install Aniseed and add the following option. This is documented further within :help aniseed.

[source,viml]

let g:aniseed#env = v:true

Now the following code in ~/.config/nvim/fnl/init.fnl will be compiled and executed when you open Neovim.

[source,clojure]

;; The name is up to you. (module nvim-config {require {a aniseed.core}})

(a.println "Hello, World!")

== Setting up a plugin project

scripts/seed.sh is provided to make it a little easier to get a plugin up and running. In a new directory (because it will overwrite your .gitignore and Makefile etc) run the following command.

It will name the plugin after the directory you're currently running it from. Make sure the directory name doesn't include any spaces or special characters because it will be inserted at some points in the seed code for you.

[source,bash]

curl -fL https://raw.githubusercontent.com/Olical/aniseed/master/scripts/seed.sh | sh

This will create some example Fennel source and tests as well as a Makefile to help you compile and run it all. This should be enough to get you started without being overly opinionated.

== Unlicenced

The following files are excluded from my license and ownership:

  • lua/aniseed/deps/fennel.lua
  • lua/aniseed/deps/fennelview.lua
  • lua/aniseed/deps/nvim.lua

These files come from https://fennel-lang.org/[Fennel] and https://github.com/norcalli/nvim.lua[nvim.lua], I did not write them, all other files are from me and unlicenced. The aforementioned files should be considered under their respective project licences. They are copied into this repo to allow the plugin to work with systems that don't support symlinks correctly.

Find the full http://unlicense.org/[unlicense] in the UNLICENSE file, but here's a snippet.


This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].