aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2023-07-14 17:35:37 +0200
committersrdusr <trevorgray@srdusr.com>2023-07-14 17:35:37 +0200
commit90982cf76ae6bf29840f2ecd6fc790151fc0fffe (patch)
treec4b3cc68248dacbf9ed832647980d139ccea30f3 /.config/nvim
parent863eda5cb97493b0d63ad457069d88c5c5b7a8f5 (diff)
parentd72187703f539920b879439c73ebf4849cc3dbdd (diff)
downloaddotfiles-90982cf76ae6bf29840f2ecd6fc790151fc0fffe.tar.gz
dotfiles-90982cf76ae6bf29840f2ecd6fc790151fc0fffe.zip
Merge commit '600fd511151dec5bc6eafe7912579b9133921125'
Diffstat (limited to '.config/nvim')
-rw-r--r--.config/nvim/README.md6
-rw-r--r--.config/nvim/init.lua4
-rw-r--r--.config/nvim/lua/plugins/colorscheme.lua16
-rw-r--r--.config/nvim/lua/plugins/lsp.lua44
-rw-r--r--.config/nvim/lua/plugins/telescope.lua508
-rw-r--r--.config/nvim/lua/user/keys.lua11
-rw-r--r--.config/nvim/lua/user/mods.lua204
-rw-r--r--.config/nvim/lua/user/pack.lua27
8 files changed, 555 insertions, 265 deletions
diff --git a/.config/nvim/README.md b/.config/nvim/README.md
index 630b8e5..2659734 100644
--- a/.config/nvim/README.md
+++ b/.config/nvim/README.md
@@ -1 +1,7 @@
## Neovim
+
+#### TODOS:
+- [ ] Markdown filetype plugin or autocommand to add two spaces each line.
+- [ ] Markdown filetype plugin or autocommand to make backtick auto-correct properly.
+- [ ] Check history or telescope history of last files edited or opened.
+
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index bd05b8a..b3f7a93 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -31,7 +31,7 @@
-- Download nvim-linux64.tar.gz:
--$ curl -L -o nvim-linux64.tar.gz https://github.com/neovim/neovim/releases/download/nightly/nvim-linux64.tar.gz
-- Extract:
---$ tar xzvf nvim-linux64.tar.gz
+--$ tar xzvf nvim-linux64.tar.gz --install-dir=/bin
-- Run:
--$ ./nvim-linux64/bin/nvim
@@ -75,7 +75,7 @@ local modules = {
"plugins.quickfix",
--"plugins.snippets",
--"plugins.colorizer",
- "plugins.prettier",
+ --"plugins.prettier",
--"plugins.git",
"plugins.lsp",
"plugins.gitsigns",
diff --git a/.config/nvim/lua/plugins/colorscheme.lua b/.config/nvim/lua/plugins/colorscheme.lua
index 10f0432..14edbdf 100644
--- a/.config/nvim/lua/plugins/colorscheme.lua
+++ b/.config/nvim/lua/plugins/colorscheme.lua
@@ -1,11 +1,17 @@
-- Colorscheme
-- Available colorschemes:
-- [[ nightfly ayu onedark doom-one nvimgelion github_dark tokyonight ]]
-local colorscheme = "tokyonight-night"
-local status_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme)
+
+-- Define default color scheme
+local default_colorscheme = "tokyonight-night"
+local fallback_colorscheme = "desert"
+
+-- Attempt to set the default color scheme
+local status_ok, _ = pcall(vim.cmd, "colorscheme " .. default_colorscheme)
+
+-- If the default color scheme is not found, use the fallback color scheme
if not status_ok then
- vim.notify("colorscheme " .. colorscheme .. " not found!")
- return
+ vim.cmd("colorscheme " .. fallback_colorscheme)
end
--local function MyHighlights()
@@ -26,7 +32,7 @@ end
vim.api.nvim_command("syntax on")
-vim.api.nvim_command("highlight Normal guibg=none")
+vim.api.nvim_command("highlight Normal guibg=NONE")
vim.api.nvim_command("highlight NormalNC guibg=none")
vim.api.nvim_command("highlight SignColumn guibg=none")
--vim.api.nvim_command("highlight FoldColumn guibg=none")
diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua
index ffa7837..ba577bc 100644
--- a/.config/nvim/lua/plugins/lsp.lua
+++ b/.config/nvim/lua/plugins/lsp.lua
@@ -1,8 +1,8 @@
require('mason').setup()
-local lspconfig = require 'lspconfig'
-local mason_lspconfig = require 'mason-lspconfig'
-local null_ls = require 'null-ls'
---local lsp_lines = require 'lsp_lines'
+local lspconfig = require('lspconfig')
+local mason_lspconfig = require('mason-lspconfig')
+local null_ls = require('null-ls')
+--local lsp_lines = require('lsp_lines')
local keymap = vim.keymap
local cmd = vim.cmd
@@ -179,6 +179,26 @@ local servers = {
},
},
},
+ dartls = ({
+ cmd = { "dart", "language-server", "--protocol=lsp" },
+ filetypes = { "dart" },
+ init_options = {
+ closingLabels = true,
+ flutterOutline = true,
+ onlyAnalyzeProjectsWithOpenFiles = true,
+ outline = true,
+ suggestFromUnimportedLibraries = true,
+ },
+ -- root_dir = root_pattern("pubspec.yaml"),
+ settings = {
+ dart = {
+ completeFunctionCalls = true,
+ showTodos = true,
+ },
+ },
+ on_attach = function(client, bufnr)
+ end,
+ }),
lua_ls = ({
on_attach = on_attach,
capabilities = capabilities,
@@ -226,6 +246,19 @@ mason_lspconfig.setup({
automatic_installation = true,
})
+-- Linters/Formatters ensure installed
+local registry = require("mason-registry")
+for _, pkg_name in ipairs { "dart-debug-Adaptor", "stylua", "prettier", "prettierd" } do
+ local ok, pkg = pcall(registry.get_package, pkg_name)
+ if ok then
+ if not pkg:is_installed() then
+ pkg:install()
+ end
+ end
+end
+
+require("lspconfig").dartls.setup {capabilities = capabilities,}
+
for server, config in pairs(servers) do
if config.prefer_null_ls then
if config.on_attach then
@@ -307,14 +340,15 @@ null_ls.setup {
builtins.formatting.isort,
builtins.formatting.htmlbeautifier,
-- null_ls.builtins.formatting.prettier,
+ builtins.formatting.prettierd,
builtins.formatting.prettier.with({
filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact", "json", "yaml", "markdown", "html",
"css", "scss", "less", "graphql", "vue", "svelte" },
extra_args = { "--single-quote", "--tab-width 4", "--print-width 200" },
}),
- builtins.formatting.prettierd,
builtins.formatting.rustfmt,
builtins.formatting.stylua,
+ builtins.formatting.dart_format,
builtins.formatting.trim_whitespace,
builtins.formatting.yapf,
-- null_ls.builtins.formatting.black
diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua
index d6d7233..079f88b 100644
--- a/.config/nvim/lua/plugins/telescope.lua
+++ b/.config/nvim/lua/plugins/telescope.lua
@@ -9,9 +9,11 @@ local fb_actions = require("telescope").extensions.file_browser.actions
--local action_state = require("telescope.actions.state")
--local layout_actions = require("telescope.actions.layout")
--local pickers = require("telescope.pickers")
+local themes = require("telescope.themes")
+
require('telescope').setup({
- defaults = {
+ defaults = {
vimgrep_arguments = {
"rg",
"--color=never",
@@ -32,12 +34,13 @@ require('telescope').setup({
--path_display = { "smart" },
file_ignore_patterns = {
"packer_compiled.lua",
+ "zcompdump",
"%.DS_Store",
"%.git/",
"%.spl",
--"%.log",
"%[No Name%]", -- new files / sometimes folders (netrw)
- "/$", -- ignore folders (netrw)
+ "/$", -- ignore folders (netrw)
"node_modules",
"%.png",
"%.zip",
@@ -49,112 +52,118 @@ require('telescope').setup({
"^music/",
--"^node_modules/",
--"^undodir/",
- },
- mappings = {
- i = {
- ["<C-n>"] = actions.cycle_history_next,
- ["<C-p>"] = actions.cycle_history_prev,
-
- ["<C-j>"] = actions.move_selection_next,
- ["<C-k>"] = actions.move_selection_previous,
-
- --["<C-c>"] = actions.close,
- ["<Esc>"] = actions.close, -- close w/ one esc
- --["<Esc>"] = "close", -- close w/ one esc
- ["<?>"] = actions.which_key, -- keys from pressing <C-/>
-
- ["<Down>"] = actions.move_selection_next,
- ["<Up>"] = actions.move_selection_previous,
-
- ["<CR>"] = actions.select_default,
- ["<C-x>"] = actions.select_horizontal,
- ["<C-y>"] = actions.select_vertical,
- ["<C-t>"] = actions.select_tab,
-
- ["<C-u>"] = actions.preview_scrolling_up,
- ["<C-d>"] = actions.preview_scrolling_down,
-
- ["<PageUp>"] = actions.results_scrolling_up,
- ["<PageDown>"] = actions.results_scrolling_down,
-
- ["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
- ["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
- ["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
- ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
- ["<C-l>"] = actions.complete_tag,
- ["<C-_>"] = actions.which_key, -- keys from pressing <C-/>
- --["<C-o>"] = function(prompt_bufnr)
- -- local selection = require("telescope.actions.state").get_selected_entry()
- -- local dir = vim.fn.fnamemodify(selection.path, ":p:h")
- -- require("telescope.actions").close(prompt_bufnr)
- -- -- Depending on what you want put `cd`, `lcd`, `tcd`
- -- vim.cmd(string.format("silent lcd %s", dir))
- --end,
- },
-
- n = {
- ["<esc>"] = actions.close,
+ },
+ mappings = {
+ i = {
+ ["<C-n>"] = actions.cycle_history_next,
+ ["<C-p>"] = actions.cycle_history_prev,
+
+ ["<C-j>"] = actions.move_selection_next,
+ ["<C-k>"] = actions.move_selection_previous,
+
+ --["<C-c>"] = actions.close,
+ ["<Esc>"] = actions.close, -- close w/ one esc
+ --["<Esc>"] = "close", -- close w/ one esc
+ ["<?>"] = actions.which_key, -- keys from pressing <C-/>
+
+ ["<Down>"] = actions.move_selection_next,
+ ["<Up>"] = actions.move_selection_previous,
+
+ ["<CR>"] = actions.select_default,
+ ["<C-x>"] = actions.select_horizontal,
+ ["<C-y>"] = actions.select_vertical,
+ ["<C-t>"] = actions.select_tab,
+
+ ["<C-u>"] = actions.preview_scrolling_up,
+ ["<C-d>"] = actions.preview_scrolling_down,
+
+ ["<PageUp>"] = actions.results_scrolling_up,
+ ["<PageDown>"] = actions.results_scrolling_down,
+
+ ["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
+ ["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
+ ["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
+ ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
+ ["<C-l>"] = actions.complete_tag,
+ ["<C-_>"] = actions.which_key, -- keys from pressing <C-/>
+ --["<C-o>"] = function(prompt_bufnr)
+ -- local selection = require("telescope.actions.state").get_selected_entry()
+ -- local dir = vim.fn.fnamemodify(selection.path, ":p:h")
+ -- require("telescope.actions").close(prompt_bufnr)
+ -- -- Depending on what you want put `cd`, `lcd`, `tcd`
+ -- vim.cmd(string.format("silent lcd %s", dir))
+ --end,
+ },
+ n = {
+ --["cd"] = function(prompt_bufnr)
+ -- local selection = require("telescope.actions.state").get_selected_entry()
+ -- local dir = vim.fn.fnamemodify(selection.path, ":p:h")
+ -- require("telescope.actions").close(prompt_bufnr)
+ -- -- Depending on what you want put `cd`, `lcd`, `tcd`
+ -- vim.cmd(string.format("silent lcd %s", dir))
+ --end,
+ ["<esc>"] = actions.close,
["<q>"] = actions.close,
- ["<CR>"] = actions.select_default,
- ["<C-x>"] = actions.select_horizontal,
- ["<C-y>"] = actions.select_vertical,
- ["<C-t>"] = actions.select_tab,
-
- ["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
- ["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
- ["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
- ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
-
- ["j"] = actions.move_selection_next,
- ["k"] = actions.move_selection_previous,
- ["H"] = actions.move_to_top,
- ["M"] = actions.move_to_middle,
- ["L"] = actions.move_to_bottom,
-
- ["<Down>"] = actions.move_selection_next,
- ["<Up>"] = actions.move_selection_previous,
- ["gg"] = actions.move_to_top,
- ["G"] = actions.move_to_bottom,
-
- ["<C-u>"] = actions.preview_scrolling_up,
- ["<C-d>"] = actions.preview_scrolling_down,
-
- ["<PageUp>"] = actions.results_scrolling_up,
- ["<PageDown>"] = actions.results_scrolling_down,
-
- ["?"] = actions.which_key,
- --["<C-o>"] = function(prompt_bufnr)
- -- local selection = require("telescope.actions.state").get_selected_entry()
- -- local dir = vim.fn.fnamemodify(selection.path, ":p:h")
- -- require("telescope.actions").close(prompt_bufnr)
- -- -- Depending on what you want put `cd`, `lcd`, `tcd`
- -- vim.cmd(string.format("silent lcd %s", dir))
- --end,
- },
- },
- },
- preview = {
- filesize_limit = 3,
- timeout = 250,
+ ["<CR>"] = actions.select_default,
+ ["<C-x>"] = actions.select_horizontal,
+ ["<C-y>"] = actions.select_vertical,
+ ["<C-t>"] = actions.select_tab,
+
+ ["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
+ ["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
+ ["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
+ ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
+
+ ["j"] = actions.move_selection_next,
+ ["k"] = actions.move_selection_previous,
+ ["H"] = actions.move_to_top,
+ ["M"] = actions.move_to_middle,
+ ["L"] = actions.move_to_bottom,
+
+ ["<Down>"] = actions.move_selection_next,
+ ["<Up>"] = actions.move_selection_previous,
+ ["gg"] = actions.move_to_top,
+ ["G"] = actions.move_to_bottom,
+
+ ["<C-u>"] = actions.preview_scrolling_up,
+ ["<C-d>"] = actions.preview_scrolling_down,
+
+ ["<PageUp>"] = actions.results_scrolling_up,
+ ["<PageDown>"] = actions.results_scrolling_down,
+
+ ["?"] = actions.which_key,
+ --["<C-o>"] = function(prompt_bufnr)
+ -- local selection = require("telescope.actions.state").get_selected_entry()
+ -- local dir = vim.fn.fnamemodify(selection.path, ":p:h")
+ -- require("telescope.actions").close(prompt_bufnr)
+ -- -- Depending on what you want put `cd`, `lcd`, `tcd`
+ -- vim.cmd(string.format("silent lcd %s", dir))
+ --end,
+ },
+ },
+ },
+ preview = {
+ filesize_limit = 3,
+ timeout = 250,
+ },
+ selection_strategy = "reset",
+ sorting_strategy = "ascending",
+ scroll_strategy = "limit",
+ color_devicons = true,
+ layout_strategy = 'horizontal',
+ layout_config = {
+ horizontal = {
+ height = 0.95,
+ preview_cutoff = 70,
+ width = 0.92,
+ preview_width = { 0.55, max = 50 }
+ },
+ bottom_pane = {
+ height = 12,
+ preview_cutoff = 70,
+ prompt_position = "bottom",
},
- selection_strategy = "reset",
- sorting_strategy = "ascending",
- scroll_strategy = "limit",
- color_devicons = true,
- layout_strategy = 'horizontal',
- layout_config = {
- horizontal = {
- height = 0.95,
- preview_cutoff = 70,
- width = 0.92,
- preview_width = {0.55, max = 50}
- },
- bottom_pane = {
- height = 12,
- preview_cutoff = 70,
- prompt_position = "bottom",
- },
- },
+ },
--pickers = {
-- live_grep = {
-- disable_coordinates = true,
@@ -165,89 +174,102 @@ require('telescope').setup({
-- },
-- },
--},
- --pickers = {
- --lsp_references = {
- -- prompt_prefix='⬅️',
- -- show_line=false,
- -- trim_text=true,
- -- include_declaration=false,
- -- initial_mode = "normal",
- --},
- --lsp_definitions = {
- -- prompt_prefix='➡️',
- -- show_line=false,
- -- trim_text=true,
- -- initial_mode = "normal",
- --},
- --lsp_document_symbols = {
- -- prompt_prefix='* ',
- -- show_line = false,
- --},
- --treesitter = {
- -- prompt_prefix=' ',
- -- show_line = false,
- --},
- --find_files = {
- -- cwd='%:p:h',
- -- prompt_prefix=' ',
- -- hidden = true,
- -- follow = true,
- --},
- --keymaps = { prompt_prefix='? ' },
- --oldfiles = { prompt_prefix=' ' },
- --highlights = { prompt_prefix=' ' },
- --git_files = {
- -- prompt_prefix=' ',
- -- show_untracked = true,
- -- path_display = { "tail" },
- --},
- --buffers = {
- -- prompt_prefix=' ',
- -- ignore_current_buffer = true,
- -- initial_mode = "normal",
- -- sort_mru = true,
- --},
- --live_grep = {
- -- cwd='%:p:h',
- -- disable_coordinates=true,
- -- prompt_title='Search in Folder',
- -- prompt_prefix=' ',
- --},
- --spell_suggest = {
- -- initial_mode = "normal",
- -- prompt_prefix = "暈",
- -- theme = "cursor",
- -- layout_config = { cursor = { width = 0.3 } }
- --},
- --colorscheme = {
- -- enable_preview = true,
- -- prompt_prefix = '',
- -- results_title = '',
- -- layout_strategy = "bottom_pane",
- --},
- --},
-
- extensions = {
- file_browser = {
- theme = "dropdown",
- -- disables netrw and use telescope-file-browser in its place
- hijack_netrw = true,
- mappings = {
- -- your custom insert mode mappings
- ["i"] = {
- ["<C-w>"] = function()
- vim.cmd("normal vbd")
- end,
+ --pickers = {
+ -- live_grep = {
+ -- mappings = {
+ -- i = {
+ -- ["<C-f>"] = ts_select_dir_for_grep,
+ -- },
+ -- n = {
+ -- ["<C-f>"] = ts_select_dir_for_grep,
+ -- },
+ -- },
+ -- },
+ --},
+ --pickers = {
+ --lsp_references = {
+ -- prompt_prefix='⬅️',
+ -- show_line=false,
+ -- trim_text=true,
+ -- include_declaration=false,
+ -- initial_mode = "normal",
+ --},
+ --lsp_definitions = {
+ -- prompt_prefix='➡️',
+ -- show_line=false,
+ -- trim_text=true,
+ -- initial_mode = "normal",
+ --},
+ --lsp_document_symbols = {
+ -- prompt_prefix='* ',
+ -- show_line = false,
+ --},
+ --treesitter = {
+ -- prompt_prefix=' ',
+ -- show_line = false,
+ --},
+ find_files = {
+ cwd = '%:p:h',
+ --cwd = vim.fn.getcwd(),
+ prompt_prefix = ' ',
+ hidden = true,
+ follow = true,
+ },
+ --keymaps = { prompt_prefix='? ' },
+ --oldfiles = { prompt_prefix=' ' },
+ --highlights = { prompt_prefix=' ' },
+ --git_files = {
+ -- prompt_prefix=' ',
+ -- show_untracked = true,
+ -- path_display = { "tail" },
+ --},
+ --buffers = {
+ -- prompt_prefix=' ',
+ -- ignore_current_buffer = true,
+ -- initial_mode = "normal",
+ -- sort_mru = true,
+ --},
+ --live_grep = {
+ -- cwd='%:p:h',
+ -- disable_coordinates=true,
+ -- prompt_title='Search in Folder',
+ -- prompt_prefix=' ',
+ --},
+ --spell_suggest = {
+ -- initial_mode = "normal",
+ -- prompt_prefix = "暈",
+ -- theme = "cursor",
+ -- layout_config = { cursor = { width = 0.3 } }
+ --},
+ --colorscheme = {
+ -- enable_preview = true,
+ -- prompt_prefix = '',
+ -- results_title = '',
+ -- layout_strategy = "bottom_pane",
+ --},
+ --},
+
+ extensions = {
+ file_browser = {
+ theme = "dropdown",
+ -- disables netrw and use telescope-file-browser in its place
+ hijack_netrw = true,
+ mappings = {
+ -- your custom insert mode mappings
+ ["i"] = {
+ ["<C-w>"] = function()
+ vim.cmd("normal vbd")
+ end,
+ --["<C-h>"] = fb_actions.goto_parent_dir,
+ },
+ ["n"] = {
+ -- your custom normal mode mappings
+ ["N"] = fb_actions.create,
--["<C-h>"] = fb_actions.goto_parent_dir,
- },
- ["n"] = {
- -- your custom normal mode mappings
- ["N"] = fb_actions.create,
- --["<C-h>"] = fb_actions.goto_parent_dir,
- --["/"] = function()
- -- vim.cmd("startinsert")
- --end,
- },
+ --["/"] = function()
+ -- vim.cmd("startinsert")
+ --end,
+ },
},
},
},
@@ -266,6 +288,17 @@ require('telescope').load_extension('media_files')
require('telescope').load_extension('notify')
require('telescope').load_extension('dap')
require("telescope").load_extension("session-lens")
+require("telescope").load_extension("flutter")
+
+--M.curbuf = function(opts)
+-- opts = opts
+-- or themes.get_dropdown({
+-- previewer = false,
+-- shorten_path = false,
+-- border = true,
+-- })
+-- require("telescope.builtin").current_buffer_fuzzy_find(opts)
+--end
function M.find_configs()
require("telescope.builtin").find_files {
@@ -285,8 +318,13 @@ function M.find_configs()
"~/.config/bspwm",
"~/.config/sxhkd",
"~/.config/picom",
- "~/.ssh",
+ "~/.config/polybar",
"~/.bashrc",
+ "~/.ssh",
+ "~/.vim",
+ "~/.profile",
+ "~/.zprofile",
+ "~/README.md",
},
-- cwd = "~/.config/nvim/",
file_ignore_patterns = {
@@ -297,6 +335,9 @@ function M.find_configs()
--"^~/.config/tmux/plugins",
"%.txt",
".git",
+ "autoload/plugged",
+ "plug.vim",
+ "zcompdump",
},
layout_strategy = "horizontal",
layout_config = { preview_width = 0.65, width = 0.75 },
@@ -378,22 +419,22 @@ end
--------------------------------------------------------------------------------
local dropdown = require('telescope.themes').get_dropdown({
- hidden = true,
- no_ignore = true,
- previewer = false,
- prompt_title = '',
- preview_title = '',
- results_title = '',
- layout_config = {
- --anchor = "S",
- prompt_position = 'top'
- },
+ hidden = true,
+ no_ignore = true,
+ previewer = false,
+ prompt_title = '',
+ preview_title = '',
+ results_title = '',
+ layout_config = {
+ --anchor = "S",
+ prompt_position = 'top'
+ },
})
-- File browser always relative to buffer
-local opts_file_browser = vim.tbl_extend('force', dropdown, {
- path_display = { '%:p:h' },
-})
+--local opts_file_browser = vim.tbl_extend('force', dropdown, {
+-- path_display = { '%:p:h' },
+--})
-- Set current folder as prompt title
local with_title = function(opts, extra)
@@ -413,37 +454,36 @@ local with_title = function(opts, extra)
}, extra or {})
end
-----vim.api.nvim_create_augroup('startup', { clear = true })
-----vim.api.nvim_command('augroup startup')
-----vim.api.nvim_command('autocmd!')
-----vim.api.nvim_command('autocmd VimEnter * lua require("plugins/telescope").startup()')
-----vim.api.nvim_command('augroup END')
---
---
---local startup = function()
--- -- Open file browser if argument is a folder
--- local arg = vim.api.nvim_eval('argv(0)')
--- if arg and (vim.fn.isdirectory(arg) ~= 0 or arg == "") then
--- vim.defer_fn(function()
--- require('telescope.builtin').find_files(with_title(dropdown))
----- require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({
----- hidden = true,
----- results_title = '',
----- layout_config = { prompt_position = 'top' },
----- }))
--- end, 10)
--- end
---end
---
---
---
----- Define the custom command startup/findhere
---vim.cmd('command! Startup lua require("plugins.telescope").startup()')
---vim.cmd('command! Findhere lua require("plugins.telescope").startup()')
---
-----vim.api.nvim_command('autocmd VimEnter * lua require("plugins/telescope").startup()')
---
----- Merge the existing M table with the startup function table
---M = vim.tbl_extend('force', M, { startup = startup })
+--vim.api.nvim_create_augroup('findhere', { clear = true })
+--vim.api.nvim_command('augroup findhere')
+--vim.api.nvim_command('autocmd!')
+--vim.api.nvim_command('autocmd VimEnter * lua require("plugins/telescope").findhere()')
+--vim.api.nvim_command('augroup END')
+
+
+--local findhere = function()
+function M.findhere()
+ -- Open file browser if argument is a folder
+ local arg = vim.api.nvim_eval('argv(0)')
+ if arg and (vim.fn.isdirectory(arg) ~= 0 or arg == "") then
+ vim.defer_fn(function()
+ require('telescope.builtin').find_files(with_title(dropdown))
+-- require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({
+-- hidden = true,
+-- results_title = '',
+-- layout_config = { prompt_position = 'top' },
+-- }))
+ end, 10)
+ end
+end
+
+-- Define the custom command findhere/startup
+vim.cmd('command! Findhere lua require("plugins.telescope").findhere()')
+--vim.cmd('command! Startup lua require("plugins.telescope").findhere()')
+
+--vim.api.nvim_command('autocmd VimEnter * lua require("plugins/telescope").findhere()')
+
+-- Merge the existing M table with the startup function table
+--M = vim.tbl_extend('force', M, { findhere = findhere })
return M
diff --git a/.config/nvim/lua/user/keys.lua b/.config/nvim/lua/user/keys.lua
index e5e7099..a20b0ea 100644
--- a/.config/nvim/lua/user/keys.lua
+++ b/.config/nvim/lua/user/keys.lua
@@ -170,7 +170,8 @@ map("i", "<C-l>", "<Del>")
map("n", "<leader><C-l>", "<Cmd>!clear<CR>")
-- Change file to an executable
-map("n", "<leader>x", ":!chmod +x %<CR>")
+map("n", "<Leader>x", ":lua require('user.mods').Toggle_executable()<CR> | :echom ('Toggle executable')<CR> | :sl! | echo ('')<CR>")
+--map("n", "<leader>x", ":!chmod +x %<CR>")
-- Paste without replace clipboard
map("v", "p", '"_dP')
@@ -291,8 +292,8 @@ map("n", "<leader>gm", ":Gmove<Space>")
--end
-- 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>ff", function() require("telescope.builtin").find_files { hidden = true, no_ignore = false } end) -- find all files
+--map("n", "<leader>fF", "<cmd>lua require('telescope.builtin').find_files()<cr>") -- find files with hidden option
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>")
@@ -310,6 +311,8 @@ map("n", "<leader>fs", [[<Cmd>lua require'plugins.telescope'.find_scripts()<CR>]
map("n", "<leader>fw", [[<Cmd>lua require'plugins.telescope'.find_projects()<CR>]]) -- find projects
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 notifications
+--map("n", "<leader>f/", "<cmd>lua require('plugins.telescope').curbuf()<cr>") -- find files with hidden option
+map("n", "<leader>fF", ":cd %:p:h<CR>:pwd<CR><cmd>lua require('user.mods').findFilesInCwd()<CR>", { noremap = true, silent = true, desc = "Find files in cwd" })
-- FZF
map("n", "<leader>fz", "<cmd>lua require('fzf-lua').files()<CR>")
@@ -396,7 +399,7 @@ map("n", "<leader>dq", function()
require("nvim-dap-virtual-text").refresh()
end, { desc = "Terminate Debug" })
map("n", "<leader>dc", function()
- require("telescope").extensions.dap.commands()
+ require("telescope").extensions.dap.commands()
end, { desc = "DAP-Telescope: Commands" })
--vim.keymap.set("n", "<leader>B", ":lua require'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>")
--vim.keymap.set("v", "<leader>B", ":lua require'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>")
diff --git a/.config/nvim/lua/user/mods.lua b/.config/nvim/lua/user/mods.lua
index 725ca6e..f00621d 100644
--- a/.config/nvim/lua/user/mods.lua
+++ b/.config/nvim/lua/user/mods.lua
@@ -40,7 +40,8 @@ require("null-ls").setup({
buffer = bufnr,
callback = function()
-- on 0.8, you should use vim.lsp.buf.format({ bufnr = bufnr }) instead
- vim.lsp.buf.formatting_seq_sync()
+ --vim.lsp.buf.formatting_seq_sync()
+ vim.lsp.buf.format({ bufnr = bufnr })
end,
})
end
@@ -157,6 +158,38 @@ end
--autocmd User RooterChDir :sleep! | call LogTrigger(timer) | call ConfigureChDir()
--]])
+function M.findFilesInCwd()
+ vim.cmd("let g:rooter_manual_only = 1") -- Toggle the rooter plugin
+ require("plugins.telescope").findhere()
+ vim.defer_fn(function()
+ vim.cmd("let g:rooter_manual_only = 0") -- Change back to automatic rooter
+ end, 100)
+end
+--function M.findFilesInCwd()
+-- vim.cmd("let g:rooter_manual_only = 1") -- Toggle the rooter plugin
+-- require("plugins.telescope").findhere()
+-- --vim.cmd("let g:rooter_manual_only = 0") -- Change back to automatic rooter
+--end
+
+--------------------------------------------------
+
+-- Toggle the executable permission
+function M.Toggle_executable()
+ local current_file = vim.fn.expand('%:p')
+ local executable = vim.fn.executable(current_file) == 1
+
+ if executable then
+ -- File is executable, unset the executable permission
+ vim.fn.system('chmod -x ' .. current_file)
+ --print(current_file .. ' is no longer executable.')
+ print("No longer executable")
+ else
+ -- File is not executable, set the executable permission
+ vim.fn.system('chmod +x ' .. current_file)
+ --print(current_file .. ' is now executable.')
+ print("Now executable")
+ end
+end
--------------------------------------------------
@@ -233,7 +266,7 @@ function M.update_tmux_status()
file:close()
if nvim_running then
-- Neovim is running, update the mode file and refresh tmux
- VI_MODE = "" -- Clear VI_MODE to show Neovim mode
+ VI_MODE = "" -- Clear VI_MODE to show Neovim mode
vim.cmd("silent !tmux refresh-client -S")
end
---- Force tmux to update the status
@@ -253,14 +286,163 @@ vim.cmd([[
-- Add autocmd for <esc>
-- Add autocmd to check when tmux switches panes/windows
- --autocmd InsertLeave,InsertEnter * lua require("user.mods").update_tmux_status()
- --autocmd BufEnter * lua require("user.mods").update_tmux_status()
- --autocmd WinEnter,WinLeave * lua require("user.mods").update_tmux_status()
-
- --autocmd WinEnter,WinLeave * lua require("user.mods").update_tmux_status()
- --autocmd VimResized * lua require("user.mods").update_tmux_status()
- --autocmd FocusGained * lua require("user.mods").update_tmux_status()
- --autocmd FocusLost * lua require("user.mods").update_tmux_status()
- --autocmd CmdwinEnter,CmdwinLeave * lua require("user.mods").update_tmux_status()
+--autocmd InsertLeave,InsertEnter * lua require("user.mods").update_tmux_status()
+--autocmd BufEnter * lua require("user.mods").update_tmux_status()
+--autocmd WinEnter,WinLeave * lua require("user.mods").update_tmux_status()
+
+--autocmd WinEnter,WinLeave * lua require("user.mods").update_tmux_status()
+--autocmd VimResized * lua require("user.mods").update_tmux_status()
+--autocmd FocusGained * lua require("user.mods").update_tmux_status()
+--autocmd FocusLost * lua require("user.mods").update_tmux_status()
+--autocmd CmdwinEnter,CmdwinLeave * lua require("user.mods").update_tmux_status()
--------------------------------------------------
+
+-- function OpenEmulatorList()
+-- local emulatorsBuffer = vim.api.nvim_create_buf(false, true)
+-- vim.api.nvim_buf_set_lines(emulatorsBuffer, 0, 0, true, {"Some text"})
+-- vim.api.nvim_open_win(
+-- emulatorsBuffer,
+-- false,
+-- {
+-- relative='win', row=3, col=3, width=12, height=3
+-- }
+-- )
+-- end
+--
+-- vim.api.nvim_create_user_command('OpenEmulators', OpenEmulatorList, {})
+
+
+
+--local api = vim.api
+--local fn = vim.fn
+--local cmd = vim.cmd
+--
+--local function bufremove(opts)
+-- local target_buf_id = api.nvim_get_current_buf()
+--
+-- -- Do nothing if buffer is in modified state.
+-- if not opts.force and api.nvim_buf_get_option(target_buf_id, 'modified') then
+-- return false
+-- end
+--
+-- -- Hide target buffer from all windows.
+-- vim.tbl_map(function(win_id)
+-- win_id = win_id or 0
+--
+-- local current_buf_id = api.nvim_win_get_buf(win_id)
+--
+-- api.nvim_win_call(win_id, function()
+-- -- Try using alternate buffer
+-- local alt_buf_id = fn.bufnr('#')
+-- if alt_buf_id ~= current_buf_id and fn.buflisted(alt_buf_id) == 1 then
+-- api.nvim_win_set_buf(win_id, alt_buf_id)
+-- return
+-- end
+--
+-- -- Try using previous buffer
+-- cmd('bprevious')
+-- if current_buf_id ~= api.nvim_win_get_buf(win_id) then
+-- return
+-- end
+--
+-- -- Create new listed scratch buffer
+-- local new_buf = api.nvim_create_buf(true, true)
+-- api.nvim_win_set_buf(win_id, new_buf)
+-- end)
+--
+-- return true
+-- end, fn.win_findbuf(target_buf_id))
+--
+-- cmd(string.format('bdelete%s %d', opts.force and '!' or '', target_buf_id))
+--end
+--
+---- Assign bufremove to a global variable
+--_G.bufremove = bufremove
+
+--vim.cmd([[
+-- augroup NvimTreeDelete
+-- autocmd!
+-- autocmd FileType NvimTree lua require('user.mods').enew_on_delete()
+-- augroup END
+--]])
+--
+--function M.enew_on_delete()
+-- if vim.bo.buftype == 'nofile' then
+-- vim.cmd('enew')
+-- end
+--end
+
+-- Update Neovim
+--function M.Update_neovim()
+-- -- Run the commands to download and extract the latest version
+-- os.execute("curl -L -o nvim-linux64.tar.gz https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz")
+-- os.execute("tar xzvf nvim-linux64.tar.gz")
+-- -- Replace the existing Neovim installation with the new version
+-- os.execute("rm -rf $HOME/.local/bin/nvim")
+-- os.execute("mv nvim-linux64 $HOME/.local/bin/nvim")
+--
+-- -- Clean up the downloaded file
+-- os.execute("rm nvim-linux64.tar.gz")
+--
+-- -- Print a message to indicate the update is complete
+-- print("Neovim has been updated to the latest version.")
+--end
+--
+---- Bind a keymap to the update_neovim function (optional)
+--vim.api.nvim_set_keymap('n', '<leader>u', '<cmd> lua require("user.mods").Update_neovim()<CR>', { noremap = true, silent = true })
+
+-- Define a function to create a floating window and run the update process inside it
+function M.Update_neovim()
+ -- Create a new floating window
+ local bufnr, winid = vim.api.nvim_create_buf(false, true)
+ vim.api.nvim_open_win(bufnr, true, {
+ relative = "editor",
+ width = 80,
+ height = 20,
+ row = 2,
+ col = 2,
+ style = "minimal",
+ border = "single",
+ })
+
+ -- Function to append a line to the buffer in the floating window
+ local function append_line(line)
+ vim.api.nvim_buf_set_option(bufnr, "modifiable", true)
+ vim.api.nvim_buf_set_lines(bufnr, -1, -1, false, { line })
+ vim.api.nvim_buf_set_option(bufnr, "modifiable", false)
+ end
+
+ -- Download the latest version of Neovim
+ append_line("Downloading the latest version of Neovim...")
+ os.execute(
+ "curl -L -o nvim-linux64.tar.gz https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz")
+ append_line("Download complete.")
+
+ -- Extract the downloaded archive
+ append_line("Extracting the downloaded archive...")
+ os.execute("tar xzvf nvim-linux64.tar.gz")
+ append_line("Extraction complete.")
+
+ -- Replace the existing Neovim installation with the new version
+ append_line("Replacing the existing Neovim installation...")
+ os.execute("rm -rf $HOME/nvim")
+ os.execute("mv nvim-linux64 $HOME/nvim")
+ append_line("Update complete.")
+
+ -- Clean up the downloaded file
+ append_line("Cleaning up the downloaded file...")
+ os.execute("rm nvim-linux64.tar.gz")
+ append_line("Cleanup complete.")
+
+ -- Close the floating window after a delay
+ vim.defer_fn(function()
+ vim.api.nvim_win_close(winid, true)
+ end, 5000) -- Adjust the delay as needed
+end
+
+-- Bind a keymap to the update_neovim function (optional)
+vim.api.nvim_set_keymap('n', '<leader>u', '<cmd> lua require("user.mods").Update_neovim()<CR>',
+ { noremap = true, silent = true })
+
+
return M
diff --git a/.config/nvim/lua/user/pack.lua b/.config/nvim/lua/user/pack.lua
index e416baf..d2fad3c 100644
--- a/.config/nvim/lua/user/pack.lua
+++ b/.config/nvim/lua/user/pack.lua
@@ -63,8 +63,8 @@ return packer.startup(function(use)
-- lsp
use("williamboman/mason.nvim") -- Package manager to install and manage LSP servers, DAP servers, linters and formatters
- use("williamboman/mason-lspconfig.nvim") -- Bridges mason.nvim with nvim-lspconfig to help use them together
use("neovim/nvim-lspconfig") -- Collection of LSP configs
+ use("williamboman/mason-lspconfig.nvim") -- Bridges mason.nvim with nvim-lspconfig to help use them together
use({
"https://git.sr.ht/~whynothugo/lsp_lines.nvim",
config = function()
@@ -167,7 +167,7 @@ return packer.startup(function(use)
use({ "tpope/vim-eunuch", cmd = { "Rename", "Delete" } }) -- Handy unix commands inside Vim (Rename, Move etc.)
--use("tpope/vim-surround") --
--use("tpope/vim-obsession") --
- --use("tpope/vim-unimpaired") --
+ use("tpope/vim-unimpaired") --
--use("vimpostor/vim-tpipeline") --
--use("nathom/filetype.nvim") --
use({ "myusuf3/numbers.vim", --
@@ -200,7 +200,11 @@ return packer.startup(function(use)
"folke/trouble.nvim",
requires = "nvim-tree/nvim-web-devicons",
})
- use("airblade/vim-rooter") --
+ use({ "airblade/vim-rooter", --
+ --vim.cmd("let g:rooter_change_directory_for_non_project_files = ''"),
+ --vim.cmd("let g:rooter_change_directory_for_non_project_files = 'current'")
+ })
+
--use("vim-test/vim-test") --
--use({
-- "rcarriga/vim-ultest", --
@@ -276,7 +280,7 @@ return packer.startup(function(use)
})
use("rcarriga/nvim-notify") -- Notification plugin
use("karb94/neoscroll.nvim") -- Faster/smooth scrolling
- use("MunifTanjim/prettier.nvim") -- Prettier plugin for Neovim's built-in LSP client
+ --use("MunifTanjim/prettier.nvim") -- Prettier plugin for Neovim's built-in LSP client
use({
'norcalli/nvim-colorizer.lua', -- colorize hexa and rgb strings
cmd = { 'ColorizerToggle', 'ColorizerAttachToBuffer' },
@@ -329,6 +333,21 @@ return packer.startup(function(use)
end,
})
use({
+ "akinsho/flutter-tools.nvim",
+ requires = {
+ "nvim-lua/plenary.nvim",
+ "stevearc/dressing.nvim", -- optional for vim.ui.select
+ },
+ config = function()
+ require('flutter-tools').setup({
+ debugger = {
+ enabled = true,
+ run_via_dap = true,
+ },
+ })
+ end,
+ })
+ use({
"iamcco/markdown-preview.nvim", -- Markdown Preview
run = function() vim.fn["mkdp#util#install"]() end,
})