Compare commits
3 Commits
dacd5b41e5
...
ea605493d5
Author | SHA1 | Date | |
---|---|---|---|
ea605493d5 | |||
8e38c3e70b | |||
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,
|
||||||
|
},
|
||||||
|
}
|
@ -3,6 +3,7 @@
|
|||||||
source `dirname $0`/../helpers || exit 255
|
source `dirname $0`/../helpers || exit 255
|
||||||
|
|
||||||
# https://www.jetbrains.com/lp/mono/#how-to-install
|
# https://www.jetbrains.com/lp/mono/#how-to-install
|
||||||
|
# https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/JetBrainsMono.zip
|
||||||
|
|
||||||
title
|
title
|
||||||
|
|
||||||
|
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