18 Commits
1.4.0 ... 2.0.0

Author SHA1 Message Date
3c21e12bf3 from packer to lazy 2025-12-17 21:32:34 +07:00
40aee7d3ce sudo apt install -y curl zip 2025-08-19 20:59:42 +07:00
f50ddf9d15 set_color blue 2025-08-19 20:55:57 +07:00
2f22ec02d1 commented "yadm" 2025-05-28 04:01:40 +00:00
8f17023d85 "exit" instead if "return" and fixed path 2025-05-28 03:48:03 +00:00
f27c3d3299 dap, xdebug, flexoki colorscheme, trouble fix, lualine fix 2025-05-12 13:18:49 +03:00
631d0e6740 replacement 2025-04-10 18:05:37 +07:00
78c199a91e will be replaced 2025-04-10 18:05:19 +07:00
8ea6633095 replacement 2025-04-10 17:36:00 +07:00
1ba7f35e4b will be replaced 2025-04-10 17:34:27 +07:00
327aa3043b for -> with 2025-04-10 17:34:05 +07:00
a899b1450b added instruction and screenshots 2025-04-10 17:32:49 +07:00
83eb92da3b Загрузить файлы в «examples» 2025-04-10 17:18:33 +07:00
3185d2ced9 resolved #2, resolved #3, resolved #4, resolved #5, resolved #6, resolved #8 2025-04-10 13:12:57 +03:00
cc0fca8a31 python pip fix 2025-03-07 06:32:34 +03:00
fcd225fdba Neotree toggle 2025-02-13 10:39:38 +07:00
e4ba2aef2e rubygems and npm 2025-02-13 10:28:13 +07:00
76e759677c Обновить install.sh 2025-02-13 10:25:29 +07:00
43 changed files with 972 additions and 547 deletions

View File

@@ -1,3 +1,26 @@
# nvim
# NVIM by MIRZAEV
My settings, keymaps and plugins for NeoVim 😼<br>
<small><i>The installer only works with [fish](https://fishshell.com/) and [ubuntu](https://ubuntu.com/)</i></small>
My settings, keymaps and plugins for NeoVim
# Install
### Send these commands
1. `cd ~/.config`
2. `git clone https://git.svoboda.works/mirzaev/nvim`
3. `cd nvim`
4. `./install.sh -u`
### Open nvim and then
1. `:PackerSync`
2. `:PackerSync` (yeah, again)
3. `:TSInstall fish php html css javascript` (add your languages here)
4. `:COQdeps`
<small><b>Have fun!</b></small>
# Installer screenshots
![help.png](/examples/help.png)
![help.png](/examples/process.png)
# NVIM screenshots
later

BIN
examples/help.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
examples/process.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -1,12 +1,15 @@
-- Настройки
-- Settings
require('settings/system')
require('settings/tabs')
require('settings/panels')
require('settings/search')
-- Плагины
require('plugins/packer')
-- Plugins
require("settings/lazy")
-- Комбинации клавиш
-- Keymaps
require('keymaps/system')
require('keymaps/plugins')
-- Autocommands
require('autocommands')

View File

@@ -4,6 +4,11 @@
set -l options (fish_opt -s v -l verbose)
set options $options (fish_opt -s f -l force)
set options $options (fish_opt -s u -l update)
set options $options (fish_opt -s h -l help)
# Initializing settings
set NODEJS_VERSION 23
set NVIM_WIKI_INSTALLATION "https://github.com/neovim/neovim/wiki/Installing-Neovim/921fe8c40c34dd1f3fb35d5b48c484db1b8ae94b"
# Reading the flags
argparse $options -- $argv
@@ -11,25 +16,15 @@ argparse $options -- $argv
# Initializing the buffer of output
set -l output (if set -q _flag_verbose; echo '/dev/tty'; else; echo '/dev/null'; end)
if set -q _flag_update
begin
# need to rewrite in future (бляяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя)
sudo apt install -y npm python3.10-venv ruby-dev pkg-config
python3 -m pip install --upgrade pip
fish_add_path ~/.local/bin
pip3 install --upgrade pynvim
sudo gem install neovim
# Install NeoVim module for NPM
sudo npm i -g neovim
end &> $output
end
# Инициализация текста сообщений в зависимости от установленного языка в оболочке
if test (string match -ri "ru" "$LANG")
function print -a TYPE PARAM1 PARAM2 -d "Текст сообщений"
switch $TYPE
case PACKER_INSTALL
function print -a TYPE PARAM1 PARAM2 -d "Текст сообщений"
switch $TYPE
case HELP
set_color -b red yellow; echo -n "[mirzaev/nvim] "; set_color brcyan; echo -n "[ИНФОРМАЦИЯ] "; set_color -o white; echo "Формат: install.sh [флаги]"; echo; set_color normal; set_color yellow; echo -n " -u "; set_color cyan; echo -n "--update "; set_color -d white; echo "Обновить все зависимости"; set_color normal; set_color yellow; echo -n " -f "; set_color cyan; echo -n "--force "; set_color -d white; echo "Не просить подтверждения"; set_color normal; set_color yellow; echo -n " -v "; set_color cyan; echo -n "--verbose "; set_color -d white; echo "Подключить TTY к буферу вывода"; set_color normal; set_color yellow; echo -n " -h "; set_color cyan; echo -n "--help "; set_color -d white; echo "Прислать это сообщение"; echo; set_color normal; set_color white; echo -n "Этот установщик работает только для "; set_color yellow; echo -n "fish "; set_color white; echo -n "и "; set_color red; echo -n "ubuntu";
case NVIM_NOT_INSTALLED
set_color yellow; echo -n "[mirzaev/nvim] "; set_color red; echo -n "[ОШИБКА] "; set_color white; echo "NeoVim не установлен";
case PACKER_INSTALL
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[ЗАДАЧА] "; set_color white; echo "Установить Packer? (\"wbthomason/packer.nvim\") (y/N) ";
case PACKER_EXISTS
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[ЗАДАЧА] "; set_color white; echo "Packer уже установлен. Переустановить? (y/N) ";
@@ -67,6 +62,10 @@ if test (string match -ri "ru" "$LANG")
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[ЗАДАЧА] "; set_color white; echo "Установить форматировщик Prettier? (\"prettier/vim-prettier\") (y/N) ";
case FORMATTER_PRETTIER_INSTALLED
set_color yellow; echo -n "[mirzaev/nvim] "; set_color green; echo -n "[РАБОТА] "; set_color white; echo "Установлен форматировщик Prettier (\"prettier/vim-prettier\")";
case PHP_DEBUG_ADAPTER_INSTALL
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[ЗАДАЧА] "; set_color white; echo "Установить адаптер для отладки PHP? (\"xdebug/vscode-php-debug\") (y/N) ";
case PHP_DEBUG_ADAPTER_INSTALLED
set_color yellow; echo -n "[mirzaev/nvim] "; set_color green; echo -n "[РАБОТА] "; set_color white; echo "Установлен адаптер для отладки PHP (\"xdebug/vscode-php-debug\")";
case FONT_INSTALL
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[ЗАДАЧА] "; set_color white; echo "Установить шрифт "(set_color cyan)"FiraCode"(set_color white)"? (y/N) ";
case FONT_INSTALLED
@@ -83,7 +82,11 @@ if test (string match -ri "ru" "$LANG")
end
else
function print -a TYPE PARAM1 PARAM2 -d "Messages text"
switch $TYPE
switch $TYPE
case HELP
set_color yellow; echo -n "[mirzaev/nvim] "; set_color brcyan; echo -n "[INFORMATION] "; set_color -o white; echo "Format: install.sh [flags]"; echo; set_color normal; set_color yellow; echo -n " -u "; set_color cyan; echo -n "--update "; set_color -d white; echo "Update all dependencies"; set_color normal; set_color yellow; echo -n " -f "; set_color cyan; echo -n "--force "; set_color -d white; echo "Do not ask for confirmations"; set_color normal; set_color yellow; echo -n " -v "; set_color cyan; echo -n "--verbose "; set_color -d white; echo "Connect TTY to the output buffer"; set_color normal; set_color yellow; echo -n " -h "; set_color cyan; echo -n "--help "; set_color -d white; echo "Send this message"; set_color normal; set_color white; echo; echo -n "This installer only works with "; set_color yellow; echo -n "fish "; set_color white; echo -n "and "; set_color red; echo "ubuntu";
case NVIM_NOT_INSTALLED
set_color yellow; echo -n "[mirzaev/nvim] "; set_color red; echo -n "[ERROR] "; set_color white; echo "NeoVim is not installed";
case PACKER_INSTALL
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[TASK] "; set_color white; echo "Install Packer? (\"wbthomason/packer.nvim\") (y/N) ";
case PACKER_EXISTS
@@ -105,7 +108,7 @@ else
case LSP_CSSMODULES_INSTALL
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[TASK] "; set_color white; echo "Install the LSP-server for CSS (formatter)? (\"antonk52/cssmodules-language-server\") (y/N) ";
case LSP_CSSMODULES_INSTALLED
set_color yellow; echo -n "[mirzaev/nvim] "; set_color green; echo -n "[WORK] "; set_color white; echo "Install the LSP-server for CSS (formatter) (\"antonk52/cssmodules-language-server\")";
set_color yellow; echo -n "[mirzaev/nvim] "; set_color green; echo -n "[WORK] "; set_color white; echo "Installed the LSP-server for CSS (formatter) (\"antonk52/cssmodules-language-server\")";
case LSP_DENO_INSTALL
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[TASK] "; set_color white; echo "Install the LSP-server for JavaScript and PostScript? (\"denoland/deno\") (y/N) ";
case LSP_DENO_INSTALLED
@@ -122,6 +125,10 @@ else
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[TASK] "; set_color white; echo "Install the formatter Prettier? (\"prettier/vim-prettier\") (y/N) ";
case FORMATTER_PRETTIER_INSTALLED
set_color yellow; echo -n "[mirzaev/nvim] "; set_color green; echo -n "[WORK] "; set_color white; echo "Installed the formatter Prettier (\"prettier/vim-prettier\")";
case PHP_DEBUG_ADAPTER_INSTALL
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[TASK] "; set_color white; echo "Install the debug adapter for PHP? (\"xdebug/vscode-php-debug\") (y/N) ";
case PHP_DEBUG_ADAPTER_INSTALLED
set_color yellow; echo -n "[mirzaev/nvim] "; set_color green; echo -n "[WORK] "; set_color white; echo "Installed the debug-adapter for PHP (\"xdebug/vscode-php-debug\")";
case FONT_INSTALL
set_color yellow; echo -n "[mirzaev/nvim] "; set_color blue; echo -n "[TASK] "; set_color white; echo "Install "(set_color cyan)"FiraCode"(set_color white)" font? (y/N) ";
case FONT_INSTALLED
@@ -138,6 +145,52 @@ else
end
end
if set -q _flag_help
# Sending the message
print HELP
# Exit (success)
exit 0
end
if not type -q nvim
# Sending the message
print NVIM_NOT_INSTALLED
set_color blue
echo $NVIM_WIKI_INSTALLATION
# Exit (fail)
exit 1
end
if set -q _flag_update
begin
# Downloading and installing fnm (for NodeJS)
curl -o- https://fnm.vercel.app/install | bash
# Initializing fnm
source ~/.config/fish/conf.d/fnm.fish
# Installing dependencies
sudo apt install -y curl zip
# Downloadind and installing Node.js:
fnm install $NODEJS_VERSION
# need to rewrite in the future (бляяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя)
sudo apt install -y npm python3-venv python3-pip rubygems ruby-dev pkg-config
python3 -m pip install --upgrade pip
pip install --upgrade pynvim
sudo gem install neovim
# Install NeoVim module for NPM
npm i -g neovim
end &> $output
end
# Initializing the virtual environment for Python packages
python3 -m venv ~/.local --system-site-packages
if not set -q _flag_force
# Installation request
set RESPONSE (read -n 1 -p "print PACKER_INSTALL")
@@ -192,7 +245,7 @@ if set -q _flag_force; or test (string match -ri 'y' "$RESPONSE")
begin
# Установка
sudo npm i -g intelephense
npm i -g intelephense
end &> $output
print LSP_INTELEPHENSE_INSTALLED
@@ -209,7 +262,7 @@ if set -q _flag_force; or test (string match -ri 'y' "$RESPONSE")
begin
# Установка
sudo npm i -g vscode-langservers-extracted
npm i -g vscode-langservers-extracted
end &> $output
print LSP_VSCODE-LANGSERVERS_INSTALLED
@@ -226,7 +279,7 @@ if set -q _flag_force; or test (string match -ri 'y' "$RESPONSE")
begin
# Установка
sudo npm i -g emmet-ls
npm i -g emmet-ls
end &> $output
print LSP_EMMET_INSTALLED
@@ -243,7 +296,7 @@ if set -q _flag_force; or test (string match -ri 'y' "$RESPONSE")
begin
# Установка
sudo npm i -g cssmodules-language-server
npm i -g cssmodules-language-server
end &> $output
print LSP_CSSMODULES_INSTALLED
@@ -287,7 +340,7 @@ if set -q _flag_force; or test (string match -ri 'y' "$RESPONSE")
rm -rf lua-language-server
git clone https://github.com/LuaLS/lua-language-server
cd lua-language-server
fish ./make.sh
bash ./make.sh
fish_add_path $HOME/lua-language-server/bin
end &> $output
@@ -305,7 +358,7 @@ if set -q _flag_force; or test (string match -ri 'y' "$RESPONSE")
begin
# Установка
sudo npm i -g nginxbeautifier
npm i -g nginxbeautifier
end &> $output
print FORMATTER_NGINX_INSTALLED
@@ -322,12 +375,31 @@ if set -q _flag_force; or test (string match -ri 'y' "$RESPONSE")
begin
npm i prettier
sudo npm i -g prettier
npm i -g prettier
end &> $output
print FORMATTER_PRETTIER_INSTALLED
end
if not set -q _flag_force
# Installation request
set RESPONSE (read -n 1 -p "print PHP_DEBUG_ADAPTER_INSTALL")
bind -e y
end
if set -q _flag_force; or test (string match -ri 'y' "$RESPONSE")
# Accepted installation of "xdebug/vscode-php-debug"
begin
cd ~/
git clone https://github.com/xdebug/vscode-php-debug.git
cd vscode-php-debug
npm install && npm run build
end &> $output
print PHP_DEBUG_ADAPTER_INSTALLED
end
print FONTS
if not set -q _flag_force
@@ -345,6 +417,7 @@ if set -q _flag_force; or test (string match -ri 'y' "$RESPONSE")
wget "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/FiraCode.zip"
unzip -o FiraCode.zip
rm FiraCode.zip
sudo apt install fontconfig
fc-cache -f -v
end &> $output

41
lazy-lock.json Normal file
View File

@@ -0,0 +1,41 @@
{
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"coq.artifacts": { "branch": "artifacts", "commit": "ef5f21d638ccc456cfa5b8d0ab37093cefe48c8b" },
"coq.thirdparty": { "branch": "3p", "commit": "2bd969a2bcd2624f9c260b1000957c7e665e308e" },
"coq_nvim": { "branch": "coq", "commit": "d8b71757358038fa151fb45c493c3a1e8c3629a3" },
"diaglist.nvim": { "branch": "master", "commit": "8aba9fcf62cc60e1d5ce941faedecc399d9a1e8b" },
"fidget.nvim": { "branch": "main", "commit": "e32b672d8fd343f9d6a76944fedb8c61d7d8111a" },
"flexoki": { "branch": "main", "commit": "079554c242a86be5d1a95598c7c6368d6eedd7a3" },
"gitsigns.nvim": { "branch": "main", "commit": "5813e4878748805f1518cee7abb50fd7205a3a48" },
"jsctags": { "branch": "master", "commit": "22d3fb848c429d4704dc3a8946bc3a4423a8e4a4" },
"kommentary": { "branch": "main", "commit": "d5a111a3bc4109a8f913a5863c9092b3b3801482" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lsp-colors.nvim": { "branch": "main", "commit": "2bbe7541747fd339bdd8923fc45631a09bb4f1e5" },
"lspkind-nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" },
"lualine-lsp-progress": { "branch": "master", "commit": "56842d097245a08d77912edf5f2a69ba29f275d7" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"lush.nvim": { "branch": "main", "commit": "9c60ec2279d62487d942ce095e49006af28eed6e" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" },
"nginx.vim": { "branch": "master", "commit": "cffaec54f0c7f9518de053634413a20e90eac825" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "d9e44e54384e5b0f3536339c65484f2e41b528e3" },
"nvim-dap": { "branch": "master", "commit": "5860c7c501eb428d3137ee22c522828d20cca0b3" },
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
"nvim-lint": { "branch": "master", "commit": "c47b71d146a0b638f46672e6704c322369385df6" },
"nvim-lspconfig": { "branch": "master", "commit": "0d7d33e40f0c27f57cb29654ed78cab17d705e68" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-treesitter": { "branch": "main", "commit": "d0bf5ff2b00939eab39c6572aec7cf232f843b1f" },
"nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" },
"phpctags": { "branch": "master", "commit": "5ed731eb86227d416977b0a1fd06e77e58363818" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"reticle.nvim": { "branch": "main", "commit": "66bfa2b1c28fd71bb8ae4e871e0cd9e9c509ea86" },
"tagbar": { "branch": "master", "commit": "7bfffca1f121afb7a9e38747500bf5270e006bb1" },
"telescope-dap.nvim": { "branch": "master", "commit": "783366bd6c1e7fa0a5c59c07db37f49c805a28df" },
"telescope.nvim": { "branch": "master", "commit": "e69b434b968a33815e2f02a5c7bd7b8dd4c7d4b2" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"vim-fish": { "branch": "master", "commit": "50b95cbbcd09c046121367d49039710e9dc9c15f" },
"vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" },
"vim-signify": { "branch": "master", "commit": "9ec7989ef5f92c5073de26abb46fc6a998b75ef8" },
"vim-test": { "branch": "master", "commit": "1eeb12774a0f251571700ccf68da27789b2f0852" }
}

10
lua/autocommands.lua Normal file
View File

@@ -0,0 +1,10 @@
vim.api.nvim_create_autocmd({'BufEnter','BufAdd','BufNew','BufNewFile','BufWinEnter'}, {
group = vim.api.nvim_create_augroup('TS_FOLD_WORKAROUND', {}),
callback = function()
-- Folding code method
-- vim.opt.foldmethod = 'expr'
-- Expression for folding code
-- vim.opt.foldexpr = 'nvim_treesitter#foldexpr()'
end
})

View File

@@ -1,10 +1,10 @@
--[[ nvim-neo-tree/neo-tree ]]
-- Открыть интерфейс с древовидным отображением файлов
vim.keymap.set({ 'n', 'i', 'v', 't' }, '<f1>', '<cmd>NeoTreeRevealToggle<cr>', { noremap = true })
vim.keymap.set({ 'n', 'i', 'v', 't' }, '<f1>', '<cmd>Neotree toggle<cr>', { noremap = true })
-- [[ folke/trouble.nvim ]]
vim.keymap.set({ 'n', 'i', 'v', 't' }, '<f2>', '<cmd>TroubleToggle<cr>', { noremap = true })
vim.keymap.set({ 'n', 'i', 'v', 't' }, '<f2>', '<cmd>Trouble diagnostics toggle focus=false filter.buf=0<cr>', { noremap = true })
--[[ onsails/diaglist.nvim ]]
@@ -62,7 +62,7 @@ vim.keymap.set({ 'n', 'v', 't' }, 'F', function()
else
-- LSP-server clients not found
vim.api.nvim_exec('PrettierAsync', false)
-- vim.api.nvim_exec('PrettierAsync', false)
end
end,
{ noremap = true, silent = true, buffer = bufnr })
@@ -123,6 +123,32 @@ vim.keymap.set('n', '<leader>fb', builtin.buffers, { noremap = true, silent = tr
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { noremap = true, silent = true })
--[[ mfussenegger/nvim-dap ]]
vim.keymap.set('n', '<F5>', function() require('dap').continue() end)
vim.keymap.set('n', '<F10>', function() require('dap').step_over() end)
vim.keymap.set('n', '<F11>', function() require('dap').step_into() end)
vim.keymap.set('n', '<F12>', function() require('dap').step_out() end)
vim.keymap.set('n', '<Leader>b', function() require('dap').toggle_breakpoint() end)
vim.keymap.set('n', '<Leader>B', function() require('dap').set_breakpoint() end)
vim.keymap.set('n', '<Leader>lp', function() require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end)
vim.keymap.set('n', '<Leader>dr', function() require('dap').repl.open() end)
vim.keymap.set('n', '<Leader>dl', function() require('dap').run_last() end)
vim.keymap.set({'n', 'v'}, '<Leader>dh', function()
require('dap.ui.widgets').hover()
end)
vim.keymap.set({'n', 'v'}, '<Leader>dp', function()
require('dap.ui.widgets').preview()
end)
vim.keymap.set('n', '<Leader>df', function()
local widgets = require('dap.ui.widgets')
widgets.centered_float(widgets.frames)
end)
vim.keymap.set('n', '<Leader>ds', function()
local widgets = require('dap.ui.widgets')
widgets.centered_float(widgets.scopes)
end)
--[[ windwp/nvim-autopairs ]]
-- Переназначение стандартных сочетаний клавиш для "ms-jpq/coq_nvim"
--vim.keymap.set('i', '<esc>', [[pumvisible() ? "<c-e><esc>" : "<esc>"]], {expr = true, noremap = true})

View File

@@ -1,4 +1,12 @@
require('nvim-autopairs').setup({
map_bs = false,
map_cr = false
})
-- A super powerful autopair plugin for Neovim that supports multiple characters
return {
'windwp/nvim-autopairs',
enabled = true,
lazy = true,
event = 'InsertEnter',
opts = {
-- map_bs = false,
-- map_cr = false
},
config = true
}

View File

@@ -1,2 +1,67 @@
require('bufferline').setup({
})
-- A snazzy 💅 buffer line (with tabpage integration) for Neovim built using lua
return {
'akinsho/bufferline.nvim',
enabled = true,
lazy = false,
priority = 40,
version = '*',
dependencies = {
--
{ 'nvim-tree/nvim-web-devicons' }
},
opts = {
options = {
themable = true,
numbers = 'buffer_id',
-- close_command = 'bdelete! %d',
-- right_mouse_command = 'bdelete! %d',
-- left_mouse_command = 'buffer %d',
-- middle_mouse_command = nil,
indicator = {
icon = '',
style = 'icon',
},
max_name_length = 24,
max_prefix_length = 18,
truncate_names = true,
tab_size = 18,
diagnostics = 'nvim_lsp',
offsets = {
{
filetype = 'NvimTree',
text = 'File Explorer',
text_align = 'left',
separator = true
}
},
color_icons = true,
show_buffer_icons = true,
show_buffer_close_icons = true,
show_close_icon = true,
show_tab_indicators = true,
show_duplicate_prefix = true,
duplicates_across_groups = true,
persist_buffer_sort = true,
move_wraps_at_ends = false,
-- separator_style = 'slant' | 'slope' | 'thick' | 'thin' | { 'any', 'any' },
separator_style = 'thin',
enforce_regular_tabs = false,
always_show_bufferline = true,
auto_toggle_bufferline = true,
hover = {
enabled = true,
delay = 200,
reveal = {'close'}
},
--[[ sort_by = 'insert_after_current' |'insert_at_end' | 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
local modified_a = vim.fn.getftime(buffer_a.path)
local modified_b = vim.fn.getftime(buffer_b.path)
return modified_a > modified_b
end, ]]
sort_by = 'insert_after_current',
pick = {
alphabet = 'abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ1234567890',
}
}
}
}

View File

@@ -1,4 +1,49 @@
-- Настройка "ms-jpq/coq_nvim"
vim.g.coq_settings = {
auto_start = 'shut-up'
-- Fast as FUCK nvim completion
return {
'ms-jpq/coq_nvim',
enabled = true,
lazy = false,
branch = 'coq',
dependencies = {
-- Quickstart configs for Nvim LSP
{ 'neovim/nvim-lspconfig' },
-- 9000+ Snippets
{ 'ms-jpq/coq.artifacts', branch = 'artifacts' },
-- Lua & third party sources. Need to **configure separately**
{ 'ms-jpq/coq.thirdparty', branch = '3p' }
},
config = function()
vim.g.coq_settings = {
auto_start = 'shut-up',
}
end,
}
--
--[[ {
'neovim/nvim-lspconfig',
lazy = false,
dependencies = {
-- Fast as FUCK nvim completion
{ 'ms-jpq/coq_nvim', branch = 'coq' },
-- 9000+ Snippets
{ 'ms-jpq/coq.artifacts', branch = 'artifacts' },
-- Lua & third party sources. Need to **configure separately**
{ 'ms-jpq/coq.thirdparty', branch = '3p' }
},
init = function()
vim.g.coq_settings = {
auto_start = 'shut-up',
-- Your COQ settings here
}
end,
config = function()
-- Your LSP settings here
end,
} ]]

13
lua/plugins/dap-text.lua Normal file
View File

@@ -0,0 +1,13 @@
-- Virtual text support to nvim-dap
return {
'theHamsta/nvim-dap-virtual-text',
enabled = true,
lazy = true,
dependencies = {
-- Debug Adapter Protocol client implementation for Neovim
{ 'mfussenegger/nvim-dap' },
-- Nvim Treesitter configurations and abstraction layer
{ 'nvim-treesitter/nvim-treesitter' }
}
}

32
lua/plugins/dap-ui.lua Normal file
View File

@@ -0,0 +1,32 @@
-- A UI for nvim-dap
return {
'rcarriga/nvim-dap-ui',
enabled = true,
lazy = true,
dependencies = {
-- Debug Adapter Protocol client implementation for Neovim
'mfussenegger/nvim-dap',
-- A library for asynchronous IO in Neovim
'nvim-neotest/nvim-nio'
},
config = function()
local dap, dapui = require('dap'), require('dapui')
dap.listeners.before.attach.dapui_config = function()
dapui.open()
end
dap.listeners.before.launch.dapui_config = function()
dapui.open()
end
dap.listeners.before.event_terminated.dapui_config = function()
dapui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
dapui.close()
end
end
}

View File

@@ -1,2 +1,29 @@
require('dap').configurations.cpp = {
-- Debug Adapter Protocol client implementation for Neovim
return {
'mfussenegger/nvim-dap',
enabled = true,
lazy = true,
config = function()
local dap = require('dap')
-- Installing debuggers for C, Rust and C++
dap.configurations.cpp = {}
-- Initializing PHP debugger adapter
dap.adapters.php = {
type = 'executable',
command = 'node',
args = { os.getenv('HOME') .. '/vscode-php-debug/out/phpDebug.js' }
}
-- Installing PHP debugger
dap.configurations.php = {
{
type = 'php',
request = 'launch',
name = 'Listen for Xdebug',
port = 9003
}
}
end
}

View File

@@ -1,7 +1,11 @@
require('diaglist').init({
-- below are defaults
debug = false,
-- increase for noisy servers
debounce_ms = 150,
})
-- Live render workspace diagnostics in quickfix with
-- current buf errors on top, buffer diagnostics in loclist
return {
'onsails/diaglist.nvim',
enabled = true,
lazy = true,
opts = {
debug = false,
debounce_ms = 150
}
}

View File

@@ -0,0 +1,7 @@
--[[ -- Форматировщик Prettier
use {
'prettier/vim-prettier',
branch = 'master',
-- run = 'sudo npm i -g',
run = 'yarn install --frozen-lockfile --production'
} ]]

View File

@@ -1,95 +1,7 @@
require('fidget').setup({
-- Options related to LSP progress subsystem
progress = {
poll_rate = 0, -- How and when to poll for progress messages
suppress_on_insert = false, -- Suppress new messages while in insert mode
ignore_done_already = false, -- Ignore new tasks that are already complete
ignore_empty_message = false, -- Ignore new tasks that don't contain a message
clear_on_detach = -- Clear notification group when LSP server detaches
function(client_id)
local client = vim.lsp.get_client_by_id(client_id)
return client and client.name or nil
end,
notification_group = -- How to get a progress message's notification group key
function(msg) return msg.lsp_client.name end,
ignore = {}, -- List of LSP servers to ignore
-- Options related to how LSP progress messages are displayed as notifications
display = {
render_limit = 16, -- How many LSP messages to show at once
done_ttl = 3, -- How long a message should persist after completion
done_icon = "", -- Icon shown when all LSP progress tasks are complete
done_style = "Constant", -- Highlight group for completed LSP tasks
progress_ttl = math.huge, -- How long a message should persist when in progress
progress_icon = -- Icon shown when LSP progress tasks are in progress
{ pattern = "dots", period = 1 },
progress_style = -- Highlight group for in-progress LSP tasks
"WarningMsg",
group_style = "Title", -- Highlight group for group name (LSP server name)
icon_style = "Question", -- Highlight group for group icons
priority = 30, -- Ordering priority for LSP notification group
skip_history = true, -- Whether progress notifications should be omitted from history
format_message = -- How to format a progress message
require("fidget.progress.display").default_format_message,
format_annote = -- How to format a progress annotation
function(msg) return msg.title end,
format_group_name = -- How to format a progress notification group's name
function(group) return tostring(group) end,
overrides = { -- Override options from the default notification config
rust_analyzer = { name = "rust-analyzer" },
},
},
-- Options related to Neovim's built-in LSP client
lsp = {
progress_ringbuf_size = 0, -- Configure the nvim's LSP progress ring buffer size
},
},
-- Options related to notification subsystem
notification = {
poll_rate = 10, -- How frequently to update and render notifications
filter = vim.log.levels.INFO, -- Minimum notifications level
history_size = 128, -- Number of removed messages to retain in history
override_vim_notify = false, -- Automatically override vim.notify() with Fidget
configs = -- How to configure notification groups when instantiated
{ default = require("fidget.notification").default_config },
redirect = -- Conditionally redirect notifications to another backend
function(msg, level, opts)
if opts and opts.on_open then
return require("fidget.integration.nvim-notify").delegate(msg, level, opts)
end
end,
-- Options related to how notifications are rendered as text
view = {
stack_upwards = true, -- Display notification items from bottom to top
icon_separator = " ", -- Separator between group name and icon
group_separator = "---", -- Separator between notification groups
group_separator_hl = -- Highlight group used for group separator
"Comment",
},
-- Options related to the notification window and buffer
window = {
normal_hl = "Comment", -- Base highlight group in the notification window
winblend = 100, -- Background color opacity in the notification window
border = "none", -- Border around the notification window
zindex = 45, -- Stacking priority of the notification window
max_width = 0, -- Maximum width of the notification window
max_height = 0, -- Maximum height of the notification window
x_padding = 1, -- Padding from right edge of window boundary
y_padding = 0, -- Padding from bottom edge of window boundary
align = "bottom", -- How to align the notification window
relative = "editor", -- What the notification window position is relative to
},
},
-- Options related to integrating with other plugins
integration = {
["nvim-tree"] = {
enable = true, -- Integrate with nvim-tree/nvim-tree.lua (if installed)
},
},
-- Options related to logging
logger = {
level = vim.log.levels.WARN, -- Minimum logging level
float_precision = 0.01, -- Limit the number of decimals displayed for floats
path = -- Where Fidget writes its logs to
string.format("%s/fidget.nvim.log", vim.fn.stdpath("cache")),
}
})
-- 💫 Extensible UI for Neovim notifications and LSP progress messages
return {
'j-hui/fidget.nvim',
enabled = true,
lazy = true,
opts = {}
}

84
lua/plugins/flexoki.lua Normal file
View File

@@ -0,0 +1,84 @@
-- Inky color scheme
-- todo навести порядок
return {
'nuvic/flexoki-nvim',
enabled = true,
lazy = false,
priority = 100,
name = 'flexoki',
opts = {
variant = 'auto', -- auto, moon, or dawn
dim_inactive_windows = false,
extend_background_behind_borders = true,
enable = {
terminal = true,
},
styles = {
bold = true,
italic = false,
},
groups = {
border = 'muted',
link = 'purple_two',
panel = 'surface',
error = 'red_one',
hint = 'purple_one',
info = 'cyan_one',
ok = 'green_one',
warn = 'orange_one',
note = 'blue_one',
todo = 'magenta_one',
git_add = 'green_one',
git_change = 'yellow_one',
git_delete = 'red_one',
git_dirty = 'yellow_one',
git_ignore = 'muted',
git_merge = 'purple_one',
git_rename = 'blue_one',
git_stage = 'purple_one',
git_text = 'magenta_one',
git_untracked = 'subtle',
h1 = 'purple_two',
h2 = 'cyan_two',
h3 = 'magenta_two',
h4 = 'orange_two',
h5 = 'blue_two',
h6 = 'cyan_two',
},
palette = {
-- Override the builtin palette per variant
-- moon = {
-- base = '#100f0f',
-- overlay = '#1c1b1a',
-- },
},
highlight_groups = {
-- Comment = { fg = 'subtle' },
-- VertSplit = { fg = 'muted', bg = 'muted' },
},
before_highlight = function(group, highlight, palette)
-- Disable all undercurls
-- if highlight.undercurl then
-- highlight.undercurl = false
-- end
--
-- Change palette colour
-- if highlight.fg == palette.blue_two then
-- highlight.fg = palette.cyan_two
-- end
end,
},
config = function()
-- Activating
vim.cmd('colorscheme flexoki')
end
}

View File

@@ -1,5 +1,11 @@
require('gitsigns').setup {
on_attach = gitsigns_on_attach,
-- Git integration for buffers
-- todo навести порядок
return {
'lewis6991/gitsigns.nvim',
enabled = true,
lazy = true,
opts = {
on_attach = gitsigns_on_attach,
signs = {
add = { text = '' },
change = { text = '' },
@@ -37,7 +43,9 @@ require('gitsigns').setup {
row = 0,
col = 1
},
yadm = {
--[[ yadm = {
enable = false
},
}, ]]
}
}

View File

@@ -0,0 +1,6 @@
-- Neovim commenting plugin, written in lua
return {
'b3nj5m1n/kommentary',
enabled = true,
lazy = true
}

View File

@@ -1,5 +1,14 @@
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
callback = function()
require('lint').try_lint()
end,
})
-- An asynchronous linter plugin for Neovim complementary
-- to the built-in Language Server Protocol support.
return {
'mfussenegger/nvim-lint',
enabled = true,
lazy = true,
config = function()
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
callback = function()
require('lint').try_lint()
end
})
end
}

View File

@@ -1,24 +1,48 @@
-- Инициализация "neovim/nvim-lspconfig"
local lspconfig = require('lspconfig')
-- Quickstart configs for Nvim LSP
return {
'neovim/nvim-lspconfig',
enabled = true,
lazy = false,
priority = 70,
dependencies = {
-- 🌈 Plugin that creates missing LSP diagnostics
-- highlight groups for color schemes that do not
-- yet support the Neovim 0.5 builtin LSP client
{ 'folke/lsp-colors.nvim' },
-- 9000+ Snippets
{ 'ms-jpq/coq.artifacts', branch = 'artifacts' },
-- Lua & third party sources. Need to **configure separately**
{ 'ms-jpq/coq.thirdparty', branch = '3p' }
},
config = function()
-- @todo навести порядок
-- Активация вещания готовых набросков
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
-- Инициализация "ms-jpq/coq_nvim"
-- Инициализация 'ms-jpq/coq_nvim'
local coq = require('coq')
-- Инициализация LSP-серверов
-- Инициализация "bmewburn/vscode-intelephense" (LSP-сервер для PHP)
lspconfig.intelephense.setup({
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
-- Инициализация 'bmewburn/vscode-intelephense' (LSP-сервер для PHP)
vim.lsp.config(
'intelephense',
{
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
}
)
vim.lsp.enable('intelephense')
-- Инициализация "hrsh7th/vscode-html-language-server" (LSP-сервер для HTML)
lspconfig.html.setup({
-- Инициализация 'hrsh7th/vscode-html-language-server' (LSP-сервер для HTML)
vim.lsp.config(
'html',
{
init_options = {
configurationSection = { 'html' },
embeddedLanguages = {
@@ -30,14 +54,18 @@ lspconfig.html.setup({
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
}
)
vim.lsp.enable('html')
-- Инициализация "aca/emmet-ls" (LSP-сервер для HTML)
lspconfig.emmet_ls.setup({
-- Инициализация 'aca/emmet-ls' (LSP-сервер для HTML)
vim.lsp.config(
'emmet_ls',
{
init_options = {
html = {
options = {
["bem.enabled"] = true,
['bem.enabled'] = true,
},
},
},
@@ -45,9 +73,12 @@ lspconfig.emmet_ls.setup({
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('emmet_ls')
-- Инициализация "hrsh7th/vscode-langservers-extracted" (LSP-сервер для CSS)
lspconfig.cssls.setup({
-- Инициализация 'hrsh7th/vscode-langservers-extracted' (LSP-сервер для CSS)
vim.lsp.config(
'cssls',
{
settings = {
css = {
validate = true
@@ -63,9 +94,12 @@ lspconfig.cssls.setup({
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('cssls')
-- Инициализация "antonk52/cssmodules-language-server" (LSP-сервер для JS, вспомогательный для CSS)
lspconfig.cssmodules_ls.setup({
-- Инициализация 'antonk52/cssmodules-language-server' (LSP-сервер для JS, вспомогательный для CSS)
vim.lsp.config(
'cssmodules_ls',
{
init_options = {
camelCase = false,
},
@@ -73,9 +107,12 @@ lspconfig.cssmodules_ls.setup({
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('cssmodules_ls')
-- Инициализация "denoland/deno" (LSP-сервер для JavaScript и PostScript)
lspconfig.denols.setup({
-- Инициализация 'denoland/deno' (LSP-сервер для JavaScript и PostScript)
vim.lsp.config(
'denols',
{
init_options = {
enable = true,
unstable = false
@@ -84,16 +121,20 @@ lspconfig.denols.setup({
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('denols')
-- Инициализация "hrsh7th/vscode-langservers-extracted" (LSP-сервер для JSON)
lspconfig.jsonls.setup({
-- Инициализация 'hrsh7th/vscode-langservers-extracted' (LSP-сервер для JSON)
vim.lsp.config(
'jsonls',
{
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
vim.lsp.enable('jsonls')
-- Инициализация "luals/lua-language-server" (LSP-сервер для Lua)
lspconfig.lua_ls.setup({
-- Инициализация 'luals/lua-language-server' (LSP-сервер для Lua)
--[[ vim.lsp.config.lua_ls.setup({
settings = {
Lua = {
runtime = {
@@ -106,7 +147,7 @@ lspconfig.lua_ls.setup({
},
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file("", true),
library = vim.api.nvim_get_runtime_file('', true),
},
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {
@@ -116,5 +157,7 @@ lspconfig.lua_ls.setup({
},
on_attach = lspconfig_on_attach,
coq.lsp_ensure_capabilities(),
capabilities = capabilities
})
capabilities = capabilities
})]]
end,
}

View File

@@ -1,44 +1,10 @@
require('lspkind').init({
-- defines how annotations are shown
-- default: symbol
-- options: 'text', 'text_symbol', 'symbol_text', 'symbol'
mode = 'symbol_text',
-- default symbol map
-- can be either 'default' (requires nerd-fonts font) or
-- 'codicons' for codicon preset (requires vscode-codicons font)
--
-- default: 'default'
preset = 'codicons',
-- override preset symbols
--
-- default: {}
symbol_map = {
Text = "",
Method = "",
Function = "",
Constructor = "",
Field = "",
Variable = "",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "",
Enum = "",
Keyword = "",
Snippet = "",
Color = "",
File = "",
Reference = "",
Folder = "",
EnumMember = "",
Constant = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = ""
},
})
-- VSCodestyle pictograms for Neovim completion items
return {
'onsails/lspkind-nvim',
enabled = true,
lazy = true,
opts = {
mode = 'symbol',
preset = 'default',
}
}

View File

@@ -1,6 +1,23 @@
require('lualine').setup {
options = {
icons_enabled = true,
-- A blazing fast and easy to configure
-- neovim statusline plugin written in pure lua
-- @todo навести порядок
return {
'nvim-lualine/lualine.nvim',
enabled = true,
lazy = false,
priority = 80,
dependencies = {
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
{ 'nvim-tree/nvim-web-devicons' },
-- LSP Progress lualine componenet
{ 'arkav/lualine-lsp-progress' },
-- A Git wrapper so awesome, it should be illegal
{ 'tpope/vim-fugitive' }
},
opts = {
icons_enabled = true,
theme = 'auto',
component_separators = { left = '', right = ''},
section_separators = { left = '', right = ''},
@@ -10,17 +27,30 @@ require('lualine').setup {
},
ignore_focus = {},
always_divide_middle = true,
globalstatus = false,
always_show_tabline = true,
globalstatus = true,
refresh = {
statusline = 1000,
tabline = 1000,
winbar = 1000,
refresh_time = 16, -- ~60fps
events = {
'WinEnter',
'BufEnter',
'BufWritePost',
'SessionLoadPost',
'FileChangedShellPost',
'VimResized',
'Filetype',
'CursorMoved',
'CursorMovedI',
'ModeChanged',
},
}
},
sections = {
lualine_a = {
{
'mode',
'mode',
icons_enabled = true,
icon = nil,
separator = nil,
@@ -30,12 +60,11 @@ require('lualine').setup {
padding = 1,
fmt = nil,
on_click = nil,
}
},
},
lualine_b = {
'branch',
'diff',
{
'branch',
'diff',
{
'diagnostics',
sources = { 'coc' },
sections = { 'error', 'warn', 'info', 'hint' },
@@ -50,9 +79,10 @@ require('lualine').setup {
update_in_insert = false,
always_visible = false
}
},
},
lualine_c = {'filename', 'lsp_progress'},
lualine_x = {'encoding', 'fileformat', 'filetype'},
lualine_x = { FugitiveStatusline, 'encoding', 'fileformat', 'filetype'},
-- lualine_x = { FugitiveHead, 'encoding', 'fileformat', 'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'}
},
@@ -67,5 +97,9 @@ require('lualine').setup {
tabline = {},
winbar = {},
inactive_winbar = {},
extensions = {}
extensions = {
'lazy',
'nvim-dap-ui',
'trouble',
'neo-tree'}
}

View File

@@ -1,7 +1,9 @@
-- Инициализация плагина
local lush = require('lush')
-- Инициализация ссылки на палитру
local hsl = lush.hsl
-- Тема будет разработана позднее - не до неё сейчас
-- Create Neovim themes with real-time feedback, export anywhere
return {
'rktjmp/lush.nvim',
enabled = true,
lazy = false,
priority = 100,
-- if you wish to use your own colorscheme:
-- { dir = '/absolute/path/to/colorscheme', lazy = true },
}

View File

@@ -1,48 +1,27 @@
local highlights = require("neo-tree.ui.highlights")
require('neo-tree').setup({
filesystem = {
components = {
--[[
icon = function(config, node, state)
local icon = config.default or ' '
local padding = config.padding or ' '
local highlight = config.highlight or highlights.FILE_ICON
if node.type == 'directory' then
highlight = highlights.DIRECTORY_ICON
if node:is_expanded() then
icon = config.folder_open or '-'
else
icon = config.folder_closed or '+'
end
elseif node.type == 'file' then
local success, web_devicons = pcall(require, 'nvim-web-devicons')
if success then
local devicon, hl = web_devicons.get_icon(node.name, node.ext)
icon = devicon or icon
highlight = hl or highlight
end
end
return {
text = icon .. padding,
highlight = highlight
}
end
},
]]
window = {
mappings = {
['o'] = 'system_open'
},
},
commands = {
-- Открытие файла через программу по умолчанию в операционной системе
system_open = function(state)
vim.api.nvim_command(string.format('silent !xdg-open \'%s\'', state.tree:get_node():get_id()))
end,
}
}
}
})
-- Neovim plugin to manage the file system
-- and other tree like structures
return {
'nvim-neo-tree/neo-tree.nvim',
enabled = true,
lazy = false,
priority = 60,
branch = 'v3.x',
dependencies = {
-- Lua functions
{ 'nvim-lua/plenary.nvim' },
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
{ 'nvim-tree/nvim-web-devicons' },
-- UI Component Library for Neovim
{ 'MunifTanjim/nui.nvim' },
},
opts = {
close_if_last_window = true,
clipboard = {
sync = "global"
},
enable_git_status = true,
enable_diagnostics = true
}
}

6
lua/plugins/nginx.lua Normal file
View File

@@ -0,0 +1,6 @@
-- Improved nginx vim plugin (incl. syntax highlighting)
return {
'chr4/nginx.vim',
enabled = true,
lazy = true
}

View File

@@ -1,6 +1,13 @@
require('nvim-web-devicons').setup {
override = {},
color_icons = true,
default = true,
strict = true
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
return {
'nvim-tree/nvim-web-devicons',
enabled = true,
lazy = false,
priority = 110,
opts = {
override = {},
color_icons = true,
default = true,
strict = true
}
}

View File

@@ -1,188 +0,0 @@
-- Инициализация
vim.cmd('packadd packer.nvim')
return require('packer').startup(function(use)
-- Менеджер плагинов Packer (автообновление)
use 'wbthomason/packer.nvim'
-- Быстрая настройка LSP-серверов
use {
'neovim/nvim-lspconfig',
after = 'coq_nvim',
config = function() require('plugins/lspconfig') end
}
-- Прогресс LSP
use {
'j-hui/fidget.nvim',
config = function() require('plugins/fidget') end
}
-- Интерфейс отображающий найденные проблемы LSP-серверами
use {
'folke/trouble.nvim',
requires = 'kyazdani42/nvim-web-devicons',
config = function() require('plugins/trouble') end
}
-- Пиктограммы для плагинов
use {
'onsails/lspkind-nvim',
config = function() require('plugins/lspkind') end
}
-- Пиктограммы для плагинов
use {
'nvim-tree/nvim-web-devicons',
config = function() require('plugins/nvim-web-devicons') end
}
-- Интеграция с GIT
use {
'lewis6991/gitsigns.nvim',
config = function() require('plugins/gitsigns') end
}
-- Обработчик GIT-команд
use 'tpope/vim-fugitive'
-- Отображение изменений GIT
use 'mhinz/vim-signify'
-- Отрисовка в реальном времени найденных ошибок LSP-серверами
use {
'onsails/diaglist.nvim',
config = function() require('plugins/diaglist') end
}
-- Интерфейс строки состояния
use {
'nvim-lualine/lualine.nvim',
requires = 'kyazdani42/nvim-web-devicons',
config = function() require('plugins/lualine') end
}
-- Дополнение для "nvim-lualine/lualine.nvim" с отображением прогресса работы с LSP-серверами
use {
'arkav/lualine-lsp-progress',
config = function() require('plugins/lualine-lsp-progress') end
}
-- Интерфейс строки буфера файлов
use {
'akinsho/bufferline.nvim',
-- tag = "v3.*",
requires = 'nvim-tree/nvim-web-devicons',
config = function() require('plugins/bufferline') end
}
-- Интерфейс древовидной структуры файлов
use {
'nvim-neo-tree/neo-tree.nvim',
-- branch = 'v2.x',
requires = {
'nvim-lua/plenary.nvim',
'kyazdani42/nvim-web-devicons',
'MunifTanjim/nui.nvim'
},
config = function() require('plugins/neo-tree') end
}
-- Автодополнение скобок и кавычек
use {
'windwp/nvim-autopairs',
config = function() require('plugins/autopairs') end
}
-- Цвета для отображения найденных ошибок LSP-сервером в случае если другие цвета не найдены
use 'folke/lsp-colors.nvim'
-- Клиентская реализация DAP
use {
'mfussenegger/nvim-dap',
config = function() require('plugins/dap') end
}
-- Автозавершение
use {
'ms-jpq/coq_nvim',
branch = 'coq',
config = function() require('plugins/coq') end
}
-- Готовые наброски для автозавершения "ms-jpq/coq_nvim"
use {
'ms-jpq/coq.artifacts',
branch = 'artifacts'
}
-- Пользовательские готовые наброски для автозавершения "ms-jpq/coq_nvim"
use {
'ms-jpq/coq.thirdparty',
branch = '3p'
}
-- Линтер
use {
'mfussenegger/nvim-lint',
config = function() require('plugins/lint') end
}
-- Тестирование
use {
'vim-test/vim-test',
config = function() require('plugins/vim-test') end
}
-- Интерфейс для поиска
use {
'nvim-telescope/telescope.nvim',
-- tag = '0.1.1',
config = function() require('plugins/telescope') end
}
-- Интеграция treesitter
use {
'nvim-treesitter/nvim-treesitter',
run = ':TSUpdate',
config = function() require('plugins/treesitter') end
}
-- Удобное комментирование
use 'b3nj5m1n/kommentary'
-- Древовидное представление символов
use {
'simrat39/symbols-outline.nvim',
config = function() require('plugins/symbols-outline') end
}
-- Интерфейс для отображения тегов в отдельном окне
use 'preservim/tagbar'
-- PHP-теги для "preservim/tagbar" (phpctags для ctags)
use {
'vim-php/phpctags',
run = 'composer install'
}
-- LSP-сервер для Fish Shell
use 'dag/vim-fish'
-- Цветовая тема
use {
'rktjmp/lush.nvim',
config = function() require('plugins/lush') end
};
-- Аналог LSP-сервера для подержки синтаксиса nginx
use 'chr4/nginx.vim'
-- Форматировщик Prettier
use {
'prettier/vim-prettier',
branch = 'master',
-- run = 'sudo npm i -g',
run = 'yarn install --frozen-lockfile --production'
}
end)

10
lua/plugins/reticle.lua Normal file
View File

@@ -0,0 +1,10 @@
-- Highlight only the screen line of the cursor
-- in the currently active window
return {
'tummetott/reticle.nvim',
enabled = true,
lazy = true,
event = 'VeryLazy',
opts = {
},
}

View File

@@ -1,4 +0,0 @@
require('symbols-outline').setup({
--auto_preview = true,
--show_numbers = true
})

14
lua/plugins/tagbar.lua Normal file
View File

@@ -0,0 +1,14 @@
-- Vim plugin that displays tags in a window, ordered by scope
return {
'preservim/tagbar',
enabled = true,
lazy = false,
priority = 40,
dependencies = {
-- An enhanced ctags compatible index generator written in pure PHP
{ 'vim-php/phpctags' },
-- jsctags generator using tern
{ 'sergioramos/jsctags' }
}
}

View File

@@ -1,18 +1,27 @@
require('telescope').setup{
pickers = {
-- Default configuration for builtin pickers goes here:
-- picker_name = {
-- picker_config_key = value,
-- ...
-- }
-- Now the picker_config_key will be applied every time you call this
-- builtin picker
},
extensions = {
-- Your extension configuration goes here:
-- extension_name = {
-- extension_config_key = value,
-- }
-- please take a look at the readme of the extension you want to configure
}
-- Find, Filter, Preview, Pick. All lua, all the time
-- Gaze deeply into unknown regions using the power of the moon
return {
'nvim-telescope/telescope.nvim',
enabled = true,
lazy = true,
tag = 'v0.2.0',
dependencies = {
-- Functions for Telescope
{ 'nvim-lua/plenary.nvim' },
-- Integration for nvim-dap with telescope.nvim
{ 'nvim-telescope/telescope-dap.nvim' }
},
opts = {
exteinsiions = {
dap = {}
}
},
config = function()
-- Initializing telescope
local telescope = require('telescope')
-- Loading extensions
telescope.load_extension('dap')
end
}

View File

@@ -1,6 +1,14 @@
require('nvim-treesitter.configs').setup {
highlight = {
enable = true,
additional_vim_regex_highlighting = false
},
-- Nvim Treesitter configurations and abstraction layer
return {
'nvim-treesitter/nvim-treesitter',
enabled = true,
lazy = false,
priority = 40,
build = ':TSUpdate',
opts = {
highlight = {
enable = true,
additional_vim_regex_highlighting = true
}
}
}

View File

@@ -1,48 +1,115 @@
require('trouble').setup({
position = "bottom", -- position of the list can be: bottom, top, left, right
-- 🚦 A pretty diagnostics, references, telescope results,
-- quickfix and location list to help you solve
-- all the trouble your code is causing
return {
'folke/trouble.nvim',
enabled = true,
lazy = false,
priority = 20,
dependencies = {
-- Nvim Treesitter configurations and abstraction layer
{ 'nvim-treesitter/nvim-treesitter' },
-- Provides Nerd Font icons (glyphs) for use by neovim plugins
{ 'nvim-tree/nvim-web-devicons' }
},
opts = {
position = 'bottom', -- position of the list can be: bottom, top, left, right
height = 10, -- height of the trouble list when position is top or bottom
width = 50, -- width of the list when position is left or right
icons = true, -- use devicons for filenames
mode = "workspace_diagnostics", -- "workspace_diagnostics", "document_diagnostics", "quickfix", "lsp_references", "loclist"
fold_open = "", -- icon used for open folds
fold_closed = "", -- icon used for closed folds
mode = 'workspace_diagnostics', -- 'workspace_diagnostics', 'document_diagnostics', 'quickfix', 'lsp_references', 'loclist'
fold_open = '', -- icon used for open folds
fold_closed = '', -- icon used for closed folds
group = true, -- group results by file
padding = true, -- add an extra new line on top of the list
action_keys = {
-- key mappings for actions in the trouble list
-- map to {} to remove a mapping, for example:
-- close = {},
close = "q", -- close the list
cancel = "<esc>", -- cancel the preview and get back to your last window / buffer / cursor
refresh = "r", -- manually refresh
jump = { "<cr>", "<tab>" }, -- jump to the diagnostic or open / close folds
open_split = { "<c-x>" }, -- open buffer in new split
open_vsplit = { "<c-v>" }, -- open buffer in new vsplit
open_tab = { "<c-t>" }, -- open buffer in new tab
jump_close = { "o" }, -- jump to the diagnostic and close the list
toggle_mode = "m", -- toggle between "workspace" and "document" diagnostics mode
toggle_preview = "P", -- toggle auto_preview
hover = "K", -- opens a small popup with the full multiline message
preview = "p", -- preview the diagnostic location
close_folds = { "zM", "zm" }, -- close all folds
open_folds = { "zR", "zr" }, -- open all folds
toggle_fold = { "zA", "za" }, -- toggle fold of current file
previous = "k", -- previous item
next = "j" -- next item
close = 'q', -- close the list
cancel = '<esc>', -- cancel the preview and get back to your last window / buffer / cursor
refresh = 'r', -- manually refresh
jump = { '<cr>', '<tab>' }, -- jump to the diagnostic or open / close folds
open_split = { '<c-x>' }, -- open buffer in new split
open_vsplit = { '<c-v>' }, -- open buffer in new vsplit
open_tab = { '<c-t>' }, -- open buffer in new tab
jump_close = { 'o' }, -- jump to the diagnostic and close the list
toggle_mode = 'm', -- toggle between 'workspace' and 'document' diagnostics mode
toggle_preview = 'P', -- toggle auto_preview
hover = 'K', -- opens a small popup with the full multiline message
preview = 'p', -- preview the diagnostic location
close_folds = { 'zM', 'zm' }, -- close all folds
open_folds = { 'zR', 'zr' }, -- open all folds
toggle_fold = { 'zA', 'za' }, -- toggle fold of current file
previous = 'k', -- previous item
next = 'j' -- next item
},
indent_lines = true, -- add an indent guide below the fold icons
auto_open = false, -- automatically open the list when you have diagnostics
auto_close = false, -- automatically close the list when you have no diagnostics
auto_preview = true, -- automatically preview the location of the diagnostic. <esc> to close preview and go back to last window
auto_fold = false, -- automatically fold a file trouble list at creation
auto_jump = { "lsp_definitions" }, -- for the given modes, automatically jump if there is only a single result
auto_jump = { 'lsp_definitions' }, -- for the given modes, automatically jump if there is only a single result
signs = {
-- icons / text used for a diagnostic
error = "",
warning = "",
hint = "",
information = "",
other = ""
error = '',
warning = '',
hint = '',
information = '',
other = ''
},
use_diagnostic_signs = false -- enabling this will use the signs defined in your lsp client
},
config = function()
-- Initializing Telescope
local telescope = require('telescope')
local telescope_actions = require('telescope.actions')
local telescope_open = require('trouble.sources.telescope').open
-- Use this to add more results without clearing the trouble list
local add_to_trouble = require('trouble.sources.telescope').add
telescope.setup({
defaults = {
mappings = {
i = { ['<c-t>'] = telescope_open },
n = { ['<c-t>'] = telescope_open },
},
},
})
end,
cmd = 'Trouble',
keys = {
{
'<leader>xx',
'<cmd>Trouble diagnostics toggle<cr>',
desc = 'Diagnostics (Trouble)',
},
{
'<leader>xX',
'<cmd>Trouble diagnostics toggle filter.buf=0<cr>',
desc = 'Buffer Diagnostics (Trouble)',
},
{
'<leader>cs',
'<cmd>Trouble symbols toggle focus=false<cr>',
desc = 'Symbols (Trouble)',
},
{
'<leader>cl',
'<cmd>Trouble lsp toggle focus=false win.position=right<cr>',
desc = 'LSP Definitions / references / ... (Trouble)',
},
{
'<leader>xL',
'<cmd>Trouble loclist toggle<cr>',
desc = 'Location List (Trouble)',
},
{
'<leader>xQ',
'<cmd>Trouble qflist toggle<cr>',
desc = 'Quickfix List (Trouble)',
},
}
}

6
lua/plugins/vim-fish.lua Normal file
View File

@@ -0,0 +1,6 @@
-- Run your tests at the speed of thought
return {
'vim-test/vim-test',
enabled = true,
lazy = true
}

View File

@@ -0,0 +1,6 @@
-- A Git wrapper so awesome, it should be illegal
return {
'tpope/vim-fugitive',
enabled = true,
lazy = true
}

View File

@@ -0,0 +1,6 @@
-- Show a diff using Vim its sign column
return {
'mhinz/vim-signify',
enabled = true,
lazy = true
}

View File

@@ -0,0 +1,6 @@
-- Vim support for editing fish scripts
return {
'dag/vim-fish',
enabled = true,
lazy = true
}

40
lua/settings/lazy.lua Normal file
View File

@@ -0,0 +1,40 @@
-- Bootstrap lazy.nvim
local path = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
if not (vim.uv or vim.loop).fs_stat(path) then
local repository = 'https://github.com/folke/lazy.nvim.git'
local out = vim.fn.system({ 'git', 'clone', '--filter=blob:none', '--branch=stable', repository, path })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ 'Failed to clone lazy.nvim:\n', 'ErrorMsg' },
{ out, 'WarningMsg' },
{ '\nPress any key to exit...' },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(path)
-- Setup lazy.nvim
require('lazy').setup({
-- Import plugins
spec = {
{ import = 'plugins' },
},
-- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins.
install = {
colorscheme = { 'flexoki' }
},
-- Automatically check for plugin updates
checker = {
enabled = true
},
})

View File

@@ -3,3 +3,6 @@ vim.opt.splitright = true
-- Горизонтальное разделение всегда вниз
vim.opt.splitbelow = true
-- Command line height
vim.opt.cmdheight = 0

View File

@@ -1,3 +1,7 @@
-- Leader button
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
-- Использовать системный буфер обмена
vim.opt.clipboard = 'unnamedplus'
@@ -25,9 +29,10 @@ vim.opt_local.wrap = true
-- Отображение колонки курсора
vim.opt_local.cursorcolumn = true
-- Выбор цветовой темы
-- vim.cmd.colorscheme('default')
-- vim.cmd.colorscheme('koehler')
-- Theme
vim.opt.background = "dark"
-- Colorscheme @see plugin "flexoki"
vim.cmd.colorscheme('vim')
-- Добавление ru_RU (переключать через <c-^>)
@@ -45,3 +50,7 @@ vim.opt_local.spelllang = 'ru_yo,en_us'
vim.g.markdown_fenced_languages = {
"ts=typescript"
}
-- Syntax hightlighting
vim.cmd('syntax on')
vim.cmd('filetype plugin on')