Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
f27c3d3299 |
9
init.lua
9
init.lua
|
@ -1,12 +1,15 @@
|
|||
-- Настройки
|
||||
-- Settings
|
||||
require('settings/system')
|
||||
require('settings/tabs')
|
||||
require('settings/panels')
|
||||
require('settings/search')
|
||||
|
||||
-- Плагины
|
||||
-- Plugins
|
||||
require('plugins/packer')
|
||||
|
||||
-- Комбинации клавиш
|
||||
-- Keymaps
|
||||
require('keymaps/system')
|
||||
require('keymaps/plugins')
|
||||
|
||||
-- Autocommands
|
||||
require('autocommands')
|
||||
|
|
27
install.sh
27
install.sh
|
@ -62,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
|
||||
|
@ -121,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
|
||||
|
@ -370,6 +378,25 @@ if set -q _flag_force; or test (string match -ri 'y' "$RESPONSE")
|
|||
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
|
||||
|
|
|
@ -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
|
||||
})
|
|
@ -4,7 +4,7 @@ vim.keymap.set({ 'n', 'i', 'v', 't' }, '<f1>', '<cmd>Neotree toggle<cr>', { nore
|
|||
|
||||
|
||||
-- [[ 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 ]]
|
||||
|
@ -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})
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
require("nvim-dap-virtual-text").setup {
|
||||
enabled = true, -- enable this plugin (the default)
|
||||
enabled_commands = true, -- create commands DapVirtualTextEnable, DapVirtualTextDisable, DapVirtualTextToggle, (DapVirtualTextForceRefresh for refreshing when debug adapter did not notify its termination)
|
||||
highlight_changed_variables = true, -- highlight changed values with NvimDapVirtualTextChanged, else always NvimDapVirtualText
|
||||
highlight_new_as_changed = false, -- highlight new variables in the same way as changed variables (if highlight_changed_variables)
|
||||
show_stop_reason = true, -- show stop reason when stopped for exceptions
|
||||
commented = false, -- prefix virtual text with comment string
|
||||
only_first_definition = true, -- only show virtual text at first definition (if there are multiple)
|
||||
all_references = false, -- show virtual text on all all references of the variable (not only definitions)
|
||||
clear_on_continue = false, -- clear virtual text on "continue" (might cause flickering when stepping)
|
||||
|
||||
--- A callback that determines how a variable is displayed or whether it should be omitted
|
||||
--- @param variable Variable https://microsoft.github.io/debug-adapter-protocol/specification#Types_Variable
|
||||
--- @param buf number
|
||||
--- @param stackframe dap.StackFrame https://microsoft.github.io/debug-adapter-protocol/specification#Types_StackFrame
|
||||
--- @param node userdata tree-sitter node identified as variable definition of reference (see `:h tsnode`)
|
||||
--- @param options nvim_dap_virtual_text_options Current options for nvim-dap-virtual-text
|
||||
--- @return string|nil A text how the virtual text should be displayed or nil, if this variable shouldn't be displayed
|
||||
display_callback = function(variable, buf, stackframe, node, options)
|
||||
|
||||
-- by default, strip out new line characters
|
||||
if options.virt_text_pos == 'inline' then
|
||||
return ' = ' .. variable.value:gsub("%s+", " ")
|
||||
else
|
||||
return variable.name .. ' = ' .. variable.value:gsub("%s+", " ")
|
||||
end
|
||||
end,
|
||||
|
||||
-- position of virtual text, see `:h nvim_buf_set_extmark()`, default tries to inline the virtual text. Use 'eol' to set to end of line
|
||||
virt_text_pos = vim.fn.has 'nvim-0.10' == 1 and 'inline' or 'eol',
|
||||
|
||||
-- experimental features:
|
||||
all_frames = false, -- show virtual text for all stack frames not only current. Only works for debugpy on my machine.
|
||||
virt_lines = false, -- show virtual lines instead of virtual text (will flicker!)
|
||||
virt_text_win_col = nil -- position the virtual text at a fixed window column (starting from the first text column) ,
|
||||
-- e.g. 80 to position at column 80, see `:h nvim_buf_set_extmark()`
|
||||
}
|
|
@ -1,2 +1,23 @@
|
|||
require('dap').configurations.cpp = {
|
||||
-- Initialization
|
||||
local dap = require('dap')
|
||||
|
||||
-- Installing C, Rust and C++
|
||||
dap.configurations.cpp = {
|
||||
}
|
||||
|
||||
-- Initializing PHP adapter
|
||||
dap.adapters.php = {
|
||||
type = "executable",
|
||||
command = "node",
|
||||
args = { os.getenv("HOME") .. "/vscode-php-debug/out/phpDebug.js" }
|
||||
}
|
||||
|
||||
-- Installing PHP
|
||||
dap.configurations.php = {
|
||||
{
|
||||
type = "php",
|
||||
request = "launch",
|
||||
name = "Listen for Xdebug",
|
||||
port = 9003
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
require('dapui').setup()
|
||||
|
||||
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
|
|
@ -0,0 +1,77 @@
|
|||
-- Initializing
|
||||
local flexoki = require('flexoki')
|
||||
|
||||
-- Installing
|
||||
flexoki.setup({
|
||||
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,})
|
||||
|
||||
-- Activating
|
||||
vim.cmd("colorscheme flexoki-moon")
|
|
@ -10,11 +10,12 @@ require('lualine').setup {
|
|||
},
|
||||
ignore_focus = {},
|
||||
always_divide_middle = true,
|
||||
always_show_tabline = true,
|
||||
globalstatus = false,
|
||||
refresh = {
|
||||
statusline = 1000,
|
||||
tabline = 1000,
|
||||
winbar = 1000,
|
||||
statusline = 100,
|
||||
tabline = 100,
|
||||
winbar = 100,
|
||||
}
|
||||
},
|
||||
sections = {
|
||||
|
@ -67,5 +68,5 @@ require('lualine').setup {
|
|||
tabline = {},
|
||||
winbar = {},
|
||||
inactive_winbar = {},
|
||||
extensions = {}
|
||||
extensions = {'nvim-dap-ui', 'trouble', 'neo-tree'}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,12 @@ return require('packer').startup(function(use)
|
|||
-- Менеджер плагинов Packer (автообновление)
|
||||
use 'wbthomason/packer.nvim'
|
||||
|
||||
-- Flexoki colorscheme
|
||||
use {
|
||||
'nuvic/flexoki-nvim',
|
||||
config = function() require('plugins/flexoki') end
|
||||
}
|
||||
|
||||
-- Быстрая настройка LSP-серверов
|
||||
use {
|
||||
'neovim/nvim-lspconfig',
|
||||
|
@ -97,12 +103,6 @@ return require('packer').startup(function(use)
|
|||
-- Цвета для отображения найденных ошибок LSP-сервером в случае если другие цвета не найдены
|
||||
use 'folke/lsp-colors.nvim'
|
||||
|
||||
-- Клиентская реализация DAP
|
||||
use {
|
||||
'mfussenegger/nvim-dap',
|
||||
config = function() require('plugins/dap') end
|
||||
}
|
||||
|
||||
-- Автозавершение
|
||||
use {
|
||||
'ms-jpq/coq_nvim',
|
||||
|
@ -133,19 +133,28 @@ return require('packer').startup(function(use)
|
|||
'vim-test/vim-test',
|
||||
config = function() require('plugins/vim-test') end
|
||||
}
|
||||
-- Functions for Telescope
|
||||
use 'nvim-lua/plenary.nvim'
|
||||
|
||||
-- Интерфейс для поиска
|
||||
-- DAP integration for Telescope
|
||||
use 'nvim-telescope/telescope-dap.nvim'
|
||||
|
||||
-- Fuzzy finder over lists (find, filter, preview, pick)
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
-- tag = '0.1.1',
|
||||
tag = '0.1.8',
|
||||
requires = {'nvim-lua/plenary.nvim'},
|
||||
config = function() require('plugins/telescope') end
|
||||
}
|
||||
|
||||
-- Интеграция treesitter
|
||||
-- UI for Treesitter
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
run = ':TSUpdate',
|
||||
config = function() require('plugins/treesitter') end
|
||||
config = function() require('plugins/treesitter') end,
|
||||
run = function()
|
||||
local ts_update = require('nvim-treesitter.install').update({ with_sync = true })
|
||||
ts_update()
|
||||
end
|
||||
}
|
||||
|
||||
-- Удобное комментирование
|
||||
|
@ -180,9 +189,31 @@ return require('packer').startup(function(use)
|
|||
|
||||
-- Форматировщик Prettier
|
||||
use {
|
||||
'prettier/vim-prettier',
|
||||
branch = 'master',
|
||||
-- run = 'sudo npm i -g',
|
||||
run = 'yarn install --frozen-lockfile --production'
|
||||
'prettier/vim-prettier',
|
||||
branch = 'master',
|
||||
-- run = 'sudo npm i -g',
|
||||
run = 'yarn install --frozen-lockfile --production'
|
||||
}
|
||||
|
||||
-- Debug Adapter Protocol client implementation --
|
||||
use {
|
||||
'mfussenegger/nvim-dap',
|
||||
config = function() require('plugins/dap') end
|
||||
}
|
||||
|
||||
-- Asynchronous IO --
|
||||
use 'nvim-neotest/nvim-nio'
|
||||
|
||||
-- UI for DAP client implementation --
|
||||
use {
|
||||
'rcarriga/nvim-dap-ui',
|
||||
requires = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio"},
|
||||
config = function() require('plugins/dapui') end
|
||||
}
|
||||
|
||||
-- Virtual text support for DAP client implementation and Treesitter --
|
||||
use {
|
||||
'theHamsta/nvim-dap-virtual-text',
|
||||
config = function() require('plugins/dap-text') end
|
||||
}
|
||||
end)
|
||||
|
|
|
@ -1,18 +1,27 @@
|
|||
require('telescope').setup{
|
||||
-- Initializing
|
||||
local telescope = require('telescope');
|
||||
|
||||
-- Installing
|
||||
telescope.setup {
|
||||
pickers = {
|
||||
-- Default configuration for builtin pickers goes here:
|
||||
-- Default configuration for builtin picikers goes here:
|
||||
-- picker_name = {
|
||||
-- picker_config_key = value,
|
||||
-- picker_configi_key = value,
|
||||
-- ...
|
||||
-- }
|
||||
-- Now the picker_config_key will be applied every time you call this
|
||||
-- builtin picker
|
||||
},
|
||||
extensions = {
|
||||
-- Your extension configuration goes here:
|
||||
|
||||
exteinsiions = {
|
||||
-- Your extensioni configuration goes here:
|
||||
-- extension_name = {
|
||||
-- extension_config_key = value,
|
||||
-- }
|
||||
-- please take a look at the readme of the extension you want to configure
|
||||
dap = {}
|
||||
}
|
||||
}
|
||||
|
||||
-- Loading extensions
|
||||
telescope.load_extension('dap')
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
require('nvim-treesitter.configs').setup {
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false
|
||||
-- additional_vim_regex_highlighting = false
|
||||
additional_vim_regex_highlighting = true
|
||||
},
|
||||
}
|
||||
|
|
|
@ -46,3 +46,20 @@ require('trouble').setup({
|
|||
},
|
||||
use_diagnostic_signs = false -- enabling this will use the signs defined in your lsp client
|
||||
})
|
||||
|
||||
-- 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 },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
|
@ -3,3 +3,6 @@ vim.opt.splitright = true
|
|||
|
||||
-- Горизонтальное разделение всегда вниз
|
||||
vim.opt.splitbelow = true
|
||||
|
||||
-- Command line height
|
||||
vim.opt.cmdheight = 0
|
||||
|
|
|
@ -25,7 +25,10 @@ vim.opt_local.wrap = true
|
|||
-- Отображение колонки курсора
|
||||
vim.opt_local.cursorcolumn = true
|
||||
|
||||
-- Выбор цветовой темы
|
||||
-- Theme
|
||||
vim.opt.background = "dark"
|
||||
|
||||
-- Colorscheme
|
||||
-- vim.cmd.colorscheme('default')
|
||||
-- vim.cmd.colorscheme('koehler')
|
||||
vim.cmd.colorscheme('vim')
|
||||
|
|
Loading…
Reference in New Issue