WIP
This commit is contained in:
parent
f72d7d268e
commit
65df2d7094
11
dotfiles/home/.config/nvim/init.lua
Normal file
11
dotfiles/home/.config/nvim/init.lua
Normal file
@ -0,0 +1,11 @@
|
||||
require('core.plugins') -- plugins
|
||||
require('core.mappings') -- key bindings
|
||||
require('core.colors') -- colors and themes
|
||||
-- require('core.config')
|
||||
|
||||
-- require('plugins.lsp')
|
||||
-- require('plugins.mason')
|
||||
-- require('plugins.neotree')
|
||||
-- require('plugins.treesitter')
|
||||
-- require('plugins.telescope')
|
||||
-- require('plugins.dashboard')
|
6
dotfiles/home/.config/nvim/lazy-lock.json
Normal file
6
dotfiles/home/.config/nvim/lazy-lock.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"lazy.nvim": { "branch": "main", "commit": "758bb5de98b805acc5eeed8cdc8ac7f0bc4b0b86" },
|
||||
"onedark.vim": { "branch": "main", "commit": "57b77747694ea5676c3ca0eeaf9567dc499730c0" },
|
||||
"toggleterm.nvim": { "branch": "main", "commit": "066cccf48a43553a80a210eb3be89a15d789d6e6" },
|
||||
"vim-be-good": { "branch": "master", "commit": "4fa57b7957715c91326fcead58c1fa898b9b3625" }
|
||||
}
|
13
dotfiles/home/.config/nvim/lua/core/colors.lua
Normal file
13
dotfiles/home/.config/nvim/lua/core/colors.lua
Normal file
@ -0,0 +1,13 @@
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
function SetColor(color)
|
||||
color = color or "onedark"
|
||||
vim.cmd.colorscheme(color)
|
||||
|
||||
-- vim.api.nvim_set_hl(0, "Normal", {bg = "none"})
|
||||
-- vim.api.nvim_set_hl(0, "NormalFloat", {bg = "none"})
|
||||
-- vim.api.nvim_set_hl(0, "ColorColumn", {bg = "none"})
|
||||
-- vim.api.nvim_set_hl(0, "LineNr", {bg = "none"})
|
||||
end
|
||||
|
||||
SetColor()
|
54
dotfiles/home/.config/nvim/lua/core/config.lua
Normal file
54
dotfiles/home/.config/nvim/lua/core/config.lua
Normal file
@ -0,0 +1,54 @@
|
||||
vim.wo.number = true
|
||||
vim.wo.relativenumber = false
|
||||
|
||||
vim.g.did_load_filetypes = 1
|
||||
vim.g.formatoptions = "qrn1"
|
||||
vim.opt.showmode = false
|
||||
vim.opt.updatetime = 100
|
||||
vim.wo.signcolumn = "yes"
|
||||
vim.opt.scrolloff = 8
|
||||
vim.opt.wrap = false
|
||||
vim.wo.linebreak = true
|
||||
vim.opt.virtualedit = "block"
|
||||
vim.opt.undofile = true
|
||||
vim.opt.shell = "/bin/zsh"
|
||||
|
||||
-- Mouse
|
||||
vim.opt.mouse = "a"
|
||||
vim.opt.mousefocus = true
|
||||
|
||||
-- Line Numbers
|
||||
vim.opt.number = true
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
-- Splits
|
||||
vim.opt.splitbelow = true
|
||||
vim.opt.splitright = false
|
||||
|
||||
-- Clipboard
|
||||
vim.opt.clipboard = "unnamedplus"
|
||||
|
||||
-- Shorter messages
|
||||
vim.opt.shortmess:append("c")
|
||||
|
||||
-- Indent Settings
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.smartindent = true
|
||||
|
||||
-- Fillchars
|
||||
vim.opt.fillchars = {
|
||||
vert = "│",
|
||||
fold = "⠀",
|
||||
eob = " ", -- suppress ~ at EndOfBuffer
|
||||
-- diff = "⣿", -- alternatives = ⣿ ░ ─ ╱
|
||||
msgsep = "‾",
|
||||
foldopen = "▾",
|
||||
foldsep = "│",
|
||||
foldclose = "▸"
|
||||
}
|
||||
|
||||
vim.cmd([[highlight clear LineNr]])
|
||||
vim.cmd([[highlight clear SignColumn]])
|
7
dotfiles/home/.config/nvim/lua/core/mappings.lua
Normal file
7
dotfiles/home/.config/nvim/lua/core/mappings.lua
Normal file
@ -0,0 +1,7 @@
|
||||
vim.g.mapleader = " "
|
||||
|
||||
|
||||
|
||||
-- Neotree
|
||||
-- vim.keymap.set('n', '<leader>e', ':Neotree float focus<CR>')
|
||||
-- vim.keymap.set('n', '<leader>o', ':Neotree float git_status<CR>')
|
111
dotfiles/home/.config/nvim/lua/core/plugins.lua
Normal file
111
dotfiles/home/.config/nvim/lua/core/plugins.lua
Normal file
@ -0,0 +1,111 @@
|
||||
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
'git',
|
||||
'clone',
|
||||
'--filter=blob:none',
|
||||
'https://github.com/folke/lazy.nvim.git',
|
||||
'--branch=stable', -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require('lazy').setup({
|
||||
|
||||
-----------------------------------------------------------------
|
||||
-- Example
|
||||
-----------------------------------------------------------------
|
||||
|
||||
-- https://github.com/vendor/package
|
||||
-- { 'vendor/package' },
|
||||
|
||||
-----------------------------------------------------------------
|
||||
-- Misc
|
||||
-----------------------------------------------------------------
|
||||
|
||||
-- https://github.com/ThePrimeagen/vim-be-good
|
||||
{ 'ThePrimeagen/vim-be-good' },
|
||||
|
||||
-----------------------------------------------------------------
|
||||
-- Navigation
|
||||
-----------------------------------------------------------------
|
||||
|
||||
-- https://github.com/smoka7/hop.nvim
|
||||
-- { 'smoka7/hop.nvim' },
|
||||
|
||||
-- https://github.com/akinsho/nvim-toggleterm.lua
|
||||
{
|
||||
'akinsho/toggleterm.nvim',
|
||||
version = "*",
|
||||
config = true,
|
||||
},
|
||||
|
||||
-- https://github.com/nvim-neo-tree/neo-tree.nvim
|
||||
-- {
|
||||
-- 'nvim-neo-tree/neo-tree.nvim',
|
||||
-- branch = 'v3.x',
|
||||
-- dependencies = {
|
||||
-- 'nvim-lua/plenary.nvim',
|
||||
-- 'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
|
||||
-- 'MunifTanjim/nui.nvim',
|
||||
-- -- '3rd/image.nvim', -- Optional image support in preview window: See `# Preview Mode` for more information
|
||||
-- }
|
||||
-- },
|
||||
|
||||
-- https://github.com/nvim-telescope/telescope.nvim
|
||||
-- {
|
||||
-- 'nvim-telescope/telescope.nvim',
|
||||
-- branch = '0.1.x',
|
||||
-- dependencies = { 'nvim-lua/plenary.nvim' }
|
||||
-- },
|
||||
|
||||
-----------------------------------------------------------------
|
||||
-- Colors, themes & highlighting
|
||||
-----------------------------------------------------------------
|
||||
|
||||
-- https://github.com/glepnir/dashboard-nvim
|
||||
-- {
|
||||
-- 'glepnir/dashboard-nvim',
|
||||
-- event = 'VimEnter',
|
||||
-- dependencies = {{'nvim-tree/nvim-web-devicons'}}
|
||||
-- },
|
||||
|
||||
-- https://github.com/joshdick/onedark.vim
|
||||
{ 'joshdick/onedark.vim' },
|
||||
|
||||
-- https://github.com/nvim-treesitter/nvim-treesitter
|
||||
-- { 'nvim-treesitter/nvim-treesitter' },
|
||||
|
||||
-- https://github.com/folke/todo-comments.nvim
|
||||
-- { 'folke/todo-comments.nvim' },
|
||||
|
||||
-----------------------------------------------------------------
|
||||
-- LSP & autocomplete
|
||||
-----------------------------------------------------------------
|
||||
|
||||
-- https://github.com/folke/neodev.nvim
|
||||
-- { 'folke/neodev.nvim' },
|
||||
|
||||
-- https://github.com/williamboman/mason.nvim
|
||||
-- { 'williamboman/mason.nvim' },
|
||||
|
||||
-- https://github.com/neovim/nvim-lspconfig
|
||||
-- { 'neovim/nvim-lspconfig' },
|
||||
|
||||
-- https://github.com/hrsh7th/cmp-nvim-lsp
|
||||
-- { 'hrsh7th/cmp-nvim-lsp' },
|
||||
|
||||
-- https://github.com/hrsh7th/cmp-buffer
|
||||
-- { 'hrsh7th/cmp-buffer' },
|
||||
|
||||
-- https://github.com/hrsh7th/cmp-path
|
||||
-- { 'hrsh7th/cmp-path' },
|
||||
|
||||
-- https://github.com/hrsh7th/cmp-cmdline
|
||||
-- { 'hrsh7th/cmp-cmdline' },
|
||||
|
||||
-- https://github.com/hrsh7th/nvim-cmp
|
||||
-- { 'hrsh7th/nvim-cmp' },
|
||||
|
||||
})
|
187
dotfiles/home/.config/nvim/lua/plugins/dashboard.lua
Normal file
187
dotfiles/home/.config/nvim/lua/plugins/dashboard.lua
Normal file
@ -0,0 +1,187 @@
|
||||
local function header()
|
||||
local logos = {
|
||||
-- generated in https://patorjk.com/software/taag/#p=testall&t=NeoVim
|
||||
{
|
||||
'','','',
|
||||
"888888ba dP dP oo ",
|
||||
"88 `8b 88 88 ",
|
||||
"88 88 .d8888b. .d8888b. 88 .8P dP 88d8b.d8b. ",
|
||||
"88 88 88ooood8 88' `88 88 d8' 88 88'`88'`88 ",
|
||||
"88 88 88. ... 88. .88 88 .d8P 88 88 88 88 ",
|
||||
"dP dP `88888P' `88888P' 888888' dP dP dP dP ",
|
||||
'','','',
|
||||
},
|
||||
{
|
||||
'','','','','',
|
||||
" _ _ __ ___ ",
|
||||
"| \\ | | \\ \\ / (_) ",
|
||||
"| \\| | ___ __\\ \\ / / _ _ __ ___ ",
|
||||
"| . ` |/ _ \\/ _ \\ \\/ / | | '_ ` _ \\ ",
|
||||
"| |\\ | __/ (_) \\ / | | | | | | |",
|
||||
"|_| \\_|\\___|\\___/ \\/ |_|_| |_| |_| ",
|
||||
'','','','','',
|
||||
},
|
||||
{
|
||||
'','','','','',
|
||||
" _ _ __ ___ ",
|
||||
"| \\ | | ___ __\\ \\ / (_)_ __ ___",
|
||||
" | \\| |/ _ \\/ _ \\ \\ / /| | '_ ` _ \\",
|
||||
" | |\\ | __/ (_) \\ V / | | | | | | |",
|
||||
" |_| \\_|\\___|\\___/ \\_/ |_|_| |_| |_|",
|
||||
'','','','','',
|
||||
},
|
||||
{
|
||||
'','','','','',
|
||||
" _ __ __ ___ ",
|
||||
" / | / /__ ____| | / (_)___ ___ ",
|
||||
" / |/ / _ \\/ __ \\ | / / / __ `__ \\",
|
||||
" / /| / __/ /_/ / |/ / / / / / / /",
|
||||
"/_/ |_/\\___/\\____/|___/_/_/ /_/ /_/ ",
|
||||
'','','','','',
|
||||
},
|
||||
{
|
||||
'','','',
|
||||
'888b 888 888 888 d8b ',
|
||||
'8888b 888 888 888 Y8P ',
|
||||
'88888b 888 888 888 ',
|
||||
'888Y88b 888 .d88b. .d88b. Y88b d88P 888 88888b.d88b. ',
|
||||
'888 Y88b888 d8P Y8b d88""88b Y88b d88P 888 888 "888 "88b ',
|
||||
'888 Y88888 88888888 888 888 Y88o88P 888 888 888 888 ',
|
||||
'888 Y8888 Y8b. Y88..88P Y888P 888 888 888 888 ',
|
||||
'888 Y888 "Y8888 "Y88P" Y8P 888 888 888 888 ',
|
||||
'','','',
|
||||
},
|
||||
{
|
||||
'','','',
|
||||
"███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗",
|
||||
"████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║",
|
||||
"██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║",
|
||||
"██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║",
|
||||
"██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║",
|
||||
"╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝",
|
||||
'','','',
|
||||
},
|
||||
{
|
||||
'','','',
|
||||
"███ ██ ███████ ██████ ██ ██ ██ ███ ███ ",
|
||||
"████ ██ ██ ██ ██ ██ ██ ██ ████ ████ ",
|
||||
"██ ██ ██ █████ ██ ██ ██ ██ ██ ██ ████ ██ ",
|
||||
"██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ",
|
||||
"██ ████ ███████ ██████ ████ ██ ██ ██ ",
|
||||
'','','',
|
||||
},
|
||||
{
|
||||
'','','',
|
||||
"_ _______ _______ _________ _______ ",
|
||||
"( ( /|( ____ \\( ___ )|\\ /|\\__ __/( )",
|
||||
"| \\ ( || ( \\/| ( ) || ) ( | ) ( | () () |",
|
||||
"| \\ | || (__ | | | || | | | | | | || || |",
|
||||
"| (\\ \\) || __) | | | |( ( ) ) | | | |(_)| |",
|
||||
"| | \\ || ( | | | | \\ \\_/ / | | | | | |",
|
||||
"| ) \\ || (____/\\| (___) | \\ / ___) (___| ) ( |",
|
||||
"|/ )_)(_______/(_______) \\_/ \\_______/|/ \\|",
|
||||
'','','',
|
||||
},
|
||||
{
|
||||
'','','',
|
||||
"$$\\ $$\\ $$\\ $$\\ $$\\ ",
|
||||
"$$$\\ $$ | $$ | $$ |\\__| ",
|
||||
"$$$$\\ $$ | $$$$$$\\ $$$$$$\\ $$ | $$ |$$\\ $$$$$$\\$$$$\\ ",
|
||||
"$$ $$\\$$ |$$ __$$\\ $$ __$$\\\\$$\\ $$ |$$ |$$ _$$ _$$\\ ",
|
||||
"$$ \\$$$$ |$$$$$$$$ |$$ / $$ |\\$$\\$$ / $$ |$$ / $$ / $$ |",
|
||||
"$$ |\\$$$ |$$ ____|$$ | $$ | \\$$$ / $$ |$$ | $$ | $$ |",
|
||||
"$$ | \\$$ |\\$$$$$$$\\ \\$$$$$$ | \\$ / $$ |$$ | $$ | $$ |",
|
||||
"\\__| \\__| \\_______| \\______/ \\_/ \\__|\\__| \\__| \\__|",
|
||||
'','','',
|
||||
},
|
||||
{
|
||||
'','','',
|
||||
" /$$ /$$ /$$ /$$ /$$ ",
|
||||
"| $$$ | $$ | $$ | $$|__/ ",
|
||||
"| $$$$| $$ /$$$$$$ /$$$$$$ | $$ | $$ /$$ /$$$$$$/$$$$",
|
||||
"| $$ $$ $$ /$$__ $$ /$$__ $$| $$ / $$/| $$| $$_ $$_ $$",
|
||||
"| $$ $$$$| $$$$$$$$| $$ \\ $$ \\ $$ $$/ | $$| $$ \\ $$ \\ $$",
|
||||
"| $$\\ $$$| $$_____/| $$ | $$ \\ $$$/ | $$| $$ | $$ | $$",
|
||||
"| $$ \\ $$| $$$$$$$| $$$$$$/ \\ $/ | $$| $$ | $$ | $$",
|
||||
"|__/ \\__/ \\_______/ \\______/ \\_/ |__/|__/ |__/ |__/",
|
||||
'','','',
|
||||
},
|
||||
{
|
||||
'','','',
|
||||
"__ __ __ __ __ ",
|
||||
"| \\ | \\ | \\ | \\| \\ ",
|
||||
"| $$\\ | $$ ______ ______ | $$ | $$ \\$$ ______ ____ ",
|
||||
"| $$$\\| $$ / \\ / \\| $$ | $$| \\| \\ \\ ",
|
||||
"| $$$$\\ $$| $$$$$$\\| $$$$$$\\\\$$\\ / $$| $$| $$$$$$\\$$$$\\",
|
||||
"| $$\\$$ $$| $$ $$| $$ | $$ \\$$\\ $$ | $$| $$ | $$ | $$",
|
||||
"| $$ \\$$$$| $$$$$$$$| $$__/ $$ \\$$ $$ | $$| $$ | $$ | $$",
|
||||
"| $$ \\$$$ \\$$ \\ \\$$ $$ \\$$$ | $$| $$ | $$ | $$",
|
||||
" \\$$ \\$$ \\$$$$$$$ \\$$$$$$ \\$ \\$$ \\$$ \\$$ \\$$",
|
||||
'','','',
|
||||
},
|
||||
{
|
||||
'','','',
|
||||
"__ __ __ __ __ ",
|
||||
"/ \\ / | / | / |/ | ",
|
||||
"$$ \\ $$ | ______ ______ $$ | $$ |$$/ _____ ____ ",
|
||||
"$$$ \\$$ | / \\ / \\ $$ | $$ |/ |/ \\/ \\ ",
|
||||
"$$$$ $$ |/$$$$$$ |/$$$$$$ |$$ \\ /$$/ $$ |$$$$$$ $$$$ |",
|
||||
"$$ $$ $$ |$$ $$ |$$ | $$ | $$ /$$/ $$ |$$ | $$ | $$ |",
|
||||
"$$ |$$$$ |$$$$$$$$/ $$ \\__$$ | $$ $$/ $$ |$$ | $$ | $$ |",
|
||||
"$$ | $$$ |$$ |$$ $$/ $$$/ $$ |$$ | $$ | $$ |",
|
||||
"$$/ $$/ $$$$$$$/ $$$$$$/ $/ $$/ $$/ $$/ $$/ ",
|
||||
'','','',
|
||||
},
|
||||
}
|
||||
math.randomseed(os.time())
|
||||
return logos[math.random(#logos)]
|
||||
end
|
||||
|
||||
require('dashboard').setup({
|
||||
theme = 'doom',
|
||||
config = {
|
||||
header = header(),
|
||||
center = {
|
||||
{
|
||||
icon = ' ',
|
||||
icon_hl = 'Title',
|
||||
desc = 'Open tree',
|
||||
desc_hl = 'String',
|
||||
key = 'e',
|
||||
keymap = 'SPC e',
|
||||
key_hl = 'Number',
|
||||
action = ':Neotree float'
|
||||
},
|
||||
{
|
||||
icon = ' ',
|
||||
icon_hl = 'Title',
|
||||
desc = 'Find files',
|
||||
desc_hl = 'String',
|
||||
key = 'f',
|
||||
keymap = 'SPC f f',
|
||||
key_hl = 'Number',
|
||||
action = ':Telescope find_files'
|
||||
},
|
||||
{
|
||||
icon = ' ',
|
||||
icon_hl = 'Title',
|
||||
desc = 'Find text',
|
||||
desc_hl = 'String',
|
||||
key = 'w',
|
||||
keymap = 'SPC f w',
|
||||
key_hl = 'Number',
|
||||
action = ':Telescope live_grep'
|
||||
},
|
||||
{
|
||||
icon = ' ',
|
||||
icon_hl = 'Title',
|
||||
desc = 'Git Braches',
|
||||
desc_hl = 'String',
|
||||
key = 'b',
|
||||
keymap = 'SPC g b',
|
||||
key_hl = 'Number',
|
||||
action = ':Telescope git_branches'
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
60
dotfiles/home/.config/nvim/lua/plugins/lsp.lua
Normal file
60
dotfiles/home/.config/nvim/lua/plugins/lsp.lua
Normal file
@ -0,0 +1,60 @@
|
||||
-- require('lspconfig').pyright.setup{}
|
||||
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
|
||||
-- Sntup language servers.
|
||||
local lspconfig = require('lspconfig')
|
||||
lspconfig.pyright.setup {}
|
||||
lspconfig.tsserver.setup {}
|
||||
lspconfig.prismals.setup {}
|
||||
lspconfig.cssls.setup {
|
||||
capabilities = capabilities
|
||||
}
|
||||
lspconfig.golangci_lint_ls.setup {}
|
||||
lspconfig.rust_analyzer.setup {
|
||||
settings = {
|
||||
['rust-analyzer'] = {
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
experimental = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
-- Global mappings.
|
||||
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
|
||||
vim.keymap.set('n', '<leader>lD', vim.diagnostic.open_float)
|
||||
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
|
||||
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
|
||||
vim.keymap.set('n', '<leader>ld', vim.diagnostic.setloclist)
|
||||
|
||||
-- Use LspAttach autocommand to only map the following keys
|
||||
-- after the language server attaches to the current buffer
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
|
||||
callback = function(ev)
|
||||
-- Enable completion triggered by <c-x><c-o>
|
||||
vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
|
||||
|
||||
local opts = {buffer = ev.buf}
|
||||
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
|
||||
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
||||
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
|
||||
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
|
||||
-- vim.keymap
|
||||
-- .set('n', '<Leader>sa', vim.lsp.buf.add_workspace_folder, opts)
|
||||
-- vim.keymap.set('n', '<Leader>sr', vim.lsp.buf.remove_workspace_folder,
|
||||
-- opts)
|
||||
-- vim.keymap.set('n', '<Leader>sl', function()
|
||||
-- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
-- end, opts)
|
||||
-- vim.keymap.set('n', '<Leader>D', vim.lsp.buf.type_definition, opts)
|
||||
vim.keymap.set('n', '<Leader>lr', vim.lsp.buf.rename, opts)
|
||||
vim.keymap.set({'n', 'v'}, '<Leader>la', vim.lsp.buf.code_action, opts)
|
||||
-- vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
|
||||
vim.keymap.set('n', '<Leader>lf',
|
||||
function() vim.lsp.buf.format {async = true} end, opts)
|
||||
end
|
||||
})
|
1
dotfiles/home/.config/nvim/lua/plugins/mason.lua
Normal file
1
dotfiles/home/.config/nvim/lua/plugins/mason.lua
Normal file
@ -0,0 +1 @@
|
||||
require("mason").setup()
|
278
dotfiles/home/.config/nvim/lua/plugins/neotree.lua
Normal file
278
dotfiles/home/.config/nvim/lua/plugins/neotree.lua
Normal file
@ -0,0 +1,278 @@
|
||||
-- https://github.com/nvim-neo-tree/neo-tree.nvim
|
||||
|
||||
-- If you want icons for diagnostic errors, you'll need to define them somewhere:
|
||||
vim.fn.sign_define("DiagnosticSignError", { text = " ", texthl = "DiagnosticSignError" })
|
||||
vim.fn.sign_define("DiagnosticSignWarn", { text = " ", texthl = "DiagnosticSignWarn" })
|
||||
vim.fn.sign_define("DiagnosticSignInfo", { text = " ", texthl = "DiagnosticSignInfo" })
|
||||
vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" })
|
||||
|
||||
require("neo-tree").setup({
|
||||
close_if_last_window = true, -- Close Neo-tree if it is the last window left in the tab
|
||||
popup_border_style = "rounded",
|
||||
enable_git_status = true,
|
||||
enable_diagnostics = true,
|
||||
enable_normal_mode_for_inputs = false, -- Enable normal mode for input dialogs.
|
||||
open_files_do_not_replace_types = { "terminal", "trouble", "qf" }, -- when opening files, do not use windows containing these filetypes or buftypes
|
||||
sort_case_insensitive = false, -- used when sorting files and directories in the tree
|
||||
sort_function = nil, -- use a custom function for sorting files and directories in the tree
|
||||
-- sort_function = function (a,b)
|
||||
-- if a.type == b.type then
|
||||
-- return a.path > b.path
|
||||
-- else
|
||||
-- return a.type > b.type
|
||||
-- end
|
||||
-- end , -- this sorts files and directories descendantly
|
||||
default_component_configs = {
|
||||
container = {
|
||||
enable_character_fade = true
|
||||
},
|
||||
indent = {
|
||||
indent_size = 2,
|
||||
padding = 1, -- extra padding on left hand side
|
||||
-- indent guides
|
||||
with_markers = true,
|
||||
indent_marker = "│",
|
||||
last_indent_marker = "└",
|
||||
highlight = "NeoTreeIndentMarker",
|
||||
-- expander config, needed for nesting files
|
||||
with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders
|
||||
expander_collapsed = "",
|
||||
expander_expanded = "",
|
||||
expander_highlight = "NeoTreeExpander",
|
||||
},
|
||||
icon = {
|
||||
folder_closed = "",
|
||||
folder_open = "",
|
||||
folder_empty = "",
|
||||
-- The next two settings are only a fallback, if you use nvim-web-devicons and configure default icons there
|
||||
-- then these will never be used.
|
||||
default = "*",
|
||||
highlight = "NeoTreeFileIcon"
|
||||
},
|
||||
modified = {
|
||||
symbol = "[+]",
|
||||
highlight = "NeoTreeModified",
|
||||
},
|
||||
name = {
|
||||
trailing_slash = false,
|
||||
use_git_status_colors = true,
|
||||
highlight = "NeoTreeFileName",
|
||||
},
|
||||
git_status = {
|
||||
symbols = {
|
||||
-- Change type
|
||||
added = "", -- or "✚", but this is redundant info if you use git_status_colors on the name
|
||||
modified = "", -- or "", but this is redundant info if you use git_status_colors on the name
|
||||
deleted = "✖", -- this can only be used in the git_status source
|
||||
renamed = "", -- this can only be used in the git_status source
|
||||
-- Status type
|
||||
untracked = "",
|
||||
ignored = "",
|
||||
unstaged = "",
|
||||
staged = "",
|
||||
conflict = "",
|
||||
}
|
||||
},
|
||||
-- If you don't want to use these columns, you can set `enabled = false` for each of them individually
|
||||
file_size = {
|
||||
enabled = true,
|
||||
required_width = 64, -- min width of window required to show this column
|
||||
},
|
||||
type = {
|
||||
enabled = true,
|
||||
required_width = 122, -- min width of window required to show this column
|
||||
},
|
||||
last_modified = {
|
||||
enabled = true,
|
||||
required_width = 88, -- min width of window required to show this column
|
||||
},
|
||||
created = {
|
||||
enabled = true,
|
||||
required_width = 110, -- min width of window required to show this column
|
||||
},
|
||||
symlink_target = {
|
||||
enabled = false,
|
||||
},
|
||||
},
|
||||
-- A list of functions, each representing a global custom command
|
||||
-- that will be available in all sources (if not overridden in `opts[source_name].commands`)
|
||||
-- see `:h neo-tree-custom-commands-global`
|
||||
commands = {},
|
||||
window = {
|
||||
position = "left",
|
||||
width = 40,
|
||||
mapping_options = {
|
||||
noremap = true,
|
||||
nowait = true,
|
||||
},
|
||||
-- mappings = {
|
||||
-- ["<space>"] = {
|
||||
-- "toggle_node",
|
||||
-- nowait = false, -- disable `nowait` if you have existing combos starting with this char that you want to use
|
||||
-- },
|
||||
-- ["<2-LeftMouse>"] = "open",
|
||||
-- ["<cr>"] = "open",
|
||||
-- ["<esc>"] = "cancel", -- close preview or floating neo-tree window
|
||||
-- ["P"] = { "toggle_preview", config = { use_float = true, use_image_nvim = true } },
|
||||
-- -- Read `# Preview Mode` for more information
|
||||
-- ["l"] = "focus_preview",
|
||||
-- ["S"] = "open_split",
|
||||
-- ["s"] = "open_vsplit",
|
||||
-- -- ["S"] = "split_with_window_picker",
|
||||
-- -- ["s"] = "vsplit_with_window_picker",
|
||||
-- ["t"] = "open_tabnew",
|
||||
-- -- ["<cr>"] = "open_drop",
|
||||
-- -- ["t"] = "open_tab_drop",
|
||||
-- ["w"] = "open_with_window_picker",
|
||||
-- --["P"] = "toggle_preview", -- enter preview mode, which shows the current node without focusing
|
||||
-- ["C"] = "close_node",
|
||||
-- -- ['C'] = 'close_all_subnodes',
|
||||
-- ["z"] = "close_all_nodes",
|
||||
-- --["Z"] = "expand_all_nodes",
|
||||
-- ["a"] = {
|
||||
-- "add",
|
||||
-- -- this command supports BASH style brace expansion ("x{a,b,c}" -> xa,xb,xc). see `:h neo-tree-file-actions` for details
|
||||
-- -- some commands may take optional config options, see `:h neo-tree-mappings` for details
|
||||
-- config = {
|
||||
-- show_path = "none" -- "none", "relative", "absolute"
|
||||
-- }
|
||||
-- },
|
||||
-- ["A"] = "add_directory", -- also accepts the optional config.show_path option like "add". this also supports BASH style brace expansion.
|
||||
-- ["d"] = "delete",
|
||||
-- ["r"] = "rename",
|
||||
-- ["y"] = "copy_to_clipboard",
|
||||
-- ["x"] = "cut_to_clipboard",
|
||||
-- ["p"] = "paste_from_clipboard",
|
||||
-- ["c"] = "copy", -- takes text input for destination, also accepts the optional config.show_path option like "add":
|
||||
-- -- ["c"] = {
|
||||
-- -- "copy",
|
||||
-- -- config = {
|
||||
-- -- show_path = "none" -- "none", "relative", "absolute"
|
||||
-- -- }
|
||||
-- --}
|
||||
-- ["m"] = "move", -- takes text input for destination, also accepts the optional config.show_path option like "add".
|
||||
-- ["q"] = "close_window",
|
||||
-- ["R"] = "refresh",
|
||||
-- ["?"] = "show_help",
|
||||
-- ["<"] = "prev_source",
|
||||
-- [">"] = "next_source",
|
||||
-- ["i"] = "show_file_details",
|
||||
-- }
|
||||
},
|
||||
nesting_rules = {},
|
||||
filesystem = {
|
||||
filtered_items = {
|
||||
visible = true, -- when true, they will just be displayed differently than normal items
|
||||
hide_dotfiles = false,
|
||||
hide_gitignored = false,
|
||||
hide_hidden = false, -- only works on Windows for hidden files/directories
|
||||
-- hide_by_name = {
|
||||
-- "node_modules"
|
||||
-- },
|
||||
-- hide_by_pattern = { -- uses glob style patterns
|
||||
--"*.meta",
|
||||
--"*/src/*/tsconfig.json",
|
||||
-- },
|
||||
always_show = { -- remains visible even if other settings would normally hide it
|
||||
".gitignore",
|
||||
},
|
||||
never_show = { -- remains hidden even if visible is toggled to true, this overrides always_show
|
||||
".DS_Store",
|
||||
"thumbs.db"
|
||||
},
|
||||
-- never_show_by_pattern = { -- uses glob style patterns
|
||||
--".null-ls_*",
|
||||
-- },
|
||||
},
|
||||
follow_current_file = {
|
||||
enabled = false, -- This will find and focus the file in the active buffer every time
|
||||
-- -- the current file is changed while the tree is open.
|
||||
leave_dirs_open = false, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
|
||||
},
|
||||
group_empty_dirs = true, -- when true, empty folders will be grouped together
|
||||
-- hijack_netrw_behavior = "open_default", -- netrw disabled, opening a directory opens neo-tree
|
||||
-- in whatever position is specified in window.position
|
||||
-- "open_current", -- netrw disabled, opening a directory opens within the
|
||||
-- window like netrw would, regardless of window.position
|
||||
-- "disabled", -- netrw left alone, neo-tree does not handle opening dirs
|
||||
use_libuv_file_watcher = true, -- This will use the OS level file watchers to detect changes
|
||||
-- instead of relying on nvim autocmd events.
|
||||
-- window = {
|
||||
-- mappings = {
|
||||
-- ["<bs>"] = "navigate_up",
|
||||
-- ["."] = "set_root",
|
||||
-- ["H"] = "toggle_hidden",
|
||||
-- ["/"] = "fuzzy_finder",
|
||||
-- ["D"] = "fuzzy_finder_directory",
|
||||
-- ["#"] = "fuzzy_sorter", -- fuzzy sorting using the fzy algorithm
|
||||
-- -- ["D"] = "fuzzy_sorter_directory",
|
||||
-- ["f"] = "filter_on_submit",
|
||||
-- ["<c-x>"] = "clear_filter",
|
||||
-- ["[g"] = "prev_git_modified",
|
||||
-- ["]g"] = "next_git_modified",
|
||||
-- ["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } },
|
||||
-- ["oc"] = { "order_by_created", nowait = false },
|
||||
-- ["od"] = { "order_by_diagnostics", nowait = false },
|
||||
-- ["og"] = { "order_by_git_status", nowait = false },
|
||||
-- ["om"] = { "order_by_modified", nowait = false },
|
||||
-- ["on"] = { "order_by_name", nowait = false },
|
||||
-- ["os"] = { "order_by_size", nowait = false },
|
||||
-- ["ot"] = { "order_by_type", nowait = false },
|
||||
-- -- ['<key>'] = function(state) ... end,
|
||||
-- },
|
||||
-- fuzzy_finder_mappings = { -- define keymaps for filter popup window in fuzzy_finder_mode
|
||||
-- ["<down>"] = "move_cursor_down",
|
||||
-- ["<C-n>"] = "move_cursor_down",
|
||||
-- ["<up>"] = "move_cursor_up",
|
||||
-- ["<C-p>"] = "move_cursor_up",
|
||||
-- -- ['<key>'] = function(state, scroll_padding) ... end,
|
||||
-- },
|
||||
-- },
|
||||
|
||||
commands = {} -- Add a custom command or override a global one using the same function name
|
||||
},
|
||||
-- buffers = {
|
||||
-- follow_current_file = {
|
||||
-- enabled = true, -- This will find and focus the file in the active buffer every time
|
||||
-- -- -- the current file is changed while the tree is open.
|
||||
-- leave_dirs_open = false, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
|
||||
-- },
|
||||
-- group_empty_dirs = true, -- when true, empty folders will be grouped together
|
||||
-- show_unloaded = true,
|
||||
-- window = {
|
||||
-- mappings = {
|
||||
-- ["bd"] = "buffer_delete",
|
||||
-- ["<bs>"] = "navigate_up",
|
||||
-- ["."] = "set_root",
|
||||
-- ["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } },
|
||||
-- ["oc"] = { "order_by_created", nowait = false },
|
||||
-- ["od"] = { "order_by_diagnostics", nowait = false },
|
||||
-- ["om"] = { "order_by_modified", nowait = false },
|
||||
-- ["on"] = { "order_by_name", nowait = false },
|
||||
-- ["os"] = { "order_by_size", nowait = false },
|
||||
-- ["ot"] = { "order_by_type", nowait = false },
|
||||
-- }
|
||||
-- },
|
||||
-- },
|
||||
git_status = {
|
||||
window = {
|
||||
position = "float",
|
||||
mappings = {
|
||||
["A"] = "git_add_all",
|
||||
["gu"] = "git_unstage_file",
|
||||
["ga"] = "git_add_file",
|
||||
["gr"] = "git_revert_file",
|
||||
["gc"] = "git_commit",
|
||||
["gp"] = "git_push",
|
||||
["gg"] = "git_commit_and_push",
|
||||
["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } },
|
||||
["oc"] = { "order_by_created", nowait = false },
|
||||
["od"] = { "order_by_diagnostics", nowait = false },
|
||||
["om"] = { "order_by_modified", nowait = false },
|
||||
["on"] = { "order_by_name", nowait = false },
|
||||
["os"] = { "order_by_size", nowait = false },
|
||||
["ot"] = { "order_by_type", nowait = false },
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
12
dotfiles/home/.config/nvim/lua/plugins/telescope.lua
Normal file
12
dotfiles/home/.config/nvim/lua/plugins/telescope.lua
Normal file
@ -0,0 +1,12 @@
|
||||
local builtin = require('telescope.builtin')
|
||||
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
|
||||
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
|
||||
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
|
||||
-- vim.keymap.set('n', '<Tab>', builtin.buffers, {})
|
||||
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
|
||||
vim.keymap.set('n', '<leader>gb', builtin.git_branches, {})
|
||||
vim.keymap.set('n', '<leader>gc', builtin.git_commits, {})
|
||||
vim.keymap.set('n', '<leader>gs', builtin.git_status, {})
|
||||
vim.keymap.set('n', '<leader>ls', builtin.lsp_document_symbols, {})
|
||||
vim.keymap.set('n', 'gr', builtin.lsp_references, {noremap = true, silent = true})
|
||||
vim.keymap.set('n', 'gd', builtin.lsp_definitions, {noremap = true, silent = true})
|
41
dotfiles/home/.config/nvim/lua/plugins/treesitter.lua
Normal file
41
dotfiles/home/.config/nvim/lua/plugins/treesitter.lua
Normal file
@ -0,0 +1,41 @@
|
||||
require 'nvim-treesitter.configs'.setup {
|
||||
-- A list of parser names, or "all" (the five listed parsers should always be installed)
|
||||
-- ensure_installed = {"vim", "lua", "go", "bash", "diff", "css", "dockerfile", "git_config", "git_rebase", "git_attributes", "gitcommit", "gitignore", "gomod"},
|
||||
ensure_installed = "all",
|
||||
|
||||
-- Install parsers synchronously (only applied to `ensure_installed`)
|
||||
sync_install = false,
|
||||
|
||||
-- Automatically install missing parsers when entering buffer
|
||||
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
||||
auto_install = true,
|
||||
|
||||
-- List of parsers to ignore installing (or "all")
|
||||
-- ignore_install = { "javascript" },
|
||||
|
||||
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
|
||||
-- parser_install_dir = "/some/path/to/store/parsers", -- Rem ember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
|
||||
|
||||
highlight = {
|
||||
enable = true,
|
||||
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
|
||||
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
|
||||
-- the name of the parser)
|
||||
-- list of language that will be disabled
|
||||
-- disable = { "c", "rust" },
|
||||
-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
|
||||
-- disable = function(lang, buf)
|
||||
-- local max_filesize = 100 * 1024 -- 100 KB
|
||||
-- local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
|
||||
-- if ok and stats and stats.size > max_filesize then
|
||||
-- return true
|
||||
-- end
|
||||
-- end,
|
||||
|
||||
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
||||
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
||||
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
||||
-- Instead of true it can also be a list of languages
|
||||
-- additional_vim_regex_highlighting = false,
|
||||
},
|
||||
}
|
1
helpers
1
helpers
@ -21,6 +21,7 @@ require() {
|
||||
done
|
||||
if [ ${#sw[@]} -gt 0 ]; then
|
||||
info "This packages will be installed in your system:\n${sw[*]}"
|
||||
#TODO use local install script if possible
|
||||
apt_install "${sw[*]}"
|
||||
[ $? -gt 0 ] && die "installation cancelled" 201
|
||||
fi
|
||||
|
53
install/nvim
Executable file
53
install/nvim
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
##makedesc: Install neovim (latest)
|
||||
source `dirname $0`/../helpers || exit 255
|
||||
|
||||
# https://github.com/neovim/neovim/blob/master/INSTALL.md#linux
|
||||
# https://github.com/folke/lazy.nvim/blob/main/README.md#-installation
|
||||
# https://raw.githubusercontent.com/neovim/neovim/master/runtime/nvim.desktop
|
||||
|
||||
title
|
||||
|
||||
require git wget tar grep
|
||||
|
||||
[ -d "$HOME/.config/nvim" ] && mv -f "$HOME/.config/nvim" $HOME/.config/nvim.bak
|
||||
mkdir -p $HOME/install $HOME/.config/nvim/lua/{core,plugins}
|
||||
|
||||
tee <<EOF "$HOME/.config/nvim/init.lua" > /dev/null
|
||||
-- plugins
|
||||
require('core.plugins')
|
||||
EOF
|
||||
|
||||
tee <<EOF "$HOME/.config/nvim/lua/core/plugins.lua" > /dev/null
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--filter=blob:none",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
"--branch=stable", -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- install plugins
|
||||
require("lazy").setup({
|
||||
{ 'phaazon/hop.nvim' }
|
||||
})
|
||||
EOF
|
||||
|
||||
download https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz "$HOME/install/nvim.tar.gz" && \
|
||||
sudo rm -rf /opt/nvim && \
|
||||
sudo tar -zxf "$HOME/install/nvim.tar.gz" -C /opt
|
||||
|
||||
NEWPATH="export PATH=\"/opt/nvim-linux64/bin:\$PATH\""
|
||||
cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
|
||||
$NEWPATH
|
||||
echo "$NEWPATH" >> "$HOME/.profile"
|
||||
}
|
||||
|
||||
echo
|
||||
success "NeoVim installed!"
|
||||
echo
|
Loading…
Reference in New Issue
Block a user