Compare commits
1 Commits
main
...
ee8361dad5
| Author | SHA1 | Date | |
|---|---|---|---|
| ee8361dad5 |
@@ -1 +0,0 @@
|
|||||||
vim.o.signcolumn = 'no'
|
|
||||||
4
init.lua
4
init.lua
@@ -1,5 +1,3 @@
|
|||||||
vim.loader.enable()
|
|
||||||
|
|
||||||
vim.g.mapleader = ' '
|
vim.g.mapleader = ' '
|
||||||
vim.g.maplocalleader = ' '
|
vim.g.maplocalleader = ' '
|
||||||
|
|
||||||
@@ -13,7 +11,7 @@ end
|
|||||||
pcall(function() require('local') end)
|
pcall(function() require('local') end)
|
||||||
|
|
||||||
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
|
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
|
||||||
if not vim.uv.fs_stat(lazypath) then
|
if not vim.loop.fs_stat(lazypath) then
|
||||||
vim.fn.system({ 'git', 'clone', '--filter=blob:none',
|
vim.fn.system({ 'git', 'clone', '--filter=blob:none',
|
||||||
'https://github.com/folke/lazy.nvim.git', '--branch=stable', lazypath })
|
'https://github.com/folke/lazy.nvim.git', '--branch=stable', lazypath })
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -36,9 +36,7 @@ local kanagawa = {
|
|||||||
-- Don't lighlight TODO specially in comments
|
-- Don't lighlight TODO specially in comments
|
||||||
for _, todo_group in pairs({
|
for _, todo_group in pairs({
|
||||||
'confTodo',
|
'confTodo',
|
||||||
'mojoTodo',
|
|
||||||
'ps1CommentTodo',
|
'ps1CommentTodo',
|
||||||
'pythonTodo',
|
|
||||||
'zshTodo',
|
'zshTodo',
|
||||||
}) do
|
}) do
|
||||||
vim.cmd.highlight('link ' .. todo_group .. ' Comment')
|
vim.cmd.highlight('link ' .. todo_group .. ' Comment')
|
||||||
|
|||||||
@@ -1,3 +1,53 @@
|
|||||||
|
-- Language servers
|
||||||
|
local ensure_installed = {
|
||||||
|
'clangd', -- C/C++
|
||||||
|
'lua_ls', -- Lua
|
||||||
|
'opencl_ls', -- OpenCL
|
||||||
|
'harper_ls', -- Spelling & grammar
|
||||||
|
'tinymist', -- Typst
|
||||||
|
}
|
||||||
|
|
||||||
|
if vim.fn.executable('npm') == 1 then
|
||||||
|
local ensure_install_from_npm = {
|
||||||
|
'ansiblels', -- Ansible
|
||||||
|
'bashls', -- Bash
|
||||||
|
'docker_compose_language_service', -- Docker Compose
|
||||||
|
'dockerls', -- Dockerfile
|
||||||
|
'html', -- HTML
|
||||||
|
'jsonls', -- JSON
|
||||||
|
'pyright', -- Python
|
||||||
|
'vimls', -- VimScript
|
||||||
|
'yamlls', -- YAML
|
||||||
|
}
|
||||||
|
for _, package in ipairs(ensure_install_from_npm) do
|
||||||
|
table.insert(ensure_installed, package)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if vim.fn.executable('pip') == 1 then
|
||||||
|
local ensure_install_from_pip = {
|
||||||
|
'cmake', -- CMake
|
||||||
|
'esbonio', -- Sphinx
|
||||||
|
'ruff', -- Python
|
||||||
|
}
|
||||||
|
for _, package in ipairs(ensure_install_from_pip) do
|
||||||
|
table.insert(ensure_installed, package)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if vim.fn.executable('go') == 1 then
|
||||||
|
local ensure_installed_from_go = {
|
||||||
|
'gopls', -- Go
|
||||||
|
}
|
||||||
|
for _, package in ipairs(ensure_installed_from_go) do
|
||||||
|
table.insert(ensure_installed, package)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if vim.fn.has('win32') == 1 then
|
||||||
|
table.insert(ensure_installed, 'powershell_es')
|
||||||
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'neovim/nvim-lspconfig',
|
'neovim/nvim-lspconfig',
|
||||||
dependencies = {
|
dependencies = {
|
||||||
@@ -49,12 +99,6 @@ return {
|
|||||||
disable = { 'missing-fields', },
|
disable = { 'missing-fields', },
|
||||||
globals = { 'vim', },
|
globals = { 'vim', },
|
||||||
},
|
},
|
||||||
workspace = {
|
|
||||||
library = {
|
|
||||||
vim.fn.expand('~/.hammerspoon/Spoons'),
|
|
||||||
vim.fn.expand('~/.hammerspoon/Spoons/EmmyLua.spoon/annotations/'),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -80,48 +124,9 @@ return {
|
|||||||
end
|
end
|
||||||
|
|
||||||
require('mason').setup()
|
require('mason').setup()
|
||||||
|
|
||||||
local language_servers = {
|
|
||||||
'clangd', -- C/C++
|
|
||||||
'lua_ls', -- Lua
|
|
||||||
'opencl_ls', -- OpenCL
|
|
||||||
'harper_ls', -- Spelling & grammar
|
|
||||||
'marksman', -- Markdown
|
|
||||||
'tinymist', -- Typst
|
|
||||||
}
|
|
||||||
|
|
||||||
if vim.fn.executable('npm') == 1 then
|
|
||||||
for _, package in ipairs({
|
|
||||||
'ansiblels', -- Ansible
|
|
||||||
'bashls', -- Bash
|
|
||||||
'docker_compose_language_service', -- Docker Compose
|
|
||||||
'dockerls', -- Dockerfile
|
|
||||||
'html', -- HTML
|
|
||||||
'jsonls', -- JSON
|
|
||||||
'pyright', -- Python
|
|
||||||
'vimls', -- VimScript
|
|
||||||
'yamlls', -- YAML
|
|
||||||
}) do table.insert(language_servers, package) end
|
|
||||||
end
|
|
||||||
|
|
||||||
if vim.fn.executable('pip') == 1 then
|
|
||||||
for _, package in ipairs({
|
|
||||||
'cmake', -- CMake
|
|
||||||
'esbonio', -- Sphinx
|
|
||||||
'ruff', -- Python
|
|
||||||
}) do table.insert(language_servers, package) end
|
|
||||||
end
|
|
||||||
|
|
||||||
if vim.fn.executable('go') == 1 then
|
|
||||||
table.insert(language_servers, 'gopls') -- Go
|
|
||||||
end
|
|
||||||
|
|
||||||
if vim.fn.has('win32') == 1 then
|
|
||||||
table.insert(language_servers, 'powershell_es') -- PowerShell
|
|
||||||
end
|
|
||||||
|
|
||||||
require('mason-lspconfig').setup({
|
require('mason-lspconfig').setup({
|
||||||
ensure_installed = language_servers,
|
automatic_enable = true,
|
||||||
|
ensure_installed = ensure_installed,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- (Dis|en)able harper-ls when spell mode is (dis|en)enabled.
|
-- (Dis|en)able harper-ls when spell mode is (dis|en)enabled.
|
||||||
@@ -224,6 +229,12 @@ return {
|
|||||||
-- Refactoring mappings
|
-- Refactoring mappings
|
||||||
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
|
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
|
||||||
|
|
||||||
|
-- Help mappings
|
||||||
|
-- TODO: v0.10.0 |vim.lsp.start()| now maps |K| to use
|
||||||
|
-- |vim.lsp.buf.hover()| if the server supports it, unless
|
||||||
|
-- |'keywordprg'| was customized before calling |vim.lsp.start()|.
|
||||||
|
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
||||||
|
|
||||||
-- Format whole buffer mapping
|
-- Format whole buffer mapping
|
||||||
vim.keymap.set('n', '<leader>gq', vim.lsp.buf.format, opts)
|
vim.keymap.set('n', '<leader>gq', vim.lsp.buf.format, opts)
|
||||||
|
|
||||||
@@ -243,15 +254,5 @@ return {
|
|||||||
toggle_key_flip_floatwin_setting = true,
|
toggle_key_flip_floatwin_setting = true,
|
||||||
select_signature_key = '<C-l>',
|
select_signature_key = '<C-l>',
|
||||||
})
|
})
|
||||||
|
|
||||||
-- When harper-ls is installed
|
|
||||||
local mason_registry = require('mason-registry')
|
|
||||||
if mason_registry.is_installed('harper-ls') then
|
|
||||||
-- Disable builtin spell mode highlighting
|
|
||||||
vim.cmd.highlight('SpellBad', 'NONE')
|
|
||||||
vim.cmd.highlight('SpellCap', 'NONE')
|
|
||||||
vim.cmd.highlight('SpellLocal', 'NONE')
|
|
||||||
vim.cmd.highlight('SpellRare', 'NONE')
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,64 +0,0 @@
|
|||||||
return {
|
|
||||||
'mfussenegger/nvim-dap',
|
|
||||||
dependencies = {
|
|
||||||
'igorlfs/nvim-dap-view',
|
|
||||||
'kbenzie/mason.nvim',
|
|
||||||
'jay-babu/mason-nvim-dap.nvim',
|
|
||||||
'theHamsta/nvim-dap-virtual-text',
|
|
||||||
'Jorenar/nvim-dap-disasm',
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
local dap = require('dap')
|
|
||||||
|
|
||||||
-- Installation
|
|
||||||
local debug_adapters = {
|
|
||||||
'codelldb', -- C/C++/Rust/Zig
|
|
||||||
}
|
|
||||||
|
|
||||||
if vim.fn.executable('pip') == 1 then
|
|
||||||
table.insert(debug_adapters, 'python') -- Python
|
|
||||||
end
|
|
||||||
|
|
||||||
if vim.fn.executable('go') == 1 then
|
|
||||||
table.insert(debug_adapters, 'delve') -- Go
|
|
||||||
end
|
|
||||||
|
|
||||||
require("mason-nvim-dap").setup({
|
|
||||||
ensure_installed = debug_adapters,
|
|
||||||
handlers = {},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- UI plugins
|
|
||||||
require('dap-view').setup({
|
|
||||||
auto_toggle = true,
|
|
||||||
})
|
|
||||||
require('nvim-dap-virtual-text').setup({})
|
|
||||||
require('dap-disasm').setup({
|
|
||||||
dapview_register = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd({ "FileType" }, {
|
|
||||||
pattern = {
|
|
||||||
'dap-float',
|
|
||||||
},
|
|
||||||
callback = function(args)
|
|
||||||
vim.keymap.set("n", "q", "<C-w>q", { buffer = args.buf })
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
local widgets = require('dap.ui.widgets')
|
|
||||||
|
|
||||||
-- Mappings
|
|
||||||
vim.keymap.set('n', '<leader>D', vim.cmd.DapViewToggle)
|
|
||||||
vim.keymap.set('n', '<F5>', dap.continue)
|
|
||||||
vim.keymap.set('n', '<F17>', dap.terminate) -- Shift-F5
|
|
||||||
vim.keymap.set('n', '<F9>', dap.toggle_breakpoint)
|
|
||||||
vim.keymap.set('n', '<F21>', vim.cmd.DapViewWatch) -- Shift-F9
|
|
||||||
vim.keymap.set('n', '<F41>', dap.restart) -- Ctrl-Shift-F5
|
|
||||||
vim.keymap.set('n', '<F34>', dap.run_to_cursor) -- Ctrl-F10
|
|
||||||
vim.keymap.set('n', '<F11>', dap.step_into)
|
|
||||||
vim.keymap.set('n', '<F23>', dap.step_out) -- Shift-F11
|
|
||||||
vim.keymap.set('n', '<F10>', dap.step_over)
|
|
||||||
vim.keymap.set('n', '<leader>K', widgets.hover)
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
return {
|
return {
|
||||||
{ 'tpope/vim-fugitive', lazy = false },
|
{ 'tpope/vim-fugitive', lazy = false },
|
||||||
{ 'tpope/vim-rhubarb', lazy = false },
|
|
||||||
{
|
{
|
||||||
'lewis6991/gitsigns.nvim',
|
'lewis6991/gitsigns.nvim',
|
||||||
config = function()
|
config = function()
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
return {
|
|
||||||
'davidmh/mdx.nvim',
|
|
||||||
dependencies = {
|
|
||||||
'nvim-treesitter/nvim-treesitter',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
return {
|
|
||||||
'stevearc/oil.nvim',
|
|
||||||
dependencies = {
|
|
||||||
"nvim-tree/nvim-web-devicons",
|
|
||||||
},
|
|
||||||
lazy = false,
|
|
||||||
config = function()
|
|
||||||
require('oil').setup({
|
|
||||||
keymaps = {
|
|
||||||
["g?"] = { "actions.show_help", mode = "n" },
|
|
||||||
["<CR>"] = "actions.select",
|
|
||||||
["<leader>l"] = "actions.refresh",
|
|
||||||
["-"] = { "actions.parent", mode = "n" },
|
|
||||||
["_"] = { "actions.open_cwd", mode = "n" },
|
|
||||||
["`"] = { "actions.cd", mode = "n" },
|
|
||||||
["~"] = { "actions.cd", opts = { scope = "tab" }, mode = "n" },
|
|
||||||
["gs"] = { "actions.change_sort", mode = "n" },
|
|
||||||
["gx"] = "actions.open_external",
|
|
||||||
["g."] = { "actions.toggle_hidden", mode = "n" },
|
|
||||||
["g\\"] = { "actions.toggle_trash", mode = "n" },
|
|
||||||
},
|
|
||||||
use_default_keymaps = false,
|
|
||||||
})
|
|
||||||
vim.keymap.set("n", "-", function()
|
|
||||||
local dir = vim.fn.expand("%:h")
|
|
||||||
vim.cmd.Oil(dir ~= "" and dir or ".")
|
|
||||||
end, {})
|
|
||||||
end
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
return {
|
return {
|
||||||
'nvim-treesitter/nvim-treesitter',
|
'nvim-treesitter/nvim-treesitter',
|
||||||
branch = 'master',
|
|
||||||
dependencies = {
|
dependencies = {
|
||||||
'nvim-treesitter/nvim-treesitter-textobjects',
|
'nvim-treesitter/nvim-treesitter-textobjects',
|
||||||
{ 'nvim-treesitter/nvim-treesitter-context', opts = {} },
|
{ 'nvim-treesitter/nvim-treesitter-context', opts = {} },
|
||||||
@@ -98,10 +97,5 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Keymaps
|
|
||||||
vim.keymap.set('n', '<leader>fm', function()
|
|
||||||
vim.o.foldmethod = 'expr'
|
|
||||||
end, {})
|
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,18 +33,13 @@ local noice = {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
-- noice,
|
-- noice,
|
||||||
|
{ 'echasnovski/mini.comment', opts = { options = { ignore_blank_line = true } } },
|
||||||
{
|
{
|
||||||
'echasnovski/mini.comment',
|
'idanarye/nvim-impairative',
|
||||||
opts = {
|
config = function()
|
||||||
options = {
|
require('impairative').setup({})
|
||||||
ignore_blank_line = true,
|
require('impairative.replicate-unimpaired')()
|
||||||
}
|
end},
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'tpope/vim-unimpaired',
|
|
||||||
lazy = false,
|
|
||||||
},
|
|
||||||
{ 'stevearc/dressing.nvim' },
|
{ 'stevearc/dressing.nvim' },
|
||||||
{ 'kevinhwang91/nvim-bqf' },
|
{ 'kevinhwang91/nvim-bqf' },
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,17 +25,10 @@ vim.api.nvim_create_autocmd('BufRead', {
|
|||||||
|
|
||||||
-- Start terminals in insert mode
|
-- Start terminals in insert mode
|
||||||
vim.api.nvim_create_autocmd('TermOpen', {
|
vim.api.nvim_create_autocmd('TermOpen', {
|
||||||
group = group,
|
group = group, pattern = 'term://*',
|
||||||
pattern = 'term://*',
|
callback = function()
|
||||||
callback = function(args)
|
|
||||||
-- nvim-dap/nvim-dap-view uses terminal buffers in the background which are
|
|
||||||
-- not visible, don't start insert mode if the dap-type variable exists.
|
|
||||||
local success, dap_type = pcall(vim.api.nvim_buf_get_var, args.buf, 'dap-type')
|
|
||||||
if success and dap_type then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
vim.cmd.startinsert()
|
vim.cmd.startinsert()
|
||||||
end,
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Automatically press enter when the terminal process exit successfully
|
-- Automatically press enter when the terminal process exit successfully
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ vim.api.nvim_create_user_command('Remove', function(opts)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- Actually remove the file using the selected callback.
|
-- Actually remove the file using the selected callback.
|
||||||
vim.uv.fs_unlink(path, callback)
|
vim.loop.fs_unlink(path, callback)
|
||||||
end, { bang = true })
|
end, { bang = true })
|
||||||
|
|
||||||
-- :Move the file associated with the current buffer
|
-- :Move the file associated with the current buffer
|
||||||
@@ -62,7 +62,7 @@ vim.api.nvim_create_user_command('Move', function(opts)
|
|||||||
if vim.fn.isdirectory(dest) ~= 0 then
|
if vim.fn.isdirectory(dest) ~= 0 then
|
||||||
dest = vim.fn.resolve(dest .. '/' .. vim.fn.expand('%:t'))
|
dest = vim.fn.resolve(dest .. '/' .. vim.fn.expand('%:t'))
|
||||||
end
|
end
|
||||||
vim.uv.fs_rename(source, dest, function(err, success)
|
vim.loop.fs_rename(source, dest, function(err, success)
|
||||||
if success then
|
if success then
|
||||||
vim.schedule(function()
|
vim.schedule(function()
|
||||||
vim.cmd.edit(dest)
|
vim.cmd.edit(dest)
|
||||||
@@ -87,7 +87,7 @@ vim.api.nvim_create_user_command('Rename', function(opts)
|
|||||||
dest = vim.fn.resolve(dir .. '/' .. opts.args)
|
dest = vim.fn.resolve(dir .. '/' .. opts.args)
|
||||||
end
|
end
|
||||||
local buffer = vim.api.nvim_get_current_buf()
|
local buffer = vim.api.nvim_get_current_buf()
|
||||||
vim.uv.fs_rename(source, dest, function(err, success)
|
vim.loop.fs_rename(source, dest, function(err, success)
|
||||||
if not success then
|
if not success then
|
||||||
error(err)
|
error(err)
|
||||||
else
|
else
|
||||||
@@ -206,34 +206,34 @@ vim.api.nvim_create_user_command('DiagnosticToggle', function(_)
|
|||||||
vim.diagnostic.enable(not vim.diagnostic.is_enabled())
|
vim.diagnostic.enable(not vim.diagnostic.is_enabled())
|
||||||
end, {})
|
end, {})
|
||||||
|
|
||||||
-- -- :QuickFiles creates a floating window for the user to input a list of files
|
-- :QuickFiles creates a floating window for the user to input a list of files
|
||||||
-- -- then populates and opens the quickfix list.
|
-- then populates and opens the quickfix list.
|
||||||
-- vim.api.nvim_create_user_command('QuickFiles', function()
|
vim.api.nvim_create_user_command('QuickFiles', function()
|
||||||
-- -- Create scratch buffer & set options
|
-- Create scratch buffer & set options
|
||||||
-- local buffer = vim.api.nvim_create_buf(false, true)
|
local buffer = vim.api.nvim_create_buf(false, true)
|
||||||
-- vim.bo[buffer].errorformat = "%f"
|
vim.bo[buffer].errorformat = "%f"
|
||||||
|
|
||||||
-- -- Calculate floating window dimensions
|
-- Calculate floating window dimensions
|
||||||
-- local ui = vim.api.nvim_list_uis()[1]
|
local ui = vim.api.nvim_list_uis()[1]
|
||||||
-- local width = math.floor(ui.width * 0.6)
|
local width = math.floor(ui.width * 0.6)
|
||||||
-- local height = math.floor(ui.height * 0.4)
|
local height = math.floor(ui.height * 0.4)
|
||||||
|
|
||||||
-- -- Create the floating window
|
-- Create the floating window
|
||||||
-- local window = vim.api.nvim_open_win(buffer, true, {
|
local window = vim.api.nvim_open_win(buffer, true, {
|
||||||
-- relative = 'editor',
|
relative = 'editor',
|
||||||
-- width = width,
|
width = width,
|
||||||
-- height = height,
|
height = height,
|
||||||
-- row = math.floor((ui.height - height) / 2),
|
row = math.floor((ui.height - height) / 2),
|
||||||
-- col = math.floor((ui.width - width) / 2),
|
col = math.floor((ui.width - width) / 2),
|
||||||
-- style = 'minimal',
|
style = 'minimal',
|
||||||
-- border = 'rounded',
|
border = 'rounded',
|
||||||
-- title = 'QuickFiles',
|
title = 'QuickFiles',
|
||||||
-- title_pos = "center",
|
title_pos = "center",
|
||||||
-- })
|
})
|
||||||
|
|
||||||
-- vim.keymap.set('n', 'q', function()
|
vim.keymap.set('n', 'q', function()
|
||||||
-- vim.cmd.cbuffer()
|
vim.cmd.cbuffer()
|
||||||
-- vim.api.nvim_win_close(window, true)
|
vim.api.nvim_win_close(window, true)
|
||||||
-- vim.cmd.cwindow()
|
vim.cmd.cwindow()
|
||||||
-- end, { buffer = buffer, nowait = true, silent = true })
|
end, { buffer = buffer, nowait = true, silent = true })
|
||||||
-- end, {})
|
end, {})
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ vim.keymap.set('', '<leader>p', '"+p', opts)
|
|||||||
vim.keymap.set('', '<leader>P', '"+P', opts)
|
vim.keymap.set('', '<leader>P', '"+P', opts)
|
||||||
|
|
||||||
-- Undo neovim's default mapping of Y to y$
|
-- Undo neovim's default mapping of Y to y$
|
||||||
vim.keymap.del('n', 'Y')
|
vim.cmd.unmap('Y')
|
||||||
|
|
||||||
-- Make nvim :terminal more like vim :terminal
|
-- Make nvim :terminal more like vim :terminal
|
||||||
vim.keymap.set('t', '<C-w>N', '<C-\\><C-n>', opts)
|
vim.keymap.set('t', '<C-w>N', '<C-\\><C-n>', opts)
|
||||||
@@ -50,10 +50,3 @@ vim.keymap.set('v', '<leader>rg', ":'<,'>Rg<CR>", opts)
|
|||||||
|
|
||||||
-- Mapping to toggle checkboxes
|
-- Mapping to toggle checkboxes
|
||||||
vim.keymap.set('n', '<leader><CR>', ':CheckboxToggle<CR>', opts)
|
vim.keymap.set('n', '<leader><CR>', ':CheckboxToggle<CR>', opts)
|
||||||
|
|
||||||
-- Format whole file using internal algorithm
|
|
||||||
vim.keymap.set('n', '<leader>gw', function()
|
|
||||||
local view = vim.fn.winsaveview()
|
|
||||||
vim.cmd('normal! gggwG')
|
|
||||||
vim.fn.winrestview(view)
|
|
||||||
end, { desc = 'Format whole file with gw' })
|
|
||||||
|
|||||||
40
plugin/netrw.lua
Normal file
40
plugin/netrw.lua
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
-- Disable banner
|
||||||
|
vim.g.netrw_banner = 0
|
||||||
|
|
||||||
|
-- Fix gx when running inside WSL
|
||||||
|
if vim.env.WSLENV then
|
||||||
|
vim.g.netrw_browsex_viewer = 'cmd.exe /C start'
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Sort files in a sensible sequence
|
||||||
|
vim.g.netrw_sort_sequence = '[\\/]$,*'
|
||||||
|
|
||||||
|
-- Map - key to open netrw in current files parent directory
|
||||||
|
vim.keymap.set('n', '-', function()
|
||||||
|
-- Get the filename before invoking netrw
|
||||||
|
local filename = vim.fn.expand('%:t')
|
||||||
|
local directory = vim.fn.expand('%:hp')
|
||||||
|
|
||||||
|
if directory == '' then
|
||||||
|
directory = vim.fn.getcwd()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Invoke netrw on the directory containing the current file
|
||||||
|
vim.fn.execute(string.format("edit %s", directory))
|
||||||
|
if filename ~= '' then
|
||||||
|
-- In the netrw buffer, move the cursor to the first character of filename
|
||||||
|
vim.fn.search('\\<' .. filename .. '\\>')
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Unmap <C-l> in netrw buffers so it can be used for natigation
|
||||||
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
|
pattern = 'netrw',
|
||||||
|
group = vim.api.nvim_create_augroup('netrw_unmap', {}),
|
||||||
|
callback = function()
|
||||||
|
local buffer = vim.api.nvim_get_current_buf()
|
||||||
|
if vim.fn.hasmapto('<Plug>NetrwRefresh') == 1 then
|
||||||
|
vim.keymap.del('n', '<C-l>', { buffer = buffer })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
@@ -4,8 +4,6 @@ vim.g.loaded_perl_provider = 0
|
|||||||
vim.g.loaded_ruby_provider = 0
|
vim.g.loaded_ruby_provider = 0
|
||||||
|
|
||||||
if vim.env.TMUX ~= nil and vim.env.WAYLAND_DISPLAY ~= nil then
|
if vim.env.TMUX ~= nil and vim.env.WAYLAND_DISPLAY ~= nil then
|
||||||
-- Use tmux instead of wl-clipboard on Wayland to avoid annoying notification
|
|
||||||
-- popups when copying/pasting from the system clipboard.
|
|
||||||
vim.g.clipboard = "tmux"
|
vim.g.clipboard = "tmux"
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -78,7 +76,7 @@ vim.opt.splitbelow = true
|
|||||||
vim.opt.splitright = true
|
vim.opt.splitright = true
|
||||||
|
|
||||||
-- Use existing windows and tabs when jumping to errors
|
-- Use existing windows and tabs when jumping to errors
|
||||||
vim.opt.switchbuf = 'usetab,uselast'
|
vim.opt.switchbuf = 'usetab'
|
||||||
|
|
||||||
-- Automatically write changes to files
|
-- Automatically write changes to files
|
||||||
vim.opt.autowrite = true
|
vim.opt.autowrite = true
|
||||||
@@ -91,7 +89,7 @@ vim.opt.foldlevel = 20
|
|||||||
vim.opt.foldmethod = 'expr'
|
vim.opt.foldmethod = 'expr'
|
||||||
vim.opt.foldexpr = 'nvim_treesitter#foldexpr()'
|
vim.opt.foldexpr = 'nvim_treesitter#foldexpr()'
|
||||||
vim.opt.foldtext = ''
|
vim.opt.foldtext = ''
|
||||||
vim.opt.fillchars = { fold = ' ' }
|
vim.opt.fillchars = 'fold: '
|
||||||
|
|
||||||
-- Enable all mouse features
|
-- Enable all mouse features
|
||||||
vim.opt.mouse = 'a'
|
vim.opt.mouse = 'a'
|
||||||
|
|||||||
Reference in New Issue
Block a user