More configuration updates

This commit is contained in:
Hazem Krimi
2025-02-13 02:01:56 +01:00
parent 5b20f2406f
commit d19a34bcfd
14 changed files with 391 additions and 173 deletions
+6
View File
@@ -0,0 +1,6 @@
column_width = 160
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferSingle"
call_parentheses = "None"
+13 -9
View File
@@ -1,29 +1,33 @@
require 'core.options' require 'core.options'
require 'core.keymaps' require 'core.keymaps'
require 'core.autocommands'
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
if not (vim.uv or vim.loop).fs_stat(lazypath) then if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = 'https://github.com/folke/lazy.nvim.git' local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
local out = vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath } local out = vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath }
if vim.v.shell_error ~= 0 then if vim.v.shell_error ~= 0 then
error('Error cloning lazy.nvim:\n' .. out) error('Error cloning lazy.nvim:\n' .. out)
end end
end end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
require('lazy').setup({ require('lazy').setup {
require 'plugins.alpha',
require 'plugins.colorscheme', require 'plugins.colorscheme',
require 'plugins.neotree', require 'plugins.neo-tree',
require 'plugins.bufferline', require 'plugins.bufferline',
require 'plugins.lualine', require 'plugins.lualine',
require 'plugins.treesitter', require 'plugins.treesitter',
require 'plugins.telescope', require 'plugins.telescope',
require 'plugins.lsp', require 'plugins.lsp',
require 'plugins.dap',
require 'plugins.formatting',
require 'plugins.autocompletion', require 'plugins.autocompletion',
require 'plugins.gitsigns', require 'plugins.gitsigns',
require 'plugins.indent-blankline', require 'plugins.indent-blankline',
require 'plugins.render-markdown',
require 'plugins.misc', require 'plugins.misc',
require 'plugins.copilot' }
})
+24 -18
View File
@@ -1,38 +1,44 @@
{ {
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, "LuaSnip": { "branch": "master", "commit": "e808bee352d1a6fcf902ca1a71cee76e60e24071" },
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"conform.nvim": { "branch": "master", "commit": "1a99fdc1d3aa9ccdf3021e67982a679a8c5c740c" },
"copilot.vim": { "branch": "release", "commit": "87038123804796ca7af20d1b71c3428d858a9124" }, "copilot.vim": { "branch": "release", "commit": "87038123804796ca7af20d1b71c3428d858a9124" },
"fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "fidget.nvim": { "branch": "main", "commit": "d855eed8a06531a7e8fd0684889b2943f373c469" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"gitsigns.nvim": { "branch": "main", "commit": "4baa13519c2168cc9a7890a3580c50226ed018fb" }, "gitsigns.nvim": { "branch": "main", "commit": "863903631e676b33e8be2acb17512fdc1b80b4fb" },
"indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, "indent-blankline.nvim": { "branch": "master", "commit": "e7a4442e055ec953311e77791546238d1eaae507" },
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" }, "lazy.nvim": { "branch": "main", "commit": "7967abe55752aa90532e6bb4bd4663fe27a264cb" },
"lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" }, "lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "f75e877f5266e87523eb5a18fcde2081820d087b" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "374c78d3ebb5c53f43ea6bd906b6587b5e899b9e" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "5d172e8315444dbc32867d1c7b04d8e7e68ec4e1" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "5d172e8315444dbc32867d1c7b04d8e7e68ec4e1" },
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" }, "nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
"nvim-autopairs": { "branch": "master", "commit": "3d02855468f94bf435db41b661b58ec4f48a06b7" }, "nvim-autopairs": { "branch": "master", "commit": "3d02855468f94bf435db41b661b58ec4f48a06b7" },
"nvim-cmp": { "branch": "main", "commit": "12509903a5723a876abd65953109f926f4634c30" }, "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-lspconfig": { "branch": "master", "commit": "6c17f8656f667727b27f5f598463afedb7791b18" }, "nvim-dap": { "branch": "master", "commit": "52302f02fea3a490e55475de52fa4deb8af2eb11" },
"nvim-treesitter": { "branch": "master", "commit": "a840137349fcc35b5ad2c718a9b034b93012fa43" }, "nvim-dap-ui": { "branch": "master", "commit": "bc81f8d3440aede116f821114547a476b082b319" },
"nvim-web-devicons": { "branch": "master", "commit": "402377242b04be3f4f0f3720bd952df86e946c30" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "df66808cd78b5a97576bbaeee95ed5ca385a9750" },
"nvim-lspconfig": { "branch": "master", "commit": "0678aa439b82965daf03679cd146e84f10e299c3" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-treesitter": { "branch": "master", "commit": "d1e1f17cea23f14cbe230635b9bb654a835f02d7" },
"nvim-web-devicons": { "branch": "master", "commit": "56f17def81478e406e3a8ec4aa727558e79786f3" },
"nvim-window-picker": { "branch": "main", "commit": "0dfef64eaf063e1cd27983ab11a30e7bc5b74fac" }, "nvim-window-picker": { "branch": "main", "commit": "0dfef64eaf063e1cd27983ab11a30e7bc5b74fac" },
"plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" }, "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
"tokyonight.nvim": { "branch": "main", "commit": "dca4adba7dc5f09302a00b0e76078d54d82d2658" }, "tokyonight.nvim": { "branch": "main", "commit": "2c85fad417170d4572ead7bf9fdd706057bd73d7" },
"vim-bbye": { "branch": "master", "commit": "25ef93ac5a87526111f43e5110675032dbcacf56" }, "vim-bbye": { "branch": "master", "commit": "25ef93ac5a87526111f43e5110675032dbcacf56" },
"vim-fugitive": { "branch": "master", "commit": "b068eaf1e6cbe35d1ac100d435cd7f7b74a5c87d" }, "vim-fugitive": { "branch": "master", "commit": "b068eaf1e6cbe35d1ac100d435cd7f7b74a5c87d" },
"vim-rhubarb": { "branch": "master", "commit": "386daa2e9d98e23e27ad089afcbe5c5a903e488d" }, "vim-rhubarb": { "branch": "master", "commit": "386daa2e9d98e23e27ad089afcbe5c5a903e488d" },
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
"which-key.nvim": { "branch": "main", "commit": "0e76a87ac51772569aec678dc74baa8e2a86100c" } "which-key.nvim": { "branch": "main", "commit": "fb070344402cfc662299d9914f5546d840a22126" }
} }
+10
View File
@@ -0,0 +1,10 @@
-- Highlight when yanking (copying) text
-- Try it with `yap` in normal mode
-- See `:help vim.highlight.on_yank()`
vim.api.nvim_create_autocmd('TextYankPost', {
desc = 'Highlight when yanking (copying) text',
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
callback = function()
vim.highlight.on_yank()
end,
})
+26
View File
@@ -0,0 +1,26 @@
return {
'goolord/alpha-nvim',
dependencies = {
'nvim-tree/nvim-web-devicons',
},
config = function()
local alpha = require 'alpha'
local dashboard = require 'alpha.themes.startify'
dashboard.section.header.val = {
[[ ]],
[[  ]],
[[ ████ ██████ █████ ██ ]],
[[ ███████████ █████  ]],
[[ █████████ ███████████████████ ███ ███████████ ]],
[[ █████████ ███ █████████████ █████ ██████████████ ]],
[[ █████████ ██████████ █████████ █████ █████ ████ █████ ]],
[[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]],
[[ ██████ █████████████████████ ████ █████ █████ ████ ██████ ]],
[[ ]],
}
alpha.setup(dashboard.opts)
end,
}
+5 -2
View File
@@ -11,8 +11,8 @@ return {
themable = true, -- allows highlight groups to be overriden i.e. sets highlights as default themable = true, -- allows highlight groups to be overriden i.e. sets highlights as default
numbers = 'none', -- | "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string, numbers = 'none', -- | "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string,
close_command = 'Bdelete! %d', -- can be a string | function, see "Mouse actions" close_command = 'Bdelete! %d', -- can be a string | function, see "Mouse actions"
buffer_close_icon = '', buffer_close_icon = '󰅖',
close_icon = '', close_icon = '',
path_components = 1, -- Show only the file name without the directory path_components = 1, -- Show only the file name without the directory
modified_icon = '', modified_icon = '',
left_trunc_marker = '', left_trunc_marker = '',
@@ -40,6 +40,9 @@ return {
maximum_padding = 5, maximum_padding = 5,
maximum_length = 15, maximum_length = 15,
sort_by = 'insert_at_end', sort_by = 'insert_at_end',
pick = {
alphabet = 'abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ1234567890',
},
}, },
highlights = { highlights = {
separator = { separator = {
+7 -7
View File
@@ -1,9 +1,9 @@
return { return {
'folke/tokyonight.nvim', 'folke/tokyonight.nvim',
lazy = false, lazy = false,
priority = 1000, priority = 1000,
init = function() init = function()
vim.cmd.colorscheme 'tokyonight-night' vim.cmd.colorscheme 'tokyonight-night'
vim.cmd.hi 'Comment gui=none' vim.cmd.hi 'Comment gui=none'
end, end,
} }
-3
View File
@@ -1,3 +0,0 @@
return {
'github/copilot.vim',
}
+105
View File
@@ -0,0 +1,105 @@
return {
{
'mfussenegger/nvim-dap',
dependencies = {
'rcarriga/nvim-dap-ui',
'theHamsta/nvim-dap-virtual-text',
'nvim-neotest/nvim-nio',
'williamboman/mason.nvim',
},
config = function()
local dap = require 'dap'
local ui = require 'dapui'
require('dapui').setup()
require('nvim-dap-virtual-text').setup()
dap.adapters.chrome = {
type = 'executable',
command = 'node',
args = { os.getenv 'HOME' .. '/.local/share/nvim/mason/packages/chrome-debug-adapter/out/src/chromeDebug.js' },
}
dap.configurations.javascriptreact = {
{
type = 'chrome',
request = 'launch',
name = 'Launch in Brave',
webRoot = '${workspaceFolder}',
runtimeExecutable = '/snap/bin/brave',
sourceMaps = true,
userDataDir = true,
url = function()
local co = coroutine.running()
return coroutine.create(function()
vim.ui.input({
prompt = 'Enter URL: ',
default = 'http://localhost:3000',
}, function(url)
if url == nil or url == '' then
return
else
coroutine.resume(co, url)
end
end)
end)
end,
},
}
dap.configurations.typescriptreact = {
{
type = 'chrome',
request = 'launch',
name = 'Launch in Brave',
webRoot = '${workspaceFolder}',
runtimeExecutable = '/snap/bin/brave',
sourceMaps = true,
userDataDir = true,
url = function()
local co = coroutine.running()
return coroutine.create(function()
vim.ui.input({
prompt = 'Enter URL: ',
default = 'http://localhost:3000',
}, function(url)
if url == nil or url == '' then
return
else
coroutine.resume(co, url)
end
end)
end)
end,
},
}
vim.keymap.set('n', '<leader>b', dap.toggle_breakpoint)
vim.keymap.set('n', '<leader>gb', dap.run_to_cursor)
-- Eval var under cursor
vim.keymap.set('n', '<leader>?', function()
require('dapui').eval(nil, { enter = true })
end)
vim.keymap.set('n', '<F1>', dap.continue)
vim.keymap.set('n', '<F2>', dap.step_into)
vim.keymap.set('n', '<F3>', dap.step_over)
vim.keymap.set('n', '<F4>', dap.step_out)
vim.keymap.set('n', '<F5>', dap.step_back)
vim.keymap.set('n', '<F6>', dap.restart)
dap.listeners.before.attach.dapui_config = function()
ui.open()
end
dap.listeners.before.launch.dapui_config = function()
ui.open()
end
dap.listeners.before.event_terminated.dapui_config = function()
ui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
ui.close()
end
end,
},
}
+44
View File
@@ -0,0 +1,44 @@
return {
'stevearc/conform.nvim',
event = { 'BufWritePre' },
cmd = { 'ConformInfo' },
keys = {
{
'<leader>f',
function()
require('conform').format { async = true, lsp_format = 'fallback' }
end,
mode = '',
desc = '[F]ormat buffer',
},
},
opts = {
notify_on_error = false,
-- format_on_save = function(bufnr)
-- -- Disable "format_on_save lsp_fallback" for languages that don't
-- -- have a well standardized coding style. You can add additional
-- -- languages here or re-enable it for the disabled ones.
-- local disable_filetypes = { c = true, cpp = true }
-- local lsp_format_opt
-- if disable_filetypes[vim.bo[bufnr].filetype] then
-- lsp_format_opt = 'never'
-- else
-- lsp_format_opt = 'fallback'
-- end
-- return {
-- timeout_ms = 500,
-- lsp_format = lsp_format_opt,
-- }
-- end,
formatters_by_ft = {
lua = { 'stylua' },
-- Conform can also run multiple formatters sequentially
-- python = { "isort", "black" },
--
-- You can use 'stop_after_first' to run the first available formatter from the list
javascript = { 'prettierd', 'prettier', stop_after_first = true },
html = { 'prettierd', 'prettier', stop_after_first = true },
css = { 'prettierd', 'prettier', stop_after_first = true },
},
},
}
+3 -3
View File
@@ -163,10 +163,9 @@ return {
-- --
-- But for many setups, the LSP (`tsserver`) will work just fine -- But for many setups, the LSP (`tsserver`) will work just fine
ts_ls = {}, -- tsserver is deprecated ts_ls = {}, -- tsserver is deprecated
html = { filetypes = { 'html', 'twig', 'hbs' } }, html = {},
cssls = {}, cssls = {},
dockerls = {}, dockerls = {},
sqlls = {},
jsonls = {}, jsonls = {},
yamlls = {}, yamlls = {},
gopls = {}, gopls = {},
@@ -208,7 +207,8 @@ return {
-- for you, so that they are available from within Neovim. -- for you, so that they are available from within Neovim.
local ensure_installed = vim.tbl_keys(servers or {}) local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, { vim.list_extend(ensure_installed, {
'stylua', -- Used to format Lua code 'stylua',
'prettier',
}) })
require('mason-tool-installer').setup { ensure_installed = ensure_installed } require('mason-tool-installer').setup { ensure_installed = ensure_installed }
+8
View File
@@ -37,4 +37,12 @@ return {
require('colorizer').setup() require('colorizer').setup()
end, end,
}, },
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
{
'github/copilot.vim',
config = function()
vim.keymap.set('n', '<leader>ec', ':Copilot enable<CR>', { desc = 'Enable Copilot', noremap = false, silent = true })
vim.keymap.set('n', '<leader>dc', ':Copilot disable<CR>', { desc = 'Disable Copilot', noremap = false, silent = true })
end,
},
} }
@@ -1,44 +1,44 @@
return { return {
"nvim-neo-tree/neo-tree.nvim", 'nvim-neo-tree/neo-tree.nvim',
branch = "v3.x", branch = 'v3.x',
dependencies = { dependencies = {
"nvim-lua/plenary.nvim", 'nvim-lua/plenary.nvim',
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended 'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
"MunifTanjim/nui.nvim", 'MunifTanjim/nui.nvim',
-- {"3rd/image.nvim", opts = {}}, -- Optional image support in preview window: See `# Preview Mode` for more information -- {"3rd/image.nvim", opts = {}}, -- Optional image support in preview window: See `# Preview Mode` for more information
{ {
"s1n7ax/nvim-window-picker", -- for open_with_window_picker keymaps 's1n7ax/nvim-window-picker', -- for open_with_window_picker keymaps
version = "2.*", version = '2.*',
config = function() config = function()
require("window-picker").setup({ require('window-picker').setup {
filter_rules = { filter_rules = {
include_current_win = false, include_current_win = false,
autoselect_one = true, autoselect_one = true,
-- filter using buffer options -- filter using buffer options
bo = { bo = {
-- if the file type is one of following, the window will be ignored -- if the file type is one of following, the window will be ignored
filetype = { "neo-tree", "neo-tree-popup", "notify" }, filetype = { 'neo-tree', 'neo-tree-popup', 'notify' },
-- if the buffer type is one of following, the window will be ignored -- if the buffer type is one of following, the window will be ignored
buftype = { "terminal", "quickfix" }, buftype = { 'terminal', 'quickfix' },
}, },
}, },
}) }
end, end,
}, },
}, },
config = function() config = function()
-- If you want icons for diagnostic errors, you'll need to define them somewhere: -- 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('DiagnosticSignError', { text = '', texthl = 'DiagnosticSignError' })
vim.fn.sign_define("DiagnosticSignWarn", { text = "", texthl = "DiagnosticSignWarn" }) vim.fn.sign_define('DiagnosticSignWarn', { text = '', texthl = 'DiagnosticSignWarn' })
vim.fn.sign_define("DiagnosticSignInfo", { text = "", texthl = "DiagnosticSignInfo" }) vim.fn.sign_define('DiagnosticSignInfo', { text = '', texthl = 'DiagnosticSignInfo' })
vim.fn.sign_define("DiagnosticSignHint", { text = "󰌵", texthl = "DiagnosticSignHint" }) vim.fn.sign_define('DiagnosticSignHint', { text = '󰌵', texthl = 'DiagnosticSignHint' })
require("neo-tree").setup({ require('neo-tree').setup {
close_if_last_window = false, -- Close Neo-tree if it is the last window left in the tab close_if_last_window = false, -- Close Neo-tree if it is the last window left in the tab
popup_border_style = "rounded", popup_border_style = 'rounded',
enable_git_status = true, enable_git_status = true,
enable_diagnostics = true, enable_diagnostics = true,
open_files_do_not_replace_types = { "terminal", "trouble", "qf" }, -- when opening files, do not use windows containing these filetypes or buftypes open_files_do_not_replace_types = { 'terminal', 'trouble', 'qf' }, -- when opening files, do not use windows containing these filetypes or buftypes
open_files_using_relative_paths = false, open_files_using_relative_paths = false,
sort_case_insensitive = false, -- used when sorting files and directories in the tree 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 = nil, -- use a custom function for sorting files and directories in the tree
@@ -58,23 +58,23 @@ return {
padding = 1, -- extra padding on left hand side padding = 1, -- extra padding on left hand side
-- indent guides -- indent guides
with_markers = true, with_markers = true,
indent_marker = "", indent_marker = '',
last_indent_marker = "", last_indent_marker = '',
highlight = "NeoTreeIndentMarker", highlight = 'NeoTreeIndentMarker',
-- expander config, needed for nesting files -- expander config, needed for nesting files
with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders
expander_collapsed = "", expander_collapsed = '',
expander_expanded = "", expander_expanded = '',
expander_highlight = "NeoTreeExpander", expander_highlight = 'NeoTreeExpander',
}, },
icon = { icon = {
folder_closed = "", folder_closed = '',
folder_open = "", folder_open = '',
folder_empty = "󰜌", folder_empty = '󰜌',
provider = function(icon, node, state) -- default icon provider utilizes nvim-web-devicons if available provider = function(icon, node, state) -- default icon provider utilizes nvim-web-devicons if available
if node.type == "file" or node.type == "terminal" then if node.type == 'file' or node.type == 'terminal' then
local success, web_devicons = pcall(require, "nvim-web-devicons") local success, web_devicons = pcall(require, 'nvim-web-devicons')
local name = node.type == "terminal" and "terminal" or node.name local name = node.type == 'terminal' and 'terminal' or node.name
if success then if success then
local devicon, hl = web_devicons.get_icon(name) local devicon, hl = web_devicons.get_icon(name)
icon.text = devicon or icon.text icon.text = devicon or icon.text
@@ -84,31 +84,31 @@ return {
end, end,
-- The next two settings are only a fallback, if you use nvim-web-devicons and configure default icons there -- 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. -- then these will never be used.
default = "*", default = '*',
highlight = "NeoTreeFileIcon", highlight = 'NeoTreeFileIcon',
}, },
modified = { modified = {
symbol = "[+]", symbol = '[+]',
highlight = "NeoTreeModified", highlight = 'NeoTreeModified',
}, },
name = { name = {
trailing_slash = false, trailing_slash = false,
use_git_status_colors = true, use_git_status_colors = true,
highlight = "NeoTreeFileName", highlight = 'NeoTreeFileName',
}, },
git_status = { git_status = {
symbols = { symbols = {
-- Change type -- Change type
added = "", -- or "✚", but this is redundant info if you use git_status_colors on the name 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 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 deleted = '', -- this can only be used in the git_status source
renamed = "󰁕", -- this can only be used in the git_status source renamed = '󰁕', -- this can only be used in the git_status source
-- Status type -- Status type
untracked = "", untracked = '',
ignored = "", ignored = '',
unstaged = "󰄱", unstaged = '󰄱',
staged = "", staged = '',
conflict = "", conflict = '',
}, },
}, },
-- If you don't want to use these columns, you can set `enabled = false` for each of them individually -- If you don't want to use these columns, you can set `enabled = false` for each of them individually
@@ -141,65 +141,65 @@ return {
-- see `:h neo-tree-custom-commands-global` -- see `:h neo-tree-custom-commands-global`
commands = {}, commands = {},
window = { window = {
position = "left", position = 'current',
width = 40, width = 40,
mapping_options = { mapping_options = {
noremap = true, noremap = true,
nowait = true, nowait = true,
}, },
mappings = { mappings = {
["<space>"] = { ['<space>'] = {
"toggle_node", 'toggle_node',
nowait = false, -- disable `nowait` if you have existing combos starting with this char that you want to use nowait = false, -- disable `nowait` if you have existing combos starting with this char that you want to use
}, },
["<2-LeftMouse>"] = "open", ['<2-LeftMouse>'] = 'open',
["<cr>"] = "open", ['<cr>'] = 'open',
["<esc>"] = "cancel", -- close preview or floating neo-tree window ['<esc>'] = 'cancel', -- close preview or floating neo-tree window
["P"] = { "toggle_preview", config = { use_float = true, use_image_nvim = true } }, ['P'] = { 'toggle_preview', config = { use_float = true, use_image_nvim = true } },
-- Read `# Preview Mode` for more information -- Read `# Preview Mode` for more information
["l"] = "focus_preview", ['l'] = 'focus_preview',
["S"] = "open_split", ['S'] = 'open_split',
["s"] = "open_vsplit", ['s'] = 'open_vsplit',
-- ["S"] = "split_with_window_picker", -- ["S"] = "split_with_window_picker",
-- ["s"] = "vsplit_with_window_picker", -- ["s"] = "vsplit_with_window_picker",
["t"] = "open_tabnew", ['t'] = 'open_tabnew',
-- ["<cr>"] = "open_drop", -- ["<cr>"] = "open_drop",
-- ["t"] = "open_tab_drop", -- ["t"] = "open_tab_drop",
["w"] = "open_with_window_picker", ['w'] = 'open_with_window_picker',
--["P"] = "toggle_preview", -- enter preview mode, which shows the current node without focusing --["P"] = "toggle_preview", -- enter preview mode, which shows the current node without focusing
["C"] = "close_node", ['C'] = 'close_node',
-- ['C'] = 'close_all_subnodes', -- ['C'] = 'close_all_subnodes',
["z"] = "close_all_nodes", ['z'] = 'close_all_nodes',
--["Z"] = "expand_all_nodes", --["Z"] = "expand_all_nodes",
["a"] = { ['a'] = {
"add", 'add',
-- this command supports BASH style brace expansion ("x{a,b,c}" -> xa,xb,xc). see `:h neo-tree-file-actions` for details -- 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 -- some commands may take optional config options, see `:h neo-tree-mappings` for details
config = { config = {
show_path = "none", -- "none", "relative", "absolute" 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. ['A'] = 'add_directory', -- also accepts the optional config.show_path option like "add". this also supports BASH style brace expansion.
["d"] = "delete", ['d'] = 'delete',
["r"] = "rename", ['r'] = 'rename',
["b"] = "rename_basename", ['b'] = 'rename_basename',
["y"] = "copy_to_clipboard", ['y'] = 'copy_to_clipboard',
["x"] = "cut_to_clipboard", ['x'] = 'cut_to_clipboard',
["p"] = "paste_from_clipboard", ['p'] = 'paste_from_clipboard',
["c"] = "copy", -- takes text input for destination, also accepts the optional config.show_path option like "add": ['c'] = 'copy', -- takes text input for destination, also accepts the optional config.show_path option like "add":
-- ["c"] = { -- ["c"] = {
-- "copy", -- "copy",
-- config = { -- config = {
-- show_path = "none" -- "none", "relative", "absolute" -- show_path = "none" -- "none", "relative", "absolute"
-- } -- }
--} --}
["m"] = "move", -- takes text input for destination, also accepts the optional config.show_path option like "add". ['m'] = 'move', -- takes text input for destination, also accepts the optional config.show_path option like "add".
["q"] = "close_window", ['q'] = 'close_window',
["R"] = "refresh", ['R'] = 'refresh',
["?"] = "show_help", ['?'] = 'show_help',
["<"] = "prev_source", ['<'] = 'prev_source',
[">"] = "next_source", ['>'] = 'next_source',
["i"] = "show_file_details", ['i'] = 'show_file_details',
-- ["i"] = { -- ["i"] = {
-- "show_file_details", -- "show_file_details",
-- -- format strings of the timestamps shown for date created and last modified (see `:h os.date()`) -- -- format strings of the timestamps shown for date created and last modified (see `:h os.date()`)
@@ -246,42 +246,42 @@ return {
leave_dirs_open = false, -- `false` closes auto expanded dirs, such as with `:Neotree reveal` leave_dirs_open = false, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
}, },
group_empty_dirs = false, -- when true, empty folders will be grouped together group_empty_dirs = false, -- when true, empty folders will be grouped together
hijack_netrw_behavior = "open_default", -- netrw disabled, opening a directory opens neo-tree hijack_netrw_behavior = 'open_default', -- netrw disabled, opening a directory opens neo-tree
-- in whatever position is specified in window.position -- in whatever position is specified in window.position
-- "open_current", -- netrw disabled, opening a directory opens within the -- "open_current", -- netrw disabled, opening a directory opens within the
-- window like netrw would, regardless of window.position -- window like netrw would, regardless of window.position
-- "disabled", -- netrw left alone, neo-tree does not handle opening dirs -- "disabled", -- netrw left alone, neo-tree does not handle opening dirs
use_libuv_file_watcher = false, -- This will use the OS level file watchers to detect changes use_libuv_file_watcher = false, -- This will use the OS level file watchers to detect changes
-- instead of relying on nvim autocmd events. -- instead of relying on nvim autocmd events.
window = { window = {
mappings = { mappings = {
["<bs>"] = "navigate_up", ['<bs>'] = 'navigate_up',
["."] = "set_root", ['.'] = 'set_root',
["H"] = "toggle_hidden", ['H'] = 'toggle_hidden',
["/"] = "fuzzy_finder", ['/'] = 'fuzzy_finder',
["D"] = "fuzzy_finder_directory", ['D'] = 'fuzzy_finder_directory',
["#"] = "fuzzy_sorter", -- fuzzy sorting using the fzy algorithm ['#'] = 'fuzzy_sorter', -- fuzzy sorting using the fzy algorithm
-- ["D"] = "fuzzy_sorter_directory", -- ["D"] = "fuzzy_sorter_directory",
["f"] = "filter_on_submit", ['f'] = 'filter_on_submit',
["<c-x>"] = "clear_filter", ['<c-x>'] = 'clear_filter',
["[g"] = "prev_git_modified", ['[g'] = 'prev_git_modified',
["]g"] = "next_git_modified", [']g'] = 'next_git_modified',
["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } }, ['o'] = { 'show_help', nowait = false, config = { title = 'Order by', prefix_key = 'o' } },
["oc"] = { "order_by_created", nowait = false }, ['oc'] = { 'order_by_created', nowait = false },
["od"] = { "order_by_diagnostics", nowait = false }, ['od'] = { 'order_by_diagnostics', nowait = false },
["og"] = { "order_by_git_status", nowait = false }, ['og'] = { 'order_by_git_status', nowait = false },
["om"] = { "order_by_modified", nowait = false }, ['om'] = { 'order_by_modified', nowait = false },
["on"] = { "order_by_name", nowait = false }, ['on'] = { 'order_by_name', nowait = false },
["os"] = { "order_by_size", nowait = false }, ['os'] = { 'order_by_size', nowait = false },
["ot"] = { "order_by_type", nowait = false }, ['ot'] = { 'order_by_type', nowait = false },
-- ['<key>'] = function(state) ... end, -- ['<key>'] = function(state) ... end,
}, },
fuzzy_finder_mappings = { -- define keymaps for filter popup window in fuzzy_finder_mode fuzzy_finder_mappings = { -- define keymaps for filter popup window in fuzzy_finder_mode
["<down>"] = "move_cursor_down", ['<down>'] = 'move_cursor_down',
["<C-n>"] = "move_cursor_down", ['<C-n>'] = 'move_cursor_down',
["<up>"] = "move_cursor_up", ['<up>'] = 'move_cursor_up',
["<C-p>"] = "move_cursor_up", ['<C-p>'] = 'move_cursor_up',
["<esc>"] = "close", ['<esc>'] = 'close',
-- ['<key>'] = function(state, scroll_padding) ... end, -- ['<key>'] = function(state, scroll_padding) ... end,
}, },
}, },
@@ -298,43 +298,43 @@ return {
show_unloaded = true, show_unloaded = true,
window = { window = {
mappings = { mappings = {
["bd"] = "buffer_delete", ['bd'] = 'buffer_delete',
["<bs>"] = "navigate_up", ['<bs>'] = 'navigate_up',
["."] = "set_root", ['.'] = 'set_root',
["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } }, ['o'] = { 'show_help', nowait = false, config = { title = 'Order by', prefix_key = 'o' } },
["oc"] = { "order_by_created", nowait = false }, ['oc'] = { 'order_by_created', nowait = false },
["od"] = { "order_by_diagnostics", nowait = false }, ['od'] = { 'order_by_diagnostics', nowait = false },
["om"] = { "order_by_modified", nowait = false }, ['om'] = { 'order_by_modified', nowait = false },
["on"] = { "order_by_name", nowait = false }, ['on'] = { 'order_by_name', nowait = false },
["os"] = { "order_by_size", nowait = false }, ['os'] = { 'order_by_size', nowait = false },
["ot"] = { "order_by_type", nowait = false }, ['ot'] = { 'order_by_type', nowait = false },
}, },
}, },
}, },
git_status = { git_status = {
window = { window = {
position = "float", position = 'float',
mappings = { mappings = {
["A"] = "git_add_all", ['A'] = 'git_add_all',
["gu"] = "git_unstage_file", ['gu'] = 'git_unstage_file',
["ga"] = "git_add_file", ['ga'] = 'git_add_file',
["gr"] = "git_revert_file", ['gr'] = 'git_revert_file',
["gc"] = "git_commit", ['gc'] = 'git_commit',
["gp"] = "git_push", ['gp'] = 'git_push',
["gg"] = "git_commit_and_push", ['gg'] = 'git_commit_and_push',
["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } }, ['o'] = { 'show_help', nowait = false, config = { title = 'Order by', prefix_key = 'o' } },
["oc"] = { "order_by_created", nowait = false }, ['oc'] = { 'order_by_created', nowait = false },
["od"] = { "order_by_diagnostics", nowait = false }, ['od'] = { 'order_by_diagnostics', nowait = false },
["om"] = { "order_by_modified", nowait = false }, ['om'] = { 'order_by_modified', nowait = false },
["on"] = { "order_by_name", nowait = false }, ['on'] = { 'order_by_name', nowait = false },
["os"] = { "order_by_size", nowait = false }, ['os'] = { 'order_by_size', nowait = false },
["ot"] = { "order_by_type", nowait = false }, ['ot'] = { 'order_by_type', nowait = false },
}, },
}, },
}, },
}) }
vim.cmd([[nnoremap \ :Neotree reveal<cr>]]) vim.cmd [[nnoremap \ :Neotree reveal<cr>]]
vim.keymap.set('n', '<leader>ts', ':Neotree toggle position=left<CR>', { noremap = true, silent = true }) vim.keymap.set('n', '<leader>ts', ':Neotree toggle position=left<CR>', { noremap = true, silent = true })
end, end,
} }
+9
View File
@@ -0,0 +1,9 @@
return {
'MeanderingProgrammer/render-markdown.nvim',
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.nvim' }, -- if you use the mini.nvim suite
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.icons' }, -- if you use standalone mini plugins
dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
---@module 'render-markdown'
---@type render.md.UserConfig
opts = {},
}