/vim-ada

Ready-to-deploy plugins and configuration which change Vim/NeoVim into (mostly Ada) IDE

Primary LanguageVim Script

General Information

Vim-Ada is ready to deploy set of plugins and settings which helps write programs in various programming languages. As name of bundle says, it is focused mainly on the Ada programming language, but it has support for other programming languages too. See "Installation" section for detailed instructions how to install it and "Plugins" section for information about included plugins and changes (if any) to them. If you need more plugins, you can visit Vim Awesome or the project wiki Recommended plugins page.

All changes to plugins are under the respective plugin license which can be found in plugins directory. If the plugin don't have license info included, then all my changes are in public domain.

If you are new to Vim and you want to have more user-friendly experience with this editor, I recommend to use SpaceVim. Main differences between vim-ada and SpaceVim:

  • Design in Keep It Simple Stupid principle: Vim-ada is just a bundle of plugins which can be easily added, removed or locally edited to suit your needs.
  • No changes to core systems of Vim: All keyboard shortcuts are that same, thus, Vim-ada require less learning for experienced Vim/NeoVim users.
  • Easy to deploy: just download the configuration file and replace your config, rest will be done after first start of Vim/NeoVim.
  • Much younger, less polished than SpaceVim.

Important: This version of README.md is about current version of Vim-Ada. Earlier versions of Vim-Ada may have different requirements or contents. Please read README.md included in the release to get information about other releases.

Screenshots

Papercolor - dark background

Papercolor - light background with opened vista and nerdtree

Installation

Set included .vimrc file as your configuration file (or source it from your configuration file). Since version 8.0 of vim-ada it is required, because all plugins are managed by Plug plugin which must be installed first. For upgrade, use Plug commands.

Additional steps

To enable all options, you have been needing to install:

Plugins

A.vim

Webpage: https://github.com/thindil/a.vim

Allow fast switch between spec (.ads) and body (.adb) files (works with C, C++ headers files too). This plugin wasn't modified.

AdaBundle

Webpage: https://github.com/thindil/Ada-Bundle

This is modified version of standard Ada support for Vim/Neovim. This plugin wasn't modified but have some custom configuration in .vimrc file.

Airline

Webpage: https://github.com/vim-airline/vim-airline

Status bar and buffer list for Vim. This plugin wasn't modified but have some custom configuration in .vimrc file.

Ale

Webpage: https://github.com/dense-analysis/ale

ALE (Asynchronous Lint Engine) is a plugin providing linting (syntax checking and semantic errors) in NeoVim 0.2.0+ and Vim 8 while you edit your text files, and acts as a Vim Language Server Protocol client. This plugin has added Ada support for gnatmake for support for GNAT Project files (.gpr). Gnatmake linter can be used only on save file. Thus, it is recommended to use custom configuration from .vimrc file.

AnyFold

Webpage: https://github.com/pseewald/vim-anyfold

Generic folding mechanism and motion based on indentation. Fold anything that is structured into indented blocks. Quickly navigate between blocks. This plugin wasn't modified but have some custom configuration in .vimrc file.

Auto-pairs

Webpage: https://github.com/jiangmiao/auto-pairs

Insert or delete brackets, quotes in pair. This plugin wasn't modified.

EasyMotion

Webpage: https://github.com/easymotion/vim-easymotion

EasyMotion provides a much simpler way to use some motions in vim. It takes the <number> out of <number>w or <number>f{char} by highlighting all possible choices and allowing you to press one key to jump directly to the target. This plugin wasn't modified.

Grammarous

Webpage: https://github.com/rhysd/vim-grammarous

vim-grammarous is a powerful grammar checker for Vim. Simply do :GrammarousCheck to see the powerful checking. This plugin automatically downloads LanguageTool, which requires Java 8+. This plugin wasn't modified.

GutenTags

Webpage: https://github.com/ludovicchabant/vim-gutentags

Gutentags is a plugin that takes care of the much-needed management of tags files in Vim. It will (re)generate tag files as you work while staying completely out of your way. It will even do its best to keep those tag files out of your way too. It has no dependencies and just works. This plugin wasn't modified but have some custom configuration in .vimrc file.

IndentLine

Webpage: https://github.com/Yggdroot/indentLine

This plugin is used for displaying thin vertical lines at each indentation level for code indented with spaces. This plugin wasn't modified but have some custom configuration in .vimrc file.

MW-Utils

Webpage: https://github.com/marcweber/vim-addon-mw-utils

vim: interpret a file by function and cache file automatically. This plugin wasn't modified. This plugin is required for SnipMate plugin to work.

NERDTree

Webpage: https://github.com/scrooloose/nerdtree

The NERDTree is a file system explorer for the Vim editor. Using this plugin, users can visually browse complex directory hierarchies, quickly open files for reading or editing, and perform basic file system operations. This plugin can also be extended with custom mappings using a special API. This plugin wasn't modified but have some custom configuration in .vimrc file.

Plug

Webpage: https://github.com/junegunn/vim-plug

A minimalist Vim plugin manager. This wasn't modified. This plugin is required to load other plugins included in bundle. Required configuration of this plugin is in .vimrc file.

QuickUI

Webpage: https://github.com/skywind3000/vim-quickui

Adds some basic UI components to the Vim/NeoVim. This plugin wasn't modified but have some custom configuration in .vimrc file.

Rainbow Parentheses Improved

Webpage: https://github.com/luochen1990/rainbow

Updated version of Rainbow Parenthesis. Help you read complex code by showing diff level of parentheses in diff color. This plugin wasn't modified but have some custom configuration in .vimrc file.

Robovim

Webpage: https://github.com/thindil/robovim

Robovim is simple Vim plugin which allow easier add Robodoc formatted documentation to source code. This plugin wasn't modified.

Signify

Webpage: https://github.com/mhinz/vim-signify

Signify (or just Sy) uses the sign column to indicate added, modified and removed lines in a file that is managed by a version control system (VCS). This plugin wasn't modified but have some custom configuration in .vimrc file.

SnipMate

Webpage: https://github.com/garbas/vim-snipmate

SnipMate aims to provide support for textual snippets, similar to TextMate or other Vim plugins like UltiSnips. This plugin wasn't modified.

Snippets

Webpage: https://github.com/honza/vim-snippets

This repository contains snippets files for various programming languages. It is community-maintained and many people have contributed snippet files and other improvements already.

Startify

Webpage: https://github.com/mhinz/vim-startify

This plugin provides a start screen for Vim. It provides dynamically created headers or footers and uses configurable lists to show recently used or bookmarked files and persistent sessions. All of this can be accessed in a simple-to-use menu that even allows opening multiple entries at once. This plugin wasn't modified.

Tlib

Webpage: https://github.com/tomtom/tlib_vim

This library provides some utility functions. This plugin wasn't modified. The plugin is required by SnipMate to work.

Todo.txt

Webpage: https://github.com/dbeniamine/todo.txt-vim

Todo.txt-vim is a plugin to manage todo.txt files it was initially designed by Freitass then forked and improved by David Beniamine. This plugin wasn't modified.

Vista

Webpage: https://github.com/liuchengxu/vista.vim

View and search LSP symbols, tags in Vim/NeoVim. This plugin wasn't modified but have some custom configuration in .vimrc file.

Xml

Webpage: https://github.com/thindil/vim-xml

This is just one line setting to enable spellchecking in XML files too.

Zeavim

Webpage: https://github.com/KabbAmine/zeavim.vim

Zeavim allows to use the offline documentation browser Zeal from Vim. This plugin wasn't modified but have some custom configuration in .vimrc file.

PaperColor

Webpage: https://github.com/NLKNguyen/papercolor-theme

Used as default theme for Vim/NeoVim. Comes in two versions: dark (default if you use included .vimrc configuration file) and light (default for no configuration). This version has a bit better support for the Ada and Tcl syntax, also some custom configuration is in .vimrc file.

Gruvbox8

Webpage: https://github.com/lifepillar/vim-gruvbox8

Another theme available with this pack. More information about this theme, configuring and enabling it, you can find at its webpage.


That's probably all, feel free to use project Issues if you have any problems, questions, ideas or bug reports about this pack.

Bartek thindil Jasicki