Skip to content

Abstract-IDE/Abstract

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo


Table Of Contents

About

roshni + vim -> light + vim (roshni means light in hindi/urdu)
logo-style -> rosh(n)i(vim)

roshnivim, can be called neovim's distro, is a predefined configs so that you don't need 1000hr to setup neovim as an IDE.


screenshot_welcome

Features

  • Project based config loading ( you can define configs in .__nvim__.lua file in the root of your working project so that you don't have to change config everytime you work on new/seperate project )
  • Your own custom configs and Mappings (if you don't like roshnivim's default config/mapping, you can change/override it on override_defalut.lua OR ~/.__nvim__.lua file )
  • Separate config file for each plugins each plugin has their own config file which is defined in lua/plugins directory
  • Easily Disable plugin roshnivim's using packer as plugin manager. conmmenting out config option from plugin options in packer config file will disable that plugin
  • Easy Installation install roshnivim with single command

Getting Started

roshnivim can be installed by just runing a script.

Prerequisites

  • neovim v0.7

Installation

single command to install roshnivim

python <(curl -s https://raw.githubusercontent.com/shaeinst/roshnivim/main/setup.py)

or if you want to install it by cloning

git clone https://github.com/shaeinst/roshnivim
cd roshnivim
python setup.py

pass --delete 1 as an argument if you don't want to keep .git, README.md, LICENSE and setup.py file. Example:

python <(curl -s https://raw.githubusercontent.com/shaeinst/roshnivim/main/setup.py) --delete 1

NOTE1: it could take some time depending on you connection (it's going to install plugins and some LSs).
So, be patient and follow the output throw by setup.py script

NOTE2: only some LSs are going to be installed. for more, install with LspInstall
for example: to install C/C++'s LS :LspInstall clangd

Usage

every one has their own favourite configs and keybindings. roshnivim try its best to provide likable configs and mapping.
so in case you don't like to use mapping or configs by roshnivim, you can change it in override_defalut.lua file.

Project Stracture

├── extra/
│   └── snippets/                  / custom defined snippets
│   ...
├── init.lua                       / load/source configs | heart of roshnivim
├── lua/
│   ├── configs.lua                / configs that's don't depends on plugins
│   ├── mappings.lua               / mappings that don't depends on plugins
│   ├── packer_nvim.lua            / manage plugins
│   ├── customs/
│   │   ├── override_defalut.lua   / configs to override defined config
│   │   └── roshniline.lua         / i am working on it. btw it's a status line
│   └── plugins/                   / dir containing configs for plugins. each plugin has it's own config and can be locaed through init.lua file
│   ...
├── plugin/                        / auto-created by plugin manager
└── setup.py                       / python-script to install/update roshnivim

Mappings

you can change Leader key in init.lua file

Keys Functions
; leader key
<leader>M show all mappings (it will show mapping in telescope)
<C-p> Find files from current file's project
<C-f> show all files from current working directory
\\ Launch Telescope without any argument
<Leader>q close buffer
<C-s> save file
<C-h> scroll window horizontally (left)
<C-l> scroll window horizontally (right)
// clear Search Results
<M-q> (M=Alt) on[ly] close all other windows but leave all buffers open.
K move selected line(s) up
J move selected line(s) down

License

Distributed under the MIT License.

Screenshots

screenshot_lua screenshot_pythonlsp screenshot_running_c screenshot_telescode screenshot_lua screenshot_codeaction

To-Do

  • installer(setup.py) support for Windows OS
  • write a decent documentation

Known Bugs

  • there is no known bugs yet. Please open the issue if you find one.

Thanks to

  • Neovim -- for awesome EDITOR
  • shaankhan -- for readme
  • Neovim-Subreddit -- for awesome supporting community
  • LunarVim -- for some reference
  • Plugin Authors -- without you, neovim is incomplete
  • and YOU