aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/nvim/autoload/utils.vim8
-rw-r--r--.config/nvim/init.lua10
-rw-r--r--.config/nvim/lua/plugins/cmp.lua6
-rw-r--r--.config/nvim/lua/plugins/lsp.lua35
-rw-r--r--.config/nvim/lua/plugins/telescope.lua2
-rw-r--r--.config/nvim/lua/plugins/toggleterm.lua4
-rw-r--r--.config/nvim/lua/user/func.lua138
-rw-r--r--.config/nvim/lua/user/keys.lua26
-rw-r--r--.config/nvim/lua/user/mods.lua265
-rw-r--r--.config/nvim/lua/user/opts.lua1
-rw-r--r--.config/nvim/lua/user/pack.lua25
-rw-r--r--.config/nvim/lua/user/utils.lua125
12 files changed, 347 insertions, 298 deletions
diff --git a/.config/nvim/autoload/utils.vim b/.config/nvim/autoload/utils.vim
index d4a1298..1f10423 100644
--- a/.config/nvim/autoload/utils.vim
+++ b/.config/nvim/autoload/utils.vim
@@ -16,11 +16,6 @@ endfunction
"-------------------------------------------------
" Toggle DiagnosticsOpenFloat
-augroup OpenFloat
- autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focusable = false,})
-
-augroup END
-
function! utils#ToggleDiagnosticsOpenFloat()
" Switch the toggle variable
let g:DiagnosticsOpenFloat = !get(g:, 'DiagnosticsOpenFloat', 1)
@@ -33,7 +28,8 @@ function! utils#ToggleDiagnosticsOpenFloat()
" Enable if toggled on
if g:DiagnosticsOpenFloat
augroup OpenFloat
- autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focusable = false,})
+ autocmd! CursorHold * lua vim.diagnostic.open_float(nil, {focusable = false,})
+ "autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focusable = false,})
"autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focusable = false,}) print ("vim.diagnostic.open_float enabled...")
augroup END
endif
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index 622e5e9..f6b6ed5 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -52,8 +52,7 @@ local modules = {
"user.pack", -- Packer plugin manager
"user.opts", -- Options
"user.keys", -- Keymaps
- "user.utils", -- Utilities
- --"user.mods", -- Modules/functions
+ "user.mods", -- Modules/functions
--"user.deps", -- Plugins
--"user.scripts",
"plugins.treesitter",
@@ -89,9 +88,9 @@ end
-- Check if we have the latest stable version of nvim
-local utils = require("user.utils")
+local mods = require("user.mods")
local expected_ver = "0.9.0"
-local nvim_ver = utils.get_nvim_version()
+local nvim_ver = mods.get_nvim_version()
if nvim_ver ~= expected_ver then
local msg = string.format("Unsupported nvim version: expect %s, but got %s instead!", expected_ver, nvim_ver)
@@ -103,6 +102,9 @@ end
-- Snippets
vim.g.snippets = "luasnip"
+-- Notifications
+vim.notify = require("notify") -- Requires plugin "rcarriga/nvim-notify"
+
-- Improve speed by disabling some default plugins/modules
local builtins = {
"gzip",
diff --git a/.config/nvim/lua/plugins/cmp.lua b/.config/nvim/lua/plugins/cmp.lua
index 829a448..edf57de 100644
--- a/.config/nvim/lua/plugins/cmp.lua
+++ b/.config/nvim/lua/plugins/cmp.lua
@@ -98,11 +98,11 @@ cmp.setup({
i = function()
if cmp.visible() then
cmp.abort()
- require("user.utils").toggle_completion()
+ require("user.mods").toggle_completion()
require("notify")("completion off")
else
cmp.complete()
- require("user.utils").toggle_completion()
+ require("user.mods").toggle_completion()
require("notify")("completion on")
end
end,
@@ -111,7 +111,7 @@ cmp.setup({
-- i = function(fallback)
-- if cmp.visible() then
-- cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false })
- -- require("user.utils").toggle_completion()
+ -- require("user.mods").toggle_completion()
-- else
-- fallback()
-- end
diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua
index 548df74..07c5c83 100644
--- a/.config/nvim/lua/plugins/lsp.lua
+++ b/.config/nvim/lua/plugins/lsp.lua
@@ -1,7 +1,7 @@
-- Shorten Function Names
local fn = vim.fn
local keymap = vim.keymap
-local utils = require("user.utils")
+local mods = require("user.mods")
-- Setup mason so it can manage external tooling
@@ -62,7 +62,7 @@ local on_attach = function(client, bufnr)
map("n", "ga", "<Cmd>lua vim.lsp.buf.code_action()<CR>")
map("n", "gf", "<Cmd>lua vim.lsp.buf.formatting()<CR>")
--map("n", "go", "<Cmd>lua vim.diagnostic.open_float()<CR>")
- map("n", "go", ":call utils#ToggleDiagnosticsOpenFloat()<CR> | :echom ('Toggle Diagnostics Float open/close...') | :sl! | echo ('')<CR>")
+ map("n", "go", ":call utils#ToggleDiagnosticsOpenFloat()<CR> | :echom ('Toggle Diagnostics Float open/close...')<CR> | :sl! | echo ('')<CR>")
map("n", "[d", "<Cmd>lua vim.diagnostic.goto_prev()<CR>")
map("n", "]d", "<Cmd>lua vim.diagnostic.goto_next()<CR>")
map("n", "gs", "<Cmd>lua vim.lsp.buf.document_symbol()<CR>")
@@ -72,10 +72,10 @@ local on_attach = function(client, bufnr)
map("n", "<leader>wl", function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end)
- --map("n", "<leader>q", function()
- -- vim.diagnostic.setqflist({ open = true })
- --end)
- --map.('n', '<space>q', vim.diagnostic.setloclist)
+ map("n", "<leader>q", function()
+ vim.diagnostic.setqflist({ open = true })
+ end)
+ map("n", "<space>q", "<Cmd>lua vim.diagnostic.setloclist()<CR>")
--map("n", "gk", "<Cmd>Lspsaga diagnostic_jump_prev<CR>")
--map("n", "gj", "<Cmd>Lspsaga diagnostic_jump_next<CR>")
@@ -147,6 +147,15 @@ function _G.toggle_diagnostics()
end
end
+-- Open float for diagnostics automatically
+vim.cmd([[
+augroup OpenFloat
+ " autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focusable = false,})
+ autocmd CursorHold * lua vim.diagnostic.open_float(nil, {focusable = false,})
+
+augroup END
+]])
+
-- Suppress error messages from lang servers
vim.lsp.set_log_level("debug")
local capabilities = vim.lsp.protocol.make_client_capabilities()
@@ -156,7 +165,7 @@ capabilities.offsetEncoding = { "utf-16" }
local lspconfig = require("lspconfig")
-if utils.executable("pylsp") then
+if mods.executable("pylsp") then
lspconfig.pylsp.setup({
settings = {
pylsp = {
@@ -179,7 +188,7 @@ else
vim.notify("pylsp not found!", vim.log.levels.WARN, { title = "Server?" })
end
-if utils.executable('pyright') then
+if mods.executable('pyright') then
lspconfig.pyright.setup{
on_attach = on_attach,
capabilities = capabilities
@@ -188,7 +197,7 @@ else
vim.notify("pyright not found!", vim.log.levels.WARN, {title = 'Server?'})
end
-if utils.executable("clangd") then
+if mods.executable("clangd") then
lspconfig.clangd.setup({
on_attach = on_attach,
capabilities = capabilities,
@@ -202,7 +211,7 @@ else
end
-- Set up vim-language-server
-if utils.executable("vim-language-server") then
+if mods.executable("vim-language-server") then
lspconfig.vimls.setup({
on_attach = on_attach,
flags = {
@@ -215,14 +224,14 @@ else
end
-- Set up bash-language-server
-if utils.executable("bash-language-server") then
+if mods.executable("bash-language-server") then
lspconfig.bashls.setup({
on_attach = on_attach,
capabilities = capabilities,
})
end
-if utils.executable("lua-language-server") then
+if mods.executable("lua-language-server") then
lspconfig.lua_ls.setup({
on_attach = on_attach,
settings = {
@@ -251,7 +260,7 @@ if utils.executable("lua-language-server") then
end
-if utils.executable("rust-language-server") then
+if mods.executable("rust-language-server") then
require("lspconfig").rust_analyzer.setup{
cmd = { "rustup", "run", "nightly", "rust-analyzer" },
on_attach = on_attach,
diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua
index 9459a3e..70eae7a 100644
--- a/.config/nvim/lua/plugins/telescope.lua
+++ b/.config/nvim/lua/plugins/telescope.lua
@@ -260,6 +260,8 @@ require('telescope').load_extension('ui-select')
require("telescope").load_extension("file_browser")
require('telescope').load_extension('changed_files')
require('telescope').load_extension('media_files')
+--require('telescope').extensions.notify.notify()
+require('telescope').load_extension('notify')
function M.find_configs()
require("telescope.builtin").find_files {
diff --git a/.config/nvim/lua/plugins/toggleterm.lua b/.config/nvim/lua/plugins/toggleterm.lua
index 024c2f6..5875fc6 100644
--- a/.config/nvim/lua/plugins/toggleterm.lua
+++ b/.config/nvim/lua/plugins/toggleterm.lua
@@ -55,10 +55,10 @@ toggleterm.setup({
},
},
})
-local utils = require("user.utils")
+local mods = require("user.mods")
local float_handler = function(term)
- if not utils.empty(vim.fn.mapcheck('jj', 't')) then
+ if not mods.empty(vim.fn.mapcheck('jj', 't')) then
vim.keymap.del('t', 'jj', { buffer = term.bufnr })
vim.keymap.del('t', '<esc>', { buffer = term.bufnr })
end
diff --git a/.config/nvim/lua/user/func.lua b/.config/nvim/lua/user/func.lua
new file mode 100644
index 0000000..c36d9e2
--- /dev/null
+++ b/.config/nvim/lua/user/func.lua
@@ -0,0 +1,138 @@
+--vim.cmd([[
+-- function RandomColorScheme()
+-- let mycolors = split(globpath(&rtp,"**/colors/*.vim"),"\n")
+-- exe 'so ' . mycolors[localtime() % len(mycolors)]
+-- unlet mycolors
+-- endfunction
+--
+-- call RandomColorScheme()
+--
+-- :command NewColor call RandomColorScheme()
+--]])
+
+--vim.cmd([[
+-- function RandomColorSchemeMyPicks()
+-- let mypicks = ["pyte", "fokus", "github", "peachpuff", "morning", "simple256", "xcode", "gruvbox"]
+-- let mypick = mypicks[localtime() % len(mypicks)]
+-- echom mypick
+-- execute 'colo' mypick
+-- endfunction
+--
+-- command NewColor call RandomColorSchemeMyPicks()
+--
+-- let s:use_gui = exists('g:neovide') || has('gui_running') || (has('termguicolors') && &termguicolors)
+-- if (s:use_gui)
+-- call RandomColorSchemeMyPicks()
+-- endif
+--]])
+
+--vim.cmd([[
+-- let g:fzf_history_dir = '~/.local/share/fzf-history'
+-- map <leader>z :FZF<CR>
+-- map <leader>a :Files<CR>
+-- map <leader>l :Lines<CR>
+-- map <leader>L :BLines<CR>
+-- map <leader>B :Buffers<CR>
+-- map <leader>h :History:<CR>
+-- nnoremap <leader>g :Rg<CR>
+-- "nnoremap <leader>t :Tags<CR>
+-- nnoremap <leader>m :Marks<CR>
+-- " This is the default extra key bindings
+-- let g:fzf_action = {
+-- \ 'ctrl-t': 'tab split',
+-- \ 'ctrl-x': 'split',
+-- \ 'ctrl-y': 'vsplit' }
+-- let g:fzf_tags_command = 'ctags -R'
+-- " Border color
+-- let g:fzf_layout = {'up':'~90%', 'window': { 'width': 0.8, 'height': 0.8,'yoffset':0.5,'xoffset': 0.5, 'highlight': 'Todo', 'border': 'sharp' } }
+-- let $FZF_DEFAULT_OPTS = '--layout=reverse --info=inline'
+-- let $FZF_DEFAULT_COMMAND="rg --files --hidden"
+-- " Customize fzf colors to match your color scheme
+-- let g:fzf_colors =
+-- \ { 'fg': ['fg', 'Normal'],
+-- \ 'bg': ['bg', 'Normal'],
+-- \ 'hl': ['fg', 'Comment'],
+-- \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
+-- \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
+-- \ 'hl+': ['fg', 'Statement'],
+-- \ 'info': ['fg', 'PreProc'],
+-- \ 'border': ['fg', 'Ignore'],
+-- \ 'prompt': ['fg', 'Conditional'],
+-- \ 'pointer': ['fg', 'Exception'],
+-- \ 'marker': ['fg', 'Keyword'],
+-- \ 'spinner': ['fg', 'Label'],
+-- \ 'header': ['fg', 'Comment'] }
+-- " Get Files
+-- command! -bang -nargs=? -complete=dir Files
+-- \ call fzf#vim#files(<q-args>, fzf#vim#with_preview({'options': ['--layout=reverse', '--info=inline']}), <bang>0)
+-- " Get text in files with Rg
+-- command! -bang -nargs=* Rg
+-- \ call fzf#vim#grep(
+-- \ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>), 1,
+-- \ fzf#vim#with_preview(), <bang>0)
+-- " Ripgrep advanced
+-- function! RipgrepFzf(query, fullscreen)
+-- let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true'
+-- let initial_command = printf(command_fmt, shellescape(a:query))
+-- let reload_command = printf(command_fmt, '{q}')
+-- let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]}
+-- call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen)
+-- endfunction
+-- command! -nargs=* -bang RG call RipgrepFzf(<q-args>, <bang>0)
+-- " Git grep
+-- command! -bang -nargs=* GGrep
+-- \ call fzf#vim#grep(
+-- \ 'git grep --line-number '.shellescape(<q-args>), 0,
+-- \ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), <bang>0)
+-- command! -bang FM call fzf#run(fzf#wrap({'source': 'cat ~/.fzf-marks | sed "s/.*: \(.*\)$/\1/" | sed "s#~#${HOME}#"', 'sink': 'lcd'}, <bang>0))
+--]])
+--
+--vim.cmd([[
+-- " Enable mouse scrollback
+-- set mouse=a
+-- tnoremap <Esc> <C-\><C-n>
+-- tnoremap <c-b> <c-\><c-n>
+-- function! ClearTerminal()
+-- set scrollback=1
+-- let &g:scrollback=1
+-- echo &scrollback
+-- call feedkeys("\i")
+-- call feedkeys("clear\<CR>")
+-- call feedkeys("\<C-\>\<C-n>")
+-- call feedkeys("\i")
+-- sleep 100m
+-- let &scrollback=s:scroll_value
+-- endfunction
+--]])
+--
+--vim.cmd([[
+-- " :Rename {newname}
+-- function! RenameFile()
+-- let old_name = expand('%')
+-- let new_name = input('New file name: ', expand('%'), 'file')
+-- if new_name != '' && new_name != old_name
+-- exec ':saveas ' . new_name
+-- exec ':silent !rm ' . old_name
+-- redraw!
+-- endif
+-- endfunction
+-- map <leader>re :call RenameFile()<cr>
+--]])
+
+--vim.cmd([[
+-- " Markdown Settings
+-- autocmd BufNewFile,BufReadPost *.md set filetype=markdown
+-- let g:markdown_fenced_languages = ['html', 'python', 'bash=sh', 'sql', 'pug']
+-- let g:markdown_minlines = 100
+-- let g:instant_markdown_autostart = 0
+--]])
+--
+--vim.cmd([[
+-- " On The Fly Table mode
+-- function! s:isAtStartOfLine(mapping)
+-- let text_before_cursor = getline('.')[0 : col('.')-1]
+-- let mapping_pattern = '\V' . escape(a:mapping, '\')
+-- let comment_pattern = '\V' . escape(substitute(&l:commentstring, '%s.*$', '', ''), '\')
+-- return (text_before_cursor =~? '^' . ('\v(' . comment_pattern . '\v)?') . '\s*\v' . mapping_pattern . '\v$')
+-- endfunction
+--]])
diff --git a/.config/nvim/lua/user/keys.lua b/.config/nvim/lua/user/keys.lua
index 4556510..429604a 100644
--- a/.config/nvim/lua/user/keys.lua
+++ b/.config/nvim/lua/user/keys.lua
@@ -1,6 +1,5 @@
--[[ key.lua ]]
-local utils = require("user.utils")
------------- Shorten Function Names --------------
local keymap = vim.keymap
local map = function(mode, l, r, opts)
@@ -155,7 +154,7 @@ map('n', '<leader>o', ':!xdg-open %<cr><cr>')
--map("n", "<CR>", "!silent :noh<CR><CR>")
-- Toggle completion
-map("n", "<Leader>tc", ":lua require('user.utils').toggle_completion()<CR>")
+map("n", "<Leader>tc", ":lua require('user.mods').toggle_completion()<CR>")
-- Disable default completion.
map('i', '<C-n>', '<Nop>')
@@ -190,6 +189,7 @@ map('n', '<leader>tb', ':call utils#Toggle_transparent_background()<CR>')
-- Toggle zoom
map("n", "<leader>z", ":call utils#ZoomToggle()<CR>")
+map("n", "<C-w>z", "<C-w>|<C-w>_")
-- Toggle statusline
map('n', '<S-h>', ':call ToggleHiddenAll()<CR>')
@@ -250,19 +250,21 @@ map("n", "<leader>gm", ":Gmove<Space>")
-- Telescope
map("n", "<leader>ff", function() require("telescope.builtin").find_files { hidden = true, no_ignore = true } end) -- find all files
map("n", "<leader>fF", "<cmd>lua require('telescope.builtin').find_files()<cr>") -- find files with hidden option
-map("n", "<leader>fb", "<cmd>lua require('telescope.builtin').current_buffer_fuzzy_find()<cr>")
-map("n", "<leader>fc", "<cmd>lua require('telescope.builtin').commands()<cr>")
map("n", "<leader>fg", "<cmd>lua require('telescope.builtin').live_grep()<cr>")
+map("n", "<leader>fb", "<cmd>lua require('telescope.builtin').buffers()<cr>")
+map("n", "<leader>fh", "<cmd>lua require('telescope.builtin').help_tags()<cr>")
+map("n", "<leader>fc", "<cmd>lua require('telescope.builtin').commands()<cr>")
+map("n", "<leader>ffc", "<cmd>lua require('telescope.builtin').current_buffer_fuzzy_find()<cr>")
+map("n", "<leader>cf", "<cmd>Telescope changed_files<cr>")
map("n", "<leader>fp", "<cmd>Telescope pickers<cr>")
map("n", "<leader>fr", "<cmd>lua require('telescope.builtin').registers({})<CR>") -- registers picker
-map("n", "<leader>cf", "<cmd>Telescope changed_files<cr>")
map("n", "<leader>fd", "<cmd>lua require('telescope.builtin').diagnostics()<cr>")
-map("n", "<leader>fh", "<cmd>lua require('telescope.builtin').help_tags()<cr>")
map("n", "<leader>fk", "<cmd>lua require('telescope.builtin').keymaps()<cr>")
map("n", "<leader>fn", [[<Cmd>lua require'plugins.telescope'.find_notes()<CR>]]) -- find notes
map("n", "<leader>fgn", [[<Cmd>lua require'plugins.telescope'.grep_notes()<CR>]]) -- search notes
map("n", "<leader>f.", [[<Cmd>lua require'plugins.telescope'.find_configs()<CR>]]) -- find configs
map("n", "<leader>fm", "<cmd>lua require('telescope').extensions.media_files.media_files({})<cr>") -- find media files
+map("n", "<leader>fi", "<cmd>lua require('telescope').extensions.notify.notify({})<cr>") -- find media files
-- FZF
map("n", "<leader>fz", "<cmd>lua require('fzf-lua').files()<CR>")
@@ -271,8 +273,14 @@ map("n", "<leader>fz", "<cmd>lua require('fzf-lua').files()<CR>")
map("n", "<leader>f", ":NvimTreeToggle<CR>", {})
-- Markdown-preview
-map("n", "<leader>md", "<Plug>:Glow")
---map("n", "<leader>md", "<Plug>MarkdownPreviewToggle")
+map("n", "<leader>md", "<Plug>MarkdownPreviewToggle")
+map("n", "<leader>mg", "<CMD>Glow<CR>")
-- Autopairs
-map("n", "<leader>ww", "<cmd>lua require('user.utils').Toggle_autopairs()<CR>")
+map("n", "<leader>ww", "<cmd>lua require('user.mods').Toggle_autopairs()<CR>")
+
+-- Zen-mode toggle
+map("n", "<leader>zm", "<CMD>ZenMode<CR> | :echom ('Zen Mode')<CR> | :sl! | echo ('')<CR>")
+
+-- Vim-rooter
+map("n", "<leader>ro", "<CMD>Rooter<CR> | :sl! | echo ('')<CR>", term_opts)
diff --git a/.config/nvim/lua/user/mods.lua b/.config/nvim/lua/user/mods.lua
index c36d9e2..0be0783 100644
--- a/.config/nvim/lua/user/mods.lua
+++ b/.config/nvim/lua/user/mods.lua
@@ -1,138 +1,143 @@
---vim.cmd([[
--- function RandomColorScheme()
--- let mycolors = split(globpath(&rtp,"**/colors/*.vim"),"\n")
--- exe 'so ' . mycolors[localtime() % len(mycolors)]
--- unlet mycolors
--- endfunction
---
--- call RandomColorScheme()
---
--- :command NewColor call RandomColorScheme()
---]])
+local M = {}
---vim.cmd([[
--- function RandomColorSchemeMyPicks()
--- let mypicks = ["pyte", "fokus", "github", "peachpuff", "morning", "simple256", "xcode", "gruvbox"]
--- let mypick = mypicks[localtime() % len(mypicks)]
--- echom mypick
--- execute 'colo' mypick
--- endfunction
---
--- command NewColor call RandomColorSchemeMyPicks()
---
--- let s:use_gui = exists('g:neovide') || has('gui_running') || (has('termguicolors') && &termguicolors)
--- if (s:use_gui)
--- call RandomColorSchemeMyPicks()
--- endif
---]])
+--- Shorten Function Names
+local fn = vim.fn
+function M.executable(name)
+ if fn.executable(name) > 0 then
+ return true
+ end
---vim.cmd([[
--- let g:fzf_history_dir = '~/.local/share/fzf-history'
--- map <leader>z :FZF<CR>
--- map <leader>a :Files<CR>
--- map <leader>l :Lines<CR>
--- map <leader>L :BLines<CR>
--- map <leader>B :Buffers<CR>
--- map <leader>h :History:<CR>
--- nnoremap <leader>g :Rg<CR>
--- "nnoremap <leader>t :Tags<CR>
--- nnoremap <leader>m :Marks<CR>
--- " This is the default extra key bindings
--- let g:fzf_action = {
--- \ 'ctrl-t': 'tab split',
--- \ 'ctrl-x': 'split',
--- \ 'ctrl-y': 'vsplit' }
--- let g:fzf_tags_command = 'ctags -R'
--- " Border color
--- let g:fzf_layout = {'up':'~90%', 'window': { 'width': 0.8, 'height': 0.8,'yoffset':0.5,'xoffset': 0.5, 'highlight': 'Todo', 'border': 'sharp' } }
--- let $FZF_DEFAULT_OPTS = '--layout=reverse --info=inline'
--- let $FZF_DEFAULT_COMMAND="rg --files --hidden"
--- " Customize fzf colors to match your color scheme
--- let g:fzf_colors =
--- \ { 'fg': ['fg', 'Normal'],
--- \ 'bg': ['bg', 'Normal'],
--- \ 'hl': ['fg', 'Comment'],
--- \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
--- \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
--- \ 'hl+': ['fg', 'Statement'],
--- \ 'info': ['fg', 'PreProc'],
--- \ 'border': ['fg', 'Ignore'],
--- \ 'prompt': ['fg', 'Conditional'],
--- \ 'pointer': ['fg', 'Exception'],
--- \ 'marker': ['fg', 'Keyword'],
--- \ 'spinner': ['fg', 'Label'],
--- \ 'header': ['fg', 'Comment'] }
--- " Get Files
--- command! -bang -nargs=? -complete=dir Files
--- \ call fzf#vim#files(<q-args>, fzf#vim#with_preview({'options': ['--layout=reverse', '--info=inline']}), <bang>0)
--- " Get text in files with Rg
--- command! -bang -nargs=* Rg
--- \ call fzf#vim#grep(
--- \ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>), 1,
--- \ fzf#vim#with_preview(), <bang>0)
--- " Ripgrep advanced
--- function! RipgrepFzf(query, fullscreen)
--- let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true'
--- let initial_command = printf(command_fmt, shellescape(a:query))
--- let reload_command = printf(command_fmt, '{q}')
--- let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]}
--- call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen)
--- endfunction
--- command! -nargs=* -bang RG call RipgrepFzf(<q-args>, <bang>0)
--- " Git grep
--- command! -bang -nargs=* GGrep
--- \ call fzf#vim#grep(
--- \ 'git grep --line-number '.shellescape(<q-args>), 0,
--- \ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), <bang>0)
--- command! -bang FM call fzf#run(fzf#wrap({'source': 'cat ~/.fzf-marks | sed "s/.*: \(.*\)$/\1/" | sed "s#~#${HOME}#"', 'sink': 'lcd'}, <bang>0))
---]])
---
---vim.cmd([[
--- " Enable mouse scrollback
--- set mouse=a
--- tnoremap <Esc> <C-\><C-n>
--- tnoremap <c-b> <c-\><c-n>
--- function! ClearTerminal()
--- set scrollback=1
--- let &g:scrollback=1
--- echo &scrollback
--- call feedkeys("\i")
--- call feedkeys("clear\<CR>")
--- call feedkeys("\<C-\>\<C-n>")
--- call feedkeys("\i")
--- sleep 100m
--- let &scrollback=s:scroll_value
--- endfunction
---]])
---
---vim.cmd([[
--- " :Rename {newname}
--- function! RenameFile()
--- let old_name = expand('%')
--- let new_name = input('New file name: ', expand('%'), 'file')
--- if new_name != '' && new_name != old_name
--- exec ':saveas ' . new_name
--- exec ':silent !rm ' . old_name
--- redraw!
--- endif
--- endfunction
--- map <leader>re :call RenameFile()<cr>
---]])
+ return false
+end
+
+--------------------------------------------------
+
+--- Check whether a feature exists in Nvim
+--- @feat: string
+--- the feature name, like `nvim-0.7` or `unix`.
+--- return: bool
+M.has = function(feat)
+ if fn.has(feat) == 1 then
+ return true
+ end
+
+ return false
+end
+
+
+--------------------------------------------------
+
+---Determine if a value of any type is empty
+---@param item any
+---@return boolean?
+function M.empty(item)
+ if not item then return true end
+ local item_type = type(item)
+ if item_type == 'string' then return item == '' end
+ if item_type == 'number' then return item <= 0 end
+ if item_type == 'table' then return vim.tbl_isempty(item) end
+ return item ~= nil
+end
+--------------------------------------------------
+
+--- Create a dir if it does not exist
+function M.may_create_dir(dir)
+ local res = fn.isdirectory(dir)
+
+ if res == 0 then
+ fn.mkdir(dir, "p")
+ end
+end
+
+
+--------------------------------------------------
+
+--- Toggle cmp completion
+vim.g.cmp_toggle_flag = false -- initialize
+local normal_buftype = function()
+ return vim.api.nvim_buf_get_option(0, "buftype") ~= "prompt"
+end
+M.toggle_completion = function()
+ local ok, cmp = pcall(require, "cmp")
+ if ok then
+ local next_cmp_toggle_flag = not vim.g.cmp_toggle_flag
+ if next_cmp_toggle_flag then
+ print("completion on")
+ else
+ print("completion off")
+ end
+ cmp.setup({
+ enabled = function()
+ vim.g.cmp_toggle_flag = next_cmp_toggle_flag
+ if next_cmp_toggle_flag then
+ return normal_buftype
+ else
+ return next_cmp_toggle_flag
+ end
+ end,
+ })
+ else
+ print("completion not available")
+ end
+end
+
+
+--------------------------------------------------
+
+--- Make sure using latest neovim version
+function M.get_nvim_version()
+ local actual_ver = vim.version()
+
+ local nvim_ver_str = string.format("%d.%d.%d", actual_ver.major, actual_ver.minor, actual_ver.patch)
+ return nvim_ver_str
+end
+
+function M.add_pack(name)
+ local status, error = pcall(vim.cmd, "packadd " .. name)
+
+ return status
+end
+
+
+--------------------------------------------------
+
+--- Toggle autopairs on/off (requires "windwp/nvim-autopairs")
+function M.Toggle_autopairs()
+ local ok, autopairs = pcall(require, "nvim-autopairs")
+ if ok then
+ if autopairs.state.disabled then
+ autopairs.enable()
+ print("autopairs on")
+ else
+ autopairs.disable()
+ print("autopairs off")
+ end
+ else
+ print("autopairs not available")
+ end
+end
+
+
+--------------------------------------------------
+
+--- Make vim-rooter message disappear after making it's changes
--vim.cmd([[
--- " Markdown Settings
--- autocmd BufNewFile,BufReadPost *.md set filetype=markdown
--- let g:markdown_fenced_languages = ['html', 'python', 'bash=sh', 'sql', 'pug']
--- let g:markdown_minlines = 100
--- let g:instant_markdown_autostart = 0
+--let timer = timer_start(1000, 'LogTrigger', {})
+--func! LogTrigger(timer)
+-- silent!
+--endfunc
--]])
--
--vim.cmd([[
--- " On The Fly Table mode
--- function! s:isAtStartOfLine(mapping)
--- let text_before_cursor = getline('.')[0 : col('.')-1]
--- let mapping_pattern = '\V' . escape(a:mapping, '\')
--- let comment_pattern = '\V' . escape(substitute(&l:commentstring, '%s.*$', '', ''), '\')
--- return (text_before_cursor =~? '^' . ('\v(' . comment_pattern . '\v)?') . '\s*\v' . mapping_pattern . '\v$')
--- endfunction
+--function! ConfigureChDir()
+-- echo ('')
+--endfunction
+--" Call after vim-rooter changes the root dir
+--autocmd User RooterChDir :sleep! | call LogTrigger(timer) | call ConfigureChDir()
--]])
+
+
+--------------------------------------------------
+
+return M
diff --git a/.config/nvim/lua/user/opts.lua b/.config/nvim/lua/user/opts.lua
index 468b7af..c1b5027 100644
--- a/.config/nvim/lua/user/opts.lua
+++ b/.config/nvim/lua/user/opts.lua
@@ -1,4 +1,5 @@
--[[ opts.lua ]]
+
-- " Load indent files, to automatically do language-dependent indenting.
--vim.cmd([[
-- "filetype plugin indent on
diff --git a/.config/nvim/lua/user/pack.lua b/.config/nvim/lua/user/pack.lua
index 918ab41..92366dd 100644
--- a/.config/nvim/lua/user/pack.lua
+++ b/.config/nvim/lua/user/pack.lua
@@ -148,7 +148,18 @@ return packer.startup(function(use)
use("folke/which-key.nvim") --
use("folke/zen-mode.nvim") --
use("romainl/vim-cool") --
- use "antoinemadec/FixCursorHold.nvim" --
+ use("antoinemadec/FixCursorHold.nvim") --
+ use({
+ "folke/trouble.nvim",
+ requires = "nvim-tree/nvim-web-devicons",
+ config = function()
+ require("trouble").setup {
+ -- your configuration comes here
+ -- or leave it empty to use the default settings
+ -- refer to the configuration section below
+ }
+ end
+ })
use("airblade/vim-rooter") --
--use("vim-test/vim-test") --
--use({
@@ -207,14 +218,16 @@ return packer.startup(function(use)
require("crates").setup()
end,
})
- --use({
- -- "iamcco/markdown-preview.nvim", -- Markdown Preview
- -- run = function() vim.fn["mkdp#util#install"]() end,
- --})
+ use({
+ "iamcco/markdown-preview.nvim", -- Markdown Preview
+ run = function() vim.fn["mkdp#util#install"]() end,
+ })
use({
"ellisonleao/glow.nvim", -- Markdown Preview
config = function()
- require("glow").setup()
+ require("glow").setup({
+ style = "dark",
+ })
end
})
diff --git a/.config/nvim/lua/user/utils.lua b/.config/nvim/lua/user/utils.lua
deleted file mode 100644
index f70fac5..0000000
--- a/.config/nvim/lua/user/utils.lua
+++ /dev/null
@@ -1,125 +0,0 @@
-local M = {}
-
---- Shorten Function Names
-local fn = vim.fn
-function M.executable(name)
- if fn.executable(name) > 0 then
- return true
- end
-
- return false
-end
-
-
---------------------------------------------------
-
---- Check whether a feature exists in Nvim
---- @feat: string
---- the feature name, like `nvim-0.7` or `unix`.
---- return: bool
-M.has = function(feat)
- if fn.has(feat) == 1 then
- return true
- end
-
- return false
-end
-
-
---------------------------------------------------
-
----Determine if a value of any type is empty
----@param item any
----@return boolean?
-function M.empty(item)
- if not item then return true end
- local item_type = type(item)
- if item_type == 'string' then return item == '' end
- if item_type == 'number' then return item <= 0 end
- if item_type == 'table' then return vim.tbl_isempty(item) end
- return item ~= nil
-end
-
---------------------------------------------------
-
---- Create a dir if it does not exist
-function M.may_create_dir(dir)
- local res = fn.isdirectory(dir)
-
- if res == 0 then
- fn.mkdir(dir, "p")
- end
-end
-
-
---------------------------------------------------
-
---- Toggle cmp completion
-vim.g.cmp_toggle_flag = false -- initialize
-local normal_buftype = function()
- return vim.api.nvim_buf_get_option(0, "buftype") ~= "prompt"
-end
-M.toggle_completion = function()
- local ok, cmp = pcall(require, "cmp")
- if ok then
- local next_cmp_toggle_flag = not vim.g.cmp_toggle_flag
- if next_cmp_toggle_flag then
- print("completion on")
- else
- print("completion off")
- end
- cmp.setup({
- enabled = function()
- vim.g.cmp_toggle_flag = next_cmp_toggle_flag
- if next_cmp_toggle_flag then
- return normal_buftype
- else
- return next_cmp_toggle_flag
- end
- end,
- })
- else
- print("completion not available")
- end
-end
-
-
---------------------------------------------------
-
---- Make sure using latest neovim version
-function M.get_nvim_version()
- local actual_ver = vim.version()
-
- local nvim_ver_str = string.format("%d.%d.%d", actual_ver.major, actual_ver.minor, actual_ver.patch)
- return nvim_ver_str
-end
-
-function M.add_pack(name)
- local status, error = pcall(vim.cmd, "packadd " .. name)
-
- return status
-end
-
-
---------------------------------------------------
-
---- Toggle autopairs on/off (requires "windwp/nvim-autopairs")
-function M.Toggle_autopairs()
- local ok, autopairs = pcall(require, "nvim-autopairs")
- if ok then
- if autopairs.state.disabled then
- autopairs.enable()
- print("autopairs on")
- else
- autopairs.disable()
- print("autopairs off")
- end
- else
- print("autopairs not available")
- end
-end
-
-return M
-
-
---------------------------------------------------