An open API service indexing awesome lists of open source software.

https://github.com/travel-cli/hikko

Convenient and stable configuration for Neovim with a convenient manager for plugins, which I have been using for quite a long time. The configuration is suitable for those who write in Python, Rust, Javascript, Vue / React
https://github.com/travel-cli/hikko

config javascript linux lua mac neovim python rust typescript vim

Last synced: 7 months ago
JSON representation

Convenient and stable configuration for Neovim with a convenient manager for plugins, which I have been using for quite a long time. The configuration is suitable for those who write in Python, Rust, Javascript, Vue / React

Awesome Lists containing this project

README

          


Logo


Neovim Badge


Universal neovim configuration for JavaScript, Python, TypeScript and Rust.


> **Hikikomori** (Japanese: ひきこもり or 引きこもり, lit. "pulling inward, being confined"), also known as acute social withdrawal, is total withdrawal from society and seeking extreme degrees of social isolation and confinement. Hikikomori refers to both the phenomenon in general and the recluses themselves. Hikikomori have been described as loners or "modern-day hermits". Estimates suggest that half a million Japanese youths have become social recluses, as well as more than half a million middle-aged individuals.
>
> [Wikipedia](https://en.wikipedia.org/wiki/Hikikomori)

## Features
- Automatic installation of package manager (`packer`)
- Automatic installation of lsp for:
- Python
- Rust
- TypeScript
- Vue
- Eslint
- Prettier
- JavaScript
- Lua
- Neovim Lua
- Minimal UI overdrive
- No remapped standard hotkeys
- Smart formatting (via formatters or with standard method)
- No default plugins (like NetRW) and other shit
- Module installer


image

## Installation
```bash

# Exporting default nvim folder
export NVIM_DIR="$HOME/.config/nvim";

# Making backup of your old configuration
[[ -d $NVIM_DIR ]] && mv NVIM_DIR "NVIM_DIR-old";

# Cloning new config
git clone https://github.com/crackidocky/hikko\
$HOME/.config/nvim;

# Downloading packer (plugin manager)
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
```

After you enter the Neovim, just enter:
```vim
:PackerSync
```

## Supported Languages








# How does plugin manager works
In directory `lua/plugins/`, you have a lot of files inside which are configurations for plugins. At the end of each file, we return a function, that takes a `use` callback. `use` is a special function provided by [packer](https://github.com/wbthomason/packer.nvim) in order to use the plugin.

If we go to directory `lua/utils/`, then we will see a file called `installer.lua`, in which each file from directory `lua/plugins/` is imported. In the `installer.lua` file, we declare an empty hash table, and also indicate that it will have a certain `M.use` field, which is equal to `nil` for now. Each property inside `M` is a function that will expose the code we need, but for now we don't have a `use` callback.

Now if we go to the `lua/manager.lua` file, we will see that we are using the standard boilerplate for the packer - we are declaring a function inside which `use` will finally become available to us.

We assign `use` to the `M.use` field, and then we start calling the properties we need from the `M` table, which will later expand into the code that is needed to declare to Packer that the plugin is used.