This commit is contained in:
Anthony Axenov 2024-05-31 00:15:08 +08:00
parent f72d7d268e
commit 65df2d7094
Signed by: anthony
GPG Key ID: EA9EC32FF7CCD4EC
14 changed files with 835 additions and 0 deletions

View 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')

View 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" }
}

View 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()

View 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]])

View 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>')

View 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' },
})

View 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'
}
}
}
})

View 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
})

View File

@ -0,0 +1 @@
require("mason").setup()

View 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 },
}
}
}
})

View 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})

View 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,
},
}

View File

@ -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
View 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