1
0
This commit is contained in:
Rokas Puzonas 2023-05-11 17:31:02 +03:00
commit a2166790ff
13 changed files with 263 additions and 165 deletions

View File

@ -22,10 +22,10 @@ for _, name in ipairs(disabled_built_ins) do
g['loaded_' .. name] = 1 g['loaded_' .. name] = 1
end end
require("impatient")
require("plugins") require("plugins")
require("options") require("options")
require("bindings") require("bindings")
require("pludin-dev")
-- Misc features -- Misc features
require("highlight-yank") require("highlight-yank")

View File

@ -5,12 +5,12 @@ local silent = {silent = true}
-- Disable Ex mode -- Disable Ex mode
map('n', 'Q', '<nop>') map('n', 'Q', '<nop>')
-- Escape from terminal easier
map('t', '<Esc>', '<C-\\><C-n>')
-- Save file -- Save file
map('n', '<C-s>', ':w<cr>') map('n', '<C-s>', ':w<cr>')
-- Paste from register and not replace it
-- map('x', '<leader>p', '"_dP')
-- Window movement -- Window movement
map('n', '<c-h>', '<c-w>h') map('n', '<c-h>', '<c-w>h')
map('n', '<c-j>', '<c-w>j') map('n', '<c-j>', '<c-w>j')
@ -37,3 +37,23 @@ map('n', '<A-j>', ':m .+1<CR>==', silent)
map('n', '<A-k>', ':m .-2<CR>==', silent) map('n', '<A-k>', ':m .-2<CR>==', silent)
map('v', '<A-j>', ":m '>+1<CR>gv=gv", silent) map('v', '<A-j>', ":m '>+1<CR>gv=gv", silent)
map('v', '<A-k>', ":m '<-2<CR>gv=gv", silent) map('v', '<A-k>', ":m '<-2<CR>gv=gv", silent)
-- Move between windows easier in terminal windows
function _G.set_terminal_keymaps()
local opts = {buffer = 0}
vim.keymap.set('t', '<C-w>', [[<C-\><C-n>]], opts)
vim.keymap.set('t', '<C-h>', [[<Cmd>wincmd h<CR>]], opts)
vim.keymap.set('t', '<C-j>', [[<Cmd>wincmd j<CR>]], opts)
vim.keymap.set('t', '<C-k>', [[<Cmd>wincmd k<CR>]], opts)
vim.keymap.set('t', '<C-l>', [[<Cmd>wincmd l<CR>]], opts)
end
vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()')
-- Add abbreviation for != => ~= in lua files
vim.api.nvim_create_autocmd("BufEnter", {
group = vim.api.nvim_create_augroup("MyTermOpen", { clear = true }),
pattern = "*.lua",
callback = function()
vim.api.nvim_cmd({ cmd = "abb", args = {"!=", "~="}}, {})
end
})

36
lua/config/dap.lua Normal file
View File

@ -0,0 +1,36 @@
local dap = require('dap')
dap.adapters.lldb = {
type = 'executable',
command = '/usr/bin/lldb-vscode',
name = 'lldb'
}
dap.configurations.cpp = {
{
name = 'Launch',
type = 'lldb',
request = 'launch',
program = function()
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
end,
cwd = '${workspaceFolder}',
stopOnEntry = false,
args = {},
-- 💀
-- if you change `runInTerminal` to true, you might need to change the yama/ptrace_scope setting:
--
-- echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
--
-- Otherwise you might get the following error:
--
-- Error on launch: Failed to attach to the target process
--
-- But you should be aware of the implications:
-- https://www.kernel.org/doc/html/latest/admin-guide/LSM/Yama.html
-- runInTerminal = false,
},
}
dap.configurations.c = dap.configurations.cpp
dap.configurations.rust = dap.configurations.cpp

View File

@ -127,7 +127,7 @@ function M.get_capabilities()
local capabilities = vim.lsp.protocol.make_client_capabilities() local capabilities = vim.lsp.protocol.make_client_capabilities()
if packer_plugins['cmp-nvim-lsp'] and packer_plugins['cmp-nvim-lsp'].loaded then if packer_plugins['cmp-nvim-lsp'] and packer_plugins['cmp-nvim-lsp'].loaded then
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
end end
return capabilities return capabilities

View File

@ -1,5 +1,5 @@
local lspconfig_config = require 'config.lspconfig' local lspconfig_config = require 'config.lspconfig'
local lsp_instller = require 'nvim-lsp-installer' local lsp_installer = require 'nvim-lsp-installer'
local lsp_installer_servers = require'nvim-lsp-installer.servers' local lsp_installer_servers = require'nvim-lsp-installer.servers'
local M = {} local M = {}
@ -14,12 +14,8 @@ end
local capabilities = lspconfig_config.get_capabilities() local capabilities = lspconfig_config.get_capabilities()
lsp_instller.on_server_ready(function(server) for _, server in ipairs(lsp_installer.get_installed_servers()) do
local opts = {
-- print(server.name)
-- print(vim.inspect(lspconfig_config.get_server_settings(server.name)))
server:setup{
root_dir = function() root_dir = function()
return vim.fn.getcwd() return vim.fn.getcwd()
end, end,
@ -30,18 +26,17 @@ lsp_instller.on_server_ready(function(server)
capabilities = capabilities, capabilities = capabilities,
settings = lspconfig_config.get_server_settings(server.name) settings = lspconfig_config.get_server_settings(server.name)
} }
end)
require("lspconfig").gdscript.setup{ if server.name == "rust_analyzer" then
root_dir = function() local has_rust_tools, rust_tools = pcall(require, "rust-tools")
return vim.fn.getcwd() if has_rust_tools then
end, rust_tools.setup({ server = opts })
init_options = lspconfig_config.get_server_init_options("godot"), goto continue
on_attach = lspconfig_config.on_attach, end
on_init = lspconfig_config.on_init, end
flags = lspconfig_config.flags,
capabilities = capabilities, server:setup(opts)
settings = lspconfig_config.get_server_settings("godot") ::continue::
} end
return M return M

View File

@ -2,10 +2,11 @@ local ls = require("luasnip")
local capture = require("utils.capture") local capture = require("utils.capture")
local s = ls.snippet local s = ls.snippet
local sn = ls.snippet_node local sn = ls.snippet_node
local fmt = require("luasnip.extras.fmt").fmt
local t = ls.text_node local t = ls.text_node
local i = ls.insert_node local i = ls.insert_node
local f = ls.function_node local f = ls.function_node
local choice = ls.choice_node local c = ls.choice_node
local d = ls.dynamic_node local d = ls.dynamic_node
local function getCurrentYear() local function getCurrentYear()
@ -20,6 +21,18 @@ local function getGitUsername()
return stdout return stdout
end end
ls.config.set_config {
history = true,
updateevents = "TextChanged,TextChangedI",
enable_autosnippets = true
}
vim.keymap.set({"i"}, "<c-l>", function()
if ls.choice_active() then
ls.change_choice(1)
end
end)
ls.add_snippets("all", { ls.add_snippets("all", {
s("MIT", { s("MIT", {
t({"The MIT License (MIT)", "Copyright © "}), t({"The MIT License (MIT)", "Copyright © "}),
@ -53,3 +66,15 @@ ls.add_snippets("all", {
} }
}) })
}) })
ls.add_snippets("lua", {
s("req",
fmt([[local {} = require("{}")]], {
f(function(module_name)
local parts = vim.split(module_name[1][1], ".", true)
return (parts[#parts] or ""):gsub("-", "_")
end, { 1 }),
i(1)
})
)
})

View File

@ -50,6 +50,9 @@ map('n', '<leader>fw', [[:lua require('telescope.builtin').live_grep()<cr>]], si
-- Change colorscheme -- Change colorscheme
map('n', '<leader>cs', [[:lua require('telescope.builtin').colorscheme()<cr>]], silent) map('n', '<leader>cs', [[:lua require('telescope.builtin').colorscheme()<cr>]], silent)
-- See help tags
map('n', '<leader>fh', [[:lua require('telescope.builtin').help_tags()<cr>]], silent)
telescope.setup{ telescope.setup{
defaults = { defaults = {
buffer_previewer_maker = sizelimit_maker, buffer_previewer_maker = sizelimit_maker,
@ -66,6 +69,9 @@ telescope.setup{
theme = "dropdown", theme = "dropdown",
}, },
marks = { marks = {
theme = "dropdown",
},
help_tags = {
theme = "dropdown", theme = "dropdown",
}, },
oldfiles = { oldfiles = {

View File

@ -1,6 +1,6 @@
local treesitter = require("nvim-treesitter.configs") local treesitter = require("nvim-treesitter.configs")
treesitter.setup{ treesitter.setup{
ensure_installed = "maintained", highlight = { enable = true },
highlight = { enable = true } auto_install = true
} }

View File

@ -0,0 +1,2 @@
local g = vim.g
g['vimspector_enable_mappings']="HUMAN"

View File

@ -1,4 +1,5 @@
local opt = require 'utils.opt' local opt = require 'utils.opt'
local autocmd = require 'utils.autocmd'
local o, wo, bo = vim.o, vim.wo, vim.bo local o, wo, bo = vim.o, vim.wo, vim.bo
local cmd = vim.cmd local cmd = vim.cmd
@ -9,6 +10,13 @@ cmd [[filetype plugin on]]
local buffer = { o, bo } local buffer = { o, bo }
local window = { o, wo } local window = { o, wo }
-- Enable auto reload of changed files
opt('autoread', true)
autocmd("auto-reload", {
[[FocusGained,BufEnter,CursorHold,CursorHoldI * if mode() != 'c' | checktime | endif]],
[[FileChangedShellPost * echohl WarningMsg | echo "File changed on disk. Buffer reloaded." | echohl None]]
}, true)
-- List of possible completion options -- List of possible completion options
opt('completeopt', 'menu,menuone,noselect') opt('completeopt', 'menu,menuone,noselect')

7
lua/pludin-dev.lua Normal file
View File

@ -0,0 +1,7 @@
local map = require 'utils.map'
map("n", "<leader><leader>x", ":w<cr>:source %<cr>")
function P(...)
print(vim.inspect(...))
end

View File

@ -3,139 +3,25 @@
---@diagnostic disable-next-line: unused-local ---@diagnostic disable-next-line: unused-local
local function usePlugins(use, use_rocks) local function usePlugins(use, use_rocks)
-- Packer can manage itself -- Toggle terminal
use 'wbthomason/packer.nvim' use {'akinsho/toggleterm.nvim', tag = '*', config=[[require('toggleterm').setup()]]}
-- Debugger -- Debugger
-- TODO: setup vimspector use { 'mfussenegger/nvim-dap', config=[[require('config.dap')]]}
-- use 'puremourning/vimspector' use { "rcarriga/nvim-dap-ui", requires = "mfussenegger/nvim-dap", config=[[require('dapui').setup()]] }
use 'simrat39/rust-tools.nvim'
-- Markdown previewer use {
-- TODO: setup markdown previewer 'theHamsta/nvim-dap-virtual-text',
requires = {"mfussenegger/nvim-dap", "nvim-treesitter/nvim-treesitter"},
config=[[require('nvim-dap-virtual-text')]]
}
-- Seemless pane switching betwen tmux and vim -- Seemless pane switching betwen tmux and vim
use 'christoomey/vim-tmux-navigator' use 'christoomey/vim-tmux-navigator'
-- Git blame
use {
'f-person/git-blame.nvim',
config = [[require 'config.gitblame']]
}
-- Ansible file syntax highlighting
use 'pearofducks/ansible-vim'
-- Zen mode
use { 'folke/zen-mode.nvim', config = [[require 'config.zen-mode']] }
use {
'folke/twilight.nvim',
requires = 'folke/zen-mode.nvim',
config = [[require 'config.twilight']]
}
-- Text object target
use 'wellle/targets.vim'
-- Align characters vertically
use 'godlygeek/tabular'
-- Used for loading project specific code styles
use 'editorconfig/editorconfig-vim'
-- Improve startup time when loading lua files.
-- Temporary solution before PR gets merges. https://github.com/neovim/neovim/pull/15436
use 'lewis6991/impatient.nvim'
-- Reload lua configs
use {
'famiu/nvim-reload',
requires = 'nvim-lua/plenary.nvim',
config = [[require 'config.reload']]
}
-- Provides mappings for working with symbols like (), {}, [], etc.
use 'tpope/vim-surround'
-- Allow repeating
use 'tpope/vim-repeat'
-- GLSL language support
use 'tikhomirov/vim-glsl'
-- Treesitter
use {
'nvim-treesitter/nvim-treesitter',
config = [[require 'config.treesitter']],
branch = '0.5-compat',
run = ':TSUpdate'
}
use {
'nvim-treesitter/playground',
requires = 'nvim-treesitter/nvim-treesitter',
cmd = "TSPlaygroundToggle"
}
-- Dev icons
use {'kyazdani42/nvim-web-devicons', config = [[require('nvim-web-devicons').setup()]]}
-- Fuzzy file finder
use {
'nvim-telescope/telescope.nvim',
config = [[require 'config.telescope']],
requires = {
'nvim-lua/plenary.nvim',
'nvim-treesitter/nvim-treesitter',
'kyazdani42/nvim-web-devicons',
{'nvim-telescope/telescope-fzf-native.nvim', run = 'make'}
}
}
-- Smooth smooth scrolling
-- use { 'karb94/neoscroll.nvim', config = [[require('neoscroll').setup()]] }
use 'psliwka/vim-smoothie'
-- Commenting
use {
'terrortylor/nvim-comment',
config = [[require 'config.comment']],
requires = 'JoosepAlviste/nvim-ts-context-commentstring'
}
-- Color code colorizer
use { 'norcalli/nvim-colorizer.lua', config = [[require 'config.colorizer']] }
-- Quick movement
use { 'justinmk/vim-sneak', config = [[require 'config.sneak']] }
use { 'unblevable/quick-scope', config = [[require 'config.quickscope']] }
use 'michaeljsmith/vim-indent-object'
-- File browser
use {
'kyazdani42/nvim-tree.lua',
requires = 'kyazdani42/nvim-web-devicons',
config = [[require 'config.nvim-tree']]
}
-- use {
-- 'lambdalisue/fern.vim',
-- config = [[require 'config.fern']],
-- requires = {
-- 'antoinemadec/FixCursorHold.nvim',
-- 'lambdalisue/fern-hijack.vim',
-- {'lambdalisue/fern-renderer-nerdfont.vim', config = [[vim.g["fern#renderer"] = "nerdfont"]]},
-- 'lambdalisue/nerdfont.vim'
-- }
-- }
-- alternatives:
-- use 'kyazdani42/nvim-tree.lua'
-- use 'zgpio/tree.nvim'
-- use 'tpope/vim-vinegar'
-- UNIX commands -- UNIX commands
use 'tpope/vim-eunuch' use 'tpope/vim-eunuch'
-- Snippets
use { 'L3MON4D3/LuaSnip', after = 'nvim-cmp', config = [[require 'config.luasnip']] }
-- Movement utilities -- Movement utilities
use 'tpope/vim-unimpaired' use 'tpope/vim-unimpaired'
@ -150,9 +36,6 @@ local function usePlugins(use, use_rocks)
config = [[require 'config.lspinstaller']] config = [[require 'config.lspinstaller']]
} }
-- Godot support
use 'habamax/vim-godot'
-- LSP utils -- LSP utils
use {"ray-x/lsp_signature.nvim", config = [[require 'config.lspsignature']]} use {"ray-x/lsp_signature.nvim", config = [[require 'config.lspsignature']]}
use { use {
@ -161,6 +44,9 @@ local function usePlugins(use, use_rocks)
requires = 'RishabhRD/popfix' requires = 'RishabhRD/popfix'
} }
-- Snippets
use { 'L3MON4D3/LuaSnip', config = [[require 'config.luasnip']] }
-- Completion -- Completion
use { 'onsails/lspkind-nvim' } use { 'onsails/lspkind-nvim' }
use { use {
@ -168,8 +54,7 @@ local function usePlugins(use, use_rocks)
-- requires = 'onsails/lspkind-nvim', -- For some reason breaks with this line -- requires = 'onsails/lspkind-nvim', -- For some reason breaks with this line
requires = {'saadparwaiz1/cmp_luasnip'}, requires = {'saadparwaiz1/cmp_luasnip'},
after = 'lspkind-nvim', after = 'lspkind-nvim',
config = [[require 'config.cmp']], config = [[require 'config.cmp']]
event = 'InsertEnter *'
} }
use {'tzachar/cmp-tabnine', after = 'nvim-cmp', run='./install.sh', requires = 'hrsh7th/nvim-cmp', config = [[require 'config.tabnine']]} use {'tzachar/cmp-tabnine', after = 'nvim-cmp', run='./install.sh', requires = 'hrsh7th/nvim-cmp', config = [[require 'config.tabnine']]}
use {'hrsh7th/cmp-nvim-lsp', requires = {'hrsh7th/nvim-cmp', 'nvim-lspconfig'}} use {'hrsh7th/cmp-nvim-lsp', requires = {'hrsh7th/nvim-cmp', 'nvim-lspconfig'}}
@ -198,6 +83,9 @@ local function usePlugins(use, use_rocks)
-- use 'squarefrog/tomorrow-night.vim' -- use 'squarefrog/tomorrow-night.vim'
-- use 'fnune/base16-vim' -- use 'fnune/base16-vim'
-- Text object target
use 'wellle/targets.vim'
-- Git integration -- Git integration
use { 'tpope/vim-fugitive', config = [[require 'config.fugitive']] } use { 'tpope/vim-fugitive', config = [[require 'config.fugitive']] }
use { use {
@ -208,15 +96,15 @@ local function usePlugins(use, use_rocks)
} }
-- Refactoring -- Refactoring
use { -- use {
"ThePrimeagen/refactoring.nvim", -- "ThePrimeagen/refactoring.nvim",
requires = { -- requires = {
"nvim-lua/plenary.nvim", -- "nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter" -- "nvim-treesitter/nvim-treesitter"
}, -- },
disable = true, -- disable = true,
config = [[require 'config.refactoring']] -- config = [[require 'config.refactoring']]
} -- }
-- Analyze startup time -- Analyze startup time
use 'tweekmonster/startuptime.vim' use 'tweekmonster/startuptime.vim'
@ -233,6 +121,97 @@ local function usePlugins(use, use_rocks)
-- Training plugins -- Training plugins
-- use 'tjdevries/train.nvim' -- use 'tjdevries/train.nvim'
-- use 'ThePrimeagen/vim-be-good' -- use 'ThePrimeagen/vim-be-good'
-- Quick movement
-- use { 'justinmk/vim-sneak', config = [[require 'config.sneak']] }
use { 'unblevable/quick-scope', config = [[require 'config.quickscope']] }
use 'michaeljsmith/vim-indent-object'
use { 'ggandor/leap.nvim', config=[[require('leap').add_default_mappings()]]}
-- Smooth smooth scrolling
-- use { 'karb94/neoscroll.nvim', config = [[require('neoscroll').setup()]] }
use 'psliwka/vim-smoothie'
-- Commenting
use {
'terrortylor/nvim-comment',
config = [[require 'config.comment']],
requires = 'JoosepAlviste/nvim-ts-context-commentstring'
}
-- Color code colorizer
use { 'norcalli/nvim-colorizer.lua', config = [[require 'config.colorizer']] }
-- Fuzzy file finder
use {
'nvim-telescope/telescope.nvim',
config = [[require 'config.telescope']],
requires = {
'nvim-lua/plenary.nvim',
'nvim-treesitter/nvim-treesitter',
'kyazdani42/nvim-web-devicons',
{'nvim-telescope/telescope-fzf-native.nvim', run = 'make'}
}
}
-- Align characters vertically
use 'godlygeek/tabular'
-- Used for loading project specific code styles
use 'editorconfig/editorconfig-vim'
-- Provides mappings for working with symbols like (), {}, [], etc.
use 'tpope/vim-surround'
-- Allow repeating
use 'tpope/vim-repeat'
-- GLSL language support
use 'tikhomirov/vim-glsl'
-- Treesitter
use {
'nvim-treesitter/nvim-treesitter',
config = [[require 'config.treesitter']],
run = function() require('nvim-treesitter.install').update{ with_sync = true } end
}
use {
'nvim-treesitter/playground',
requires = 'nvim-treesitter/nvim-treesitter',
cmd = "TSPlaygroundToggle"
}
-- Dev icons
use {'kyazdani42/nvim-web-devicons', config = [[require('nvim-web-devicons').setup()]]}
-- Zen mode
use { 'folke/zen-mode.nvim', config = [[require 'config.zen-mode']] }
use {
'folke/twilight.nvim',
requires = 'folke/zen-mode.nvim',
config = [[require 'config.twilight']]
}
-- File browser
use {
'kyazdani42/nvim-tree.lua',
requires = 'kyazdani42/nvim-web-devicons',
config = [[require 'config.nvim-tree']]
}
-- use {
-- 'lambdalisue/fern.vim',
-- config = [[require 'config.fern']],
-- requires = {
-- 'antoinemadec/FixCursorHold.nvim',
-- 'lambdalisue/fern-hijack.vim',
-- {'lambdalisue/fern-renderer-nerdfont.vim', config = [[vim.g["fern#renderer"] = "nerdfont"]]},
-- 'lambdalisue/nerdfont.vim'
-- }
-- }
-- alternatives:
-- use 'kyazdani42/nvim-tree.lua'
-- use 'zgpio/tree.nvim'
-- use 'tpope/vim-vinegar'
end end
-- Register custom commands for plugin manager -- Register custom commands for plugin manager
@ -270,6 +249,9 @@ local function init()
-- Reset plugins if already loaded -- Reset plugins if already loaded
packer.reset() packer.reset()
-- Packer can manage itself
packer.use 'wbthomason/packer.nvim'
-- Use plugins -- Use plugins
usePlugins(packer.use, packer.use_rocks) usePlugins(packer.use, packer.use_rocks)

17
plugins/lldb-vscode.json Normal file
View File

@ -0,0 +1,17 @@
{
"adapters": {
"lldb-vscode": {
"attach": {
"pidProperty": "pid",
"pidSelect": "none"
},
"command": [
"lldb-vscode"
],
"env": {
"LLDB_LAUNCH_FLAG_LAUNCH_IN_TTY": "YES"
},
"name": "lldb"
}
}
}