https://github.com/talha-akram/anvil
A highly adaptable Neovim configuration focused on providing a great development experience while being easy to extend and maintain.
https://github.com/talha-akram/anvil
dotfiles lua neovim neovim-configuration nvim
Last synced: about 1 year ago
JSON representation
A highly adaptable Neovim configuration focused on providing a great development experience while being easy to extend and maintain.
- Host: GitHub
- URL: https://github.com/talha-akram/anvil
- Owner: talha-akram
- License: bsd-3-clause
- Created: 2019-09-16T11:27:00.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-03-06T20:36:11.000Z (about 2 years ago)
- Last Synced: 2024-03-06T21:49:16.392Z (about 2 years ago)
- Topics: dotfiles, lua, neovim, neovim-configuration, nvim
- Language: Lua
- Homepage:
- Size: 8.25 MB
- Stars: 36
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Anvil
A highly adaptable Neovim distribution. The goal is to have a minimal Neovim configuration providing a great development experience out of the box. Anvil favours building on top of native features over adding plugins. So instead of spending hours getting the basics to work or navigating through a huge mess of plugins, you can focus on customizing Neovim with features you need without being overwhelmed. Anvil is extremely lightweight, has little to no configuration of its own and only adds essential plugins that are needed to have a comfortable development experience. For most users, all that should be needed is to customize the key bindings and configure a language server.
## Preview:

### Completions
#### `` opens completions for available snippets where as `` open code completions

The completions are powered by the LSP and the snippets are provided by `friendly-snippets`. Additionally custom snippets can be added under `snippets/${FILE_TYPE}.json`which will get loaded automatically and become available for that file type. The snippets are defined using the LSP snippet definition format and will override any matching snippet from `friendly-snippets`.
### Fast minimal picker using [mini.pick](https://github.com/echasnovski/mini.pick):
Anvil uses [mini.pick](https://github.com/echasnovski/mini.pick) as the default fuzzy finder and general purpose list picker, primarily due to how easy it is to extend with functionality, ease of use, performance, small size and zero dependencies on other plugins / extensions.

Have a look at [lua/plugins/picker.lua](https://github.com/talha-akram/anvil/blob/master/lua/plugins/picker.lua) to see what is available and to use as a reference to help in building your own custom pickers.
### Status Line
An easy to modify Status Line written in Lua shows detailed information related to your opened buffer:
- Current mode indicator.
- Current file path including unwritten state and read only indicator.
- Stats related to diagnostics (number of Errors `E`, Warnings `W`, Information `I` and Hints `H`).
- Attached Language Servers.
- Cursor position (including selected characters and line count in visual mode).
- File indentation and encoding information.
- Buffer number information.
- File type.
- Scroll position.
All this without using any patched fonts, works great over ssh and locally and looks great everywhere!
#### Status Line preview

An accent color is applied to the Status Bar depending on current mode. The accent color is only applied to the mode indicator, cursor position, buffer number and file type information.
## Goals
To create a highly extensible Neovim configuration that can easily be adapted as an IDE for
any programming language via LSP while staying light and as close to vanilla Neovim as possible.
This distribution aims to be a non intrusive, solid base which the user can easily customize to
fit their workflow needs.
## Contributing
Found a bug or something is broken?
Have a suggestion or feature you want added?
Please open an issue.
Want to contribute? Awesome! Please make a pull request.